Fork me on GitHub

构建万物可信的基石: 解密区块链跨链技术

1.区块链跨链技术诞生背景及发展历程
1.1 什么是跨链?
区块链技术经过10来年演进,已经被认为是可以参与未来可信社会构建的重要基础设施。但是现实的社会中包括许多行业和不同的经济领域。把整个现实世界中的各个行业都套用区块链是不现实的,也是不合适的。不同行业、不同经济领域的商品可以通过市场实现价值交换。每个区块链系统都是一个独立的价值经济体系。区块链跨链技术是连接独立区块链的枢纽,承载着不同价值体系的区块链之间的交换功能。价格是交换货物的前提,价格由商品本身的价值决定,受供需关系的影响,供需关系又建立在市场之上。为了实现不同区块链上的价值交换,区块链通过跨链为每个独立区块链中的价值交易市场提供跨链契约服务。每个区块链是一个独立的账本,两个不同的区块链对应两个不同的独立账本,两个账本之间没有关联关系。跨链这个技术,打通不同账本之间的障碍,允许价值跨越不同区块链进行流转。本质上,价值不能在账间转移。但是对于一个特定的用户来说,一个区块链中存储的价值可以转化为另一个区块链价值,从而实现了价值的循环。
1.2 诞生的背景及发展历程
随着2008年比特币诞生以来,区块链技术已经有了非常广泛的发展,截止目前世界各国至少有上千种区块链项目。区块链给人们提供了解决数据孤岛,传递信任价值等能力,但是一个个不同生态的区块链项目建立之后,人们发现这些区块链又变成了新的数据孤岛。不同的区块链基于不同的共识算法,数据结构,安全算法,账本类型导致其不存在互通的能力。这时候不可避免的会提出一个新的问题:链与链之间怎么进行价值交换?跨链互通后能否在无第三方的情况下继续维持资产的原子交换,并且保证数据的一致性及全流程可信呢?那为了解决上面碰到的问题,跨链技术就应运而生了。
首先回顾下区块链跨链技术发展历史,以及其发展的几个重要阶段。从技术上来说跨链主要包括下面三种模式,哈希锁定技术,公证人技术以及中继链。这几种技术的主要发展历史如下图1所示。

61.png

                                    图1 跨链技术发展历史年表

