ORK:Bool Network:跨链桥中的六边形战士_BOOL

作者:MiddleX,LayerBaseLabsAdvisor

随着多链格局的发展,跨链桥已成为Web3领域的重要基础设施,无论公链格局如何演变,此消彼长,跨链始终是不变的刚需。对于Dapp项目方而言,他们需要将自身业务范围尽可能扩展到更多链上,从单链Dapp发展为全链Dapp;对于公链项目方而言,大家都有动力去桥接比特币和以太坊,为自己的生态导入资产和流量;对于加密用户而言,也希望让自己的加密资产能以去中心化的方式游走于不同的链上,而不再依赖于中心化交易所。

然而,跨链桥作为链间“运钞车”,却屡遭“抢劫”。过去两年,主流跨链桥项目几乎无一例外的被黑客光顾。在各类型加密安全事故中,跨链桥事故以将近20亿美元的损失金额高居榜首。解决跨链桥安全问题,为这辆目前“敞篷”着的“运钞车”加装护甲迫在眉睫。

如何破局?

总体来看,跨链桥的安全事故分类两类:一类是合约代码漏洞导致,比如缺乏代币合约地址验证,导致攻击者伪造的假币存入事件没有被过滤,再比如缺乏访问控制,导致验证者集名单被篡改;另一类是验证节点串谋,盗取私钥,进而盗取跨链桥锁仓资金,亦或铸造假币向LP抢劫。

前者的主要原因是跨链桥代码库尚未成熟,这类问题随着行业经验的积累会慢慢减少。后者的主要原因则是跨链桥在设计层面的固有缺陷。

跨链桥本质上解决的是一条链如何知道另一条链上的事件的问题。这个问题分为两个方面,一是传递,二是验证。在跨链桥中,任何人都可以传递跨链事件,关键是目标链如何验证该事件在源链上真实发生。

根据验证机制的不同,跨链桥被分为原生验证(NativelyVerified)、本地验证(LocallyVerified)、外部验证(ExternallyVerified)三种类型。

原生验证是指目标链的全体验证人对源链的事件进行共识验证,一般是通过在目标链上部署源链的轻客户端实现的。该轻客户端不断保存和更新源链的区块头,进而对源链的事件执行SPV验证。

本地验证是指交易对手对交易直接进行验证,也称点对点验证。典型的范式是基于哈希时间锁的原子交换。由于交易双方的经济利益是对抗的,因此不存在合谋的可能性。

外部验证是指引入一组外部的见证者来负责验证跨链消息,外部的见证者集对跨链事件进行共识签名,目标链验证该签名后即认为该事件可信。

原生验证成本较高,主要体现在两点,一是链上验证成本高,链上运行轻客户端,并对事件执行SPV验证都会消耗大量的Gas,二是兼容新链的开发成本高,每兼容一条新链,就需要开发至少一对轻客户端。随着ZK叙事的崛起,目前市面上有通过ZK技术改进原生验证的方案,可以有效缓解上述成本,但无论如何优化,链上至少还是需要验证一个ZK证明,开销大约为500kGwei,与外部验证仅需验证一个签名(21kGwei)不可同日而语。因此原生验证在跨链桥的价格竞争中无法占据优势,且无法实现真正意义上的“全链”。

本地验证曾经被Celer、Connext等知名项目采用,但这些项目无一例外,已改弦更张,不再使用本地验证。原因是本地验证的交易体验极差,无论如何优化,始终需要用户至少操作两次(发起交易、解锁哈希锁),如果交易对手中途离线,或故意不成交,还会导致用户的资金被卡住。除此之外,本地验证仅适用于资产跨链,无法扩展至任意消息跨链。

外部验证实现成本较低,跨链开销低,可以轻松适配多链,且支持任意消息跨链,目前它是大多数跨链桥项目采用的方案。但外部跨链桥由于引入新的信任假设,而带来潜在的串谋风险。外部验证型跨链桥大多采用MPC(安全多方计算)技术,对私钥进行分片,让每个外部验证节点掌握一个分片。

