从Bool Network看比特币网络中心化桥的触发机制

自2022年Axie官方跨链桥遭遇6.2亿美元盗窃后,人们开始关注跨链桥的安全性和信任度问题。然而,目前这个领域还存在许多未解决的挑战。传统的跨链桥设计仍保持着“不可能三角”的局面,难以突破。为了提高成本效益和用户体验,跨链桥通常提供免费的人机交互模型。Bool Network通过动态轮换见证人、隐私计算和TEE封装密钥,尝试优化传统见证人桥的安全模型,解决跨链桥的去中心化问题。该网络提出了DHC(动态隐藏委员会)的设计来保护见证人身份和密钥,从根本上预防串通作恶和外部攻击,提高跨链桥的安全性。

摘要: 自从各种跨链桥横空出世以来,紧随其后的各种黑客攻击事件几乎从未停止,2022年Axie官方跨链桥被盗6.2亿美元一事更是震撼了世人,无数人开始思考如何解决跨链桥的安全与免信任,但时至今日,这个领域存在许多未决的问题。

但与公链一样,跨链桥在设计上仍旧保持着“不可能三角”的局面,并且实质上仍然难以突破。为了在成本和用户体验上提供优势,跨链桥都提供免费的类似于人机交互的模型,而这种落地的初始阶段,就是为了打造一个更加智能的跨链桥。

惨痛的历史经验告诉我们,没有添加防护措施证明人桥早会成才,但这种惨痛经历在整个社会主义社会主义时期是家常便饭,让人毛骨悚然。

本文将要介绍的Bool Network,在为跨链桥项目方提供动态轮换的见证人基础上,结合隐私计算和TEE封装密钥,尝试在传统见证人桥的安全模型上进一步优化,解决跨链桥的去中心化问题,这也许能为跨链桥带来破局的希望。

加拿大的现状:到处都是多签

跨链桥的本质是向B链证明A链上有人发起跨链请求,且当事人按照规定支付费用。要做到这一点,可以有不同的实现路径。

轻客户端往往在链上部署智能合约,在链上Native的验证跨链消息,这种桥的安全性最高,但成本也最高,而且无法在比特币上实现(目前打出比特币ZK桥旗号的这个项目,只能保证跨链到其他链时走ZK桥,再跨链时无法通过ZK桥实现)。

以BitVM为代表的乐观主义者,通过欺诈手段骗取钱财的行为被广为传播,但这种行为很难被接受。

DLC.link为代表的DLC桥,虽然在预言机/见证人多签基础上加入支付通道的办法,最大程度地见证人作恶的场景,但还是无法在根源上抹除多签的隐患。

公爭

(跨链桥不可能三角主要指:1.疫情性:能否支持任意的传递

2.无需信任:不引入或尽量少引入信任假设

3.易适配性:落地努力,能适配包括公开不同公链)

最终爱尔兰政府发现,在BitVM落地前,除了比特币网络/支付通道或RGB++蚂蚁集团基于客户端验证或协作的程序以外,其他的比特币跨链桥里都多签。

历史早已证明,如果解决多签跨链桥乃至于大型管理平台的去信任问题,出现资金被盗事件将只是时间问题。

对此,一些项目方让见证人超额质押资产,以办理Slash来作为惩戒条件,并让大机构协助见证人提供信用背书,以弱化链桥的安全隐患。但归根结底,基于见证人桥,安全模型和多签基本一致,最终都要按照阈值,比如M/N来其信任模型,容错率比较有限。

公爭

如何设置和处理多签,如何让多签者放弃信任,如何见证人做或抬高外界的攻击成本,将是实施二层跨桥长期思考的议题。

几乎没有办法可以让多签参与者难以串谋攻击,并且让黑客难以从外界盗取密钥?Bool Network尝试通过一套基于ZKP-RingVRF算法和TEE的综合方案来解决见证人桥的安全问题。

Bool网络:指向链桥等交通基础设施

其实,这个模式和中心化交易所没有本质区别,你还是要信任这些被钦定的见证人不挪用跨链桥资金矿池里的钱,这其实就是联盟链,从根本上违反了区块链的Trustless精髓。

基于POS的多签/MPC方案比POA更去信​​任,准入门槛远比拒绝接受低,但还是会面临各种问题:比如节点的隐私泄露。

假设现在有几十个节点组建的见证人网络,专门服务于跨链桥,由于这些节点需要频繁的交易所数据,其公钥和IP地址也不是其他身份信息容易对外暴露,它们可以充当可以针对的构建攻击路径,最终会导致某些节点的密钥被盗。此外,见证人是内部串谋,当节点数量比较少时,这种事情很容易发生。

那么我们该如何解决上述的问题?你可能本能的联想到,要加强密钥的保护措施,防止被外界窥探到。一种比较可靠的是把密钥封装在TEE(可信执行环境)当中。