2008年Nakamoto发表了《Bitcoin:a peer-to-peer electronic cash system》报告,通常被当做区块链技术发展的起源事件,从此在相当长的一段历史时期,区块链都是基于单链发展的。慢慢的,单链出现多种形态和类型,同时出现不少受限于出块时间,区块大小限制及无法用智能合约解决的实际问题。在2012年瑞波实验室提出了一个叫做InterLedger的协议来解决不同区块链系统之间交互和协作问题,Interledger作为最初公证人机制的代表。2013年5月,Herlihy在BitcoinTalk论坛上提出atomic swap这一概念,也就是针对跨链交易过程中,其子交易要么同时发生,要么不发生,不会有第三种状态存在。这也就演进成了一种主要跨链技术,hash锁定。2014年10月,BlockStream首次提出了侧链的概念,利用双向锚定机制实现加密资产按照某种汇率在主链和侧链之间转移,侧链是首个产生较大影响力的跨链技术。2015年,比特币提出闪电网络,利用哈希时间锁定技术,通过链下交易渠道,提高其交易速率。2016年,Vitalik发表了区块链互操作相关报告,对互操作问题进行了深入的分析。2017年,Cosmos和Polkadot提出了跨链平台的方案,通过其平台支持兼容所有区块链应用。
2. 跨链的目的及相关名词解释
2.1 目的
区块链的跨链技术是区块链实现互联互通,提高其可扩展性的重要技术手段。跨链的目的以及想要解决的问题主要包括下面几点:
突破公链目前性能和功能瓶颈
通过上面跨链演进的历史不难看出,整个跨链出现最早的原因就是为了解决比特币,或者其它涉及代币的价值交换以及流通的问题。区块链的可扩展性三难题法则表明,其只能兼顾去中心性,可扩展性和安全性的其中两项。并且随着技术的发展,其交易速度和性能已经很难满足当前的需求,尽管诸如EOS等项目称其TPS可达百万级,但是都是通过部分中心化节点进行验证,跨链可以为其架构提供更优化的选择和更高的可扩展性。
实现不同区块链间资产的转移
单一的区块链系统无法获取外部数据,使不同链之间或者链外可信数据上链,但是随着技术的发展,场景越来越多的需要链间互操作的能力。虽然说可以通过第三方部分平台来完成一定交互,但是又会引入新的中心化节点,带来新的不可信及安全性问题,跨链希望的是通过技术而不是机构或人来提供可信,可靠和高效的保障。这里需要的跨链互操作场景包括但不限于跨链支付结算,去中心化交易所,跨链信息交互等。
实现区块链上链资产的冻结锁定
在一些金融场景中需要基于特定链上的信息对某些链上的数据提供冻结锁定的能力,同时还可以设定某个资产的锁定条件和其解锁条件也与其他链的事件或者行为进行关联;
读取和验证其他链的状态或值.
不同类型的联盟链在不同生态下构建起来,很多场景下需要在某些联盟链中读取数据用于自己当前的链中,例如,司法应用中跨链的可信取证。或在当前区块链上部署的智能合约,需要依赖于其他链的信息和数据才可以触发其执行的条件,跨链读在类似的场景中具有典型应用价值;
2.2相关名词解释
分布式账本技术
分布式账本系统是一种只做附加操作的,特殊类型分布式数据库系统,适用于不可信的环境中使用。分布式账本技术允许出现拜占庭错误,包括节点崩溃,或者无法访问,网络延迟或者节点的恶意行为存在。在分布式账本系统中,新的数据通过事务的方式附加到每个节点的本地副本,并通过一定加密机制,保障账本中的数据不能被随意删除或更改。
为了在分布式账本系统中达到数据在各个节点中的一致性,每个分布式账本系统都会使用共识机制。共识机制是在分布式账本的不同节点之间协商其当前账本有效状态的算法。由于分布式系统中要达到共识,安全以及一致性方面的一些权衡,共识要么达到最终一致性,要么达到概率的最终一致性。如果所有的节点都能成功落块,并且都存储同样的账本副本,就说明系统达到了最终一致性。
通常来说,我们基于分布式账本层次结构上不同设计把它分成两类:公有链和联盟链。在公有链中,任何人都可以加入分布式账本系统,拥有对分布式账本的的读写权限。相反,联盟链的分布式账本设计将节点排除在操作(例如,事务验证、加入分布式分类帐)之外,因为它们使用权限模型。为了在联盟链中加强易用性,性能等充分权衡了分布式系统相关的特性,使得这种许可模型强烈影响了共识机制的适用性,例如:公有链设计主要采用仅达到概率最终性的共识机制。相比之下,大多数联盟链设计的共识机制要求完全最终一致性,因此,不分叉或只分叉短时间,导致只有有限数量的节点纳入共识发现。
智能合约
分布式账本的设计支持了自定义软件的部署和执行,这种自定义的程序被叫做智能合约。智能合约允许程序代码中通过定义规范的表达式来进行触发交易。最初,智能合约仅限于解锁存储在分布式账本上的资产(例如,使用hash锁,时间锁,和多重签名)。为了增加开发人员的能动性来实现更富有表达力的智能合约,开发了一个图灵完备的智能合约的执行环境。今天,智能合约可以存储资产,一旦满足合约约定的条件,就可以进行交易。这些条件与存储在统一分布式账本中的数据及来自外部(链下)的数据有关。智能合约对于实现不同分布式账本之间的原子通信也至关重要,从而实现跨链的互操作能力。
跨链技术
分布式账本之前的互操作性是指它从外部系统检索数据或与外部系统交换数据的能力。跨链系统通过实现不同分布式账本与外部系统之间实现数据交换,帮助实现互操作性的能力。通过与外部系统的数据交换可以提高分布式账本的灵活性,克服本身限制所带来的性能问题,并提高分布式账本的安全性。跨链组件的实现包含几种关键技术,例如哈希锁定,公证人,侧链等,并且基于这些技术抽象成了一些实现模式,这些模式是对指定功能的抽象描述。
3. 跨链的几种关键技术
3.1 跨链技术存在的难点
目前,实现跨链技术面临的主要难点有如下 4 点。
如何确保跨链交易的原子性
跨链交易原子性保证是跨链互操作的一个重点,一笔跨链交易在发起之后只有成功或是失败两种状态,不能停留在任何中间态,但是整个流程是由多个不同区块链交易组成,分别运行在不同的区块链系统中,彼此都是独立的。原子性就是保证在这一笔跨链交易执行成功后,其后续跨链交易或费跨链交易都能执行成功,如果失败的话,当前交易可以回滚或是撤销,不影响后续交易,整个跨链系统要保证一致性。
如何用分布式方式验证不同链的结果和状态
跨链体系对于交易结果的验证贯穿于整个跨链的流程中,主要包含两个方面,一是发起跨链交易时写入账本并满足最终确定性和真实性,另一种是在跨链交互过程中,跨链的双方可以验证彼此交易来源,真实性,合法性和有效性。区块链需要在数学及逻辑上保证其安全可靠,至少也是全流程可信及可追溯,单个区块链作为一个封闭的系统如何确认另一条链上的交易合法性是跨链的一个难点。
如何保证互操作的链资产总和不变且独立安全
跨链操作中一个很重要的点就是保证整个跨链交易结束后不同链之间的全局事务一致性,本质上来讲,在这种资产交互场景,跨链操作也没有让这两条链进行实质性的交换,因此这种交换不会影响单个链的资产总量。在资产转移中,需要减少某个链上面的资产,相应的在对应链上增加资产,这种转移使各条链的资产发生了变化,因此要保障总和,需要保障跨链交易的原子性,要么同时记账,要么都不去记账。还要考虑的资产转移过程中的安全性,如何验证资产转移过程是没有被篡改的,中间流程是不是可以被审计,安全问题是关系到跨链网络的一个非常重要的问题,也就是将跨链流程进行可信闭环。
4)如何实现一个可信的跨链信息路由
跨链系统交互的过程需要跨链发起方A将其跨链交易发给链B,对于A如何找到B这个过程也是业界正在完善的区块链路由系统,提供统一标准协议,支持各个链的注册查询能力
5)如何实现一个混合跨链平台
目前,业界已经有一些跨链项目在研究中,例如Cosmos、Polkadot 等项目。目前的 跨链研究仍处于初期阶段,要达到为真正的商业应用 提供一个基于同构和异构的适用于各种混合场景的互操作平台也是一个需要解决的问题。
3.2 跨链涉及的关键技术
区块链之间的价值分配存在天然的障碍。跨链是一个复杂的过程。它不仅要求区块链中的节点具有单独的验证能力,而且要求去中心化的输入,以及区块链外部信息的获取和验证。目前,跨链技术主要包括:公证方案、侧链/中继和哈希锁定。
公证人
引入一方或多方可信实体做信用背书的跨链机制都称为公证人机制,公证人机制是技术上可实现的、最简单的跨链机制。在公证模式下,一个受信任的个人或组被用来向区块链声明另一个区块链发生了一些事情,或确保来源正确。这些组既可以自动侦听和响应事件,也可以在请求时侦听和响应事件。假设Alice和Bob不能相互信任,那么Alice和Bob都可以信任的第三方就是公证人的中间人。这样就建立了Alice和Bob之间的间接信任机制。代表办法是Interledger,它本身不是区块链系统,不寻求任何共识。它提供了一个顶级的加密托管系统,称为“连接器”,借助这个中介,允许资金在不同区块链系统之间流动。
侧链/中继
BlockStream 在 2014 年发表了侧链白皮书,定义了侧链是一条能够验证其他区块链数据的链。侧链不是专门指某一条区块链,而是指符合侧链协议的所有区块链,是相对于比特币主链的概念。侧链协议是允许比特币安全传输的协议。从比特币主链到其他区块链,并且可以安全地从其他区块链转回比特币主链。侧链协议的目的是实现双向挂钩,以便比特币可以传输。在主链和侧链之间。侧链协议意味着比特币不仅可以在比特币区块链上流通,也可以在其他区块链上流通。侧链/中继的本质特征是关注不同区块链之间达成一致共识。一般而言,单一侧链模式下,主链不知道侧链的存在,但侧链必须知道主链的存在;中继模式下,多链链不知道中继的存在,但中继必须知道多链的存在。
哈希锁定
哈希锁定是一种依托于哈希函数的单向性与低碰撞性,同时利用区块链中交易可以延时执行的特点而产生的机制。哈希锁定是通过对不同区块链之间互操作设置不同的触发器,通常是公开随机数的哈希值,它起源于比特币的闪电网络,其关键技术是RSMC(可撤销序列到期合同)和HTLC(哈希时间锁定合同)。有下面这么一个场景,Alice和Bob可以达成一个协议:该协议将锁定Alice BTC。在T时刻之前,如果Bob能够向Alice显示一个合适的R,使R的哈希值等于之前约定的值H(R), Bob就可以得到这个BTC;如果在T时刻Bob不能提供正确的R然后这个BTC会自动解冻并返还给Alice。使用哈希锁定可以实现跨链资产的交换,但不能实现跨链资产的转移,也不能实现跨链合同,其应用场景比较有限。
4. 跨链三种技术模型
手动资产交换
手动资产交换模型是最简单的跨链技术模式。手动资产交换模型遵循典型的财务交易生命周期:结算、订单匹配、清理。
第一阶段,A使用某种秘密(例如,哈希值的预映像、账户的私钥)锁定相应的分布式账簿上的资产,从而结算新的资产交换订单;
第二阶段, A必须找到对应的交易伙伴B,最终就各自订单的资产汇率达成一致(如32.5 Ether赠送1 Bitcoin),在人工资产交换模型中,这种订单匹配是在链下进行的,例如:由第三方或通过个人互动。A和B同意交换后,B将资产锁定在对应的区块链账本上。
第三阶段,订单清零,实际资产交换发生。
因此,用户A和用户B分别交换自己的秘密,解锁被锁定的资产。手动资产交换模型存在一定缺陷,只能用于资产交换(不同于其他模式),通常手动资产交换模型不采用自动订单匹配,不需要制品,因为资产交换可以完全基于当事人的个人协议。然而,手动资产交换模型容易受到欺诈。如果A先收到B的机密,而没有机制来反锁A的机密,那么A可以利用B的机密来解锁B的资产,而不需要将自己的资产转移给B,A将不能正确完成交换。为了防止交易所伙伴进行可能导致财务损失的欺诈活动,原子性对资产交换至关重要。
公证人模式
在公证人模式中,由可信的第三方建立不同区块链之间的连接。公证人方案提供基础设施和相关服务以利于资产转移或类似行为(例如,执行智能合同)。在对区块链执行操作之前,公证人必须首先同意某个操作(例如,交易承诺)在另一个已区块链上执行。例如,加密货币交换的情况,公证员在向区块链B开出相应的交易之前,必须首先验证区块链A的交易是否成功完成,这样,区块链之间的数据交换完全由公证员管理。公证方案采用集中式架构实现跨链互操作。
公证模式可以对应一个公证员(集中公证计划或集中交换),也可以对应一个公证联盟(分布式公证节点)。单个公证员可以设置并操作每个连接的分布式账本节点。例如,当公证员决定将资产从比特币转移至Ethereum时,公证员会设置比特币和Ethereum节点,管理两个已分发账本的交易接收和发行。公证员单独确认事件是否发生(如交易接收),并触发相应的操作,为了使公证员对事件的确认民主化,增加透明度,可信第三方通常共享例如分布式私钥或使用多签名钱包。只有当一定数量的公证员确认该事件(例如,锁定分布式账本A上的资产)时,相应的操作才会执行(例如,解锁分布式账本B上的资产)。
侧链中继模式
侧链/中继,一般是连接主链的下级分布式账本,如Bitcoin、Ethereum等。侧链在技术上独立于主链,因此,可以有自己的共识机制等。最初,开发侧链是为了通过资产转移增强现有分布式账本的可扩展性。侧链可以从主链读取和验证数据,例如,将资产从主链转移到侧链,在这种资产转移中,若干资产被锁在主链条上;资产锁定由目标侧链的验证机制确认,最终解锁(或生成)相应数量的本机token。为了能够将资产转移回主链或另一侧链,主链还必须能够验证中继上的数据。
混合解决方案
除了单一的跨链模式,也存在混合解决方案,它结合了前面解释的几种模式的某些方面。例如,通过混合解决方案有助于建立双向追溯的侧链,假设其中一种区块链设计不支持适当的验证机制(例如,简单支付验证(SPV)),在这种情况下,集成公证方案取代了特定中继识别和验证它的交易的能力,并让可信的公证人提供此信息。还有一些设计,例如华为跨链平台,是在中继跨链方案中集成了哈希锁定技术,并融合分布式公证人技术,把几种主要模式混入在一起,实现一种复杂跨链解决方案,构建多异构链可以集成交互的场景,并保证全流程交易的原子性和一致性。
5. 跨链相关实现
目前,在跨链阶段的区块链已经慢慢完成初步探索,开始落地一些标准规范,有一些比较好的项目已经发布,这里我们重点偏重描述四个典型跨链实现。
Corda
第一个说的是Corda这个项目,它是一个商业化的区块链平台。它通过直接的业务交换消除了商业交易之间的障碍。Corda实现了一个协作、开放的网络,使公司能够更强地相互协作、相互交流和直接交换价值。Corda使用交易形成其分布式账本,其分发的账本中存储金融或商业合同所涉各方的交易信息。这些信息存储在Corda Vault中。同时,Corda还存储所有交易历史,跟踪记录事件的历史并独立核实。Corda并不是跨链项目,而是一个分布式账本实现,第一个提它主要是它的实现中存在跨链关键技术所包含的公证人的典型应用。Corda的交易只在参与者和公证人之间进行。公证人由交易各方共同选定,具有高度可信度。公证人负责验证数据的有效性和数据的唯一性。使用者可以简单地为不同的分布式帐本选择分叉,或强制它们指向相同的验证器并同步它们的账本,来安全地验证分叉交易消息。
Polkadot
Polkadot是一种支持异构链并能进行多链链接的技术架构。它由许多具有潜在不同特征的副链组成,这可以更容易地实现隐私保护或形式化验证。交易可以分布在各个链上,允许在同一时间段内处理更多的交易。Polkadot确保每个区块链安全,并确保它们之间的任何交易都得到可信执行。它内部一种特别的子链被称为桥,通过它可以创建连接打通每个独立的区块链。Polkadot具有使每一个独立的区块链都可以与其他链交换信息的协议。Polkadot的区块链协议不同于互联网消息传递的协议(例如TCP/IP),它需要确保链间消息的顺序和有效性。这种互操作性能力通过为多个状态机创建通用环境来获得可伸缩性等。
Cosmos
Cosmos是一个分布式的独立并行区块链网络,每个区块链都由经典的BFT共识算法Tendermint进行共识。Cosmos是一个非许可的网络,这意味着任何人都可以在其上构建区块链。Cosmos中心通过一个新的区块链通信协议连接许多其他区块链。该中心可以跟踪许多token类型,并记录每个连接空间的token总数。Token可以安全、快速地从一个空间转移到另一个空间,而无需表现出两个空间之间的交换流动性,因为所有空间之间的token传输都经过Cosmos中心。Cosmos不只是单一的分布式张本系统,Cosmos中心也不是一个封闭的花园或交互中心。而是在为分布式账本的开放网络设计一个协议。该协议将基于加密、经济学、共识理论、透明度和问责制等原则,成为未来金融体系的新基础。
4.4 Huawei跨链服务
华为跨链服务提供了一个基于跨链的混合方案,不仅仅包含一个通用的跨链协议,它的中继侧还有一个分布式账本,记录了跨链和链内交易,在不同区块链账本之间以分布式的方式连接和交换价值。它利用最新的密码学理论,构建了一个非专有的跨链协议和一个记录跨链和链内交易的分布式系统。任何区块链网络,无论是公共链、私有链还是财团链,都可以与华为跨链服务集成,建立不同分不是账本间的连接,实现低成本的分布式账本间资产转移。

