一文入门tBTC:比特币与以太坊之间的DeFi桥梁

20-05-24 21:00
阅读本文需 21 分钟
总结 AI 总结
看总结 收起

原文标题:《一文入门 tBTC:比特币与以太坊之间的 DeFi 桥梁》

原文作者:区块链条  



tBTC 平台着眼于寻求加密货币最令人垂涎的应用之一:将比特币与以太坊的 DeFi 连接起来,在加密货币领域相互隔离的主要大陆之间建立一座桥梁。出人意料的是,tBTC 正式发布之后,却在很短的时间内就因为失败而进行了第一次迭代。(官方已发布了详细的漏洞报告)


在本文中,我们将对 tBTC 进行更深入的研究,阐明其背后的动机,深入研究其内部工作原理,了解此前失败的根本原因,并最终推测其未来。


比特币和以太坊:一场混搭游戏


比特币就像是一条游荡在加密世界里的大金枪鱼。它具有最大的市值,最多的用户和最多的流动性(当前为$ 1700 亿美元),但除价值存储和(「HODLing」)外,实用应用却很少。


0*U0TQKBDASkik9tF5

比特币主导地位:占据加密货币总市值的三分之二(来源:CoinMarketCap)


另一方面,凭借智能合约的功能性,去中心化金融(DeFi)创新已在以太坊区块链上起飞。DeFi 协议越来越受欢迎。用户现在可以通过以太坊网络上的智能合约以完全去中心化的方式交换,交易,借出和借用 ETH 和很多种类的其他代币。


0*70ZyAxjlmlnxLoNd

DeFi 应用锁定的价值近 10 亿美元(数据来源:defipulse)


因此,将这些当前隔离的世界连接到一起是非常有意义的,这将允许用户从 DeFi 中获得其比特币收益。尽管一些解决方案试图进行过一些尝试并在比特币上构建 DeFi,但似乎更简单的方法是将比特币直接引入以太坊的 DeFi。 


将比特币带入以太坊 DeFi


迄今为止,填补 DeFi 障碍的最著名解决方案是 BitGo 的 WBTC(Wrapped BTC)以太坊(ERC20)代币。一方面,由于它是 ERC20 代币,因此 WBTC 持有者可以使用 DeFi 服务。另一方面,WBTC 代币价值与 BTC 挂钩,因为它被保证会得到现实 BTC 的完全支持。也就是说,对于以太坊上的每个 WBTC,都有一个 BTC 被锁定以支撑它。结果,实现了具有可以在 DeFi 中使用的类似 BTC 的代币的目标。


WBTC 及其类似解决方案的问题在于,BTC 由中心化的保管人持有。普通用户不能直接将 BTC 换成 WBTC,必须先由 WBTC 托管人铸造。


这种方式很有局限性,例如可以产生多少个 WBTC 代币,以及必须信任 WBTC 保管人才能做好存储 BTC 的工作。


0*ao1Ql8nB_BO8mXGY

铸造挂钩比特币的中心化代币 WBTC


为了缓解这些问题,tBTC 项目被创建了出来。


tBTC 去中心化解决方案


去中心化是 Keep 开发的 tBTC 项目的主要不同之处,因为它使拥有 BTC(和一些 ETH)的任何用户都能够通过使用一个签名者(signers)网络来创建 tBTC。与以前的解决方案不同,锁定的比特币没有中央托管人。随机选择签名者,并为每个铸造的 tBTC 选择不同的签名者组。签名人提供抵押品(ETH),以确保他们不能轻易地拿着资金跑路。


此外,存款一直是超额抵押的。也就是说,每存入 1 个 BTC,签署人必须提供价值 1.5 个 BTC 的 ETH 作为抵押。锁定 ETH 作为抵押的过程中,签署者将获得手续费作为回报。这个手续费将在抵押品赎回时支付。


另一个有趣的方面是,签名人使用阈值签名协议创建一个唯一地址。这意味着单个签名人无法拿走这笔资金。需要所有分配的签名人的配合才能执行操作。


如果所有签名人希望破坏协议并窃取锁定的 BTC,则需要合作才能做到。


如果他们偏离协议,任何人都可以提供证明签名人行为不当的证据。作为回报,原告将获得签名人的抵押品作为奖励。由于签名人的存款被超额抵押,因此窃取 BTC 的损失比收获多。


铸造 TBTC:


如果存储人希望铸造 TBTC。他们可以将交易发送到 tBTC 平台,支付 gas 费用以建立存款合约。


随机选择一组签名人来持有这些 BTC 


签名人提供 BTC 价值的 150%(以 ETH 形式)作为抵押


签名人创建阈值签名地址并发布存款人将 BTC 发送到发布的地址并等待比特币区块链确认


一旦收到足够的确认信息(6 个区块),存款人便证明付款已经完成,合约然后可以为存款人铸造 TBTC。


0*aj8tfQ8-19jjanbV

铸造挂钩比特币的去中心化代币 tBTC


同样,持有 TBTC 的任何人都可以将其兑换为某些签名人持有的 BTC。该过程类似于一种反向铸造过程。