相比普通的MutiSig(多签)技术,MPC技术具有普适性更强(对链采用的签名方案没有要求)、验证成本更低(链上仅需验证一个单独的签名)、方便移交签名权限(仅需刷新分片,无需变更地址)等优势,但这并不改变外部验证的中心化实质,不能杜绝串谋。

那么究竟使用什么样的跨链方案,能在不牺牲跨链桥性能、可扩展性、通用性的前提之下,消弭串谋风险,改善跨链桥的安全性呢?

BOOLNetwork的方案

BOOLNetwork是由LayerBaseLabs推出的跨链桥产品。LayerBaseLabs在跨链领域研究了近4年时间,期间推出了一些最小可行性产品,但由于这些产品不够完善,始终未推广至大范围使用。近期,LayerBaseLabs推出了基于动态隐藏委员会(DHC)的跨链桥:BOOLNetwork,这一方案被认为足够完美,因此准备在公众面前亮相。

BOOLNetwork的跨链方案在MPC技术的基础上融合了ZK技术和TEE技术,将外部验证者集改造为一个不可知、不自知的动态隐藏委员会,实现了高度的抗串谋属性,进而实现了高度的安全性。

我们用一个例子来说明什么是“动态隐藏会员会”。

假设你是一名将军,统领1000名士兵,奉命守卫50个粮仓,你将如何安排你的士兵呢?

假设所有粮仓都是同等重要的,那么将1000名士兵分成50个20人小队,每个小队分别负责驻守一个粮仓便是最好的安排。

但分兵把守带来一个隐患,如果某一个小队超过半数的士兵串谋,那么对应的粮仓就可能失守,也就是说如果一个小队中有11名士兵串谋,就可能背叛你,抢夺粮仓。

这是你不能容忍的,为了阻止这种串谋,保证粮仓的安全,你可以采取这样的办法:

动态:每天对所有士兵进行重新分组,重新划分小队,这样每个士兵所守卫的粮仓和他的队友都将不固定;

隐藏:蒙上士兵的眼睛,让他们不知道自己守卫的是哪个粮仓,也不知道自己的队友是谁。

这样下来,叛变的士兵将不知道和谁去串谋。即便有事先约定好的叛变者,他们也无法控制、无法得知叛变者是否在同一小队。

假设要保证串谋大概率成功,叛变者必须串谋你整个1000人队伍当中的大多数才可以。这无疑难如登天。通过“动态”和“隐藏”的方式,你让每一个小队的可靠性都达到了整个队伍的水平。

这正是BOOLNetwork采用的方案。

TEE——为每个士兵蒙上眼睛

BOOLNetwork要求网络中的节点必须使用TEE设备参与跨链事件的验证。BOOLNetwork是完全开放准入的,任何拥有TEE设备的主体都可以通过质押$BOOL成为验证节点。

TEE全称为可信执行环境(TrustedExecuteEnvironment),它是给定设备上运行的与主操作系统隔离的计算环境,就像一块飞地(Enclave),这种隔离是通过硬件强制实现的。在TEE中运行程序的过程是隐蔽的,外界不可感知,也不可干预。这会让黑客攻击无从下手。

TEE可以运行具有高安全性的应用程序,例如生物特征认证,安全支付管理等。在我们日常生活中,TEE并不陌生,手机上的指纹验证就是在TEE中运行的。这样可以保证其他手机应用在使用指纹验证结果的同时无法获取指纹信息。

