深扒跨链技术 下一个爆点点火中

现有的区块链将应用功能、智能合约、共同账本、共识网络绑死,每个链形成了独立的垂直的封闭体系,当一个应用绑死在一个链上的时候,难以采用新技术,难以带着原有数据和资产迁移到新的链上,不利于大规模网络协作。如何解决这个痛点,今天我们就来深扒一下跨链技术。

一、什么是跨链技术

跨链技术可以理解为连接各区块链的桥梁,其主要应用是实现各区块链之间的原子交易、资产转换、区块链内部信息互通,或解决Oracle的问题等。

当今的区块链技术纷繁芜杂,各成一派,彼此之间无法进行价值和数据的交换。虽然很多区块链拥护者声称区块链是下一代互联网,但是由于每个链都是独立的、垂直的封闭体系,当前的“互联网”只是由许多彼此割裂开来的区块链“孤岛”构成,或者说,当前的区块链看起来更像是内联网。比如,比特币和以太坊是基于全网共识的、蛮力解法的信任机制。这种验证通过同步全网区块,由每个节点来做验证。但是,那些采用了去中心化账本技术的区块链(DLT,Distributed Ledger Technology),如瑞波币和IOTA,则同样处于互相隔离的状态。更令人难以接受的是,声称去中心化的区块链之间的价值互换却主要依靠中心化的交易所来完成,链上的资产价值不能得到合理的评估。

由于区块链之间互不连通、资产价值的大幅波动大大制约了区块链技术的应用和发展。所以链与链之间的互联操作越来越被重视,跨链的需求就由此而来。但是,跨链是一个复杂的过程,既需要对链中节点要有单独的验证能力,也需要去中心化的输入,更需要对链外世界的信息进行获取和验证。目前,跨链技术主要有三种实现模式:

(1)公证人模式(Notary Schemes);

(2)侧链(Sidechains)/中继(Relays);

(3)哈希锁定(Hash-locking)。

二、跨链技术的应用

2.1 公证人模式

链与链之间互操作最简单的方法是使用公证人模式。在公证人模式中,使用受信任的一个或者一组团体向链X声明链Y上发生了某事件,或者确定该声明是正确的。这些团体既可以自动地监听和响应事件,也可以在被请求的时候进行监听和响应事件。

公证人模式在许可分账领域受到很多关注,因为其既可以提供灵活共识的主要竞争者,也无需进行昂贵的工作证明或关于利益机制的复杂证明。

公证人模式的代表项目有Corda。

2.1.2 案例项目——Corda

Corda是R3联盟推出的金融联盟“类区块链”技术架构。Corda中同样是用交易组成账本,但并没有区块,这个和传统区块链结构相比有很大不同。交易仅在参与方和公证人间传播。公证人是交易双方共同选择出来的,具有高度可信的特征。公证人负责验证数据的有效性和数据的唯一性。

由于Corda选择了最高安全性的公证人模式,因此在跨账本消息处理上,变得较为简单:仅需选取不同账本的交叉公证人或者强行指向同一个公证人且让其对账本进行同步即可安全的验证跨账本消息。

2.2中继/侧链模式

如果一个链B能拥有另外一个链A的所有功能,则称链B为链A的侧链,链A为链B的主链。其中主链A并不知道侧链B的存在,侧链B知道有主链A的存在。

假设区块链拥有区块Header和Body,Header中拥有Merkle等证明信息,可以将链A的区块链头,写入链B的块中,链B使用和链A一样的共识验证方法,比如PoW验证难度和长度,PBFT验证投票等。等待链A的区块头序列之后,链B就可以通过Merkle分支的证明信息来证明链A的数据和操作。链A、B不能直接验证对方块的状态,因为这样会形成循环,但相互只包含轻节点是可行的,这个区块链验证的逻辑可以由链协议本身或应用合约实现。上述该过程如下图1所示。

图1 中继/侧链模式资产转移流程

2.2.1案例项目——RootStock

RootStock 是一个建立在比特币区块链上的智能合约分布式平台。RootStock采用了“混合”安全模式,同时包含了PoW机制和私人网络模式,基于联合的门限签名方案实现的安全联合工作量证明挖矿机制。它的目标是将复杂的智能合约实施为一个侧链,为核心比特币网络增加价值和功能。RootStock实现了根链虚拟机(RVM),是以太坊虚拟机的一个改进版本,它将作为比特币的一个侧链,使用了一种可转换为比特币的代币(根币,RTC)作为智能合约的“燃料”。RootStock与比特币之间采用的是双向锚定机制。RootStock的交易认证过程如下图4所示。

图4 RootSock交易认证过程

2.2.2案例项目——Cosmos

Cosmos是Interchain Foundation的跨链开源项目。Cosmos是专注于解决跨链资产转移的区块链网络。该网络主要由两部分组成:Cosmos Hub和若干个Zone。每个Zone可以看作是单独的区块链空间。每个Zone会和Hub保持状态同步。Hub通过去中心化的验证人组来保证安全性,验证人组有罚金托管机制,它是唯一的多资产中心账本,并负责保证各类资产在不同Zone转移的同时,资产总量不变。

Hub既是中继链。Zone之间的跨链通信主要是通过与Hub之间的IBC协议来实现。Zone1向Zone2做跨链消息时,Zone1先生成消息包,并将其证明发布在Hub上,接下来Hub会生成Zone1的跨链消息包已在Hub上的存在证明的证明发布于Zone2,接下来Zone2收妥消息包,并给出证明发布于Hub上,最后,Hub再给出Zone2的收妥证明的证明发布于Zone2,完成整个跨链消息传递。

2.3哈希锁定模式

