如何构建一个假去中心化的跨链协议
2023-02-06 12:48
康水跃
2023-02-06 12:48
订阅此专栏
收藏此文章

撰文:康水跃,Fox Tech 与 Way Network 创始人,丹阳投资董事长


Adam Back(比特币核心开发团队领袖,BlockStream CEO)有一句话令我印象深刻,“伟大的设计看起来都是非常简单的,但是设计它的过程其实是极其复杂的”。但是,并不是所有看起来简单的产品设计都可以称得上伟大,比如 LayerZero。


跨链协议不出事之前大家都觉得很安全,没啥问题,但一出事都是惊悚大事。从过去两年各链上发生的安全事件造成的损失金额来看,跨链协议上的安全事件造成的损失位居榜首。解决跨链协议安全问题的重要性以及紧迫性甚至超过以太坊扩容方案。跨链协议之间的互操作性是 Web3 连成网的内在要求。这类协议经常融资金额巨大,TVL 和交易笔数也在刚需驱动之下日益增长。但由于大众的辨识度不高,无法识别这些跨链协议的安全等级。


我们先看一个产品设计架构。Chain A 和 Chain B 之间的通讯过程由 Relayer 来执行,Oracle 对 Relayer 进行监督。首先这个架构有一个优点是免去了传统的 ChainA、ChainB 之间的通讯由第三条链(一般不在这条链部署 dApp)完成共识算法以及数十个节点验证,因此能给终端用户带来“快速跨链”的用户体验。因为架构轻便,代码量少,Oracle 有现成的 Chainlink,所以这种类型的项目很容易上线,但也很容易被模仿,技术门槛可以说是 Zero 了。



图 1: 假去中心化的跨链协议基础版



以上架构至少存在 2 个问题:

1. LayerZero 将几十个的节点验证缩减成单一的 Oracle 验证,安全系数自然是大幅降低。

2. 在简化成单一验证之后就必须假设 Relayer 和 Oracle 是独立的,而这种信任假设是不可能永恒成立的,不够 Crypto Native 的,无法从根本上保证二者不能合谋做恶。


这就是 LayerZero 所采用的基本模式。作为独立安全类型的“超轻”跨链方案,它只负责转运消息,并不对应用的安全负责任,也没有能力负责任。


那如果放开 Relayer,让大家都可以来运行中继器,是否能解决上述问题呢?图 2 是将图 1 的数量变多了。首先 Decentralized 并不是指运行者数量变多,谁都可以接入,那叫 Permissionless。需求端一向都是 Permissionless,让供给端也 Permissionless 并不是划时代的变革,这是市场端的变化,与产品本身的安全性没有太强的关系。LayerZero 的 Relayer 只是一个负责转发信息的中介,本质与 Oracle 一样,都是 Trusted Third Party。试图通过将受信主体从 1 个增加到 30 个来提高跨链安全性不过是徒劳无功,不仅没有改变产品特性,还会有新的问题伴随而生。


图 2: 假去中心化的跨链协议高级版


如果一个跨链代币项目允许修改配置的 LayerZero 节点,那么就有可能会被攻击者替换为其自己的“Layerzero”节点,进而伪造任意的消息。从结果而言,依然是使用 Layerzero 的项目出现了巨大的安全问题,且这种问题在更复杂的场景下会更严重。庞大的系统中只要有一个环节被替换就可能造成连锁反应。LayerZero 本身并不具备可能来解决这个问题,如果真出现安全事故,LayerZero 自然而然会将责任推给外部应用。因为终端用户需要自己谨慎判断每个使用 LayerZero 的项目的安全性,所以那些“用户导向”的项目会谨慎接入 LayerZero 以免被同属这个生态的恶意应用污染,这样一来生态建设难度就不小了。


如果 Layer0 不能像 Layer1、Layer2 一样共享安全性,那这个 Layer0 就不能叫做 Infrastructure,因为基础设施之所以“基础”是因为能共享安全性。如果某一项目方自称是 Infrastructure,那就应该像其他基础设施一样为自己的所有生态项目提供一致安全性,即所有生态项目共享该基础设施的安全性。所以,准确的讲,LayerZero 并不是基础设施 Infrastructure,而是中间价 Middleware。接入这个 Middleware SDK/API 的应用开发者确实可以自由定义他们的安全策略。


