干货 | 在以太坊上实现无需信任的比特币交易和挂钩

少平   |     |   2506 次阅读

译者注:建议先阅读本站以前发过的《BTC Relay (比特币中继) 发布 :现在比特币用户可以流畅地与以太坊进行交互》一文,了解背景。然后通过本文了解实现机制。

以太坊之所以有今天的地位,离不开它的兄长比特币。自从以太坊正式推出,就有一些关于创建完全独立的区块链的议论,这些独立的区块链用自己的加密币来保护它的网络。由于多种多样的原因,以太坊发现必须创建独立的区块链,经过一年的发展,以太坊终于在2015年7月30号诞生了!这并不意味着比特币和以太坊这对兄弟不能共存!有一些想法是把比特币加入到以太坊中,或者是在以太坊虚拟机中支持比特币。然而上周在Rootstock上发布了一个令人深思的白皮书(译者注:即通过Rootstock为比特币增加智能合约特性),激发了更多关于以太坊和比特币交互以及向比特币扩展智能合约的讨论。

一个典型的双向挂钩(2-way peg)的概述

一个典型的比特币和以太坊互相操作的例子可以通过一个双向挂钩实现。

因为以太坊智能合约已经足够强大,所以双向挂钩比特币那头可以在以太坊平台上实现。大部分比特币拥护者会双向挂钩比特币而兴奋,因为这将允许在其它区块链中“存放”比特币,然后将比特币“取回”到比特币区块链。因为比特币可以存放在其他区块链中,所以双向挂钩使得比特币用户能够使用其它区块链所提供的比特币区块链所没有的功能。或者这种机制可以作为比特币的升级或迁移路线:当用户信任这种升级后,他们可以简单地把比特币存放在其他区块链中而不用取回。

这里讲述一种关于双向挂钩比特币的一般性描述。这里把比特币区块链上的比特币记为BTC,而在其它区块链中的比特币称为E-BTC。为了简化过程,我们利用以太坊作为其它区块链。

当一个用户“存放”BTC时,这些BTC在比特币区块链中就被锁住了。一种这个比特币交易的证明被发送到一个以太坊合约中,称这个合约为PegContract(挂钩合约)。PegContract验证这笔交易,并发行E-BTC到用户的以太坊地址,在比特币系统中的1BTC等价于以太坊平台上的1E-BTC。

在另外一条链使用新功能后,用户想把E-BTC换回到BTC。用户只要燃烧掉E-BTC,再提供一个烧毁证明给比特币区块链。比特币区块链验证这些E-BTC已经销毁后,解锁原始的BTC。

BTC的锁住(locking)和解锁(unlocking)是一种解释双向挂钩的简单方式。这种PegContract现在就能在以太坊上实现,而且能够无需信任地做任何事情:它能够验证比特币已经被发送到一个地址,并被锁住了;它能够发行E-BTC;它可以销毁E-BTC并且提供这种销毁的证明。但是比特币区块链上确认证明和解锁机制,需要在比特币中加入新的操作码(opcode)。

(确认来自PegContract的证明需要新的比特币操作符,确认来自比特币的证明不需以太坊操作符)

目前,比特币不能从其他链里验证信息。

幸运的是,这里有一些方法可以实现以太坊与比特币的交互。下面列出的是现在和将来可以可能实现的功能:

  • 数字货币BTC和ETH可以无需信任地交换。
  • 无需在比特币中添加任何新的操作码即可在以太坊中挂钩比特币:在以太坊上实现跟踪比特币价值的比特币代理币(bitcoin proxy token)。
  • 在比特币区块链上用比特币支付以太坊合约执行费用。

以太坊虚拟机被设计成能够写出能与比特币整合的以太坊智能合约。BTC Relay(比特币中继)就是这样的合约。

BTC Relay 实现比特币简化支付证明(SPV),从而验证一笔比特币交易是否在比特币区块链上已经被确认。因此在比特币系统中任何交易,从支付到BTC的锁定,都可以被以太坊合约验证。

1)BTC和ETH的去中心化兑换(目前可行)

现在,一旦中继确认比特币被发送到一个特定地址时,BTC Relay允许智能合约自动分发以太币。这为比特币持有者提供了一种以无需信任的方式获得以太币的途径。使用相同的ETH-BTC互换机制,如果一个用户需要BTC,他可以存储以太币到一个合约中,这个合约监视一个比特币地址是否接收到足够的比特币。当ETH购买者发送BTC时,中继会确认这笔比特币交易(transaction),之后被存储的以太币被转移给ETH购买者。如果在一段时间内,比特币交易没有发生,存储ETH的一方可以发送BTC给自己,从而从合约中取回他们的ETH。

