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

首发

2020-05-15 11:13:36

6720

2358

0

2320

关于去中心化金融(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只需有两个人就可以将资金转移到抵押品互换脚本中,或者在出售到期后将资金转移回来。这意味着任何一方都可以在清算期间下线。

   
发稿时主流币价 :

2358

好的文章,需要你的鼓励

声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

评论