A链的Collator收集A链的普通交易以及跨链交易并提交给A链的验证者集合;
A链的验证者集合验证成功,将本次A链的区块头信息以及A链的engress内信息提交到中继链上;
中继链运行共识算法进行区块确认以及跨链交易路由,中继链上的验证者会将A链的相应交易从A链的engress queue中移动到B链的ingress queue中。
B链执行区块,将ingress queue中相应交易执行并修改自身账本。
以上便是Polkadot跨链交易的主要步骤,由于所有平行链的共识同步发生(中继链区块示意图如下),因此跨链交易不会有诸如双花等安全性问题。 Polkadot 的平行链之间的跨链交换的安全性保障主要来自共享安全性这个特点,共享安全性使得跨链交易和普通交易同步发生也就不存在其他跨链场景中的双花等跨链数据不一致问题。其次Polkadot中的引入的特殊状态验证方法方便中继链进行跨链等消息的有效性验证。
值得一提的是Polkadot项目目前还处在项目初期,对于parachain的设计、Collator的协作以及Validator的共识、工作效率等都未完善。这种共享安全性的方式是否也限制了平行链自身的性能都还有待考证。
关于跨链技术的几点思考
综合以上的一些主流跨链场景和方案的分析,从跨链的概念以及需求上看跨链的本质其实就是 如何将A链上的消息M安全可信地转移到B链并在B链上产生预期效果。那么一个成功的跨链交互到底需要解决哪些问题呢?笔者认为主要有以下四个问题:
消息M的真实性证明,也就是说M是否确实是存在A链上的,也确实是A链发给B链的;
消息M的路由,如何让跨链消息安全跨系统路由;
消息M的有效性证明,这里的有效性是指来自A链的消息M如何让B链认可其抵达B链时状态仍然有效,比如转移的资产是否是冻结的,没有双花的,如果是状态那么是否在此期间未发生改变等;
消息M的执行结果证明,这个是指A链需要确认跨链操作是否成功,以及成功操作的相应回执。
那么针对这些关键本质问题,如何去处理呢?笔者设想未来的区块链应该在底层平台的设计之初就需要遵循统一的跨链协议标准,就像现在的操作系统对TCP/IP协议的支持一样。需要进行通用跨链的区块链至少要支持一下功能:
提供跨链消息的输入和输出口径,例如Cosmos和Polkadot的跨链队列;
提供跨链消息的真实性证明,区块链需要提供类似SPV的证明手段;
消息的有效路由需要构建跨链消息的统一格式,定义好消息的来源和去处以及消息内容,如Cosmos的IBC协议;
消息的有效性证明,区块链可能需要设计新的类似UTXO的可验证存储结构,方便做类SPV类验证,否则目前的基于KV的数据存储方式做有效性证明几乎不可能;
跨链执行结果证明,和有效性证明类似,需要全新的数据结构和运行算法支持。
除此之外,跨链系统的设计还需要考虑系统稳定性、可扩展性以及易升级性、容错等等,总而言之,真正的可信互联网建设艰辛蛮长,诸君共勉!
【文章版权归原作者所有,其内容与观点不代表Unitimes立 场。转载文章仅为传播更有价值的信息,合作或授权联系请发邮件至 editor@unitimes.media 或添加微信 unitimes2017】 本文首发于微信公众号:Unitimes。文章内容属作者个人观点,不代表和讯网立场。投资者据此操作,风险请自担。
此文由 比特币官网 编辑,未经允许不得转载!:首页 > 比特币行情 » 跨链技术的分析和思考