基于比特币开发DeFi,一文了解 Atomic Loans 的设计与实现

原文标题:《基于比特币开发 DeFi,一文了解 Atomic Loans 的设计与实现》

原文来源:巴比特

关于去中心化金融(Defi),目前大部分的创新都发生在以太坊平台上,那比特币呢?作为当前加密货币世界的老大哥,比特币是否也会迎来自己的 Defi 应用?

Atomic Loans,这是一家致力于将 DeFi 产品原生性引入比特币的创业公司。在今年 4 月份的时候,这家公司就获得了包括 Initialized、ConsenSys、Morgan Creek Digital 等机构的 245 万美元种子轮融资。

此前,开发者们并没有选择在比特币系统上构建 DeFi 工具,理由是它缺乏以太坊具备的强大智能合约。但实际上,比特币本身有一个健壮的脚本语言,这个脚本语言是多重签名交易和原子互换(atomic swap)等功能背后的技术。

而 Atomic Loans 便是尽可能多地使用比特币的脚本语言来构建 DeFi 产品,显然,这样的尝试会更受比特币社区的欢迎。

他们的第一个产品,使用类似于哈希时间锁定合约(HTLC)的脚本来提供非托管比特币抵押贷款,最近他们完成了两次系统审计,并在比特币主网上发布了一个 beta 版本。

(图:Atomic Loans 创始合伙人,从左到右依次为 Steven Zhao,Matthew Black 和 Tony Cai)
那这个系统到底是如何设计的呢?我们来看看 Atomic Loans 的创始人 Matthew Black 是如何解释的:
Atomic Loans(原子借贷)为跨链抵押贷款提供了一种机制。具体来说,该系统允许人们在锁定比特币作为抵押品的同时,借入以太坊平台上发行的美元稳定币。在违约的情况下,贷款人的抵押品会被清算。作为失败清算的应变计划,贷款人最终可以扣押一部分抵押品。
Atomic Loans 的详细设计

在下面的描述中,我们将使用到以下角色:
Alice,她想要使用比特币作为抵押,来借取以太坊代币;
Bob,他想要取出他的以太坊代币;
Carol,一个协助清算程序的自动化代理人;
David,以折扣价购买抵押品的清算人;

1、贷款设定

要建立贷款,Alice 和 Bob 必须首先就贷款参数达成一致。虽然有一个可选的 Funds 合约,允许贷方在链上建立参数,并接受任何同意这些参数的人的贷款,但该协议可以在链外发生。这些参数包括抵押品和本金的数量、利率、在违约的情况下可以扣押抵押品的哪一部分、过程各个步骤的持续时间等。

建立贷款的一部分,是建立将在整个贷款过程中使用的秘密(secret)。这些秘密用于许多 commit-reveal 方案,因此这些秘密最初是哈希加密的,然后会在适当的时间进行揭示。
1. A1 是 Alice 在取回贷款本金时透露的秘密。贷款到期后,Bob 可以用它来扣押抵押品;

2. B1 是由 Bob 接受贷款偿还或取消贷款(在 Alice 收到本金之前)时透露的秘密。Alice 可以用这个秘密来收回她的抵押品;

3. A2 和 B2 用作违约情况下抵押品清算过程的一部分。实际上会存在多个 A2 和 B2 秘密,来支持多个清算;
为了建立贷款,Alice 必须证明她有债务协议所需的资金。她是通过签署一笔无效的比特币交易来实现这一点的,该交易的签名由 Bob 检查。这种资金证明是为了防止欺诈。

一旦 Bob 对 Alice 的资金感到满意,他就把代币转到 Loans 合约上。然后,Alice 必须在批准到期前,将其抵押品锁定在一对比特币 P2SH(支付脚本哈希)中:一个用于可退还抵押品,另一个用于可扣押抵押品。可退还的抵押品归 Alice 所有,除非是抵押品因清算而被出售,如果 Bob 没有得到偿还,抵押品可能会被 Bob 没收。
一旦 Bob 对锁定的抵押品感到满意,他就会在以太坊区块链上将本金释放给 Alice。Alice 拿着抵押品,揭示 A1 秘密。
2、还款

Alice 可以偿还以太坊区块链上的贷款本金和利息。Bob 必须揭示 B1 才能接受此还款,此时 Alice 可以解除所有抵押品的锁定,并且贷款已完成。

3、抵押品清算