L2BEAT 团队曾在 2023 年 1 月 5 日发文 Circumventing Layer Zero: Why Isolated Security is No Security,指出他们假设应用所有者(或拥有私钥的人)不会做恶的这种假设是不正确的。坏人 Bob 获得了 LayerZero 配置的访问权限。坏人 Bob 可以将预言机和中继器从默认的组件更改为由他控制的组件,说服以太坊上使用 LayerZero 机制的智能合约让他将好人 Alice 在以太坊上的代币全部提走。原文链接:https://medium.com/l2beat/circumventing-layer-zero-5e9f652a5d3e


Nomad 团队在 2023 年 1 月 31 日发文指出,LayerZero 中继器存在两个关键漏洞,目前处于两方多重签名状态,所以这些漏洞只能由内部人员或已知身份的团队成员利用。其中第一个漏洞允许从 LayerZero 多重签名发送欺诈性消息,第二个漏洞允许在预言机和多重签名签署消息或事务后修改消息,都可导致所有用户资金被盗。原文链接:https://prestwich.substack.com/p/zero-validation


当被花哨表相迷惑的时候,那就试着回溯本源。


2008 年 10 月 31 日,比特币白皮书问世。 2009 年 1 月 3 日,BTC 创世区块诞生。《比特币:一种点对点电子货币系统》白皮书里的摘要如下:


Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone.


摘要中文翻译如下:


一种完全的点对点电子货币应当允许在线支付从一方直接发送到另一方 而不需要通过一个金融机构。数字签名提供了部分解决方案,但如果仍需一个 可信任第三方来防止双重支付,那就失去了电子货币的主要优点。我们提出一 种使用点对点网络解决双重支付问题的方案。该网络通过将交易“哈希”(动词)进一条持续增长的基于哈希的工作量证明链来给交易打上时间戳,形成一条除非重做工 作量证明否则不能更改的记录。最长的链不仅是被见证事件序列的证据,而且也是它本身是由最大 CPU 算力池产生的证据。只要多数的 CPU 算力被不打算联合攻击网络的节点控制,这些节点就将生成最长的链而超过攻击者。这种网络本身只需极简的架构。信息将被尽力广播,节点可以随时离开和重新加入网络,只需接受最长的工作量证明链作为它们离开时发生事件的证据。


人们从这篇对后世有着举足轻重的论文里,尤其从这段摘要里提炼出后来广为认知的“中本聪共识”,其核心特点是杜绝出现 A Trusted Third Party,实现去信任化 Trustless,去中心化 Decentralized。这里的“中心”即为 A Trusted Third Party。跨链通信协议本质上与比特币一样,都是一个 Peer to Peer 的系统,一方从 Chain A 直接发送到 ChainB 的另一方,而不需要通过任何 trusted party。


具备 Decentralized 和 Trustless 特性“中本聪共识”已经成为后来所有做基础设施的开发者共同追求的目标。可以说,不满足“中本聪共识”的跨链协议,即为假去中心化跨链协议,不能使用 Decentralized、Trustless 这种高级字眼来形容自己的产品特性。而 LayerZero 介绍自己说是 Omnichain communication, interoperability, decentralized infrastructure. LayerZero is an omnichain interoperability protocol designed for lightweight message passing across chains. LayerZero provides authentic and guaranteed message delivery with configurable trustlessness. 


事实上,LayerZero 既要求 Relayer、Oracle 这两个角色不会合谋做恶,又要求用户将使用 LayerZero 构建应用的开发者作为可信赖的第三方来信任,而且参与“多签”的受信主体都是被事先安排好的特权角色;与此同时,在它整个跨链过程没有产生任何欺诈证明或有效性证明,更别说将这些证明上链并做链上验证。因此,LayerZero 根本就不满足“中本聪共识”,压根就不是 Decentralized 和 Trustless。


在 L2BEAT 团队以及 Nomad 团队以问题发现者的角度发表善意文章之后,LayerZero 的回应态度是“否认”再“否认”。比特币之前就有了很多电子货币了,但是都失败了。因为它们都没有能达成去中心化,抗攻击和自带内在价值的目标,跨链协议也是如此,哪怕融资再多、流量再大、“血统再纯正”,只要产品无法实现 Real Decentralized Security,大概率是会因为抗攻击韧性不足而宣告结束。


曾经有一个立场本应该和 LayerZero 保持高度一致的朋友问我一个问题:“如果 LayerZero 想要像 Way Network 一样使用零知识证明来升级他们的跨链协议,那难度高不高,会有什么障碍?”这是一个令人玩味的问题,而问题的关键是他们不认为自己有问题。


至于怎么构建真去中心化的跨链协议,可以参考我的往期文章《为什么要使用零知识证明来开发跨链协议?》

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

相关Wiki
康水跃
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开