币安跨链桥「链闻」

币安跨链桥

跨链协议陷安全风波时,听 Dragonfly 详述跨链「桥」设计思路

    安全跨链桥的希望在于未经许可的分散式“桥”。

作者:CeliaWan,蜻蜓资本的初级合伙人。

编辑:perrywang。

币安跨链桥

币安跨链桥

    8月10日,另一个跨链互操作性协议遭到黑客攻击。

    这次有点不同,因为这是加密历史上最大的黑客攻击,并且已经被主流媒体报道过。黑客和以太坊社区之间的笑话为这起事件增添了一层传奇色彩。其中一名社区成员收到了13.37ETH,因为他向黑客提供了如何避免执法的建议,并与黑客进行了问答。黑客透露他计划归还被盗的资金。

    在这些喧嚣的背后,polynetwork的黑客攻击和其他四座桥梁的黑客攻击揭示了目前跨链互操作性解决方案不令人满意的现状:

币安跨链桥

币安跨链桥

    如今,许多互操作性解决方案都不安全,甚至不可用。现在,许多“桥梁”已经临时组装起来,以满足项目的直接需求。但最终,它们要么被更好的产品所取代,要么演变成分散的解决方案或受信任的第三方。

    为了理解为什么会发生这种情况,我们需要了解如何使跨链交互成为可能,以及一些可能导致关键安全性和用户体验缺陷的主要设计解决方案。

让我们从对polynetwork的黑客攻击开始。

到底发生了什么事?

币安跨链桥

币安跨链桥

    事实上,polynetwork所利用的漏洞部分是由于其受信任的中继器(用他们的话说就是“keeper”)设置,部分是由于polynetwork在跨链发送消息时未能正确验证事务。

    polynetwork上的跨链交易由一组在源区块链上签署区块的可信保管人提供便利。然后通过目标链上的“守门人”智能合约验证他们的签名,然后执行交易。同一智能合约还控制保管人目录,并可在验证签名时进行修改。

    黑客首先调用本体链上的一个(无效)函数,该函数生成一个与签名哈希值冲突的函数签名,并且在正确签名时更改keeper目录的函数将生成。此功能由“网守”智能合约批准,因为它是本体上的有效事务(尽管冲突功能本身不存在)。黑客然后通过“网守”智能合约的任何事务执行服务调用此函数来更改以太坊目录中的网守。合同被欺骗了,认为相应的事务实际上是在本体上调用并签名的,因为黑客以前调用的哈希函数生成了相同的函数签名。然后,合同执行更改管理员功能,使黑客能够将所有管理员更改为他控制的地址,然后抢劫网络。

    PolyNetwork跨链设计的直接缺陷似乎是:它不应该将「看门人」智能合约设置为keeper目录的控制器,但这种桥接设计更根本的问题是:用户的资产完全委托给keeper,无需额外检查交易的有效性。

    这里要注意,「看门人」合约并不验证链上的交易,而是盲目地相信keeper的签名,作为交易在源链上发生的证据。这意味着任何成功模仿keeper的人,都可以欺骗合约执行他们想要的任何交易。雪上加霜的是,keeper人数较少,其对网络的访问记录存放在最终被攻陷的目录中。

币安跨链桥

币安跨链桥

    综合以上两点,我们可以看出PolyNetwork的安全性完全依赖于两个假设:1)keeper会诚实行事;2)没有人可以冒充keeper。

而在第二个假设中,黑客发现了漏洞。

    为了确保「桥」的安全,「桥」的去中心化程度应该有多高?「桥」开发者在其设计中做出的哪些假设会导致这些差异?我们先从通常如何构建跨链「桥」的基础知识开始谈起。

    要了解对此次黑客事件更深入的分析,推荐MuditGupta和BlockSec团队的文章。

「桥」应该自问自答的五个问题。

    最广泛采用的「桥」设计是久经考验的真正「锁币-铸造-销毁」方法。

    它的基本工作原理是:一个「桥」在链A上指定一个地址,供用户存入其资产。然后,该「桥」在B链上铸造打包版的代币,并将它们发送到用户选择的帐户。用户要提现,需要将打包代币发送回B链上的一个地址,供「桥」收集和销毁。然后「桥」将链A锁定的代币释放给用户。

    在这种架构下,可以对资产映射「桥」根据其安全假设进行进一步归类,在中心化程度光谱图上逐一定位。

    谁保管存入的资产?信息如何从链A传递到链B?「桥」如何验证转发的信息是真实的?如何激励人们传递信息?谁能触发铸造和销毁?

