区块链和非区块链领域互操作对象不同,应从技术、语义、应用、治理四个层面思考应用场景应该建立的互操作性。
撰文:曹一新,就职于 HashKey Capital Research
审核:邹传伟,万向区块链首席经济学家
近期,元宇宙概念备受关注,Facebook 创始人扎克伯格接受采访分享了其关于元宇宙的想法及 Facebook 全力支持建设元宇宙的决心。在关于元宇宙特性的描述中,「互操作性」一词再次被提及,并强调需要制定一些标准,帮助开发者和创作者向人们提供「前所未有的互操作」体验,使用户能使用他们的化身、数字产品无缝传送到不同的体验,并与朋友互动,在整个过程中感知不到互联网基建的存在。
这种极为抽象的表达虽给人以遐想,却很难让人理解,更别提信服了。这也是本文试图去讨论「互操作性」一词内涵的初衷之一。
互操作性是经常被区块链领域提及的概念,更耳熟能详的用词是跨链,这两者往往被混同起来,描述两条以上区块链之间的某种交互,尤其是 DeFi 和 NFT 生态迅速发展起来之后。
随着 DeFi 乐高可组合性蕴含的无限潜力被逐渐认可,以及以太坊 DeFi 生态出现外溢现象,跨链成为了一个非常紧俏的需求;而关于 NFT 应用、元宇宙特性的讨论中,也会提及互操作性。本文从讨论「互操作性」的语义场景和内涵出发,抛砖引玉地分析当人们在提跨链或互操作性的时候,真正想表达或期望实现的目标是什么,以及目前行业内在这些目标上走了多远。
互操作性的定义及场景
计算机信息学领域
「互操作性」在非区块链领域早有提及。IEEE 关于计算机字典标准里对互操作性的定义是「两个或多个系统或组件之间交换信息以及对交换后信息使用的能力」。这个定义包含两层递进关系的含义:
-
语法互操作性:指能够进行通讯和交换数据。基本要素包括数据格式标准、通讯协议、接口标准等。
-
语义互操作性:参与互操作系统之间交换的数据能够得到对方正确的处理和使用,也就是说使数据真正成为有用的信息产生有用的结果,并且对有用的界定是达成共识的。
虽然上述定义与国际标准 ISO/IEC 2382-01 信息技术词表 里的定义相比更为凝练和抽象,但后者补充提及了一个特点:用户无需或仅需有限地获得不同系统或组件特点的认知。
就软件而言,在上述定义下的互操作性可用来描述不同程序借助同一套交换格式交换数据、读写相同文件格式以及采用相同协议的能力。用户在使用不同软件(例如各种 PDF 阅读器)的时候更关注的是功能体验,而非实现功能的底层技术模块的差异。
社会经济政治领域
广义上,互操作性是指不同系统和组织机构之间相互合作、协同工作的能力,虽然在技术系统和工程设计方面经常使用,还会考虑影响系统间性能的社会、政治和组织机构因素,且业务过程的互操作性可能产生具有重大影响力的经济效果。
以下是几个具体的例子:
-
医疗设备的「即插即用」互操作性实现与其它设备协同工作能力;
-
医疗数据的「可用不可见」互操作性旨在保护个人隐私的同时提高协同创新能力;
-
电子政务互操作性旨在通过制定数据标准、语义标准来提高跨边界、跨语言的协作能力;
-
近期河南大学生创建的「救命文档」也体现了在大规模紧急事件中跨越信息孤岛,实现全国各地资源调度系统和档案管理系统的互操作能力。
由欧盟委员会背书的 NIFO 就如何建立可操作的数字公共服务提供了具体指导,提出了互操作性包含的四个层面:技术互操作性、语义互操作性、机构互操作性、法律互操作性;另外包括为这四个层面交叉构建的综合公共服务治理层及作为基础支撑的互操作治理层(如图 1 所示)。
图 1. NIFO 提出的互操作层次及其关系示意图
-
技术互操作性指能够连接系统和服务的应用及基础设施,涵盖接口规范、互联服务、数据集成服务、数据呈现和交换以及安全通信协议。
-
语义互操作性指确保交换数据和信息的精确格式和含义在各方之间的交换过程中得到保留和理解,能做到「发送即理解」。
-
机构互操作性指公共行政部门调整其业务流程、职责和期望以实现共同商定和互惠互利的目标的方式,这与在不同系统中进行的业务流程之间的协作关系有关。
-
法律互操作性是为了确保在不同的法律框架、政策和战略下运营的组织能够协同工作。
-
综合公共服务治理层是指为达成上述四种互操作性提供综合公共服务及其运营需要必要的治理组织,达成一致的运营条款和更新管理流程。
-
操作性治理层实现关于上述互操作性框架、制度安排、组织结构、角色和责任、政策、协议以及在国家和欧盟层面确保和监控互操作性的决策过程和治理过程。
总的来说,前两个互操作性沿用了计算机信息学领域对互操作性的定义,NIFO 在此基础上补充强调了应用层和治理层的互操作性。这对在多链并存、应用和治理系统也各自独立的区块链生态实现互操作性具有一定的借鉴意义。
区块链领域互操作性的内涵
在上述基础上反观区块链里的互操作性和跨链,可以认为跨链是将互操作对象从来源区块链系统跨越到目标区块链系统行为的描述,而互操作性是一种涵盖范围更广的表达,既包括基于跨链行为表现出的功能特性,也可以指代非区块链系统(例如 Dapp)之间的交互。明确互操作对象是什么以及互操作系统的类型能够帮助我们更好地了解互操作性的内涵。
互操作对象
信息跨链(e.g. Polkadot、Cosmos)、资产跨链(e.g. WBTC)是目前较为常见的应用案例,但这可能只是区块链领域互操作性展露的冰山一角。区块链和其它系统最大的不同在于区块链上信息能够以一种不可复制(UTXO 和余额等模型)、不可伪造(非对称加密)、不可篡改(共识机制)的方式流转,使它有别于一般信息,成为跨系统共识难度更大、互操作性更复杂的对象类型,不是简单地规范接口、明确数据格式、统一通信协议就可以搞定。区块链使信息能够逐渐被划分成更细粒度的表述:
-
数字资产
-
权属声明
-
域名
-
账户(公私钥对)
-
身份
这些细粒度的表述似乎能很好地作为微观结构单元或相互作用力,组合成数字世界的经济网络和社交系统。所以跨链的对象自然除了大部分案例中看到的信息和资产以外,也可以是权属声明、账户、域名或身份。而理想的互操作性指的应该是:
-
信息在新系统能被使用;
-
资产在新系统保有价值;
-
域名在新系统作为同样的入口被访问;
-
权属声明在新系统同样有效;
-
账户或身份在新系统拥有相同的操作权限、权属声明或声誉等。
将互操作对象放入明确的场景去定义和思考,能帮助用户更清晰地了解各种互操性表述真正想要表达的目标。
互操作系统
建立在互操作系统不仅局限于区块链系统的观点之上,我们观察下目前区块链生态中已然存在的不同层面的互操作性。
-
Nervos 通过对基于密码学的账户进行抽象实现了多种不同系统的账户(包括互联网邮箱账户)都可以操作 CKB 上的状态,从而降低 web3 的用户准入门槛,这可以认为是一种技术互操作性的用例,实现了账户模块的「可插拔」。
-
以太坊 DeFi 应用之间通过调用方法进行的资产兑换和流通实现了语义互操作性——有赖于 ERC20 代币标准,它们对各种 ERC20 代币拥有共识。闪电贷是 DeFi 可组合性的代表性案例,而可组合性的前提是互操作性。
-
拥有不同的价值主张、多种实现方式的 Layer2 系统之间的互操作性可能不仅要从语义层面,更要从应用层面去考虑,Celer Network 在这方面提供了一些对用户友好的解决方案。
-
Polyient Network 提出要通过打造 NFT 领域的声誉系统和报价系统,实现 NFT 的跨链交易,本质上是想实现资产+身份+权属的跨链可用,这可能会牵扯到应用层、治理层的互操作性。
互操作性的进展和风险
目前,区块链 DeFi 生态形成以以太坊为主、多条特色链竞争的格局,DeFi、NFT 生态相继发展起来,并对互操作提出了一些具体的需求,例如可扩展性瓶颈催生的多链结构、资产跨链流动;针对流动性割裂问题的 Layer 2 跨链方案等等。
在互操作对象方面,有关数字资产的互操作标准在同质化资产领域已经颇为成熟,在非同质化资产领域有实现基本功能点的雏形,但未形成针对互操作功能设计的标准共识。对于其它操作对象类型,鲜见相关尝试。
在互操作系统方面,区块链之间、Dapp 之间、Layer 2 之间、以及区块链系统与互联网之间都出现了一些互操作场景,说明生态的连接开始在更大尺度上建立。跨系统的生态应用发展离不开系统间语义互操作性的成熟建立,而应用发展起来后就得考虑更高层级的互操作性问题了。
在如何实现互操作性方面,对于具体的应用场景有诸多案例,特别是资产跨链的解决方案是行业内讨论跨链话题展开较多的一个方向。本文作为引介,暂不作深入探讨。
互操作性建立的过程中,是免不了存在各种攻击向量的,这至少分为两种:一种是互操作系统设计漏洞;一种是实现具体功能过程中的技术漏洞。从闪电贷攻击案例的演化可以发现,将孤立设计而成的系统通过互操作性组合起来可能会导致出现很大的经济漏洞,最近发生的跨链桥攻击事件也暴露了互操作过程中的风险。系统本身的安全性是否会因互操作性而减弱也是值得研究的问题。
此外,在设计互操作协议的时候,也存在适配性的问题,一开始定义好功能的互操作协议可能具备更好的鲁棒性,更容易做安全测试,但不一定能满足未来的需求;具备更多灵活性的协议可能存在许多未知的风险,开发者似乎总是得在各种选择中权衡。
总结与思考
本文从互操作性的定义和场景出发,阐释了 IEEE 和 NIFO 对互操作性的两种定义。基于这一阐释,重新理解区块链领域的互操作性和跨链,指出区块链和非区块链领域互操作对象的不同之处,在于区块链上信息能够以一种不可复制(UTXO 和余额等模型)、不可伪造(非对称加密)、不可篡改(共识机制)的方式流转,使它有别于一般信息,成为跨系统共识难度更大、互操作性更复杂的对象类型,不是简单地规范接口、明确数据格式、统一通信协议就可以搞定。并强调区块链使信息能够逐渐被划分成更细粒度的表述,在思考特定场景的互操作性时,应明确互操作的对象,及互操作系统类型,可以帮助用户更好地理解各种互操作性表述真正想要表达的目标,并从技术、语义、应用、治理这几个层面思考应用场景应该建立的互操作性。最后,本文简要分析了一下当前区块链领域互操作性的进展和风险点。