Alice 可能无法在贷款期结束前偿还贷款。在这种情况下,Alice 的抵押品以 7% 的折扣进行清算。在清算过程中筹集的资金中,Bob 收到了他所欠的金额(本金加利息),Alice 则收到了剩余的部分。抵押品随后支付给清算人。

Alice 的抵押品在另一种情况下要进行清算。贷款的一个参数是最低抵押比率,通过确定 Alice 抵押物的美元价值,并将其与贷款金额进行比较来衡量。如果不保持抵押率,甚至可以在贷款期结束前开始清算。
清算过程因需要处理跨链交互而变得复杂。以下是清算过程的说明:

1. 抵押品以 7% 的折扣提供;
2. 第三方清算人通过调用 liquidate 函数,并提供代币以折扣价购买该抵押品,以及提供秘密 D1 的哈希值来清算抵押品,该哈希值将其清算锁定在智能合约中。此时,确定出清算人(David);
3. Alice 和 Bob 生成签名,将所有抵押品转移到新的抵押品互换 P2SH 中;
4. Alice 和 Bob 还生成签名,以便在超时后将抵押品移回标准可退还抵押品和可扣押抵押品脚本。这是为了处理 David 从未揭露秘密 D1 的情况;

5. Alice 和 Bob,一旦他们对签名都满意了,就揭示秘密 A2 和 B2;
6. 抵押品 P2SH 接受 Alice 和 Bob 的签名,以及秘密 A2 和 B2,并允许资金转移到一个新的抵押品互换脚本中,用 D1 锁定;
7. David 取回比特币抵押品,揭示了过程中的 D1;
8. Alice 和 Bob 可以使用 D1 来支付 David 出价的以太坊资金;

如果 Alice 和 Bob 未能移动抵押品,David 可以在超时后请求退还其出价。

如果 David 未能在分配的时间段内披露 D1,Alice 和 Bob 可以将资金移回标准抵押品 P2SH(使用步骤 4 中建立的「退还」脚本)并尝试另一次清算。
4、附带扣押

为了清算成功,Alice 和 Bob 都必须通过签名和揭示秘密来参与。最多可发生三次清算。如果他们都失败了,Bob 可没收抵押品的可扣押部分,而 Alice 可以收回可退还部分。

5、使用自动代理人

贷款流程中的许多步骤,都有一个活性(liveness)要求。Alice 或 Bob 需要在线才能在超时时间过去之前执行进程的一部分。作为可选组件,Alice 和 Bob 可以约定一个名为 Carol 的代理人。Carol 可以在两个关键时刻代表 Alice 或 Bob:

1. Bob 或 Carol 都可以接受还贷或取消贷款。在借款人偿还贷款时,这对于可能会出现离线情况的放贷人尤其有用。

2. 在清算期间,Alice、Bob 和 Carol 只需有两个人就可以将资金转移到抵押品互换脚本中,或者在出售到期后将资金转移回来。这意味着任何一方都可以在清算期间下线。

进阶阅读

注:以下资源虽已过时,但提供了有关 Atomic Loans 贷款流程的更多信息:
1. Atomic Loans:加密货币债务工具;
2. BIP 197-哈希时间锁定抵押合约(Hashed Time-Locked Collateral Contract);
3. ERC 1850 – 哈希时间锁定主合约标准(Hashed Time-Locked Principal Contract Standard);
4. AtomicLoans.io;

开源代码:
以下资源包含协议中涉及的以太坊智能合约和比特币脚本。
比特币:
Collateral P2SH——比特币抵押托管;
Collateral Swap P2SH——清算人互换托管;

以太坊:

Funds.sol – 贷款人资金利率管理合约;
Loans.sol – 债务协议合约;
Sales.sol – 清算合约;

注:这是 V1 版 Atomic Loans

V2 版本将涉及一个无需信任的比特币借贷协议(除了预言机),它无需第三方仲裁者,使用的是一个非托管比特币价格预言机,详情如下:https://github.com/AtomicLoans/AtomicLoans-rfc/wiki/Bitcoin-Non-Custodial-Oracle。

原文地址:https://www.8btc.com/article/596237

律动 BlockBeats 提醒,根据银保监会等五部门于 2018 年 8 月发布《关于防范以「虚拟货币」「区块链」名义进行非法集资的风险提示》的文件,请广大公众理性看待区块链,不要盲目相信天花乱坠的承诺,树立正确的货币观念和投资理念,切实提高风险意识;对发现的违法犯罪线索,可积极向有关部门举报反映。    

DeFi Atomic Loans 新品 行业内最新、最IN的项目介绍