中心化「桥」。

    中心化「桥」可以被视为最不安全的一类「桥」,但如果「桥」运营商有良好的声誉,它们可能是可以接受的。

    一个很好的例证就是币安「桥」,币安公司作为币安智能链(BSC)、币安链和其他区块链之间的中间商,从一条链接收用户资产,然后在BSC或币安链放出打包代币。用户还可以通过其币安交易所账户直接将资产提现至BSC或币安链。

    很难相信币安会故意欺骗其用户。毕竟如果他们这么做将声名狼藉,甚至失去交易所的用户。不过,这并不是说这座「桥」没有偿付能力问题。

    通常,通过检查源链上「桥」的地址的总余额,是否与目标链上所流通的打包代币总数相等,来验证「桥」是否完全具有偿付能力是轻而易举的事情。但是在币安的设计中,执行审计很困难,因为无法确认用户在币安交易所内实际购买和提取了多少代币。

    换句话说,币安发行的打包代币的数量可以多过它目前在储备中持有的代币,而社区无法对其进行验证。为了解决这个问题,币安在以太坊上锁定了一些资产作为「储备金证明」。

去中心化「桥」。

    「桥」通常引入一组验证人来放弃中心化控制。简单说,扩大验证人集可以解决上述五个问题,如下所示:

    验证人共同托管用户所存入资产验证人共同监控链A和B上的活动,并在两者之间传递信息验证人就A链和B链的最终状态达成共识验证人质押代币参与中继,当信息转发不正确时,其质押的资产会被削减验证人共同控制打包代币的铸造和销毁。

    更仔细地观察,我们可以看到去中心化「桥」之间的最大区别在于:如何激励验证人以及如何确保信息准确性。换句话说,区别在于中继网络是否是无需许可的,以及中继者如何达成共识。

    一个具有一定程度中心化的「桥」会有一组白名单中继者,他们通过多重签名共同控制打包代币的铸造和销毁。由于这些验证人通常是经过KYC审核的,或在现实生活中彼此认识,因此他们之间是相互信任的。相应地,他们中的任何一个都可以将信息从A链传递到B链。目前只有TerraShuttle(Terra)、Chainswap(Solana)和Chainsafe(Avalanche)等少数项目采用了这种设计,并且大多数有计划进一步实现「桥」的去中心化。

    其他「桥」建立在权益证明(PoS)网络上,其中允许任何人成为验证人。这些PoS网络可以是现有的网络,也可以是专门为跨链通信而打造的新网络。

    例如,MaticPoS「桥」、deBridge和Anyswap都利用了现有的PoS区块链——分别是Matic、Chainlink和Fusion。而第二种例子中,Axelar正在从头开始构建这样的中继网络。

    在PoS共识环境中,验证人被激励运行节点以换取瓜分交易费用。他们必须传达正确的信息,否则其质押的资产将被削减。

    最后,虽然大多数基于PoS的「桥」依赖某种共识机制来准确地传递信息,但也有一些「桥」具有完全无需信任的中继者。在这种情况下,仍然需要中继者将信息从一条链传递到另一条链,但「桥」并不依赖他们来保证信息的准确性。

    相反,这些「桥」创建链上轻客户端来验证中继信息,并相应地调用「铸币/销毁/解锁」功能。例如,NEAR的彩虹桥一个是用Rust语言执行的以太坊轻型客户端(作为一个NEAR合约),另外采用一个Solidity语言执行的NEAR轻型客户端(作为一个以太坊合约)。这是最昂贵的跨链「桥」形式,因为它需要完整的SPV验证。但正因为如此,其无需信任程度是最高的。下一节将详细介绍这一点。

代币经济学问题。

    尽管乍一看,「桥」的建设听起来像是一个技术问题,但它在很大程度上也是一个经济问题。

    几乎不可能在不破坏其代币经济学的情况下将资产改造为多链结构,而且多数资产的代币经济学最初并不是为多链世界设计的。在单链上拥有代币的项目需要决定是要增加其代币总供应量,还是在扩展到另一条链时进行某种资产映射。

    例如,如果Uniswap原本是在以太坊上发行UNI,UNI如果也要在Polygon上流通,需要Uniswap社区同意在Polygon网络上铸造更多UNI。然后可以通过两种方式将新铸造的PolygonUNI纳入Uniswap的代币经济学:可以锁定等量的以太坊UNI,以维持固定供应量,或者社区可以决定实际增加总供应量,将新铸造的PolygonUNI授予PolygonUniswap用户。

    在实践中,大多数项目,例如SUSHI和1INCH,倾向于采用第一种方法。最突出的例外是USDT,它采用了第二种方法:虽然USDT最初是在Omni上推出的,但它目前由其发行机构Tether在包括以太坊、波场和Solana在内的多个链上铸造,没有单一的链作为结算场所。经济方面的考量也会影响「桥」如何处理这些资产。

