2019 年是 Cosmos 生态起步的年份。随着 Cosmos Hub 和 IRISnet 在 2019 年上半年上线,「跨链」成为该年度热门概念之一。不过,无论是 Cosmos 最重要、也最值得期待的组件「跨链通讯协议 IBC」,还是另外一个巨型跨链项目 Polkadot,真正的交付期都在 2020 年——真正的「跨链」相关核心技术的发展,应该看向 2020 年。
链闻向读者介绍由总部位于纽约的加密资产研究机构 Digital Asset Research 撰写的关于「区块链互操作性」的专题研究报告,帮助读者更好理解「跨链」这个复杂的技术领域,迎接 2020 年的到来。
随着 Cosmos 在 2019 年上半年上线,以及市场对计划在 2020 年上线的 Polkadot 的密切关注,「跨链」或者「区块链互操作性」是一个热门的领域。区块链互操作性现在是一个讨论挺多,但是同时又有些令人费解、有点神秘的话题。简单来说,「互操作性」源于一个简单的前提,那就是开发出共两个区块链交换信息的方式。时至今日,这个领域的技术非常复杂。
为了说清楚区块链互操作性,我们撰写了本篇文章,目的是对通过中介网络实现互操作性的主要方法做一个概述。这篇文章探讨「互操作性」和「可组合性」在以太坊、Cosmos、Polkadot (波卡链)等场景中的区别,以及为什么这种区别无疑会改变人们对价值创造的看法。
尽管关于「区块链互操作性」的术语已在不同上下文中都有所使用,但我们只是将其定义为「交换信息的能力」,特别是当它涉及到从一个加密货币网络到另一个加密货币网络的各类资产的所有权时。
根据定义,所有区块链共享一个公共的数据结构来组织和达成所有权变更的共识。即使区块链的实现方式千差万别,比如比特币和以太坊就各有不同,但都会使用 Merkle 树将事务按时间间隔(即区块),以类似的方式链接起来,当这些区块链接在一起时,就形成了完整的事务历史——区块链。尽管在过去五年里,「区块链」这个词已经变成了一个语义上的噩梦,但它的词源和技术本质仍然与比特币、以太坊和大多数介乎二者之间的加密货币网络相同。
然而,尽管有这些相似之处,以太坊智能合约并没有可靠的机制来验证比特币事务是否得到充分确认,反之亦然。因此,我们今天存在大量的区块链网络,尽管基础上说,它们拥有相同的共识体系,但是由于缺乏用于传输这些证明的健壮的传输层,它们被孤立了起来。这一认识催生出后来被称为区块链互操作性的解决方案的发展,特别是在过去三年中,其复杂性级别各不相同。
如今,区块链互操作性这个术语被用来描述一套同时进行、但又完全不同的技术;从去中心化交易所到联合侧链 (federated sidechains),再到像 Cosmos 和 Polkadot 这样的中介网络。这导致了人们对什么是区块链互操作性,以及如何实现互操作性,理解起来非常含混不清。
2017 年底出现了数十个项目,它们利用了这个术语的复杂性,推出了与在不同加密货币网络之间桥接信息压根无关的解决方案和代币,这令局面更加混乱。
在 DAR,我们推出了「互操作性中介指数」(Interoperability Intermediary Index, DII) 希望更好地追踪跨链类项目代币的表现,比较这类投资主题标的的估值情况。该指数显示,在 2017 年的投机泡沫之后,互操作性解决方案的代币,包括 ICX、AION、WAN 和 ATOM 的价格大幅下降:
蓝色为智能合约平台指数,红色为互操作性中介指数
除了几乎所有「互操作性中介指数」成分代币都面临一些自身的问题之外,我们也将这种走势下滑归结于几个原因:互操作性作为一个主题,其复杂性与日俱增;这种技术缺乏相关用例;以及在 2018 年熊市期间对代币化解决方案的怀疑不断增加。
尽管代币化互操作性解决方案的价格表现令人失望,这降低了主流对该技术的整体兴趣,但随着行业的成熟,我们仍会继续将互操作性视为重要的发展方向。关于跨链的投资主题的核心是:当不同的资产和应用程序被视为一个整体向前发展时,通过加密货币网络交换信息和资产的能力,将使市场的力量可以更有效地发挥作用。
尽管加密货币市场通常是集成的,但是大多数去中心化应用程序缺乏有意义的用途,再加上难以理解的技术被人无休止的炒作,这最终会对市场效率造成障碍。我们相信,不断增强的连通性,尤其是比特币和以太坊之间的连通性,可以增加有用的应用程序的使用量,让「雾件」(Vaporware,指由开发者在产品开发期间或者之前公布消息,而因此可能不会发布的产品,多数是指某些软件)更容易被发现。本质上,互操作性可以作为项目成功与否的催化剂,我们将其视为值得追求的自由市场的基元。
我们认为,以下潜在的好处促使开发人员和研究人员开始探索区块链互操作性:
市场效率
上文已经描述关于 DApp 的「无形之手」。用户和开发人员能够跨区块链选择特定的应用程序,并让市场效率挑战所有已部署应用程序的产品市场适应性。
可伸缩性
互操作性使得价值的传递能够跨多个网络并行化,而不是使用一个单一的区块链来处理和存储单个线程上的所有事务。智能合约的计算也可以并行化,从而增加某些应用程序的潜在功能。
功能专业化
将服务、去中心化应用程序或金融产品的功能外包,或交给到高度专业化的网络的能力。
跨链预言机和身份体系
跨区块链验证事件和身份的能力,以及一个区块链中的事件触发位于不同区块链中的合约执行的能力。
资产留置
一个区块链中的合约在另一个链中保证或担保余额的能力。这些余额之后可以被合约用作金融衍生品、杠杆产品、破产收回、留置权以及任何可能需要抵押或保证金的用例的抵押品。
Generalized Mining 与治理
互操作性可以使一个网络的利益相关者参与不同网络的事务验证和治理。类似地,它使利益相关者能够作为权益池进行操作,并在利用该机制的网络上战略性地部署其权益。
实现区块链互操作性的多种方法
虽然区块链互操作性似乎是这个行业所能提供的最尖端的「元」主题之一,但这个概念本身和比特币差不多是前后脚问世的。
事实上,在并行运行的多个区块链之间桥接信息的想法(即侧链的概念)可以追溯到 2010 年,当时提出了 BitDNS,即基于比特币的域名服务(该数据库将人类可读的 URL 转换为数字 IP 地址)。尽管 BitDNS 从未在比特币中实现过,但它开启了区块链互操作性的初步讨论,并在接下来的几年中催生了侧链的潜在用例。
如今,在引入侧链概念九年之后,促进区块链互操作性的可用实现仍然处于起步阶段。从我们的角度来看,目前的区块链互操作性可以分为四个大类:
分别为:侧链 /Relayer、链下原子互换、链上原子互换、网络间互操作性
虽然上面图中描述的四种非常通用的方法都有各自的特点,但是最终的目标是相同的:从一个区块链链中获取资产 / 信息,验证它的存在和一些先决条件(例如时间锁),然后在另一个链中「合成地」重构它。
如果你以前读过关于区块链互操作性的内容,那么你可能已经看到过原子 (atomic) 这个词的使用,比如原子交换。在区块链互操作性的上下文中,这个术语要么被用来描述资产交换(例如 swap)的所有底层操作将确定会成功执行,要么则说的是根本没有发生任何操作。在没有第三方的情况下,原子性是必需的,因为如果交换的一方失败而另一方成功,则其中一方将受到不对等的损害。
无需信任和非托管系统尤其难以开发,因为它们需要设计一个单一的系统来满足完全不同的区块链,比如比特币和以太坊。这意味着必须对具体的数据结构、数字签名和共识最终性进行翻译和概括,而这并非易事。这导致了几个互操作性中介体的创建,它们解决这个问题的方法是建立一个代币化的独立区块链,拥有自己的共识引擎和智能合约功能,从而桥接跨区块链的资产流。
为了更好地理解通过中介实现互操作性,可以考虑以下假设场景:Alice 将部分储蓄以比特币的形式存储,希望从运行在以太坊网络之上的银行那里获得贷款。为了评估这笔贷款的风险,银行需要审计 Alice 的财务记录,并持有抵押品,以防她没能按期偿付。通过一个互操作中介体,银行在比特币上创建了一个智能合约(多重签名),在贷款期间可有效锁定 Alice 的抵押品。在中介体的帮助下,该合约可用编程方式将抵押品返还给 Alice,或者在她未能及时偿付的情况下将抵押品转移到银行。通过这种方式,Alice 可以选择用哪个网络存储她的抵押品,但仍然可以从其他网络提供的服务中获益。
在 2016 年那会儿,人们认为使用中介体来中继跨链通信,可以简化许多阻碍完全互操作区块链的摩擦。由于不同的网络需要不同的确认时间(对于有技术上有点悟性的人来说,这就是经济最终性阈值),所以人们认为,中介体的存在可以使加密货币网络之间的信息流动更简单,而且在重整 (reorgs) 或共识失败的情况下可能更安全。
尽管从更高阶的角度来看这一点没错,但是在过去的几年来,事实证明,添加的中介层在构建和保护方面极具挑战性。
可组合性 vs. 互操作性
随着互操作性中介体发展成为成熟的智能合约平台,它们开始在共识引擎、虚拟机和网络协议中面临与以太坊等项目同样的实现挑战。
由于互操作性中介层和智能合约平台之间的界限随着实现问题的出现而变得模糊,因此必须对「互操作性」和「可组合性」做出明确的区分,才能有效评估当前连接区块链的方法。虽然这些术语经常可以互换使用,但总结一下它们之间的差异无疑会改变人们对价值创造的看法,特别是在以太坊、Cosmos 和 Polkadot 等智能合约网络环境下。
简单来说,「可组合性」(composability)是在单一环境中、根据特定需求定义(和更改)应用程序的能力。例如,在云计算中,可组合性是 IT 基础设施的一种流行方法,因为它使得开发人员能在其应用程序发展时选择和扩展云服务。通过 AWS 这样的平台,系统管理员不需要本地获取、配置和维护专门的硬件来支持其业务。
相反,系统管理员可以选择计算、存储、网络工具和身份解决方案作为独立的、模块化的服务,并根据需要在相同的环境中更改它们。可组合性是智能合约平台的关键,因为它们试图向 DApp 开发人员模仿这些类似的好处。另一方面,「互操作性」(interoperability)则类似于系统在不同环境(如 AWS 和 Azure,或比特币和以太坊)之间获取服务和交换信息的能力。
为了更好地了解这种差异,让我们更仔细地观察一下以太坊上的可组合性。
以太坊通过一个用于图灵完备计算的单一验证环境——以太坊虚拟机 (EVM) 来追求可组合性。通过这种做法,以太坊 DApp 至少在理论上能够利用网络中现有的服务,并且像 AWS 一样,将特定的功能,例如稳定币支付、身份解决方案、协议治理解决方案或去中心化存储,统统外包出去。
虽然可以将其视为一种互操作性类型,但它仅限于单一环境,与桥接外生环境或加密货币网络无关。因此,在这种情况下使用「互操作性」这个说法可能会产生严重的误导,因为它与该术语的词源相抵触。相反,用「使用可组合性」来描述更合适,因为它描述了相同环境中的可互操作应用程序之间的交互。
当然,单一系统中的服务专门化是有益的,因为这使得开发人员能专注于其应用程序的核心价值主张,而不必从头开始构建其 DApp 的所有组件。假设有个叫 dUber (去中心化优步)的拼车应用。通过像以太坊这样的平台,dUber 的开发人员可以使用现有的网络解决方案来外包位置服务、身份管理、支付技术和公司治理。
虽然这听起来很好,但在实践中很难执行。除了能够扩展应用程序这一明显的挑战之外,以太坊上可组合性的最大障碍之一在于实用代币模型的兴起,该模型要求在取得 DApp 原生代币所有权的情况下,才能获得它的服务。虽然某些应用程序可能需要相应的代币来进行治理或发挥准股权的作用,但将其简单地用作看门人无疑会破坏以太坊上的可组合性。与能够通过 ETH 支付各种专门服务的费用不同,应用程序、它的开发人员或用户将不得不处理额外的摩擦。
这恢复了对去中心化交易所 (DEX) 的需求,以促进对特定代币的程序化访问,最终加剧了区块链互操作性的噩梦。尽管有数十个项目在探索去中心化交易所业务,但绝大多数仍面临着根本性的挑战,比如如何降低抢先交易和合谋欺诈的风险。即使未来的 DEX 将有望解决这些问题,但在使用专门服务之前获取代币流动性的挑战仍然存在。因此,需要获得某种特定的资产才能通过应用程序获得专业化的现状,对以太坊的可组合性产生了负面影响。
以太坊修改过的路线图 ETH2.0 旨在缓解其中的一些摩擦,因为它的最终目标是支持可组合的体系结构,每个特定服务或 DApp 都可以拥有自己的独立区块链或分片。区块链分片是以太坊实现可伸缩性的主要方法,因为它将网络划分为许多独立的分片,从而支持并行计算。如果成功实现,分片可以提高以太坊上的可伸缩性和可组合性。
在这个新的路线图中,信标链将信息转发到特定的分片,这些分片可能代表独立的 DApp 和 / 或专门的加密资产。这可能会减少实用代币所需要的高度功能性、程序化和流动性的去中心化交易所的需求,因为锁定在信标链中的资产可以在专门的分片中以合成资产的形式创建出来。不过,以太坊的底层至少还需要几年时间才能部署这些技术。
Polkadot:一个可组合性的解决方案
Gavin Wood 是以太坊的主要实现者,也是 Polkadot 的创始人,他是最早将去中心化应用程序高度可组合性的框架概念完整地提出来的研究人员之一。Gavin Wood 在 2016 年的 Polkadot 白皮书中引入了一个相对简单的架构,试图规避以太坊在围绕分片、超级立方体模型(hypercubes) 和 Casper 的研究变得越来越复杂时所面临的实现挑战。作为一名活跃的以太坊开发人员,Gavin Wood 多年来在实现以太坊的重新设计和更改方面拥有第一手的经验。
他的解决方案是通过允许相同区块链的多个「迭代」(即平行链的方案),在彼此之间实现互操作,将 Polkadot 开发为可选方案,从而最大化可组合性。
自从引入 Polkadot 以来,我们一直密切关注着 Polkadot 和以太坊这两个项目路线图的演变,并且饶有兴味地观察到,随着时间的推移,尤其是在以太坊修改了路线图之后,Polkadot 和以太坊的总体架构是如何逐渐趋同的。
就像 Polkadot 的中继链一样,以太坊的信标链将充当一个枢纽,将多个分片或平行链连接在一起。这两个枢纽还负责验证事务、中继消息,并作为随机预言机在权益证明下选择区块验证器。而 Polkadot 似乎也从以太网那里借用了许多理念。2018 年 11 月,Polkadot 发布了其旗舰共识引擎 GRANDPA 的详细信息,当中很多内容体现了以太坊在 Casper 项目上的主要成果。
有了分片、中继枢纽和基于 Casper 的共识,Polkadot 和以太坊的理想版本无疑是类似的。然而,尽管存在这些架构上的相似之处,Polkadot 还是从头开始构建,以促进其可组合性。而要在以太坊现有的应用程序和代币化服务生态系统上实现可组合性,这将需要大量的工程和协调工作。
为了最大化可组合性,Polkadot 创建了 Substrate,这是一个用于创建与 Polkadot 兼容的平行链的框架。通过这个框架,不必从头构建所有的网络和共识代码,类似于 ERC20 代币可以利用以太坊现有的网络基础设施,而不必构建自己的基础层一样。不同之处在于,Substrate 已经实现了大部分功能,所以在上面搭建的感觉就像每个 ERC 代币都有自己独立的网络,具有独特的功能和验证器集。
互操作性和可组合性之间的区别在这里尤其重要,因为与普遍的看法相反,Polkadot 并不是为桥接不同的加密货币网络(如比特币和以太坊)而设计的。相反,该团队致力于使基于 Substrate 的链完全可组合,但只能在它们之间互操作。
尽管他们确实计划建立一套桥接合约,能够将 Polkadot 连接到其他网络,但不可否认的是,他们的主要焦点放在 Substrate 上。因此,Polkadot 将需要开发人员有机地迁移到该平台,并开始在该平台上构建应用程序;这是以太坊花了三年时间才实现的。
尽管像 Aragon 这样的数据服务提供商曾考虑在 Polkadot 上建立二级网络(最终,Aragon 选择了 Cosmos 生态),但达到与以太坊相称的采用率和价值积累,很可能需要很长时间。
从长远来看,Polkadot 对可组合性的关注可能会令其获得回报,但该项目在中短期吸引开发人员时,可能很难捍卫其估值,考虑到其 ICO 资金在 Parity 多重签名出现漏洞后仍然处在锁定状态,情况更是如此。尽管如此,追踪 Polkadot 的研究进展还是很有趣的。
Cosmos:一个互操作性的解决方案
Cosmos 在互操作性和可组合性方面采取了更务实的方法,它的堆栈基于一套现有的技术。虽然整个项目仍很复杂,但它的基础是基于运行在 Tendermint 上的以太坊虚拟机 (EVM) 的互联实例,即一个 pBFT 共识引擎。共识设计是通过中介机实现互操作性的最重要元素之一,Cosmos 团队从 2014 年起就开始在 Tendermint 上工作。
尽管以太坊和 Cosmos 在关键实现上存在差异,比如不同的数据结构、序列化格式和数字签名算法,鉴于 EVM 作为业界最主要的虚拟机的地位,Cosmos 选择使用 EVM 能带来更好的互操作性,并有利于支持基础设施。
Tendermint 和 EVM 的简单结合,也使 Cosmos 能够利用现有的以太坊开发工具和开源应用的生态系统,但仍然可以通过分片来改善其可组合性、互操作性和可伸缩性。
Cosmos 软件开发工具包 (SDK) 相当于 Polkadot 上的 Substrate 框架。与 Substrate 一样,Cosmos SDK 的目的是通过将共识和网络代码标准化,促进连接到 Cosmos 枢纽的各网络的可组合性。SDK 被设计为服务于一个生态系统,在这个生态系统中,各种开源模块(如隐私插件或用户身份解决方案)可以根据需要添加到应用程序中。该系统的一个必不可少的组成部分是一个应用程序安全模型,用于描述应用程序的各个模块安全权限。
这种权限是通过对象功能 (ocaps) 实现的。简单来说 ocaps 可以以编程方式防止恶意或有缺陷的模块更改特定状态,比如准备金余额或合约所有权。
我们发现,这种实现可组合性和应用程序安全性的方法非常有趣,因为在过去几年里,以太坊上高度复杂的智能合约所具有的不可预测性,引发了大量攻击。然而,opcaps 并不是万能的,因为开发人员仍然需要适当地定义模块之间的交互。
除了可组合性之外,Cosmos 还概述了其网络将如何处理 Cosmos Hub 和外生网络之间的互操作性。他们为解决互操作性问题提出的方案包括在 Cosmos Hub 和以太坊等外生网络之间引入额外的中介区块链,即 Peg Zone (链闻注:亦被翻译为「挂钩分区」)。作为中介体,Peg Zone 可以为工作证明区块链提供经济最终性(即区块的不可逆性)的概率保证。
例如,当一个事务被包含在以太坊区块中以期桥接到 Cosmos 时,Peg Zone 在确认有效之前,会应用 100 个区块确认作为最终性阈值。这种最终性检查点降低了在区块链重组或 51% 攻击事件中 peg 链上事务被恢复的概率。这种中介体的一个明显好处在于,它简化了对交叉链资产的托管。所有 Cosmos 用户通过一个集中的多重签名智能合约钱包共享余额,从而促进了流动性的流入和流出。
其他项目,包括 Polkadot,也尝试了类似的架构。最近,Loom 网络利用了基于以太坊的侧链 Plasma,为以太坊用户提供类似的中介。考虑到通过中介实现互操作性被证明是件极具挑战性的任务,我们期望这种「Peggy」的分层结构能够成为通过中介体实现跨链互操作性的蓝图。
Peggy:通过中介体实现互操作性的蓝图
外部的区块链和 Peg Zone 将通过两种主要协议连接到 Cosmos 枢纽,分别是「区块链间通讯协议,或跨链通讯协议」 (Inter-Blockchain Communication, IBC) 和「应用程序区块链接口」(Application Blockchain Interface, ABCI) 协议。IBC 协议本质上是一个消息传递系统,追踪所有连接区域的状态或总余额。由于任何通信都需要验证,Cosmos (尤其是 Tendermint)的另一个重要方面是 ABCI 协议,它作为一个网络套接协议运行,将 Tendermint 共识引擎与平台上的各种应用程序连接起来,通过这个接口,可以让应用层和底线的共识层及网络层进行通信对话。
在 Peggy 的情况下,IBC 控制用户资金在以太坊之间的流入和流出,而 ABCI 处理关于这些交易有效性的共识。可以通过这个示例了解该机制:Alice 在 Cosmos 中的 Ethermint Zone (链闻注,即以太坊的一条代理链,通过它可以实现以太坊与 Cosmos 链的连接)有资金,并且希望向以太坊发送代币。通过 IBC,Alice 可以将这些资金从她所在的 Zone 转到 Peggy 的 Peg Zone。与以太坊的椭圆曲线数字签名算法 (ECDSA) 不同,Cosmos 中的签名是使用爱德华曲线数字签名算法 (EdDSA) 来完成的,因此 ABCI 会将签名翻译成以太坊可以理解和验证的语言。
Peggy 还依赖于中继器网络,由中继器将成批的交易和随附的翻译签名发送到充当保管人的以太坊智能合约。一旦发布,Cosmos 用户就可以在以太坊网络中进行交易。
见证人 (Witnesses) 是在以太坊上运行完整节点的 Cosmos 用户,他们负责将以太坊中发生的状态变化通知 Peggy。每隔 100 个区块生成间隔,就会有目击者证明一系列被发送回 Peggy 的以太坊事务已经终结。通过中继器和目击者,Cosmos 可以提供以太坊的完全双向性。
我们怀疑这种通用模式能否在通过中介的互操作性领域得到发展,像 Peggy 这类解决方案的全面部署仍然需要时间。在这一点上,Cosmos 的 IBC 协议仍然需要改进,根据我们对 Peggy 代码库的了解,至少还要一年才能实现双向性。尽管如此,Cosmos 已经接近于发布一个基于 Peggy、从以太坊到 Cosmos 的单向桥梁,观察人们如何使用它,应该会很有意思。
责任编辑;zl
评论
查看更多