62.png

                                    表1 跨链各个模式对比

6 总结与分析
跨链技术在这两年开始被广泛的关注,并被寄予厚望,人们期待它可以解决目前区块链存在的种种问题,并成为万链互联的基石。目前我们看到业界中各个厂商实现的区块链项目目方面出现很多新的跨链技术,从形态上来看,很多事在已有基础上进行改进;有些是提出一系列新的跨链协议,实现区块链之间的互通。但是主流的都是通过中继链实现的,有些特定的跨链实现在公链及代币领域应用偏多。虽然目前跨链的几个关键技术解决一些问题,但是其方案还远远没有成熟,或多或少都有一些瑕疵:
公证人机制:公证人实现的跨链在一定程度上违反了区块链去中心化的特性,通过可信的第三方中介完成跨链交互,支持中介将交易打包发到不同链上的方案,存在中心化的风险,也就是公证人作恶有修改跨链信息的可能。
哈希锁定:最早起源于比特币闪电网络的 哈希锁定技术主要利用原子交换实现跨链。优点 是通过对交换信息进行哈希运算并锁定,可以保证交 换信息的真实性;缺点在于哈希锁定只能做到交换, 而不能做到信息或资产的跨链转移,使用场景受到很 大限制。基于哈希锁定的资产转移实现有一个窗口 期,窗口期内的汇率波动需要考虑;此外,使用哈希 锁定需要构建多笔交易,操作复杂。
侧链:侧链是一个和主链相对独立运行的区 块链,其运行依赖于主链。侧链实现的技术基础是 双向锚定(two-way peg),通过在侧链和主链中锁 定资产,并提供有效验证方式,从而在其主链或侧 链上生成或释放等价值的资产。优点是这种跨链实 现方式简单,侧链相对于哈希锁定技术能提供更多 的实现场景;缺点是侧链的实现通常需要利用智能 合约,随着交易量的增多,智能合约内部的数据存 储存在膨胀问题,可能会造成交易处理速度慢,甚 至出现交易堵塞的情况。
中继链:我们可以把中继链看成是侧联和公证人机制的融合以及扩展,它能提供一个跨链交互的平台或者一条中继链,各种不同类型的链对接上中继链,基于中继链实现跨链交互,提高实用性和扩展性。但是其实现复杂,开发难度大,需要定制一套跨链协议来保障各个异构链可以顺利接入,缺乏统一的跨链协议也是目前跨链面临的很重要的问题。
基于上面的介绍,以及在表3中详细对集中模式进行的分析比较,区块链跨链技术还在发展时期,需要更加广泛的推广和各大厂商及业界达成共识。华为的区块链系统采用的混合模式,规避了上面提到的缺点,集成了一套统一的跨链平台,支持各种异构链的对接。希望可以打破私有链,公有链,联盟链之间的节点,拓展区块链的使用场景和应用便捷,使区块链未来可以演进为支撑更广泛应用的网络基础设施。


本文地址:https://www.6aiq.com/article/1665581725511
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出