撰文:MiddleX

 

Multichain 事件的进展还扑朔迷离,真相还未完全浮出水面。可以确定的是,为 Multichain 提供流动性的 LP 们、以及持有 Multichain 发行的映射资产 anyToken 的用户,恐怕是要遭殃了。这回受影响的资产数额太大,不知道会不会有人出来兜底。

7 月 6 日,超过 1.26 亿美元的资产从 MPC 托管地址中被人为转出,根据合约审计团队 Beosin 的分析,资金的转出完全是人为操作,与合约漏洞无关,证明 Multichain 的 MPC 托管地址私钥已经被外力掌控。

在 7 月 14 日 Multichain 发布的官方声明中,明确宣布了 Multichain 创始人 zhaojun 已经在 5 月 21 日被警方带走的消息。然而令人大跌眼镜的是,声明中提到,Multichain 的 24 个 MPC 节点私钥全部由 Zhaojun 掌握,且所有节点服务完全在其个人服务器中运行!WTF!!!

现在事件的进展还扑朔迷离,真相还未完全浮出水面。可以确定的是,为 Multichain 提供流动性的 LP 们、以及持有 Multichain 发行的映射资产 anyToken 的用户,恐怕是要遭殃了。多签桥的中心化风险,就像一只肥硕的灰犀牛,它就在那里,大家都能看到,但又选择性的忽略。关键这头犀牛还驮着数百亿美金的巨额资产!

目前,市面上 TVL 靠前的跨链桥几乎全部都是多签桥。在 Multichain 之前,已经发生过 Axie Infinity 官方桥 Ronin Bridge、Harmony Chain 官方桥 Horizen bridge 因私钥泄露而爆雷的事件,分别造成 6.2 亿美金和近 1 亿美元的损失。

多签桥为什么不值得信任?

一般而言,跨链桥分为三种,分别是轻客户端型(原生验证)、见证人型(外部验证)、基于哈希时间锁的原子交易型(本地验证)。

其中基于哈希时间锁的原子交易,由于其用户体验欠佳(需要用户进行 2 次以上的操作),以及无法支持任意消息传递,鲜有采用。轻客户端型跨链桥则由于其工程实现上相对困难、兼容新链的成本较高,目前仅被应用在一些仅需支持少数链的专用桥当中。见证人型跨链桥则开发实现较为简单、可以轻易的进行多链适配,且性能较好(速度快,费用低),而成为大多数项目的选择。

见证人型桥通过一组外部的 Bridge Nodes 对跨链消息进行共识签名,以此来验证消息的真实性,因此我们也称之为多签桥。跨链桥一般采用 lock-mint 逻辑来链间传递资产,用户通过 lock 源链上原生资产(例如 USDC ),来 mint 目标链上的映射资产 (例如 anyUSDC),这些 lock 的资产会成为桥的 TVL,一旦被盗,用户或者 LP 手中的映射资产将与原生资产脱锚,无法足额赎回。但这些外部的 Bridge Nodes 如果串谋,或者他们没有保管好自己的私钥碎片导致其中 2/3 以上被黑客获取,这样的事情就会发生!

大多数多签桥,少则只有个位数的 Bridge Nodes,多则也就 2 0 多个。在 TVL 较低时,这些主体可能不会去串谋作恶,但当多签桥的 TVL 达到数亿美金时,没有人保证他们不会动心。如果利益足够大,串谋 20 个节点,并不算很困难。这还没有考虑到,很多跨链桥的诸多节点往往都是利息高度相关的「友商」,甚至一些跨链桥存在一个主体控制多个节点的情况,例如,Ronin Bridge 的 9 个节点中有 4 个控制在 Star Mavis 公司手中, Multichain 的情况则更加过分,1 人掌握所有的 24 个节点 !

一个成年人的标志是,不再相信人性经得起考验。

跨链桥将如何改进?

Mulitichian 的事件对于跨链桥领域,或许将成为一个转型的契机。当大家都不再愿意容忍中心化带来的安全风险时,「多签桥」自然就玩不下去了。如果说「多签桥」主导的时代是跨链桥的 1.0 时代,那么 1.0 时代正在加速离去,跨链桥 2.0 时代的主角必然属于更加安全的跨链桥。

