近日,以太坊创始人Vitalik Buterin在接受Fintech媒体采访时表示:
不同区块链之间共通的应用一定会出现。因为区块链是一个开放的系统,其中的一切都是加密认证的,开发出使一个区块链上发生的事件联动另一个区块链发生变化的应用其实是很容易的。很多方法可以实现这样的效果,比如哈希锁定和中继。过去的几年已经有很多尝试跨链加密货币交易的实验了。我觉得这一技术也能应用到其他领域。目前最大的挑战仍然是寥寥无几的区块链实际应用和使用人群,现在除了个别领域外,还没到开始实施跨链应用的时机。但我觉得在一两年内,肯定可以看到这方面应用的大规模增长。
今天我们就来深扒一下跨链技术
一、什么是跨链技术
跨链技术可以理解为连接各区块链的桥梁,其主要应用是实现各区块链之间的原子交易、资产转换、区块链内部信息互通,或解决Oracle的问题等。
当今的区块链技术纷繁芜杂,各成一派,彼此之间无法进行价值和数据的交换。虽然很多区块链拥护者声称区块链是下一代互联网,但是由于每个链都是独立的、垂直的封闭体系,当前的“互联网”只是由许多彼此割裂开来的区块链“孤岛”构成,或者说,当前的区块链看起来更像是内联网。比如,比特币和以太坊是基于全网共识的、蛮力解法的信任机制。这种验证通过同步全网区块,由每个节点来做验证。但是,那些采用了去中心化账本技术的区块链(DLT,Distributed Ledger Technology),如瑞波币和IOTA,则同样处于互相隔离的状态。更令人难以接受的是,声称去中心化的区块链之间的价值互换却主要依靠中心化的交易所来完成,链上的资产价值不能得到合理的评估。
由于区块链之间互不连通、资产价值的大幅波动大大制约了区块链技术的应用和发展。所以链与链之间的互联操作越来越被重视,跨链的需求就由此而来。但是,跨链是一个复杂的过程,既需要对链中节点要有单独的验证能力,也需要去中心化的输入,更需要对链外世界的信息进行获取和验证。目前,跨链技术主要有三种实现模式:
(1)公证人模式(Notary Schemes);
(2)侧链(Sidechains)/中继(Relays);
(3)哈希锁定(Hash-locking)。
二、跨链技术的应用
2.1 公证人模式
链与链之间互操作最简单的方法是使用公证人模式。在公证人模式中,使用受信任的一个或者一组团体向链X声明链Y上发生了某事件,或者确定该声明是正确的。这些团体既可以自动地监听和响应事件,也可以在被请求的时候进行监听和响应事件。
公证人模式在许可分账领域受到很多关注,因为其既可以提供灵活共识的主要竞争者,也无需进行昂贵的工作证明或关于利益机制的复杂证明。
公证人模式的代表项目有Corda。
2.1.1 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中代码需要在使用中继/侧链模式的两条链上同时存在,但同时需要两条链上的币或物是可以无限量发行的,这样才可以保证验证过程没有错误,从而来达到资产转移操作。
中继/侧链模式的代表项目有BTC-Relay、RootStock、Polkadot、Cosmos等。下面将依次对各项目进行介绍。
2.2.1 BTC-Relay
BTC-Relay是一种基于以太坊区块链的智能合约,把以太坊网络与比特币网络以一种安全去中心化的方式连接起来。BTC-Relay通过使用以太坊的智能合约功能可以允许用户在以太坊区块链上验证比特币交易。BTC-Relay使用区块Header创建一种小型版本的比特币区块链,以太坊DApp开发者可以从智能合约向BTC-Relay进行API调用来验证比特币网络活动。BTC-Relay进行了跨区块链通信的有意义的尝试,打开了不同区块链交流的通道。BTCRelay的认证过程如下图3所示。
图3 BTC Relay交易认证过程
其中,BTC Relay社区成员,被称为Relayers。所有人都可以加入以太坊网络并成为一名Relayer,并且无需花费硬件或者电力
2.2.2 RootStock
RootStock 是一个建立在比特币区块链上的智能合约分布式平台。RootStock采用了“混合”安全模式,同时包含了PoW机制和私人网络模式,基于联合的门限签名方案实现的安全联合工作量证明挖矿机制。它的目标是将复杂的智能合约实施为一个侧链,为核心比特币网络增加价值和功能。RootStock实现了根链虚拟机(RVM),是以太坊虚拟机的一个改进版本,它将作为比特币的一个侧链,使用了一种可转换为比特币的代币(根币,RTC)作为智能合约的“燃料”。RootStock与比特币之间采用的是双向锚定机制。RootStock的交易认证过程如下图4所示。
图4 RootSock交易认证过程
2.2.3 Polkadot
Polkadot是Web3基金会的跨链协议开源项目。由Parity团队的Gavin Wood主导开发。Polkadot宣称是未来Web3.0时代的基础设施之一,是一个未来“区块链互联网”的基础协议。Polkadot协议强调解决当前区块链技术的伸缩性和隔离性问题,以提供众多异构区块链系统之间去信任、去中心化的通用的互访问性、互操作性为目标。
Polkadot的核心思想是区分交易方发起和执行交易的方式以及交易方统一记录的方式。Polkadot提供基础的中继链(relay-chain),很多可验证的、全球动态同步的数据架构都建立在这个基础上,这些数据架构为平行链或者侧链。区块链应用可以将以太坊分叉,按照各自需求调整,通过Polkadot与以太坊公有链连接,或者给不同的链设置不同的功能,实现更好的扩展性和效率。Polkadot的原理图如下图所示。
图5 Polkadot的原理图
图5所示流程大致如下:收集人收集并且广播用户的交易,也广播候选区块给钓鱼人和验证人。用户提交一个交易,先转移到平行链外部,然后通过中继链再转移到另一条平行链,成为一个可以被平行链上账户执行的交易。
2.2.4 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,完成整个跨链消息传递。
上述Cosmos的区块链间通信如下图6所示。
图6 Cosmos的区块链间通信
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 Interledger
Interledger是由Ripple公司主导发起的跨账本价值传输开放协议。Interledger不是区块链,它是连接各类账本的支付标准、统一协议。Interledger专注于跨账本间资金流动领域。
Interledger本身并不是一个账本,它并不寻求任何的共识。相反,它提供了一个顶层加密托管系统,在称之为“连接者”的中介机构的帮助下,可以让资金在各账本之间进行流动。此外,Interledger也没有原生代币,因此,操作该协议的个体账本,仍然可以使用它们自己的原生代币,这种互操作性解决了特定支付网络的问题。Interledger的加密第三方与交易发送者和接收者的关系如下图8所示。
图8 Interledger的加密第三方与交易发送者和接收者的关系
2.3.2 闪电网络
闪电网络的目的是实现安全地进行链下交易,其本质上是使用了哈希时间锁定智能合约来安全地进行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的高性能也使合约隐私性加密成为可能。
参考文献
[1] 《Chain Interoperability》
[2] 《联盟链的多链与跨链的思考与实现(一)》
[3] 《 区块链解读22-跨链技术》
[4] 《连接不同区块链的跨链技术介绍》
[5] 《 **【汇编2】区块链的跨链技术》
[6] 《重磅项目波卡链来袭,深度解析Polkadot跨链技术》
[7] 《Ripple发布Interledger,欲将银行账本和区块链连接到一起》
[8] 上述各项目的白皮书
网友评论
以太坊智能合约以及Dapp应用开发线下实战训练营
详情链接:
http://www.huodongxing.com/event/7447069529500