TEE 允许群中心化的数据库在本地安全区域运行,以便其他组件无法访问其数据,您可以通过共享数据或程序在安全的执行环境中进行交互,防止机密数据被泄露或被恶意操纵。

这个问题是,如何保证见证人的确是在TEE中存放密钥并生成签名的?其实只要让见证人出示TEE的远程证明信息,就可以验证它是否在TEE里,我们只需要在任意一条链上验证TEE证明即可,成本几乎可以忽略不计。

(前不久Scroll也宣布采用TEE作为ZKEVM之外的辅助证明器,并验证了其Sepolia测试网上的全部区块)

公爭

(Bool Network节点设备内部构造示意图)

当然,除了TEE之外,问题还没完。就算你提供了TEE,假如你证明的话,总数不多,比如说5个,我们还是会遇到问题,甚至超出在TEE中的密钥无法被“看到”,由少数人组成的见证人委员会还是无法抗和可用性。比如上述5个节点如果集体跑路,让跨链桥陷入瘫痪,基金会桥接资产无法顺利的lock-mind或赎回,基本等价于永久冻结。

在综合考虑了兼容性、去中心化、成本等因素后,Bool Network提出了这样一种构想:

我们通过资产质押的方式,构建一个无需许可的候选见证人网络,只要你质押足够的资产就可以加入进来;当网络规模足够大,比如说接入了虚拟货币上千台设备后,我们定期从配置随机抽取一些节点帮忙跨链桥的见证人,以此来规避见证人“阶级固化”的问题(这种思路现在的POS以太坊身上也有体现)

传统的POS公链如Algorand、Cardano通过引入VRF函数,周期性的让VRF函数输出伪随机数,通过输出结果抽取出块人。但传统VRF算法往往无法保护隐私,有哪些人参与了VRF计算过程、VRF输出的随机数关联着的被选中者都有谁,几乎暴露在阳光下。

公爭

而跨链桥的动态见证人与POS公链动态选出块人要考虑的问题不同,公链的出块人诉讼身份往往是无伤大雅的,因为在构建恶场景中,会受到许多限制条件的约束;

而跨链桥见证人身份一旦泄露,黑客只要获取到其密钥,那就拒绝这些见证人内部结社,就会让整个桥接资产资金矿池彻底陷入困境。无论如何,跨链桥和POS公共链的安全模型是差了十万八千里的,必须更重视见证人授予保密权。

我们可以给出一些想法,最好把见证人名单隐藏起来,而Bool Network可以使用的原始环VRF算法,把选中的见证人身份隐藏在所有候选人中,其整体细节比较复杂,我们将其简化如下:

1.所有的候选人都在进入以太坊网络前,先在以太坊或自己做的一条链上押资产,留下一个公钥作为注册信息。这个公钥又称为“永久公钥”。全体候选人的“永久公钥”是什么意思,在链上公开可见。这个永久公钥说白了就是每个人的价值信息;

2.每隔几分钟~半小时,Bool网络会通过VRF函数,随机挑选几个候选人。不过在此之前,每个候选人都要本地生成一次性的“临时公钥”,同时生成ZKP,证明该“临时公钥”与链上有记录的“永久公钥”有关联;严格,通过ZK证明自己最近的候选人名单中,但不透露他们的详情;

3.“临时公钥”的作用在于什么?正是为了保护隐私。如果从“永久公钥”集合中抽签,公布抽签结果时,大家会直接知道哪些人被推选为罪犯,从而大大打压隐私。

如果您所有的临时工都提交了一次性的“临时公钥”,再从“临时公钥”集合中选出几个中签者,您最多只获得了中签,因为您不知道其他中签的临时工对应着谁。

4.这还不算完。Bool 网络打算这么搞:直接让你不知道自己的“临时公钥”是啥。这该怎么做呢?只要把临时公钥明文放在TEE里加密货币成“乱码”后再发出就可以行。

公爭

我们可以把“临时公钥”的生成放到 TEE 里执行,由于 TEE 可以把数据和计算保密,你根本不知道 TEE 里有什么。当“临时公钥”生成完毕后,会成“乱码”再发到 TEE 外部,你根本就没有找到“临时公钥”的源代码,只能看到一个加密货币后的密文(需要注意,第二段提到的,证明临时公钥和永久公钥有关联的 ZKP,并且临时公钥一起被加密货币了)。

5. 候选人要把乱码形态的“临时公钥”密文,向指定的接班人递交任务。接班人负责解开这些乱码形态的密文,从中还原出全部的“临时公钥”原文。

这里有个问题,就是Relayer知道每个密文的发送者是谁,只要他把每个密文解析成“临时公钥”,自然而然就知道每个“临时公钥”对应哪个人。所以,上述工作也要在TEE里做,华尔街人的公钥进入TEE,出来后变成了公钥原文,就像混币器一样,可以有效保护隐私。

