在另外一篇文章《理想中的跨链桥,是什么样?》 中关于 MPC 跨链桥有一段这样的表述:「Anyswap:用一句话来解释「黑客发现了 Anyswap 的代码漏洞,从而拿到了公私钥对,盗走了资产」,更像是各类项目都会出现的漏洞。」 笔者并不太认同各类采用 MPC 都会出现的漏洞这句话的论断。业界我们交流的几个实现了 MPC 的同行都不认为这样的漏洞或者错误是个都会出现的普遍现象,采用 MPC 的精髓就是实现了多方的匿名安全计算,否则如果连这个都不能保证,何必采用 MPC,用个多签,单签的方案岂不更简单,安全性更高?「如果能够使用足够多节点的公链共识,则能很大程度上避免类似这次被攻击的情况(MPC 不够去中心化的选型)。」 这句话的结论同样不敢苟同。不同交易签名 R 值是否重复并不取决于节点的个数,而是取决于签名过程中随机数的生成方式。如果签名过程中随机数是多个节点通过多方计算共同决定,那么仅 20 个节点也同样能够产生安全随机数;反之,如果签名过程中随机数是并不是以安全的、分布式的方式产生,那么堆积再多的节点也是徒劳。该项目浏览器上显示有超过 20 多个节点参与 MPC 计算,如果计算方式的确为 MPC,那么发生 R 值碰撞的概率是忽略不计的。因此该项目将两笔交易签名 R 值相同的原因归结于参与 MPC 节点数量不足,无疑是避重就轻,具有很强的误导性。 在文章的最后,特别想和大家强调一下随机数对于区块链的重要性,它不仅仅用在账户签名过程,而且也用在 PoS 共识和分片 Shard 算法等领域,直接决定整个系统的安全性,万万不可忽视。一个小小的随机数生产,并不是那么简单,是整个数学界,密码学界一直以来孜孜追求不断优化的一个圣杯领域。一个区块链团队还是应该多在分布式随机数生成算法领域不断积累,设计并不断优化链上随机数发生器,这样才能够为跨链和共识过程提供安全随机数,为整个区块链,DeFi 领域提供可靠、可用、可信的跨链桥。 (责任编辑:admin) |