浅谈区块链互操作性

为进一步促进区块链产业发展,增强业内技术研究和落地经验的交流沟通,可信区块链推进计划正式开启对外征文活动,为广大业内专家提供一个展现自我、共商共进的高端平台。投稿详情请看文末征文链接。

“互联网是信息自由流通的网络,区块链则是价值自由流通的网络”,这是对区块链的一个美好愿景,就目前来说,区块链还无法做到高效互通,还不是自由流通的网络。

类比上世纪60年代以局域网形式存在的计算机网络,无法与局域网范围外的计算机互联,直到1969年美国高等研究计划局(ARPA)投入使用拥有四个节点的阿帕网络(ARPAnet),计算机之间第一次具备了同构环境下的联网能力。

时间推进到80年代TCP/IP协议的诞生,使得异构的网络之间可以彼此互联,加速了互联网的爆发。回到区块链,伴随技术的不断发展,涌现出大量项目,但大多属于高度异构状态,且在发展早期,更多聚焦在自身的技术创新与生态建设,网络逐渐被拥有特定利益的子群体隔离。

同时区块链作为一个大型异步的分布式网络,很难设计出一个“大一统”的链,各项目方会在不同技术层面做取舍,在特定场景下,如安全性、隐私性、效率等提供自身优势,最终导致应用层很难在单链上价值最大化。

因此,在当前多链并存的情况下,区块链的互操作性由于可以带来价值自由流动,促进链间协同工作,将会变得重要且充满意义,是区块链向着网络效应规模化发展的强力推手。

那么区块链互操作性到底是什么呢?我们可以做名词拆解,首先说说互操作性,电气与电子工程师协会(IEEE)对其做出了如下定义:

两个或多个系统或组成部分之间交换信息以及对所已经交换的信息加以使用的能力

加上区块链作为限定后,美国国家标准技术研究所(NIST)曾作过如下解释:

An interoperable blockchain architecture is a composition of distinguishable blockchain systems, each representing a unique distributed data ledger, where atomic transaction execution may span multiple heterogeneous blockchain systems, and where data recorded in one blockchain are reachable, verifiable, and referenceable by another possibly foreign transaction in a semantically compatible manner.

简单来说,区块链互操作性是不同链间可以执行原子性交易,交易涉及的数据可以被访问、验证以及使用。相关定义与阐述虽然并未统一,但大多聚焦在不同链间的互操作性,因此业内存在另一个更加通俗易懂,被广泛引用的名词 --- 跨链。

那么区块链互操作性等于跨链吗?笔者认为是前者包含后者的关系,若关注在不同链之间交换信息,可以叫做跨链,跨链可以按照交换信息的种类拆分为加密资产互操作与状态事件互操作;若将范围扩大,区块链链上世界与链外现实世界之间同样存在交换信息的需求,由于区块链本身是封闭的,确定性的,自洽的系统,完全与现实世界隔离,因此链上链下的互操作同样重要。结合链间与链上链下的互联互通,最终区块链网络可以支撑应用层系统互操作功能,有利于加大网络效应。

有关区块链互操作性的技术实现,以太坊创始人Vitalik Buterin 曾在链互操作性研究报告中提及三种主要方法,即哈希锁定、公证人机制、中继。有关中继可以更细的拆分为侧链与中继链。

哈希锁定应用在双链间加密资产互操作,利用哈希锁和时间锁保障跨链交易的原子性,即只有满足一定时间条件和哈希条件交易才能够完成,大体实现流程如下图:

假设链A中的Alice与链B中的Bob进行加密资产互换,交易成功完成需要六个步骤:

1. Alice随机生成密钥s,并针对密钥计算出哈希值h;

2. Alice将哈希值h发送给链B上的智能合约;

3. Alice在链A上锁定交易的资产,同时设定锁定时间Y,以及设置提供密钥s即可获得锁定资产的逻辑;

4. Bob向链B智能合约锁定交易资产,同时设定锁定时间X (X < Y),设置提供密钥s即可获得锁定资产的逻辑;

5. Alice在锁定时间X内向链B合约发送密钥s,合约判定hash(s) == h,即解锁Bob资产给Alice,同时Bob获取密钥s;

6. Bob在锁定时间Y内向链A发送获得的密钥s,解锁Alice资产,双方完成跨链资产互换操作。

若Alice未在Bob设置的超时时间X内发送密钥s至链B智能合约,则Bob可以恢复之前锁定的资产;若Bob未在超时时间Y内发送密钥s至链A合约,则Alice可以恢复之前锁定的资产。

公证人机制是由一个或一组受信任的节点组织作为公证人,监听链间的跨链交易,针对收集的跨链交易进行有效性验证,交易双方依赖公证人来实现链间的互操作。依据公证人的构成以及签名方式,具体可以分为三类实现:

单签名公证人机制,公证人由单一指定的节点充当,用中心化的方式作为信用保障,将信任技术转换至传统的信用中介。

多重签名公证人机制,多个公证人节点在各自账本签名,当达成一定比例或数量的共识后,跨链交易才能被验证通过。

分布式签名公证人机制,采用多方计算的分布式签名,系统将唯一的密钥拆分为密钥碎片发送给每个公证人节点,当一定比例的公证人节点共同签名确认后,跨链交易才能通过验证。

侧链是能够不依赖第三方,可以验证来自另一条链数据的区块链,一般通过双向锚定(two-way peg)机制,可以实现将数字资产在主链中锁定,同时将等价的数字资产在侧链中释放,同样当等价的数字资产在侧链中被锁定时,主链的数字资产也可以被释放。一般的方案是配合简单支付验证(SPV,Simplified Payment Verification)实现去中心化的双向锚定,SPV是一种通过少量数据就可以验证交易存在于某个特定区块的方法,可确保跨链交易的有效性。

中继链本质上可以看做公证人机制和侧链的融合与扩展。简单来说,当侧链连接多个主链,作为一个中枢传导多主链间的跨链交易时,即可直观的当做中继链,因而中继链一般会承担起验证参与互通链信息的工作,从而确保两条链间安全的跨链交易,从这个角度看,中继链也是一种去中心化的公证人机制,结合侧链的连接方案,完成跨链交易在接入两端的验证与转移。

上面针对区块链互操作性的常见技术进行了简单介绍。总结来说,哈希锁定与配合SPV方案的侧链技术可以做到信任最小化,即仅依赖参与链的自身安全性,公证人机制需要寻找大多数可信的节点组织,而一般的中继链技术则依赖大多数诚实的验证人;有关跨链消息传递类型,哈希锁定相对局限,仅支持加密资产在双链间的互换,其余三种技术则不做限定。

通过对比技术实现,可以看到区块链互操作性从早期聚焦在解决双链资产互通的场景,提出了如哈希锁定、公证人机制、侧链等技术,随着时间的向前推进与技术的不断铺垫,场景逐渐从双链资产互通到多链间全状态的自由流通,同时中继链这一融合公证人机制与侧链的技术逐渐在新型区块链互操作性平台中显现影响力。

下面单独说说联盟链的互操作性,大家都知道,当前区块链的发展范式分为公有链和联盟链两条路径,两者拥有不同的“价值观”,互操作性存在不同意义。前者由于承载了加密资产,且无准入门槛,主张去中心化,互操作可以实现资产自由流通;后者存在准入门槛,主要承载着联盟间经过共识的数据,因此,联盟链互操作性将会与各组织间的数据状态协同有关。

但当前的区块链互操作性更多聚焦在公有链,对于联盟链互操作性的公开研究与关注相对较少,总结原因,大体包括如下三点:

1. 不同联盟链的技术架构差异较大,各个社区间的交流互动不多,很难做到核心技术的上层统一;

2. 联盟链是许可区块链,若两个独立的许可链间产生跨链交易,则会为双方系统引入安全风险,即如何保证外链请求的交易安全性,如何防范跨链交易攻击,以及如何验证另一个封闭的链上交易状态的有效性,这些问题均需要联盟间在互操作性前达成共识或有双方依赖的第三方组织作为中介,沟通与技术上存在门槛;

3. 联盟链间若需要进行跨链协同,可组成一个联盟后选择统一的联盟链架构。由于存在折中方案,当前联盟链间的互操作性并非刚需。

当然,随着联盟链承载的应用不断丰富,联盟链互操作性同样会带来网络效应,将有利于打通联盟间数据孤岛,重要性不容忽视。而当下的难点不仅停留在技术层面,更多的是缺少上层的协作力量作为推手,导致当前技术的发展与研究相对缓慢。

总之,区块链互操作性的发展经历着各个技术间不断融合扩展,聚焦场景由简到难,理论与实践协同迈进,我们能够看到区块链的网络效应正在显现。但仍需要技术上针对相关组件趋同化设计,如各链提供跨链消息的输入输出口径,构建统一消息格式,设计并统一高效可验证的数据结构等;提高应用层交互的用户体验,当互操作性打破“一链一币”后,将对应用层的多链状态管理提出要求;增进链上与链下现实世界互操作性的认知,互操作性并不等于跨链。最后笔者认为,从业者的持续研究,将会加速技术的不断突破,带来应用的不断迭代与创新,区块链网络效应的规模化未来可期。


刘虹男,中国信通院云计算与大数据研究所工程师。主要研究为区块链技术与相关测试标准。

声明:本文仅代表作者个人观点,不代表作者所在机构和可信区块链推进计划的观点

相关文章