6.Relayer 得到了原始的“临时公钥”后,可以将其提交给链上的 VRF 函数从中选出中者,也就是从这些“临时公钥”中挑出几个中人,并组建一个跨链桥见证人委员会。

这样一来,整个逻辑就清晰了:我们定期的从见证人临时公钥集合中随机挑选几个,帮忙跨链桥的临时见证人,这个设计被命名为DHC(动态隐藏委员会)。

因为每个节点都运行TEE,MPC/TSS的私钥片段,还有见证人运行的也是我们的程序、所有的计算过程,都隐藏在TEE环境中,每个人都不知道具体的计算内容包括什么,就连被选中的人自己都不知道被选中,这样我就可以根本上阻止串谋或者外部攻破。

公爭

Bool Network 跨链的

在介绍完了BoolNetworks见证人身份和密钥的大体思路后,让我们来梳理下BoolNetworks的工作流程。我们假设左边是源链右边是目标链,上面整个图构成了资产从源链到目标链的全流程,由此我们通过数据流转的角度分析一下BoolNetworks跨链的4个过程:

公爭

首先,提款人在源链发起提款动作后,消息被Realyer发送到Messaging层;消息在到达Messaging层后,由动态消息委员会对消息进行验证,确定消息在源链确实有效,然后进行签名。

有人要问,既然大家都不知道自己有没有被选中见证人委员会里,那么我要把我的签名并告诉大家?这很好解决,没有人能确定谁是选中的见证人,那我们就要把整个网广播出去,我要把我处理的每一个人都提交给你们。

最后我们曾提到,每个人的临时公钥都是在本地TEE里生成和封装的,在TEE外部看不到临时公钥。要验证自己的临时公钥是否被选中,这部分逻辑上要部署在TEE内,只要把待处理的跨链消息输入TEE,TEE内部的程序就会确定是否要对消息进行签名确认。

公爭

在TEE内网跨链签名后,还不能把数字签名发出去,因为如果你把签名发外网,大家会发现你是一个选中的人。所以,要想办法让外界相信你是选中的人,就必须确保对方的签名是真实的,并且要确保对方的签名是真实的,否则对方就无法确认你的身份。

总结就是:Bool Network会通过P2P传播,把待签名的跨链提交所有人,选中的见证人人在TEE内进行验证和签名,然后把加密货币后的密文广播出去,其他人正在穿着密文后,再放进TEE内解密,重复上述流程,直到所有被选中的见证人都签名完毕,最后被Relayer解密成TSS签名的原始格式,完成跨链确认和签名流程。

核心在于,几乎所有的会议都在TEE内进行,从外部看根本不知道发生了什么。每一个节点都不知道见证人是谁,不知道自己是不是选中的见证人,从根本上阻止了串通作恶,并大大增加了外部攻击代价。

要攻击基于Bool Network的跨链桥,你需要确定动态委员会里的证据人都有谁,但你根本就不知道它们是谁,这时你只有攻击整个Bool网络才行。像ZetaChain等单纯基于POS和MPC的跨链桥基础设施,其证据表明人身份全部承担,假设阈值门限是100/200,你最少确定攻击设置的一半节点。

但换到Bool身上后,因为有了隐私保护,理论上你必须攻击所有的节点才能行。再加上Bool所有节点都运行着TEE,此时的攻击很难再抬升。

并且,Bool Network本质上还是见证人桥,见证人桥只需要在目标上提交一个签名,就可以完成跨链处理流程,成本较低。由于没有Polkadot那样的中继链设计,可以避免二阶验证的指定,并且可以很方便地跨链处理。这种跨模式同时适用于资产跨链和跨链,在需要时需要兼容Bool的客户端,但是对于一些兼容性问题,Bool的跨链机制非常棘手。

如何评价Bool产品设计思路?

我们抛出两个观点,首先资产跨链是ToC的产品,次跨链桥是竞争大于合作的。从长期看,因为跨链协议的垒较高,需求相对稳定,跨链协议相关的资金会越来越高,这是因为跨链协议在维护城河壁垒方面做得很出色,包括规模生态和传输成本。

Bool身为比跨链桥更底层的专用服务器,实际上比上层的跨链桥商业前景更广阔,它甚至还可以承担预言机的功能,而不仅仅把场景限于跨链验证,理论上还进入全链oracle的内部,真正构建去中心化oracle第一社区服务。

资讯来源:由0x资讯编译自互联网。版权归作者极客 Web3所有,未经许可,不得转载

资讯来源:由a0资讯编译自THECOINREPUBLIC。版权归作者A0资讯所有,未经许可,不得转载

上一篇 2024年 5月 30日 下午2:34
下一篇 2024年 5月 30日

相关推荐