mt logoMyToken
总市值:
0%
恐慌指数:
0%
币种:--
交易所 --
ETH Gas:--
EN
USD
APP
Ap Store QR Code

Scan Download

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

收藏
分享

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

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

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

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

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

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

(图:Atomic Loans创始合伙人,从左到右依次为Steven Zhao,Matthew Black和Tony Cai)

那这个系统到底是如何设计的呢?我们来看看Atomic Loans的创始人Matthew Black是如何解释的:

Atomic Loans(原子借贷)为跨链抵押贷款提供了一种机制。具体来说,该系统允许人们在锁定比特币作为抵押品的同时,借入以太坊平台上发行的美元稳定币。在违约的情况下,贷款人的抵押品会被清算。作为失败清算的应变计划,贷款人最终可以扣押一部分抵押品。

Atomic Loans的详细设计

在下面的描述中,我们将使用到以下角色:

  1. Alice,她想要使用比特币作为抵押,来借取以太坊代币;
  2. Bob,他想要取出他的以太坊代币;
  3. Carol,一个协助清算程序的自动化代理人;
  4. 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
开源代码:

以下资源包含协议中涉及的以太坊智能合约和比特币脚本。

比特币

  1. Collateral P2SH —— 比特币抵押托管;
  2. Collateral Swap P2SH —— 清算人互换托管;
以太坊
  1. Funds.sol - 贷款人资金利率管理合约;
  2. Loans.sol - 债务协议合约;
  3. Sales.sol - 清算合约;
注:这是V1版Atomic Loans

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)

免责声明:本文版权归原作者所有,不代表MyToken(www.mytokencap.com)观点和立场;如有关于内容、版权等问题,请与我们联系。