哈希锁定模式的设计是希望链A与链B之间尽可能少的了解彼此,并作为消除公证人信任的手段,该模式的基本流程如下图7所示。

图7 哈希锁定模式流程图

图7所示基本流程如下:

(1)A生成随机数S,并发送hash(S)给B。

(2)A在链LA上锁定币,并设定条件:如果在(当前时间+2X=TA)时间内链LA收到S,则转账给B,否则退回给A。

(3)B收到hash(S),并看见A的锁定和时间设定后,在链LB上锁定币,并设定条件:如果在TA-X时间内链LB收到S,则转账给A,否则退回给B。

(4)A看见B的锁定后,在TA-X时间内发送S给链LB,得到链LB的币。

(5)B收到S后,在TA时间内发送S到链LA,得到链LA的币

哈希锁定模式的代表项目有Interledger、闪电网络等。

2.3.1案例项目——闪电网络

闪电网络的目的是实现安全地进行链下交易,其本质上是使用了哈希时间锁定智能合约来安全地进行0确认交易的一种机制,通过设置巧妙的‘智能合约’,使得用户在闪电网络上进行未确认的交易和黄金一样安全(或者和比特币一样安全)。

使用闪电网络第一步需要在用户A和用户B之间开启双向支付通道。这个通道是在主链之外,如下图9所示。

图9 闪电网络结构图

交易双方在开启闪电交易功能之前,会首先将开启状态所需的数据写入主区块链中建立闪电交易合约,例如锁定期限,合约规则等数据。当闪电网络出现故障时,将按照合约规则和举证方的数据,在主区块链上进行处理。每一个状态通道建立,类似于一个多重签名系统构建,保证了交易双方守信原则,它比多重签名多了合约的处理。对不守信,将会在主网络受到处罚。处罚在期限内可以得到申诉,例如1000个区块期,而这种申诉是算法进行维护,不以人为因素为标准。

在通道内是双方私匙签名的区块链数据流,双方所有交易细节均在这个数据流得到体现,并以独立链的形式存储,它是证明一个通道是否合乎算法规则。当一个状态通道结束后,双方按照闪电网络输出的最终状态数据来兑现合约,这相当于是一个交易帐本,帐本记录了参与方交易结果,进而实现财产重新分配。

三、新一代项目 Pallet的诞生

上文中提到的各个跨链项目,他们本质上还是一条链,其本身很难再扩展,不太具备通用性。他们都是用一个新链做跨链的工作,需要链与链之间进行锚定。例如,Polkadot借鉴了很多其它项目的架构,所以他的设计和其他项目是很不一样。但是,Polkadot是个异构的多链框架,一条中继链连接多条平行链的系统。虽然可以挂接多个链,但是Polkadot本身还是一个链。

而Pallet是在做协议——多利益关联方的共识协议,所有的链都可以是参与方,不需要“链与链”之间的锚定。Pallet协议和体系不产生独立的链,而是采用陪审团制度随机选取陪审员,所有的陪审员节点再去对接各底层链实现存证,最大化利用现有的链和资源。

Pallet可以将应用挂在多个链上,避免网络拥塞,用户选择性大,使得各种DApp应用可以部署在不同的链上,可以形成良性竞争,更多用户可以参与,开发者在开发应用时可以根据业务需求更灵活的选择已有的链,或者方便的从已有经部署的链上迁移到更好、更新的链上,从而使已有的应用生态突破原来部署区块链的自身架构局限、性能局限或者功能局限。

四、Pallet跨链体系

Pallet可以水平地与不同底层区块链进行对接,如下图10所示。Pallet不对底层链进行完全复制,而是使用参与者机制,是一种轻量级协议。

图10 Pallet跨链体系

Pallet在区块链或DLT(Distributed Ledger Technology,分布式账本技术)之上构建了可扩展的“元层”,并在元层中实现“互操作”。元层就是Pallet努力实现的、互链层的IP协议。

Pallet根据不同应用的智能合约选出一个陪审团,由该陪审团来验证智能合约的执行。Pallet将Pallet通证(Token)作为支付给陪审团的激励。陪审团在Pallet中的角色相当于其他链上的矿工。Pallet还增加了惩罚机制,普通节点想成为注册的陪审员,需要自己的一部分资金进行抵押,如果一旦发现陪审员作恶,则Pallet将会没收其抵押资金。

五、Pallet与跨链技术应用场景比较

Pallet作为跨链协议起到了将链与链连通的效果。Pallet与其他跨链技术在应用场景方面的是有一定的区别,具体区别如下表所示。

由于Pallet不是链,是通过特定的函数和库与底层链沟通,所以Pallet的应用场景相对较广,并且实现难度上也处于中等难度。

六、Pallet与其他跨链项目性能比较

由于Pallet不是一条链,所以其智能合约执行机制、挖矿机制、奖励机制和应用领域等与第二章中跨链项目有很大的区别,具体区别如下表所示。

七、小结

各个跨链项目的目标是解决特定区块链之间的信息交换,或者针对不同应用领域而设计,所以这些跨链项目的通用性不是很高。但是Pallet由于是协议,所以他能做到万链互联,多利益关联方互利共赢,从而助推“价值互链网”的实现。

Pallet是一个分布式的、包容的交易执行环境,而不是另一种加密货币。Pallet和底层区块链、合约编写语言和执行平台都是解耦的,允许用户同时进行链上和链下的资产交易。因此,它可以在不同平台的不同区块链上执行不同语言编写的智能合约。通过利用现有的LLVM和WASM工具,可以方便地使Pallet提供安全的智能合约执行,同时,Pallet的高性能也使合约隐私性加密成为可能。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180520G0HKFX00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券