那我们应该用什么样的跨链桥呢,跨链桥如何改进,才能在保证性能可接受的情况下,消除中心化风险呢?我们观察到,业内主要有三个方向,分别是 ZKbridge、Optimistic Brige 和 TEE Bridge。

ZK Bridge

由于 ZK 叙事的升温,近期将 ZK 技术用于跨链的探索也倍受关注,已经有不少该方向的项目获得融资。

ZKBridge 是一种将 ZK 技术用于轻客户端扩容的跨链桥方案。我们知道,轻客户端跨链桥有着极高的安全性,其本质是由目标链的共识层直接验证来自源链的消息,不引入任何第三方的信任假设,但轻客户端需要不断维护源链的区块头序列,此间需要对每个新区块头执行验证,这带来两大难点:

  • 巨大的链上开销,可能会使得桥不具备经济可行性

  • 如果要做一个通用桥,每新增支持一条链,都需要至少开发两个新的轻客户端,兼容新链的成本较高,很难做成真正的通用桥。

引入 ZK 技术之后:

  • 可以在链下验证新区块头,并将新区块头及其有效性证明(Zk Proof)一并提交到链上,链上可以直接验证 ZK Proof,即可等效于验证新区块头,但开销可以大幅缩减。更进一步,还可以把用区块头对交易执行 SPV 验证的过程也放到链上。

  • ZK 技术简化了轻客户端的开发,链上轻客户端仅需验证 ZK proof,比验证新区块头的合约逻辑要简单许多

但 ZKbridge 的性能极限依旧弱于多签桥,以 EVM 为例,验证一个 ZK proof 的成本最低也在 500k gas,和多签桥只需验证一个签名的 21k Gas 相比,高了了将近 25 倍,这最终还是会转化为前端用户高昂的跨链费用。尽管通过批处理,可以让多笔交易分摊一次处理的成本,但这又会带给用户较长的等待时间。

此外,Zkbridge 作为轻客户端桥,需要接入链支持智能合约,BTC 类的非智能合约链是无法接入的。

Optimistic Bridge

Optimistic 桥是对多签桥信任根的改良。Optimistic 桥在多签桥的基础上,引入了挑战窗口期的概念和一个名为「挑战者」的角色。

我们知道,一个消息在多签桥中的传递过程是这样的

① 发起:用户在源链通过与 Source dApp 交互,发起跨链消息传递

② 链下签名:消息被传递给 Bridge Nodes,完成共识签名之后传递到目标链

③ 链上验证签名:目标链验证该消息是否由正确的 Bridge Nodes 的签名

④ 执行:验证后的消息被提交给 Taregt dApp 进行执行

在 Optimistic Bridge 中,消息在完成第 ③ 步之后,不会立刻进入第 ④ 步,而是会进入一个计时环节,计时结束后,如果没有挑战者对该消息提出质疑,该消息才会进入执行环节,被 Taregt dApp 执行。

如果挑战者对消息进行质疑,那么该消息将被标记为「不可信」,「不可信」消息将不会进入执行环节,挑战者将会把它提交会源链,由源链的仲裁合约进行仲裁,如果消息在源链真实存在则证明挑战者误报,如果消息在源链并不存在则证明 Bridge Nodes 欺诈,签名了虚假的消息。仲裁结束后,会给诚实的一方奖励,而惩罚不诚实的一方。

通过该机制,Optimistic bridge 将多签桥的信任根从 m-of-n,提升到了 1-of-n,只需要有一个诚实的挑战者,桥就是可靠的。

Optimistic Bridge 的缺点在于增加了用户的等待时间,该时间一般会在 30min 左右,用户必须等待挑战窗口期的结束,才能完成完成跨链操作,这在很多场景下都是行不通的,用户并没有这个耐心。实践中, Optimistic Bridge 往往采用双模型机制,小额转账或是非敏感操作会直接跳过挑战窗口期,只有大额转账或者敏感操作,才会有挑战窗口期,具体阈值可以由应用程序自定义,或是由用户在前端自己选择。

Optmistic Bridge 的机制无疑是对多签桥的巨大改良,既保障了安全,也兼顾了性能。但可惜的是安全和性能并没有真正意义上兼得,只是把安全优先还是性能优先的选择权交给用户,不能算是完美的解决方案。

