让区块链说普通话,一种面向异构的跨链数据认证及通讯协议
为什么要跨链
区块链发展至今,各行业各领域都构建起不同的区块链网络,链上流转着各产业的信息与价值。当前阶段,无论是技术层面的可扩展性需求,还是业务层面的业务规模化或横向业务打通的需求,跨链已然成为业务发展的需求瓶颈,也是区块链技术急待突破的新技术难题。
与区块链技术发展的最早期阶段规范区块链模块、寻求标准化区块链架构类似,跨链技术当前处于关键技术成型,模式多样化,整体标准化的进程中。
业内对跨链的理解及实践上,有着相同的方向,一个完整的区块链跨链互操作链路上涵盖多个层次多个环节的处理流程。上层直面业务的跨链业务层,涵盖跨链操作接口、跨链事务编排等跨链业务逻辑表达;下层的基础层次,涵盖跨链治理、区块链身份命名、可信数据认证、链间通讯、跨链寻址等基础跨链能力。虽然更具体的层次、功能划分未完全统一一致,但有着较大的求同空间。
IEEE已经立项的标准《Standard for Blockchain Interoperability - Data Authentication and Communication Protocol》提出了面向异构跨链的数据认证协议及通讯协议,旨在解决异构跨链的底层基础的数据互认问题,并搭建链间通讯通路。我们作为该标准工作组主席,撰写本文针对该标准进行一些介绍和解读,希望对大家有所帮助。
跨链数据认证
跨链流程上,最终还是要实现各自区块链数据的交换,需要完成数据的解析及认证两大工作。
好比人社交时需要自我介绍,区块链在交互时,也需要能够“自我介绍”:我是哪种类型的区块链,这是什么数据结构,什么数据格式,该数据的链上证明是什么。有了这些信息后,其他区块链才有基础信息完成对数据的解析及认证。
数据协议便是助力完成以上基本互认需求的协议。这是一种自描述的跨链数据协议,涵盖链的标识、链的类型、数据模型、数据内容、链上证明、验证根等跨链数据信息。该协议的作用是协调各链数据的互认问题,也支持建立一种统一的面向协议扩展的区块链数据解析客户端。最简单的理解为,如区块链的种类,需要全局登记,以便于大家认识你。
有了该数据协议的协调,便有了数据互认的基础,但要完成数据解析及认证,还有更多的挑战。
现有不同类型的区块链使用不同的数据格式,比如以太坊使用递归长度前缀编码(RLP)数据编码,fabric使用protobuf定账本数据编码。基于不同的数据格式,其对应的账本验证方法也不同,fabric使用多个背书节点签名,而以太坊采用支持SPV协议的轻客户端验证。这种区块链间的数据结构、证明方法的差异,导致了验证复杂度高,信任根不统一,跨链方需要集成多类客户端。
以上过程相当于大家都用各自的方言来交流,需要跨链的双方互相学习对方的“方言”,这是很困难的一件事,有没有办法基于“标准普通话”来交流?
证明转换协议便是为跨链的多方提供统一的跨链数据格式及跨链证明选择,使得大家在交流时,可以选择使用“标准普通话”。
如方言到普通话需要有个“准确翻译”过程,原始的区块链数据及链上证明,到统一的跨链数据及跨链证明,需要有个“可信转化”的过程,提高跨链技术时大家所熟知的侧链机制、公证人技术、中继链、甚至预言机等技术组件,均是完成这个“可信转化”的过程。可信转化可以通过共识的方式、多重验证、甚至权威中心的方式,这些方式都是可选的。
具体的,证明转换协议允许区块链选择支持的证明转化组件,将当前链上的原数据账本,在不改变原有数据语义的前提下,进行数据格式转化、数据证明的转化、信任根的转化,即“原始账本数据+原始账本证明”转化为“格式化账本数据+第三方账本证明”。经过转化后的数据结构和验证方法更加轻量简化,便于客户端合约更容易地实现数据格式的解析、认证。
跨链通信协议
有了规范化的跨链互认数据,还需要建立一个通道实现数据的可信安全传输,包含身份协议和通信协议。
身份协议。身份协议是建立身份体系的具体落实方法。身份体系是通讯的基础,目前很多跨链解决方案中并未重视区块链身份体系的搭建,区块链跨链标识往往只能在局部跨链使用,跨链作为面向万链互联的基础设施,区块链身份体系将会是重要基础。
在开放的互联网的安全通讯里,已有一份健全且久经考验的体系:PKI 基础设施。开放的跨链互联网络有着与现有互联网一致的需求:开放、安全通讯、分布式自治,而不一样的点是该区块链证书的对象是一条链及链上对象,对于链的身份,这里涉及到如何开放地定义链的“唯一标识”,对于链上的对象,包括账号以及合约等,如何在出链时对外可验证。
这里引入了职能与 PKI 体系类似,而更轻量级且更具分布式自治及扩展性的“分布式身份”体系。通过设计区块链证书,描述区块链的唯一认证根以及其安全更新与公开吊销,让业务在由区块链组成的价值互联网里进行安全跨链,做到“有根可寻”且“安全可控”。
通讯协议。有了数据互认、身份互认这些跨链的基础协议,再辅助以数据传输的打通,这样,在跨链的功能上就可以为可编程的智能合约之间提供跨链通讯接口。进而,通过可编程方式完成丰富的链上合约跨链业务,这也是跨链系统普遍的设计。
通讯协议旨在面向对发布在不同链上的智能合约建立一层信息通讯协议,使得区块链之上的智能合约可以可靠地互相发送跨链报文以进行信息通信。
具体的,通过智能合约写入相对应的数据以完成一个代表该合约意愿的跨链报文发布。基于数据认证、身份认证、数据传输等基础协议,另外一条区块链有条件解析该报文,得到该合约传达过来的信息。通讯协议会提供类似TCP/UDP的可靠有序/无序的通讯协议。
全局跨链流程
以上分别介绍了跨链的两大子协议,文章的最后,再用全局的一个跨链概要流程来串一下多层次多环节的跨链协议。
跨链系统中,各区块链首先基于身份协议获得唯一的链身份标识,用于表示跨链信息的发送方或接收方。账本发送链将待发送的数据经过中继组件和证明转化组件之后生成规范化、轻量级的自描述数据包,根据通讯协议定义的报文格式和消息流程将账本数据发送给相应的接收链。接收链中的中继组件将账本和证明提取出来传递给链上系统,链上客户端执行账本验证和相关的业务执行操作。
关于蚂蚁区块链
蚂蚁区块链致力于打造自主研发的高性能、高安全、强隐私保护的联盟区块链技术和金融级区块链平台。在知识产权方面,截至目前已公开的累计区块链专利申请数达2003件,从2017年至2020年连续四年蝉联全球区块链企业专利申请数排行榜排名第一。此外,蚂蚁区块链已经落地超过50个应用场景,与多个行业融合。未来,蚂蚁区块链将运用区块链技术构建新一代的信任机制,提高价值流转和多方协同的效率、降低不信任所造成的成本,在赋能实体经济同时、成为推动数字经济发展的一大动力。ODATS(Open Data Access Trusted Service)是由蚂蚁区块链自主研发的跨链服务,为用户提供低成本、安全、跨平台的交互操作。用户通过跨链服务在底层区块链中的协议栈和跨链合约,实现同构或异构区块链之间可信交互,从而构成区块链价值网络,实现链上价值更广泛的可信流转,完成丰富的链间互操作。ODATS 从实际业务场景出发打磨的商用跨链平台,从底层协议到高可用组件实现与业务编程界面有着诸多丰富设计。该套协议在蚂蚁区块链多代产品以及Hyperledger Fabric产品已得到适用性验证。
微信扫描关注公众号,及时掌握新动向
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场