跨链桥被攻击的新闻几乎每隔几个月就来一次。多数人盯着私钥泄露、合约漏洞,却忽略了一个更底层的问题:多签机制本身,和拜占庭容错(BFT)要解决的问题,根本不是一回事。
把这两者混为一谈,是很多桥接方案在设计阶段就埋下的隐患。
![]()
多签解决的是"谁有权签字",不是"谁在撒谎"
多签钱包的逻辑很直白:一笔交易需要凑够N个签名中的M个才能执行。它假设的是签名者身份可信,只是需要防止单点作恶或私钥丢失。
但拜占庭容错要处理的情况更棘手——参与者可能不仅自己作恶,还会发送矛盾信息、选择性广播、伪装成正常节点。多签机制对此几乎没有防御能力。
换句话说,多签管的是"门锁够不够多",BFT管的是"屋里的人会不会互相欺骗"。两者不在同一个问题域。
桥接场景把缺陷放大了
跨链桥天然是多方参与的分布式系统,验证节点分散在不同链、不同时区、不同利益方之间。这种环境下,网络延迟、消息乱序、节点临时离线都是常态。
多签方案在这种异步环境里会暴露几个问题:
- 签名收集过程没有共识保证,先到的签名可能来自恶意节点
- 节点之间缺乏对"当前状态"的统一认知,容易产生分叉判断
- 一旦部分节点被攻破,剩余节点无法区分"离线"和"作恶"
这些恰恰是BFT共识算法(如PBFT及其变种)专门设计的应对场景。BFT能在存在f个恶意节点的情况下,只要总节点数超过3f+1,系统仍能达成一致。
为什么桥接方案还是偏爱多签
原因不复杂:多签实现简单、gas成本低、验证逻辑直观。BFT共识需要多轮通信、状态同步、视图切换,工程复杂度高出一大截。
对于追求快速上线的桥接项目,多签是更省事的选择。省事的代价,就是把拜占庭故障的防御责任转嫁给了"节点不会作恶"这个假设。
而现实中,这个假设经常不成立。
真正的盲区在于问题定义
很多团队在文档里写"采用多签保证安全",实际上混淆了两个层次:多签是授权机制,BFT是共识机制。授权机制解决"谁批准",共识机制解决"大家看到的是不是同一件事"。
桥接的核心难点恰恰是后者——跨链状态下,如何让所有验证节点对"源链上发生了什么"达成一致。这不是多签能回答的问题。
把BFT的能力寄希望于多签来实现,等于用一把好锁去防内鬼。锁再结实,也挡不住屋里的人串通。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.