此外,由于必须通过合约实现链上仲裁,该方案依旧不能支持 BTC 类的非智能合约链。

TEE Bridge

TEE Bridge 是指在多签桥的基础上,要求所有节点必须使用 TEE 设备接入网络。TEE 全称为可信执行环境 (Trusted Execute Environment),它是给定设备上运行的与主操作系统隔离的计算环境,就像一块飞地 (Enclave),这种隔离是通过硬件强制实现的。

在 TEE Bridge 中,节点使用 TEE 设备保管私钥碎片,签名程序也完全在 TEE 中运行,外部黑客将很难窃取。与 ZKbridge、Optimistic Bridge 不同的是,TEE Bridge 是通过节点硬件来提升跨链桥的安全性,而非改变链上的验证机制。

TEE Bridge 的优势在于:

  • 在提升安全性的同时,完全没有在多签桥的基础上牺牲性能

  • 可以兼容 BTC 类的非智能合约链

但 TEE Bridge 依然存在内部串谋的风险。2/3 多数的节点如果串通,依然可以对桥发起攻击。

BOOL :ZK-TEE Bridge

Bool Network 是一个别具一格的跨链桥项目。它在 TEE Bridge 的基础上,结合 ZK 技术,采取了匿名轮替机制,实现了更高的安全性。

Bool Network 本身是一个众多 TEE 节点构成的非许可网络,任何主体都可以通过 Bool Network 申请建立一个或多个 DHC(Dynamic Hidden Committee)。如果某个主体需要建立一座支持 10 条链的跨链桥,那就申请 10 个对应的 DHC 就可以了,每个 DHC 都管理着一组 MPC 私钥分片,他们将会负责验证和签名跨链消息。

一个 DHC 一般会包含 10 到 20 个 TEE 节点成员,具体由 DHC 的创建者来设置,签名阈值一般是 2/3,但 DHC 的创建者也可以设置更高的阈值。

Bool Network 会随机的为所有 DHC 分配成员,并且会定期洗牌,重新分配。借助 ZK 技术,Bool Network 可以实现分配成员的过程是完全随机的,且分配完成之后,每个 TEE 节点都不知道自己被分配到了哪个 DHC,也不知道自己和哪些节点分到了一个 DHC,更不知道别的节点被分配到了哪个 DHC。这种感觉,就像参加假面舞会一样,谁也不知道谁是谁!

这是通过 Bool Network 的 Ring VRF 算法实现的。具体来说,Ring VRF 在 DHC 分配节点成员的时候,会赋予每个 TEE 节点一个临时身份,该临时身份表现为一个 ZK proof,可以证明某个节点属于当前 DHC,但不暴露节点的具体信息。DHC 成员之间将通过临时身份相互识别,并通过加密通讯完成 MPC 签名的工作。在当前 Epoch 结束之后,Ring VRF 会重新洗牌所有 DHC 的成员,此时所有临时身份都会失效,Ring VRF 将为每个节点分配新的临时身份。

总之,Bool Network 通过 ZK 技术与 TEE 技术的巧妙结合,实现了节点之间的完全匿名,杜绝了串谋的可能,在 TEE Bridge 的基础上进一步提升了安全性。

小结

ZKbridge、Optimistic Bridge、TEE Bridge 都是很不错的方案,它们都在试图构建更加 Trustless 的跨链桥,消除中心化风险,提高跨链桥的安全性。但 ZKBridge、Optimistic 依旧存在性能上的牺牲和可扩展性上的短板,TEE-Bridge 则存在串谋攻击的可能。

BOOL Network 提出的 ZK TEE-Bridge 则是一个从各方面都无可挑剔的方案,它的优势包括:

  • 不牺牲的性能,跨链消息传递的速度和费用保持和「多签桥」同一水平

  • 支持非智能合约链,且适配新链的工程量较低

  • 杜绝了 TEE 桥中可能存在的串谋风险,实现了不亚于轻客户端桥的超高安全性

  • 本质上是一个去中心化的、Trustless 的签名机,将不限于应用在跨链领域,而是可以扩展到预言机、分布式私钥管理等领域