编者按:本文来自以太坊爱好者,作者:AlexManuskin,翻译&校对:闵敏&阿剑,Odaily星球日报经授权转载。tBTC平台起步于追逐密码学货币社区梦寐以求的理想:让比特币进入以太坊的DeFi生态,在密码学货币领域中彼此独立的两大网络之间架起桥梁。然而,其第一个版本非常短命。在本文中,我们会深入探索tBTC,阐明其背后的设计意图,分析内部的运作原理,了解失败的根本原因,最后预测其前景。比特币和以太坊的混搭
作为密码学货币领域的领头羊,比特币拥有最高的市值,最多的用户以及最充足的流动性,但是它除了作为价值贮藏物之外没多大用途。
-比特币的市值占密码学货币总市值的2/3-另一方面,去中心化金融已经利用以太坊区块链上的智能合约功能,实现了真正的飞跃。DeFi协议越来越受欢迎。通过以太坊网络上的智能合约,用户现在可以通过完全去中心化的方式交换、交易并借贷各种代币和ETH。
-将近10亿美元的价值锁定在DeFi应用中-如果能在两大独立的网络之间架起桥梁,就可以让用户利用其持有的比特币在DeFi中获得收益。虽然有一些解决方案试图在比特币网络上构建DeFi,但是让比特币进入以太坊的DeFi领域似乎更容易一些。让比特币进入以太坊的DeFi领域
迄今为止,所有试图打破BTC和DeFi之间壁垒的方案中,最引人瞩目的一种是BitGo的WBTC——基于以太坊的代币。一方面,由于wBTC是ERC20代币,wBTC持有者可以使用DeFi服务。另一方面,发行方承诺wBTC是由足额比特币背书的,因此其价值锚定比特币。也就是说,以太坊上每发行一个wBTC,都会锁定一个比特币为其背书。这样一来,在DeFi中使用类似比特币的代币的目标就实现了。wBTC以及类似解决方案的问题在于,用于背书的比特币是由中心化托管机构持有的。普通用户无法直接用比特币换出wBTC,wBTC必须先由托管机构铸造出来。这既限制了wBTC代币的发行数量,又迫使用户必须信任wBTC托管机构会像承诺的那样锁定足额的比特币。
-锚定比特币的中心化代币wBTC的铸造流程-为了缓解这些问题,tBTC项目应运而生。去中心化解决方案tBTC
去中心化是KEEP开发的tBTC项目与wBTC的主要区别,因为tBTC可以让任意用户通过一个签署者网络来利用比特币铸造tBTC。不同于之前的解决方案,tBTC不依赖于某个中心化托管机构持有被锁定的比特币。签署者是随机选择的,每铸造一个新的tBTC时,系统都会选择一组不同的签署者。这组签署者提供以太币作为质押品,来确保他们不会携款跑路。所有比特币存款都是由超额质押品背书的。每存入一个比特币,签署者必须提供价值1.5个比特币的以太币作为质押品。在锁定以太币作为质押品之后,签署者会得到手续费作为奖励,手续费会在用户赎回BTC时支付。另一个有趣之处是,签署者通过门限签名协议创建一个唯一的地址。这就意味着,不可能出现某个签署者携款跑路的情况。一切操作都必须由所有被选中的签署者合作执行。同样地,如果要违反协议,偷走被锁定的比特币,一定得所有签署者合谋才能成功。如果签署者违反协议,任何人都可以提供签署者作恶的证据。作为回报,签署者的质押品会被奖励给举报者。由于签署者是超额质押,如果他们带着比特币跑路的话,他们将得不偿失。tBTC的铸造流程
如果存款者想要铸造tBTC,他们会向tBTC平台发送一个交易,支付用于设置存款合约的gas费系统会随机选择一组签署者来持有该比特币签署者提供150%比特币价值的以太币作为质押品签署者创建一个门限签名地址并发布存款者将比特币发送至该地址,并等待比特币区块链的确认一旦收到了足够多的确认,存款者就会证明付款已完成,合约就会为存款者生成tBTC
-锚定比特币的去中心化代币tBTC的铸造流程-同样地,任何tBTC持有者都可以使用tBTC从签署者手中赎回比特币。赎回流程与铸造流程相反。赎回者向合约支付tBTC,并提供自己的比特币地址,也就是打款地址签署者创建了一个门限签名,并生成了一笔支付交易,将比特币发送给由赎回者提供的地址资金发回给赎回者之后,签署者就会提供一个已向合约付款的证明,从而解锁其以太币质押品
-使用锚定比特币的去中心化代币赎回比特币的流程-为以太坊上的比特币付款提供证明
tBTC解决方案的关键在于能够向以太坊合约证明比特币付款已完成。要做到这点并不容易,因为以太坊和比特币是两条不同的区块链。存款智能合约需要知道是否可以为该用户生成tBTC。为此,存款者必须提供已向签署者付款的证明。为了生成证明,智能合约需要执行简化的比特币验证流程客户端)。存款者提供付款的哈希值,以及付款已完成并在比特币区块链上获得了6个验证的证明。鉴于比特币的工作量证明共识机制,这个证明是可靠的。签署者在赎回比特币的过程中需要提供相同的证明。只有这样,签署者才能赎回他们的质押品。安全事件
官方tBTC去中心化应用于5月16日上线。在5月18日,KeepNetwork项目的CEO宣布其团队启动了一次性切断开关,暂时关闭了该平台的比特币存款功能。根本问题
Keep团队在5月20日发布的详细复盘中指出,根本问题出在赎回协议上。正如复盘中所说,在赎回期间,赎回者会提供一个比特币地址,签署者应该将由他们托管的比特币发送至这个地址。有效的比特币地址有好几个版本。每个版本在长度和前缀上都略有区别。例子:新格式:bc1qngsulfgcudt8ztwv9quef9k5sv0ld2px0jh8nw旧格式:1PPhYgecwvAN7utN2EotgTfy2mmLqzF8m3由于合约的赎回流程出了bug,签署者无法证明他们正确地将比特币发送到了旧格式的地址上。这意味着什么?
这对诚实的赎回者不会产生任何影响。赎回者可以提供任意比特币地址并收到他们的比特币。问题出在签署者这边。签署者在试图证明他们已经向赎回者付款时,如果赎回者使用的是旧格式的地址,即使签署者是诚实的,合约也不会接受他们的证明。因此,签署者会因为没有及时提供付款证明而被系统认为是作恶者。在这种情况下,任何用户都可以指控签署者的“恶行”,并获得签署者的部分质押品作为奖励。一旦这一bug被利用,签署者就会同时失去比特币和以太币。发现了这个bug的恶意赎回者会发起多个恶意赎回流程,不仅能取回比特币,还能获得签署者的以太币。这种情况可以避免吗?
编写完美的代码本身就很难,更何况是上传一次就再也不能更改的智能合约的代码。Keep团队选择不在智能合约上加入“升级”功能。这种做法肯定有其优势,也会带来很大的风险。也正是因此,他们不能简单地用新的合约来代替旧的合约,解决将来的问题。Keep团队的复盘提到了原本可以采取的预防措施,以及如何避免tBTC2.0出现同样问题的未来计划。根据我们在该协议正式上线之前的实验经验来看,我们认为测试网DApp测试阶段应该更久一些,在主网上线前应该有更广泛的测试和用例。例如,我们在尝试赎回时,无法完成该流程,卡在了下面这个界面上。
-我们在tBTCDApp的测试阶段遇到了一些问题-砥砺前行
虽然初次上线就惨遭失败,但是tBTC还有翻盘的机会。好在99.87%的tBTC都找了回来并归还给了持有者,没有造成什么经济损失。tBTC团队全程在沟通和信息披露方面做得非常好。这次失败是因为合约出了bug。在系统被关停之前,没有时间测试更加复杂的运作环节。更重要的是,在连接比特币和以太坊的DeFi方面有很大的需求和潜力。我们终将在二者之间架起桥梁。如果tBTC做不到,还会有后来者。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。