更多问题,以及部分谨慎的答案。

    尽管当前市场上存在大量「桥」,但可以肯定地说,我们仍然还没有令人满意的「桥」解决方案。一方面,大多数「桥」仍然不是通用的解决方案——每个链都建立了自己的定制桥接,彼此的稳定性和API大不相同。此外,由于大多数「桥」使用锁币-铸币-销毁模式,流动性非常碎片化,混乱的命名模式会导致对每个代币实际代表的意义存在混乱的理解。最后也许最重要的是,正如最近的黑客攻击所显示的那样,其中一些「桥」根本不够安全,无法让用户将其资金托付给它们。

    从用户的角度来看,仍然没有包罗万象的跨链协议。最接近的解决方案是Anyswap,它目前支持BSC、以太坊、Matic、xDAI、Avalanche等。即便如此,用户仍然会遇到诸如等待时间长、存在最低转账金额以及有时会有提款限制等问题。

    流动性碎片化仍然是跨链转移的一个严重问题。归根结底,「桥」只有在流动时才能成功。以比特币(BTC)为例,WBTC已经建立了相对于其他竞品的巨大优势,并已成为以太坊上默认的打包BTC。依靠中心化「桥」的代币在市场上占据主导地位,占总市值的70%%u4EE5上。其他资产很可能也会发生同样的演变——那些行动迅速并率先交付有效打包代币的项目将在抢占市场方面占据优势,即使后来者可能有更好的设计。

WBTC的垄断地位(来源:DeBank)。

    其中的制胜法则似乎是在尽可能多的主流链上积累尽可能多的流动性。相比之下,「桥」是否具有技术上最合理的设计显得次要,因为多数外行用户不太关心底层架构,而只是简单地快速、廉价地移动他们的资产来完成自己的目的。

    话虽如此,「桥」设计差异的更多技术含义目前尚未得到充分探索,其中最突出的是安全性。

    2020年见证了非以太坊L1公链和侧链的兴起,以及对跨链资产转移的需求激增。例如,仅MaticPoS「桥」就能够积累超过30亿美元的资产,锁仓价值创下历史最高水平。更不用说,目前市场上已经出现了20多种跨链「桥」。

    在很大程度上,这种跨链流量的激增让许多项目措手不及。因此很多人不得不建造自己的临时「桥」来满足目前的需求。但是这些「桥」安全吗?

    一些「寄生」在现有区块链上或建立在受信任中继网络上的现有「桥」,或多或少是临时性解决方案,无法满足长期的用户需求。这些「桥」的用户通常受到以下事实因素的约束:没有其他「桥」可以连接到他们想要将资产移动到的特定链(以PolyNetwork事件为例)。因此他们被迫相信这些「桥」背后的keeper或中继者会诚实行事,而实际上对这个组织知之甚少。

    如果运营这座「桥」的公司是知名企业且享有盛誉,那么一个完全中心化的桥可能会解决这个问题。然而如上所述,这类操作的不透明性引发了对偿付能力的新担忧。

    我们最后的希望似乎寄托在去中心化、无需许可的「桥」上。它们会成为互操作性竞赛的赢家吗?很难说,原因很简单,它们的建造难度很高。一个比较有效且具有最大流动性的平庸跨链协议最终成为生态系统标准?这并非全无可能。不管最终结果如何,追求更安全的「桥」始终是我们的目标,因为整个生态系统都将从安全性和良好的设计中受益。

    我们将在同名文章的第二部分更详细地讨论一些「桥」的设计,以及它们在连接不同共识机制区块链时面临的技术挑战。

    感谢RahulBishnoi、HaseebQureshi、XinYan和KarimHelmy的深刻见解和反馈。

来源链接:medium.com。

发表评论

免责声明:本站部分内容转载于网络,其中内容仅代表作者个人观点,与本网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。

本站联系邮箱:douxingdu02@163.co m