技术分析上跨链的类型无非那么几类,公证人、哈希锁定、侧链/中继链等,而从跨链的概念以及需求上看跨链的本质其实就是 如何将A链上的消息M安全可信地转移到B链并在B链上产生预期效果。
那么一个成功的跨链交互到底需要解决哪些问题呢?大概以下四个问题: 1、消息 M 的真实性证明,也就是说 M 是否确实是存在 A 链上的,也确实是 A 链发给 B 链的; 2、消息 M 的路由,如何让跨链消息安全跨系统路由; 3、消息 M 的有效性证明,这里的有效性是指来自 A 链的消息 M 如何让 B 链认可其抵达 B 链时状态仍然有效,比如转移的资产是否是冻结的,没有双花的,如果是状态那么是否在此期间未发生改变等; 4、消息 M 的执行结果证明,这个是指 A 链需要确认跨链操作是否成功,以及成功操作的相应回执。 那么针对这些关键本质问题,如何去处理呢?设想未来的区块链应该在底层平台的设计之初就需要遵循统一的跨链协议标准,就像现在的操作系统对 TCP/IP 协议的支持一样。需要进行通用跨链的区块链至少要支持一下功能: 1、提供跨链消息的输入和输出口径,例如 Cosmos 和 Polkadot 的跨链队列; 2、提供跨链消息的真实性证明,区块链需要提供类似 SPV 的证明手段; 3、消息的有效路由需要构建跨链消息的统一格式,定义好消息的来源和去处以及消息内容,如 Cosmos 的 IBC 协议; 4、消息的有效性证明,区块链可能需要设计新的类似 UTXO 的可验证存储结构,方便做类 SPV 类验证,否则目前的基于 KV 的数据存储方式做有效性证明几乎不可能; 4、跨链执行结果证明和有效性证明类似,需要全新的数据结构和运行算法支持。 除此之外,跨链系统的设计还需要考虑系统稳定性、可扩展性以及易升级性、容错等等,总而言之,真正的可信互联网建设道路且长,从目前无论风光无限的Cosmos 或 Polkadot,都还有很大的差距。
|