深入浅出,陆羽跨链协议解析
如今的区块链领域,不同的区块链方案之间有着各自独立的生态,各自实践着不同的“治理”形态。一方面,上层区块链应用只能依赖于某个特定区块链技术而构建,形成“技术孤岛”;另一方面,异构的区块链技术方案间数据无法互信,形成“数据孤岛”。“技术孤岛”和“数据孤岛”使得业内各方难以合力形成更大的生态。
基于上述痛点,陆羽跨链协议被提出,致力于建立各区块链在“应用”、“链上”乃至“链间”互相调用的通用方法,实现对不同区块链的通用接入与高效互通,使业内的各方力量相互融合,形成规模效应,促进领域发展。
书同文,打破“技术”的壁垒
历史上文字不同的时期,一篇文书往往需要翻译成多种文字,既耗费人力,又阻碍信息的传播。在“书同文”之后,各地文化相互融合,社会不断繁荣。
(图片来源于网络)
目前在区块链领域,不同的链提供不同的接入方式。各种链在“应用”与“链上”的调用接口上未达成共识,使得基于同一“技术”的应用组件难以在不同的区块链间迁移复用,也导致上层应用实现各异、体系复杂、版本繁多,建设成本高且难以维护。如图,同样是调用HelloWorld合约,FISCO BCOS和Fabric的写法完全不同。
因此,各区块链需要达成一个类似“书同文”的共识,构建通用的区块链调用接口。在应用开发时,只需要面向协议“书写”一套代码,便可兼容不同的区块链,做到“一次开发,多链适配”。应用只有面向协议编程,摆脱对区块链方案的依赖,才能彼此共享“技术”资源,构建更大的生态。例如,用户可以复用同一套存证框架开发适用于不同区块链的存证应用,减少重复开发的成本。
陆羽跨链协议在“应用”与“链上”提出“统一调用接口”,将各种区块链的调用协议进行统一抽象,向应用层提供统一的调用接口和参数定义。用户在用陆羽跨链协议提供的 SDK开发跨链应用时,只需面向协议编程,不再受限于底层的链类型,实现“一次开发,多链适配”。如下图,为基于陆羽跨链协议SDK开发的代码示例。
车同轨,构建“数据”的桥梁
车辙是古代马车的车轮在道路上压出的两条路槽,宽度匹配的话,能让车轮与道路的摩擦力达到最小,是马车能在路上高效运行的关键。“车同轨”即是将各国的车轮宽度统一,提高物流运输效率。
(图片来源于网络)
目前区块链领域,“数据”在异构的链间流动也同样存在较大阻碍。由于数据结构和执行逻辑的不同,数据在不同链上的流动时,就像车轮行驶在不匹配的车辙上一样,因不匹配而困难重重。一方面,异构链间无法识别对方的数据结构,使得数据无法互通,另一方面,异构链由于执行逻辑不同更无法验证对方消息的正确性,使得数据无法互信。图中是FISCO BCOS和Fabric的两笔含义相同的交易二进制,仅从数据量大小就可看出完全不同。
因此,各区块链也需要一个类似“车同轨”的方案,在异构区块链间建立起一个通用的“数据”桥梁,实现数据的互通与互信。如果能在多条区块链间实现数据的互通互信,将会产生更丰富的应用场景。例如,通过将分别持有版权、协议、财产和交易数据的区块链连接在一起,构建一个司法存证跨链网络,将可实现多条链的联合举证,为仲裁提供有力证据。
陆羽跨链协议在“链间”提出“统一接入接口”,将区块链与协议的适配接入进行了统一定义。基于此接口框架开发插件,不同的链有不同的实现,并实现了各链的数据结构与协议所定义的通用数据结构之间的相互转换。“通用的交易结构”在插件中被编码成可被链接收的交易二进制,并在交易上链后,将链返回的交易回执转换成“通用的回执结构”。各种链的数据基于通用的数据结构相互转换,实现了链间的数据互通。同时,协议支持在插件内根据链自身的执行逻辑定制相应的交易验证方法。只要在发起方配置接收方的链插件,即可对接收方区块链上的交易进行正确性验证,实现连接数据互信。
承上启下,抽象表达
对上层应用有了“书同文”的“统一调用接口”,对下层区块链有了“车同轨”的“统一接入接口”,承上启下之间,陆羽跨链协议的“抽象层”进而显现。
“抽象层”位于两个接口之间,是贯穿整个协议的核心。该层抽取了各种区块链上共有的定义,对对象和数据结构进行了通用描述。对象抽象包括账户、链和合约(链码)的抽象,数据抽象则为区块、交易和回执的抽象。而账户抽象延伸开来又包括各种签名算法的提炼。抽象使得面向协议编程的用户可采用统一的定义进行开发--无论是应用还是链插件。“统一抽象”是贯穿整个协议的核心,以此延伸而来的陆羽跨链协议生态,均建立在该抽象协议之上。
开源合作,共建未来
陆羽跨链协议采用“开源”的方式欢迎各方参与共建。开发者可直接使用已有的代码部署自己的系统,也可以基于现有的代码进行进一步的开发,更可以提出建设性的意见对方案进行迭代与更新。我们希望在对方案不断完善的同时,能吸引更多的开发者加入到陆羽开源生态圈中,以此形成良性的循环,进一步助推陆羽跨链协议持续发展。
在链接入上,开源生态圈中,基于陆羽跨链协议已实现了Brochain、FISCO BCOS、CITA和Hyperledger Fabric的跨链互通。未来,开发者将基于该协议实现更多类型链的跨链互通。
在应用开发上,开源生态圈提供了调用跨链网络的SDK,开发者可基于SDK开发各种跨链应用。开发过程是“面向协议编程”,不再受限于区块链底层的技术细节,可实现“一次开发,多链适配”。未来,随着越来越多的跨链应用组件被开发并开源,开发者将能够直接复用已有的组件进行开发,而无需为每条链重新定制开发一套逻辑完全相同代码。同时,随着越来越多的链完成适配,已开发的应用也就可以在更多的链上运行。
未来,随着区块链领域的发展,必然面临更复杂的场景,“技术孤岛”和“数据孤岛”问题亦有可能更加严峻。陆羽跨链协议将在促进技术融合,加速数据互通方面发挥重要作用,以在应用上形成更大的生态,在链间构建数据桥梁,将各方力量相互融合,让区块链领域走向更广阔的天地。