赎回者向合约支付 TBTC,并提供其 BTC 地址(将资金汇入的地址)。


签名人创建阈值签名并生成付款交易,将 BTC 发送到赎回者提供的地址。


一旦资金被发送,签署人就向合约提供付款证明,以解锁其 ETH 抵押。


1*1irqaFVi4aQ987CDKaBBOg

从 tBTC 赎回 BTC


在以太坊上证明一笔比特币付款


tBTC 解决方案的关键是能够向基于以太坊的合约证明已支付了 BTC。这不是小事,因为以太坊和比特币是两个不同的区块链。存款智能合约需要知道是否可以向用户铸造 TBTC。为此,存款人必须提供证明确实已经支付给签署人的证明。为此,智能合约将执行简化的 BTC 验证过程(类似于比特币 SPV 客户端,在此处有更多详细信息)。存款人提供付款的哈希值,以及证明付款确实在比特币区块链上进行了,并已收到 6 个区块确认。由于比特币的工作量证明共识机制,因此该证明是可靠的。赎回过程中,签名人需要提供相同的证明。只有这样,他们才能赎回抵押品。


安全事故


tBTC 去中心化应用程序(DApp)主网于 5 月 16 日启动。5 月 18 日,经过大约 48 小时的运营,Keep 项目的首席执行官宣布,该团队正在使用其一次性杀灭开关来关闭平台上所有 BTC 存款。也就是说,第一个正式主网版本的 tBTC 由于漏洞,仅存活了 48 小时。


问题所在


Keep 团队在 5 月 20 日发布的详细「验尸」报告表示,根本问题出现在赎回协议。


如前所述,在赎回过程中,赎回者提供了一个比特币地址,签名人应将其保管的比特币发送到该地址。但由于比特币具有多个版本的有效地址,而且每个版本的长度和前缀略有不同,这就导致了问题。


例如:


新比特币地址格式:bc1qngsulfgcudt8ztwv9quef9k5sv0ld2px0jh8nw


旧比特币地址格式:1PPhYgecwvAN7utN2EotgTfy2mmLqzF8m3


由于合约兑换过程中存在错误,签署人无法证明他们正确地将资金汇入了旧格式的地址。


这意味着什么?


对于诚实的赎回人,这并不会有什么影响。赎回人可以提供任何比特币地址,他们都将收到他们的资金。


问题出在签名人身上。当他们试图证明自己已经向赎回人付款时,即使赎回人诚实行事,但如果赎回人使用了旧格式的地址,合约也不会接受该证明。因此,系统会认定这个签名人是不诚实,因为他们没有正确地提供付款证明。在这一点上,任何用户(原告)都可以认定签名人存在恶意行为。作为奖励,原告获得签名人抵押品的一部分。(也就是说,签名人正确地进行了付款,却被错误认定为不诚实,并自己的抵押品被罚没)


一旦这个漏洞被利用,作为协议主干的签名人将同时失去 BTC(因为它已发送给赎回者)和自己抵押的 ETH(被原告获得)。发现这一漏洞的恶意赎回人可能会发起许多恶意赎回过程,并盗取 BTC 和 ETH。


可以避免吗?


编写完美的代码是非常困难的。以智能合约的形式编写完美的代码则更加困难,因为您只能上传一次并且永远不能更改(或难以更改)。


Keep 团队最终决定不向合约添加「升级」功能(升级功能具有其优势但风险更高)。因此,他们不能简单地用新合约替换旧合约并解决未来的问题。事后调查广泛涵盖了团队可以做的事情以及未来计划,以避免 tBTC 2.0 走向相似的命运。


从我们在正式启动协议之前进行试验的经验来看,我们认为测试网络 DApp 测试阶段应该更长一些,在主网启动之前应该进行更广泛的测试和用例。例如,当我们尝试赎回时,我们无法完成该过程。


0*5YLOs5C2dJ2nVE0c

在测试阶段,tBTC DApp 遇到了困难


展望未来


虽然最初的启动肯定是失败的,但这并不是 tBTC 的结束。由于收回了 99.87%的 TBTC 并将其偿还给持有人(其余可能是加密历史纪念品),因此没有造成经济损失,并且 tBTC 团队在整个过程中沟通和保持透明度方面做得很出色。


失败是由于合同中的错误造成的,并且在有时间测试其操作的更复杂方面(价格预言,签署方分配,清算等)之前,系统已关闭。最重要的是,那里的需求和潜力很大。最终,将建立比特币和以太坊 DeFi 之间的桥梁。如果 tBTC 无法做到这一点,那么肯定会有其他人跟随。


原文链接:https://mp.weixin.qq.com



欢迎加入律动 BlockBeats 官方社群:

Telegram 订阅群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方账号:https://twitter.com/BlockBeatsAsia

举报 纠错/举报
本平台现已全面集成Farcaster协议, 如果您已有Farcaster账户, 可以登录 后发表评论
选择文库
新增文库
取消
完成
新增文库
仅自己可见
公开
保存
纠错/举报
提交