基于比特币开发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方案,因此这些秘密最初是哈希加密的,然后会在适当的时间进行揭示。
- A1是Alice在取回贷款本金时透露的秘密。贷款到期后,Bob可以用它来扣押抵押品;
- B1是由Bob接受贷款偿还或取消贷款(在Alice收到本金之前)时透露的秘密。Alice可以用这个秘密来收回她的抵押品;
- A2和B2用作违约情况下抵押品清算过程的一部分。实际上会存在多个A2和B2秘密,来支持多个清算;
一旦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抵押物的美元价值,并将其与贷款金额进行比较来衡量。如果不保持抵押率,甚至可以在贷款期结束前开始清算。
清算过程因需要处理跨链交互而变得复杂。以下是清算过程的说明:
- 抵押品以7%的折扣提供;
-
第三方清算人通过调用
liquidate
函数,并提供代币以折扣价购买该抵押品,以及提供秘密D1的哈希值来清算抵押品,该哈希值将其清算锁定在智能合约中。此时,确定出清算人(David); - Alice和Bob生成签名,将所有抵押品转移到新的抵押品互换P2SH中;
- Alice和Bob还生成签名,以便在超时后将抵押品移回标准可退还抵押品和可扣押抵押品脚本。这是为了处理David从未揭露秘密D1的情况;
- Alice和Bob,一旦他们对签名都满意了,就揭示秘密A2和B2;
- 抵押品P2SH接受Alice和Bob的签名,以及秘密A2和B2,并允许资金转移到一个新的抵押品互换脚本中,用D1锁定;
- David取回比特币抵押品,揭示了过程中的D1;
- Alice和Bob可以使用D1来支付David出价的以太坊资金;
如果David未能在分配的时间段内披露D1,Alice和Bob可以将资金移回标准抵押品P2SH(使用步骤4中建立的“退还”脚本)并尝试另一次清算。
4、附带扣押
为了清算成功,Alice和Bob都必须通过签名和揭示秘密来参与。最多可发生三次清算。如果他们都失败了,Bob可没收抵押品的可扣押部分,而Alice可以收回可退还部分。5、使用自动代理人
贷款流程中的许多步骤,都有一个活性(liveness)要求。Alice或Bob需要在线才能在超时时间过去之前执行进程的一部分。作为可选组件,Alice和Bob可以约定一个名为Carol的代理人。Carol可以在两个关键时刻代表Alice或Bob:- Bob或Carol都可以接受还贷或取消贷款。在借款人偿还贷款时,这对于可能会出现离线情况的放贷人尤其有用。
- 在清算期间,Alice、Bob和Carol只需有两个人就可以将资金转移到抵押品互换脚本中,或者在出售到期后将资金转移回来。这意味着任何一方都可以在清算期间下线。
进阶阅读
注:以下资源虽已过时,但提供了有关Atomic Loans贷款流程的更多信息:- Atomic Loans:加密货币债务工具 ;
- BIP 197 -哈希时间锁定抵押合约(Hashed Time-Locked Collateral Contract);
- ERC 1850 - 哈希时间锁定主合约标准(Hashed Time-Locked Principal Contract Standard);
- AtomicLoans.io ;
以下资源包含协议中涉及的以太坊智能合约和比特币脚本。
比特币 :
- Collateral P2SH —— 比特币抵押托管;
- Collateral Swap P2SH —— 清算人互换托管;
V2 版本将涉及一个无需信任的比特币借贷协议(除了预言机),它无需第三方仲裁者,使用的是一个非托管比特币价格预言机,详情如下: https://github.com/AtomicLoans/AtomicLoans-rfc/wiki/Bitcoin-Non-Custodial-Oracle 。
原文:https://github.com/AtomicLoans/atomicloans-rfc/wiki/System-Overview 作者:Matthew Black 编译:洒脱喜 稿源(译):巴比特资讯(http://www.8btc.com/article/596237)