LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 行情分析 > 基于比特币开发DeFi,一文了解Atomic Loans的设计与实现

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

2020-05-14 玩币族 来源:区块链网络

关于去中心化金融(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的详细设计  

在下面的描述中,我们将使用到以下角色: Alice,她想要使用比特币作为抵押,来借取以太坊代币;Bob,他想要取出他的以太坊代币;Carol,一个协助清算程序的自动化代理人;David,以折扣价购买抵押品的清算人; 1、贷款设定 要建立贷款,Alice和Bob必须首先就贷款参数达成一致。虽然有一个可选的Funds合约,允许贷方在链上建立参数,并接受任何同意这些参数的人的贷款,但该协议可以在链外发生。这些参数包括抵押品和本金的数量、利率、在违约的情况下可以扣押抵押品的哪一部分、过程各个步骤的持续时间等。

建立贷款的一部分,是建立将在整个贷款过程中使用的秘密(secret)。这些秘密用于许多commit-reveal方案,因此这些秘密最初是哈希加密的,然后会在适当的时间进行揭示。 A1是Alice在取回贷款本金时透露的秘密。贷款到期后,Bob可以用它来扣押抵押品;B1是由Bob接受贷款偿还或取消贷款(在Alice收到本金之前)时透露的秘密。Alice可以用这个秘密来收回她的抵押品;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抵押物的美元价值,并将其与贷款金额进行比较来衡量。如果不保持抵押率,甚至可以在贷款期结束前开始清算。

清算过程因需要处理跨链交互而变得复杂。以下是清算过程的说明: 抵押品以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出价的以太坊资金; 如果Alice和Bob未能移动抵押品,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 —— 清算人互换托管; 以太坊: 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转载请注明文章出处

—-

编译者/作者:玩币族

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...