在跨链事件的验证过程中,外部验证节点需要进行共识签名,这时,私钥不得不暴露在网络中,极易成为黑客攻击的目标。2022年3月AxieInfinity官方桥RoninBridge遭遇的攻击和2022年6月份Harmony公链官方桥HorizenBridge遭遇的攻击,正是桥节点私钥被黑客获取导致的。将TEE用于保管私钥分片,执行共识签名,将大大提升安全性,避免私钥被黑客获取。在此基础上,BOOLNetwork要求TEE节点之间的所有通讯也完全加密,这样一来,黑客也无法从节点之间的通讯内容中截获任何信息。

RingVRF——让士兵随机轮岗

BOOLNetwork被设计为了一个创建跨链桥的工具,支持任意第三方在其上创建跨链桥,当某第三方在BOOLNetwork上创建跨链桥时,需要先创建DHC(动态隐藏会员会),假设该第三方希望自己创建的跨链桥支持10条链,那么就需要创建10个DHC,每条链对应一个DHC,所有向该链发送的跨链消息都由该DHC负责验证。

每有一个第三方通过BOOLNetwork创建跨链桥,就会产生若干个DHC,随着BOOLNetwork上创建的跨链桥不断增加,可能会有成千上万个DHC。第三方可以设置DHC的签名阈值,常见的签名阈值有5-of-9、13-of-19、15-of-21。

需要注意的是,每个DHC中的成员并不是固定的,而且是不断轮换的,每个Epoch会洗牌一次。基于ZK技术,BOOLNetwork开发了RingVRF协议,可以完全随机的为每一个DHC分配成员。

RingVRF会为DHC成员生成一个ZKproof,这个ZKproof代表了成员的临时身份,DHC成员都是用临时身份去相互识别和相互通信,从而合作完成某项工作(比方说进行MPC门限签名);这样做保证了DHC成员无论对外,还是彼此之间,都是匿名的。

同一个Epoch内,不同的DHC中的TEE节点可能会重叠,也可能有部分TEE节点没有进入任何一个DHC而被闲置,这些情况都是被允许的,但RIngVRF在概率层面,会赋予每个TEE节点完全均等的机会。

总之,通过动态隐藏委会员机制,BOOLNetwork构建了一个牢不可破的黑箱。如果一个TEE节点处于工作状态,任何人(包括节点运营者本人、其他节点、外部攻击者)都无从知道该节点的运行状态,该节点在哪一个DHC?与哪些其他节点在同一个DHC?进行了哪些共识通讯?签名了哪些消息?都无从知晓。这就是前文所述的“不可知”、“不自知”。在这样的前提下,只要BOOLNetwork网络自身是安全的,那么每一个动态隐藏会员就是安全的。若要保证攻击大概率成功,攻击者必须掌握BOOLNetwork中的大多数节点。但由于运行在TEE中的程序是不可篡改的,攻击者只能做到让网络宕机,无法盗取网络中的资产。

如何评估一个跨链方案

尽管安全性是跨链桥最迫切要解决的问题,但安全性却不是评价跨链桥的唯一标准。如果为了解决一个问题,创造了一个新的问题,那就不是在真正解决问题。

LayerBaseLabs很早就研究过各种基于轻客户端的扩容方案,包括ZKClient的方案。ZKClient的基本原理是通过ZK技术给轻客户端扩容,把区块头的验证和对源链事件的SPV验证放到链下,生成一个ZK证明提交到链上,链上仅需验证该ZK证明即可等效于验证区块头和源链事件,这种方案虽然足够安全,但其链上的Gas消耗依旧高昂,其次,链下的ZK电路和链上的轻客户端在工程实现上都比较复杂,这可能导致更容易出现代码层面的漏洞,从而影响跨链桥的安全性。

此外,为了避免每一条链都必须部署其他所有链的轻客户端,这种方案往往不得不引入一个中继链(见下图),而中继链的存在将使得原本一步可以完成的跨链消息传递过程不得不拆分成两步,导致跨链消息传递的Latency(延迟)增加。

现在业内鼓吹ZKClient技术的人很多,甚至声称ZKClient是跨链桥的终极解。我们想说的是,技术不是用来作秀,更不是用来赶时髦的,而是用来真正解决问题的,ZKClient制造的问题远比它解决的问题更多。