(卖家将ETH发送到一个智能合约,买家可以用BTC购买这个ETH)

当前LTC在交换平台上被用来转移比特币,它比现在比特币系统上平均转移要快。交易员通过BTC购买LTC,转移到另一交换平台,再把LTC转换为BTC。而在BTC Relay上的ETH-BTC交换机制的其中一个应用就是:它比比特币之间的交换要快。这个过程需要BTC和ETH在相同的平台交易,并且也依靠去信任交换来吸引足够的用户来保持可接受的流动性。
现在莱特币(LTC)被用来在交易所之间转移“比特币”,这个速度快于比特币系统自身的转移速度。交易者用BTC购买LTC,将LTC转移到另一个交易所,然后将LTC换回BTC。BTC Rely促成的ETH-BTC互换机制一个应用是BTC在交易所之间更快的转移。这当然要求BTC和ETH在相同的交易所交易,也依赖这种无需信任的交易吸引到足够多的用户,创造流动性。

通过一个透明的去中心化交易所,比特币用户将可以购买任何他们需要的以太坊上DApps代币。无论什么时候他们需要取回BTC,都可以在交易平台上卖掉他们的代币。这里对1:1挂钩BTC和E-BTC的需求较小。然而,对于那些渴望挂钩的用户,在以太坊上可能实现的,无需在比特币上增加额外操作符。

2)以无需信任有担保方式在以太坊上挂钩比特币(目前可行)

目前,双向挂钩的存在的问题是,比特币系统不能自动解锁BTC:它不能验证E-BTC已经被销毁从而解锁BTC。为了解决这个问题,以太坊会提供一些激励措施,使人们来解锁BTC。

一个用户的BTC将会被锁定到多重签名地址中,每个签名者必须存储一笔保证到以太坊平台上的PegContract。这笔资金可以是一笔大数目的ETH。在锁定他们的BTC之前,用户可以在PegContract中检查签名者是否有一笔保证金。当BTC被锁定,PegContract会发行E-BTC。而当E-BTC被发送回PegContract,它会被销毁并且通过PegContract产生一个证明。此时PegContract开始倒计时,給签名者足够时间来验证这个证明和签署多重签名解锁BTC。当E-BTC被销毁时,这笔保证金会激励签名者解锁BTC。当任何一位签名者不签署这个多重签名,保证金将被没收:这笔大数目的ETH可以返回给用户,他们可以卖掉ETH,取回BTC(用户原来的BTC仍然被锁住)。

如下图所示:

3)货币和加密抽象 (需要比特币和以太坊升级)

以太坊尝试将协议进一步模块化和通用化,计划实现加密协议和代币的抽象化。在未来,ETH保证金被用于签署新的区块和获得交易费用(译者注:以太坊未来的POS协议即Casper协议的保证金是以太币),但是所有其它操作都能使用其它代币完成。矿工/验证者可以接受以太坊平台上的任何代币作为交易费用。比特币自身作为以太坊上的比特币代币(BTC-token-on-Ethereum),也可以被用于支付交易费用。

结论

就目前的现状来说,比特币现在以及未来有好几种方式可以与以太坊交互。可以像Rootstock采用侧链技术在比特币中增加功能,也可以无需信任地方式将比特币挂钩到以太坊。这两种方法都利用到以太坊虚拟机的通用性、灵活性以及完备的编程语言。以太坊平台目前允许多种多样的去中心化应用在上面开发。

在Rootstock白皮书上列举了很多相关例子,目前已经在以太坊平台上存在,包括以下:

  • 市场预测(groupgnosis.com 和 augur.net)
  • 去中心化平台(eherex.org)
  • 众筹 (wei.fund)
  • 管理(boardroom.to)
  • 供应链的可追溯性(provenance.org)
  • 在线信誉和数字身份(uPort)
  • 小额支付通道和辐射式网络(Raiden)

尝试使用BTC Relay,开发自己的去中心化应用,写自己的智能合约,并且实现与比特币的挂钩。


原文:https://medium.com/@ConsenSys/taking-stock-bitcoin-and-ethereum-4382f0a2f17

作者:Joseph Chow & Simon de la Rouviere

译者:James、shaoping

 
2 人喜欢