我们也研究了LayerZero的所谓的UltralLightClient方案,LayerZero将轻客户端放到链下预言机里运行,从而解决链上Gas开销的问题,但你把验证的职责从目标链的验证人手里移交给了链下预言机,那就不再是原生验证,而是外部验证,对链下预言机是有安全假设的。至于LayerZeroLabs的声称的:“Relayer和预言机相互独立”的安全前提,在现实中根本不存在,L2BEATLabs的攻击实验已经证实了这一点。

我们也注意到了Nomad、Celer所采用的乐观验证方案,通过在外部验证的基础上,增加一个挑战者的角色,可以成功的将m-of-n的安全性提升至1-of-n,这种方案虽然构思精巧,但代价是30min左右的延迟,这个延迟会导致该方案的适用范围受限。

我们还发现AvalancheBridge的设计很酷,它采用TEE节点作为外部验证者来验证跨链事件,并通过极简的合约设计实现了高效和廉价的跨链体验。但我们也看到,AvalancheBridge尽管可以安全的保管私钥,防范外部攻击者,却无法防范祸起萧墙,也就是内部TEE节点之间的串谋攻击。

最终,我们提出了当前的BOOLNetwork的动态隐藏委员会的方案,从安全角度讲,可以做到防止外部黑客攻击的同时,防止内部串谋,从性能和体验方面,BOOLNetwork的跨链体验没有在外部验证的基础上做任何牺牲,与外部验证桥保持同一水平。

评估一个跨链桥,我们认为应该在不可能三角的基础上,扩充为六个方面进行综合评估,分别是成本(Cost)、速度(Speed)、安全性(Security)、可用性(Liveness)、通用性(Generality)、可扩展性(Scarablity)。

成本:跨链的成本主要在于链上的Gas成本,BOOLNetwork的一次跨链消息验证的费用实际上只有一个单次签名的验证,和外部验证桥在同一水平;

速度:这里我们只评估跨链桥本身的Latency,不考虑链本身的最终性问题。在这点上,由于没有多余的链上与链下计算,也没有中继链的设计(中继链会导致冗余的二阶验证),BOOLNetwork的跨链速度也可以达到极限水平;

安全性:我们已经充分探讨了,BOOLNetwork可以做到外防攻击、内防串谋。*

可用性:简单来说就是别宕机。BOOLNework会让每个DHC在创建时配备一个或多个备份DHC,以防止某个DHC内超过半数TEE节点离线时导致的可用性问题。

通用性:不仅要支持资产跨链,也要支持任意消息跨链,这点BOOLNetwork也满足。

可扩展性:能否快速支持新链。BOOLNetwork仅需部署一组简单的合约即可支持一条新链(1人月的开发工时即可完成),现在我们已完成了对全部主流区块链的支持。此外,BOOLNetwork不受链图灵完备性的限制,可以在不增加新的信任假设的前提下,支持BTC等非图灵完备的链。

可以说,BOOLnetwork是跨链桥中的六边形战士。

值得一提的是,BOOLNetwork的技术方案论文已经被密码学领域的顶级期刊IEEETIFS收录(链接),这代表着密码学界对BOOLNetwork技术方案的认可。

未来发展方向

BOOLNetwork目前提供的是一个安全的跨链桥搭建平台,任何第三方都可以基于BoolNetwork创建全链应用。BOOLNetwork将成为全链应用最坚实的底层支撑。

我们换个视角看,BOOLNetwork本质上是搭建了一个去中心化的签名机,该签名机不止可以用于验证链上的消息,也可以用于验证链下的消息,这意味着BOOLNetwork会成为一个安全可靠的全链预言机。此外,BOOLNetwork搭建的去中心化TEE网络,未来还可提供隐私计算服务。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

大币网

[0:15ms0-4:318ms