区块链跨链技术

1、跨链简述

跨链是指经过技术手段,将本来不一样的、独立的区块链上的信息、价值进行交换和流通。狭义上来讲是两个相对独立的区块链帐本间进行资产互操做(Interoperability)的过程;广义上来讲是两个独立的帐本间进行资产、数据互操做的过程。html

跨链应该理解成一个桥梁或者一个机制,分布式网络是不一样的信息孤岛,经过跨链机制不一样的桥梁相互链接。web

这里读者必定要清楚,跨链并不能提升链自己性能,跨链更多的是对链自己功能的一种补充及对链间数据的互操做。算法

跨链历史线:

在这里插入图片描述
单链发展(2009-2012)
在行业早期至关一段时间内,区块链技术都是基于单一链的发展。当时 行业的广泛认知认为区块链的性能优化和技术升级能够在单一链上完成,一 旦链内成员就项目发展方向没法达成一致,只能经过硬分叉或从新设计一条 区块链来解决。数据库

单链扩展提出(2012-2015)
因为在出块时间、区块容量的限制以及智能合约方面的不足,比特币的 发展受到了严重制约。瑞波实验室早在 2012 年就提出 Interledger 协议以解 决不一样区块链帐本之间的协同问题。随之而来的更多创新,例如莱特币、比 特股、以太坊的出现,加速了比特币核心开发组的危机感。于是在 2014 年10月,比特币核心开发组成立了 Blockstream,首次在白皮书中明确提出了侧链(sidechain)的概念及协议实施方案。2015 年比特币闪电网络(Lightning Network) 采用哈希时间锁(Hashed Timelock)机制,实现了比特币链下快速交易通道.安全

中继及跨链平台(2016- )
2016 年 BTCRelay 方案发表,基于中继跨链方案实现了比特币到以太坊的单向跨链连通。同年 Vitalik Buterin 发表的《Chain Interoperability》对区块链互操做问题作了全面和深度的分析。
2016 年利用多方计算和门限密钥共享方案,实现公有链间的跨链交易的WanChain诞生。
2017 年,Polkadot 和 Cosmos 第一次提出了建设跨链基础平台的方案,目前这两个项目还在开发过程当中。
2017 年,以太坊联合和 Polkadot 创始人:Gavin Wood 正式提出了基于分布式的 Web3.0 概念。web3催生垄断主义到数据平权运动,区块链是数据平权运动的急先锋。数据平权运动让Web3.0概念天然而然的产生。Web3.0不是技术范畴,而是对某个行业应用趋势的去中心化到抽象。性能优化

2、跨链可能须要解决的问题

一、资产(原子)交易

交易双方必须是原子性的,要么发生,要么不发生。不能存在凭空损失或者创造资产,也不能有欺骗交易的发生。网络

二、验证另外一条链上的交易

对交易的确认,一是确认交易已经发生而且上链,写入了区块帐本;二是该交易已经得到了系统足够多区块的确认,这样节点做恶和产生双重支付等致使交易无效的几率很是低。区块链系统自己是较为封闭的系统, 缺少主动获取外部信息的机制,所以要确认另一条链的交易状态并 非一件容易的事,能够说是跨链交易的核心难点之一。架构

一般经过共识的方式,如公证人和 中继的模式来对原链对确认.并发

三、两条链资产总量不变且独立安全

在资产互换的场景下,两条 链的资产并未发生实质性的交换,所以该类状况不会改变各链的资产总量。可是在资产转移的场景下,每条链的可用资产数量是变化的, 只有保障跨链交易精确记帐,且两条链的帐本记帐彻底同步,才可实 现,换种说法就是两条链的记帐必须是原子性的,要么都同时记,要 么都不记。除此以外,问题的关键是当某条链发生重构时,是否依然 能保持两条链的资产总量不变。
当两个系统发生交互时,不免会对彼此系统产生影响,如何在跨链交易的过程当中保障本身系统和对 方系统的安全性是个值得考虑的问题。如果安全性问题没法隔离,那 一条链受到攻击,将影响整个跨链网络。框架

四、跨链平台

参照计算机网络的发展历程, 独立的区块链网络终究要走上互联互通的将来。已经存在的区块链平台能相互互联互通,将来的区块链平台也能相互互联互通。

五、总结

上述五个方面给出了业界的一些主流解决方案和解决思路。但并非每一个涉及到跨链的项目都须要解决以上全部问题,而是各取所需。
若要实现跨链资产互换功能(来回转移和使用),解决难点一便可;
若要实现跨链资产转移(资产留置或抵押),解决难点一和 难点二便可。
若系统须要达到一个安全和稳定的状态,这须要考虑难点三。
若须要创建一个跨链平台,跨链协议,这须要解决上述四个难点都须要考虑。

3、跨链实现方式

总体架构

在这里插入图片描述
在参考 《Vitalik关于跨链的报告》的报告后,笔者将跨链大体分红了3种方式,也是业界分类最为普遍的方式。1.不直接交互的方式 2. 第三方协做交互 3.区块监听方式

3.一、哈希锁定(Hash-locking)

在这里插入图片描述
用户AB须要互换1BTC和10ETH。

  1. A用密码生成密文。并使用密文锁定1BTC给B。
  2. A设置一个回撤交易,若在Y时间内B为领取,则返还给A。
  3. B使用密文锁定10ETH给A,并广播交易。
  4. B也设置一个回撤交易,若在X时间内A为领取,则返回为B。
  5. A只有使用本身生成的密文和B的秘钥解锁B的交易,以获取10ETH
  6. A解锁成功10ETH后,B也获取到了A的密文。B使用A的密码解锁1BTC,达到了资产互换。

核心技术点:
哈希时间锁协议(HTLC):经过哈希锁和时间锁机制保障了交易的原子性。在不一样的系统里,其实现哈希锁和时间锁的方式都不尽相同,但原理是同样的,即只有知足必定的哈希条件或者时间条件后才容许交易生效.

哈希锁:不可逆的哈希函数,用于AB直接的解锁。
时间锁:须要交易在某个时间范围内不生效或者在某个时间点后生效。一般采用前后快高后多少块或者多少时间后生效后失效。

3.二、见证(公证)人模式(Notary schemes)

假设A和B是不能进行互相信任的,那就引入A和B都可以共同信任的第三方充当公证人做为中介。这样的话,A和B就间接能够互相信任。
在这里插入图片描述
见证人不断的进行数据收集,还进行交易确认和验证。此时的见证人将成为可信第三方,能够是一个双方可信的中心化见证人机制,也能够是一群去中心化的节点。在见证人对链A数据的不断收集和验证后,链B在必定比例经过获得链A的交易发生。通俗的讲就是:可信的第三方,告诉B链A 链上发生什么事,或者告诉B某个消息的真的。
单签名公证人机制:单签名公证人机制也称为中心化公证人机制,一般由单一指定的独立节点或者机构充当。方式:用户能够将资金统一转帐给公证人帐号,有公证人来跨链资产互换。
多重签名的公证人机制:多重签名的公证人机制是由多位公证人在各自帐本上共同签名达成共识后才能完成跨链交易。多重签名的公证人组的每个节点都拥有本身的一个密钥,只有当达到必定的公证人签名数量或比例时,跨链交易才能被确认。这种方式相较于单签名模式的安全性更高,少数几个公证人被攻击或 者是做恶都不会影响系统的正常运行。可是这种方式要求两条链自己都要有支持多重签名的功能
分布式签名的公证人机制:系统有且仅产生一个密钥,并且公证人组中谁都不会拥有完整的密钥,密钥是以碎片的形式随机地发送给每个公证人节点,且碎片是通过处理后的密文,所以即便全部公证人将碎片拼凑在一块儿也没法得知完整的密钥,全面地保障了密钥的安全性。

例子1:互相不认识对账号AB将 各自对资产转到可行的单签名公证人,当公证人都收到AB的资产后,再讲各自的资产转给帐号AB。

例子2:互相不认识对账号AB经过公证人转帐
一、用户A在链A发送给链B锁定帐户一笔交易,交易由哈希时间锁(Hash Time Lock)锁定,并把锁定交易告诉公证人;
二、用户B也发起一笔锁定交易,并把秘钥拆分发送给公证人。
三、公证人凑齐超过2/3比例的秘钥后,告诉用户A,
四、用户A把秘钥告诉告诉公证人,这样公证人便可帮助AB解锁各自的交易。

核心技术点:
多重签名技术(multisig):多个用户同时对一个数字资产进行签名。能够简单的理解为,一个帐户多我的拥有签名权和支付权。若是一个地址只能由一个私钥签名和支付,表现形式就是1/1;而多重签名的表现形式是m/n,也就是说一共n个私钥能够给一个帐户签名,而当m个地址签名时,就能够支付一笔交易。因此,m必定是小于等于n的。
共识、分布式签名

3.三、侧链/中继(Sidechains/relays)

在这里插入图片描述
侧链/中继 不依赖于可信的第三方帮助其验证交易,而是在拿到发送链数据后由接收链自行验证。就是 A 能读 B,B 不能读 A;若是一条 C 链能读到全部链,按理说也能成为一个 “链上” 中介,整个过程就是“A-C-B”。侧链更多的链的关系表达,中继更像是多条链的调度中心,当一条 “侧链” 连接了不少主链时,它就变成一条中继链。
侧链须要锚定对方的数据。

例子: 绑定:BTC钱包向多签地址发起金额为0的转帐交易,并在OP_RETURN操做符中写明链B的地址。链B接受BTC的轻节点块,并验证用户链B地址的交易是否存在(相似过滤器的监听机制)。若存在,则B链地址和BTC地址绑定.
入金 :btc钱包往B链的多签地址打钱,B链经过SPV监听, 充值金额绑定到B链地址, 便可完成跨链转帐
出金: B链多签多私钥经过后,可转回用户BTC

核心技术
SPV证实
SPV证实:即简单支付证实.经过下载比特币或者以太坊的区块头(Header),进行默克尔树的验证. 经过不断计算一笔交易的hash获得根hash,证实一笔交易在不在
在这里插入图片描述
验证过程:
0). 从网络上获取并保存最长链的全部block header至本地;
1). 计算该交易的hash值tx_hash;
2). 定位到包含该tx_hash所在的区块,验证block header是否包含在已知的最长链中;
3). 从区块中获取构建merkle tree所需的hash值;
4). 根据这些hash值计算merkle_root_hash;
5). 若计算结果与block header中的merkle_root_hash相等,则交易真实存在。
6). 根据该block header所处的位置,肯定该交易已经获得多少个确认。

3.四、各方案的对比

跨链技术 哈希锁定 公证人 侧链/中继
互操做性 只有交叉依赖 全部 全部(须要全部链上都有中继,不然值支持单项)
信任模型 链不会失败或者51%攻击 多数公证人诚实 链不会失败或者51%攻击
适用跨链交换 支持 支持 支持
适用跨链资产转移 不支持 支持(须要共同的长期公证人信任) 支持
适用跨链预言机(Oralces) 不直接支持 支持 支持
适用跨链资产抵押 大多数支持但有难度 支持(须要长期公证人信任) 支持
实现难度 容易 中等

4、跨链案例剖析

4.一、状态通道(state channels)

状态通道(State Channel)是一种使用哈希时间锁的方式将交易和其余状态更新的放到“off-chain”的技术。咱们经过将用户的频繁操做尽量的在链下通道进行,以扩展区块链的处理能力。

状态通道有以下特色:
状态通道依赖于可靠性。若是爱丽丝在质疑时间内掉线了(也许是鲍勃不顾一切地想要赢下奖品,而破坏了她家的互联网链接),她可能没法在质疑时间内作出回应。可是,爱丽丝能够付款给其余人,让其保存一份她的状态副本,并做为她的权益表明,以保持系统的可靠性。

状态通道在须要长期交换大量状态更新的状况下很是有用。这是由于部署 Judge 合约时建立一个通道会产生初始成本。可是一旦部署完成,该通道内每个状态更新的成本都会很低

状态通道最适于有一组明确参与者的应用程序。这是由于 Judge 合约必须始终知晓全部参与到给定通道的实体(好比,地址)。咱们能够增长或删除用户,可是每次都须要更改合约。

状态通道有很强的隐私属性。由于一切都发生在参与者之间的通道“内”,而不是公共广播并记录在链上。只有开启和关闭交易必须公开。

状态通道的权威性是即时生效的。这意味着只要双方签署了一个状态更新,它能够被认为是最终状态。双方都有明确保证,在必要的状况下,他们能够将状态“执行”到链上。

4.1.1 闪电网络(Lightning Network)

闪电网络主要经过引入智能合约的思想来完善比特币链下的交易渠道。技术特色:
一个是序列到期可撤销合约(RSMC,Recoverable Sequence Maturity Contract),另外一个是哈希时间锁(HTLC,Hashed Timelock Contract)。前者解决了链下交易的确认问题,后者解决了支付通道的问题。

RSMC定义了交易经过多重签名创建微支付通道,一个是序列到期可撤销合约。微支付通道中沉淀了一部分资金,通道也记录有双方对资金的分配方案。通道刚设立时,初值多是{Alice: 0.4, Bob: 0.6},意味着打入通道的资金共有1.0 BTC,其中Alice拥有0.4 BTC,Bob拥有0.6 BTC。通道的设立会记录在比特币区块链上。

若是Alice暂时不须要将通道中如今属于她的0.5 BTC用做支付,她能够无需及时更新区块链上记录的通道余额分配方案,由于极可能一分钟后Alice又须要反过来向Bob支付0.1 BTC,此时他们仍然只需在链下对新的余额分配方案达成一致,并设法做废前一版本的余额分配方案就好了。

若是Alice打算终止通道并动用她的那份资金,她能够向区块链出示双方签字的余额分配方案。若是一段时间以内Bob不提出异议,区块链会终止通道并将资金按协议转入各自预先设立的提现地址。若是Bob能在这段时间内提交证据证实Alice企图使用的是一个双方已赞成做废的余额分配方案,则Alice的资金将被罚没并给到Bob。

HTLC定义了双方有时间或者快高限定的协议。经过HTLC,Alice和Bob能够达成这样一个协议:协议将锁定Alice的0.1 BTC,在时刻T到来以前(T以将来的某个区块链高度表述),若是Bob可以向Alice出示一个适当的R(称为秘密),使得R的哈希值等于事先约定的值H®,Bob就能得到这0.1 BTC;若是直到时刻T过去Bob仍然未能提供一个正确的R,这0.1 BTC将自动解冻并归还Alice。

固然闪电网络支付通道远不止这些。
在这里插入图片描述
Alice想给Dave发送0.05 BTC,但Alice和Dave之间并无微支付通道。但这不要紧,Alice找到了一条通过Bob、Carol到达Dave的支付路径,该路径由Alice/Bob, Bob/Carol和Carol/Dave这样三个微支付通道串接而成。
Dave生成一个秘密R并将Hash®发送给Alice,Alice不须要知道R。R和Hash®的做用就像是古代调兵用的一对虎符。

Alice和Bob商定一个HTLC合约:只要Bob能在3天内向Alice出示哈希正确的R,Alice会支付Bob 0.052 BTC;若是Bob作不到这点,这笔钱3天后自动退还Alice。

一样地,Bob和Carol商定一个HTLC合约:只要Carol能在2天内向Bob出示哈希正确的R,Bob会支付Carol 0.051 BTC;若是Carol作不到这点,这笔钱到期自动退还Bob。

最后,Carol和Dave商定一个HTLC合约:只要Dave能在1天内向Carol出示哈希正确的R,Carol会支付Dave 0.05 BTC;若是Dave作不到这点,这笔钱到期自动退还Carol。

一切就绪后,Dave及时向Carol披露R并拿到0.05 BTC;如今Carol知道了R,她能够向Bob出示密码R并拿到0.051 BTC(差额部分的0.001 BTC成了Carol的佣金);Bob知道R后固然会向Alice出示并拿到他的那份0.052 BTC,差额部分的0.001 BTC成了Bob的佣金。

4.1.2 雷电网络(Raiden Network)

以太坊社区链下微支付通道解决方案。和闪电网络同样,双方须要在以太坊区块链上开设通道并各自锁定以太坊。这步动做可经过向Raiden智能合约发送一条双方签名承认的报文来实现。报文中的关键信息包括:双方公钥、双方锁定资产数量、双方签名。雷电网络旨在实现更高的扩展性、更快的交易速度、更多的隐私保护、更好的胡操做性以及更低的费用。

雷电网络存在如下特色:

第一,雷电网络的支付通道是被链上的一个智能合约控制,该智能合约更加丰富;

第二,雷电网络引入了更为通用的“智能条件(Smart Condition)”,实现智能转帐(smart transfers),HTLC 成为其可 实现的一个子集,除了哈希锁、时间锁等条件,它还可设定更复杂的 条件。 Smart Condition表现为一个可在区块链上执行的函数Function(argument),可接受任何格式的报文为参数。

第三,在设计细节上雷电网络也不一样于闪电网络。好比,雷电网络中用来更新通道余额分配的报文,增长了序号字段和等待期字段以便识别做废的报文;在余额分配中,申明新余额分配的方式是出示余额分配的净增减,而不是从新申明余额等。

4.二、公证人加Hash锁混合

瑞波是一种新型的区块链技术,专一于解决分布式的支付和清算问题。Ripple 在底层的 Ripple 共识帐本之上定义 了 Interledger Protocol(ILP,跨帐本交易协议),该协议可以在实现跨帐本转帐的同时消除交易中存在的对手方风险。技术上采用公证人和Hash锁的实现方式。

ILP 将 在交易者帐户与一个 Ripple 本地帐户之间创建起双向锚定的关系, 实现两者的同步变化,确保交易过程的透明性。同时,对于没有直接支付通道的两个帐本系统,经过 ILP 可实现多跳间接跨帐本交易。

在这里插入图片描述

  1. A 先挑选一家汇率最合适的流动性提供商,假设人民币和美 元的汇率为 6:1,而后在银行 M 向其托管帐户 1 汇款 600 人 民币,并同时在 Ripple 的应用上填写汇款信息、收款地址以 及超时时间等;

  2. 这些信息将被 Interledger Module 打包发送给 Ripple 上的帐户 1,Ripple 帐户 1 对托管帐户 1 中增长的 600 人民币进 行记帐,并将转帐证实发给验证人(Validator,一种公证人 节点);

  3. 对于收款方,B 公司在 Ripple 的应用上填写汇款地址、超时 时间等信息,在 Ripple 网络中广播,此时以前 A 挑选的流动 性供应商会先行垫付转帐款给 B,经过其本身在 Ripple 的帐 户 3 转 100 美圆给 Ripple 帐户 2,并将转帐证实发给验证人 (Vadilator);

  4. 验证人对两个转帐证实核对;核对经过后,IPL 帐本将按照 Hashed Time Lock Agreement 原子交易协议同时进行清算;

  5. 清算完成后,Ripple 帐本将经过 Interledger Module 将帐 户变更同步到其所对应的托管帐户,而后托管帐户 1 中的 600 人民币将汇给流动性提供方,托管帐户 2 中的 100 美圆 汇给收款者帐户,从而实现收款人与汇款人之间的跨帐本交 易。

4.三、分布式签名公证人机制

主要包括FUSION和Wanchain项目

4.3.1 Wanchain(万维链)

Wanchain也是一种跨链平台,不过更多的是须要其余公有链主动去兼容它

Wanchain(万维链)是 2016 年发起的区块链跨链平台项目。Wanchain 是一个异构跨链框架,主要基于分布式公证人模式实现跨链。该模式主要采用了密码学“安全多方计算(Secure Multi- Party Computation)”和“门限密钥共享技术(Threshold Key Sharing Scheme) ”来实现验证人的分布式签名。同时在用户隐私方面采用环签名和一次性帐户技术。

门限密钥共享技术是现代密码学体制的设计是使得密码体制的安全性取决于密钥的安全,密钥的泄露就意味着体制失去了安全性,所以门限密码解决了如何分配给多方参与者,并如何共同使用的问题。

其中一种实现:以色列密码学家 Shamir提出了Shamir 门限密钥共享的概念:密钥被分为n份分配给n个参与者,每一个参与者掌握一个密钥份额(key sharing),只有集齐超过k个密钥份额,才可以将密钥恢复。

安全多方计算是分布式密码学的理论基础,也是分布式计算研究的一个基本问题。安全多方计算是指在一个互不相信的多用户网络中,两个或多个用户可以不泄漏各自私有输入信息,协同合做执行某项计算任务。

简单地说,安全多方计算是指一组人,好比 P1…Pn ,共同安全地计算函数f(X1…Xn)=(Y1,…Yn) 。 其中这个函数的n个输入分别由这n个参与者秘密掌握的,设Pi的秘密输入是Xi, 而且在计算结束后, Pi获得输出Yi。这里的安全性是要求即便在某些参与者有欺骗行为的状况下,保证计算结果的正确性,即计算结束后每一个诚实的参与者Pi都能获得正确的输出Yi,同时还要求保证每一个参与者输入的保密性,即每一个参与者Pi除了(Xi,Yi)外,得不到任何其余信息。安全多方计算已经有了丰富的理论成果和强有力的工具,虽然它的实际应用还处于起步阶段,但终将成为计算机安全一个不可缺乏的部分。

安全多方计算协议分类:基于 VSS 子协议的安全多方计算协议,基于 Mix-Match 的安全多方计算协议,基于 OT 的安全多方计算协议,基于 OT 的安全多方计算协议。

Wanchain 上将验证节点设计为三类:普通验证节点(Validator)、跨链交易证实节点(Voucher)和锁定帐户管理节点(Storeman)。其中 Voucher 负责在跨链交易过程当中提供原链帐户与锁定帐户之间交易的证实,Voucher 将用户跨链交易证实提供给 Storeman,Storeman 收到证实后完成后续跨链操做,Validator 负责 wanchain 的共识记帐。将交易和验证分开,必定程度规避了合谋做恶。

用户发起跨链交易请求后 Wanchain 确认原链交易的方式以下:

(1)用户在原链的 token 会被发送至 Wanchain 在原链的锁定帐户,交易由哈希时间锁(Hash Time Lock)锁定;

(2)Voucher 验证确认了原链上的交易后,Storeman 会在 Wanchain 上发起跨链的合约交易,将须要映射的 Wtoken(Wtoken 此处指 Wanchain 上与原链 token 等量对应的映射 token)转移至用户在 Wanchain 上的跨链帐户,且锁定;

(3)用户钱包检测到跨链合约锁定的交易后,帐户释放多个密数(Secret)的私钥以碎片形式分散到多个 Storeman 手中, 超过必定比例(2/3)的 Storeman 见证人完成签名才可最终确认。 也就是说经过门限秘钥技术使得链达到共识后,方可对用户token的锁定。

(4)Storeman 经过密数获得原链 token 的控制权,从而实现对原链交易的确认。

若是用户没有在哈希时间锁的范围内释放密数,哈希时间锁到期后跨链合约的交易自动失效,用户重获原链 token 的控制权。
委托去中心化的验证人掌柜用户私钥,事实上用户同时还掌握了自身代理资产的那部分私钥,全部这笔资产历来没有离开用户的掌握,它并无像中心化交易所同样,彻底用第三方来掌握这个资产。

以太坊——万维链 跨链示例
在这里插入图片描述

4.四、侧链(Sidechain)

4.4.一、Luquid

Liquid Network是独立的区块链,因此也有本身的代币Liquid Bitcoin (LBTC)。Liquid Network的核心原理是2-way peg,即BTC和L-BTC双向锚定。其实很简单,就是在使用Liquid Network转帐时,主链上的BTC会被锁定,兑换成相应的LBTC,而后在侧链上经过LBTC进行资产的转移,收到LBTC后,接收方在将LBTC转换成等额的主链上的BTC资产。

RSK和Liquid Network使用相同的共识机制,可是不一样点在于RSK网络更加的开放,任何人均可以加入进来,而Liquid network的用户想要只用网络,必须经过交易所等中间媒介。

Luquid Network和闪电网络/RSK的区别
Liquid网络是为了知足交易所和场外交易者的快速、大额和匿名转帐需求而设计的,转帐额度并不受通道容量限制,达到可预见性和可靠性。而闪电网络则主要是为了知足小额支付和转帐而设计的,转帐额度受通道容量限制(目前为0.168BTC),并且须要接收方在线,不然速度会受到极大的影响。

4.4.二、Plasma

Plasma 能够扩展咱们与基于区块链的数字资产之间的交互,可是这些资产应当是首先由以太坊主链建立的。而后,咱们将实际的游戏应用程序以智能合约的方式部署到子链上,这样子链就包含了游戏全部的逻辑和规则。 它是经过建立依附于“主”以太坊区块链的“子”区块链。

Plasma 侧链支持多 级侧链,并采用 MapReduce 模式来执行 并行计算,可大大提升侧链性能。侧链的 区块头和哈希数据将被发送到主链,而且 可经过 Proof of Fraud 来确保子链交易的 正确性。

Plasma 和 Raiden 区别
雷电网络旨在提供更高扩展性、更快交易速度、更多隐私保护以及更低费用的交易,让交易双方能在交易通道交易。Plasma是一种利用侧链层次树来扩大交易规模的概念,原本在主链执行的交易放到侧链执行。Plasma是区块链中的区块链。Plasma的实现将与雷电网络相辅相成。甚至能够在Plasma子链上创建状态通道。

连接:http://8btc.com/article-4662-1.html

4.五、中继

4.5.一、BTC-Relay

BTC-Relay 自己为以太坊的一个智能合约,该合约的功能就是对比特币上的某些交易进行验证,而且提供验证信息给以 太坊上的其它 DApp 用户。Relayer 是从比特币获取区块头数据的一 群用户,并拥有以太坊网络的帐户地址,最快向 BTC-Relay 合约提交 区块头数据的 Relayer 能够获得以太坊的交易费奖励。BTC-Relay 智 能合约得到区块头数据之后就能够依据 SPV 证实的原理对某交易进 行验证,当比特币网络中的某交易确实发生,则可触发以太坊网络的 特定交易或者智能合约执行。

BTC-Relay使用场景举例

1.Alice和Bob赞成使用BTCSwap合约来进行交易,Alice要买Bob的eth,Bob把他的 eth发送到BTCSwap合约
2.Alice向Bob发送bitcoin,她但愿BTCSwap这个合约能知道这件事以便BTCSwap合约能够释放Bob以前的eth
3.Alice经过bitcoin的交易信息以及BTCSwap合约地址来调用btcrelay.relayTx(),btcrelay验证这笔交易经过后就触发BTCSwap合约里面的processTransaction方法
4.BTCSwap合约在被触发后确认这个btcrelay地址是一个合法地址,而后释放以前Bob的eth

4.六、跨链平台

跨链平台更多的是对以上多种技术的综合,包括哈希时间锁、公证人、中继。在市面上作的好的跨链平台主要是cosmos和Polkadot。

4.6.一、Cosmos

Cosmos 的总体架构以下图所示,Hub 上能够链接不少 Zone(Hub 是一条链,每个 Zone 也是一条链),Cosmos Hub 维护了一个多资 产分布式帐本,掌握了与其相连的全部 Zone 的资产种类以及数量情 况。每个 Zone 也是能维护多资产类型的帐本,其可接收其它 Zone传来的资产,也可将本身的资产转移到其它的 Zone。每个 Zone 会 同步 Hub 的状态,但 Zone 和 Zone 之间的交流只能经过 Hub 间接地进行。每一次跨链资产转移都须要发送 Zone、Hub、和接收 Zone 的共同确认才可成功。你也能够认为 Zone 是 Hub 的一种资产子分片。

Zone 和 Zone 之间经过消息(数据包)进行信息传输,基于 IBC (Intra Block Communication)通信协议。某空间内的区块将要传 递的数据打包成标准的 IBC 数据包,最终经过网络层的 UDP 或 TCP 协议完成传输。

下图中每个Zone和Hub的共识均采用Tendermint 共识。Tendermint协议在这里不作专门的介绍。
在这里插入图片描述
Cosmos-Bridge
Cosmos 和系统外的其它异构链进行跨链交易须要经过 Cosmos Bridge 进行,Bridge-Zone 将专门负责和原链的对接,包括对原链的交易确认、在 Cosmos 上建立/销毁对应的跨链代币等工做。

以以太坊到 Cosmos Bridge-Zone 资产转移为例。以太坊内部将部署一个 bridge-contract 的智能合约,负责以太坊到 Cosmos 的跨链交易处理。用户若是须要转帐到 Cosmos,可直接将 ETH 转移到 bridge- contract 合约便可,转移到合约后 ETH 资产即被冻结,除非跨链交易失败或者 bridge-contract 检测到 Cosmos 有资产转移过来 (bridge-contract 会追踪 Bridge-Zone 验证节点的状态,Cosmos- Bridge 能够和 Cosmos Hub 共享同一组验证节点)。Bridge-Zone 的验证节点将对以太坊上 bridge-contract 的交易进行验证,若验证经过,能够在 Bridge-Zone 生成对应的 Cosmos-ETH(SPV验证)。将 Cosmos-ETH 转移到 以太坊上过程也相似,只不过 Bridge-Zone 转到以太坊的 Cosmos-ETH 将被销毁,而冻结在 bridge-contract 的 ETH 会被解锁,并转移到某帐户地址中。

Cosmos Zone 之间资产转移机制
Cosmos Zone 之间的资产转移主要是依托于 IBC 通信机制。IBC协议中设计了两个消息:

  • IBCBlockCommitTx:发送方所在区块链的最新的区块信息。
  • IBCPacketTx:跨链交易自己的信息,及其在发送方链中被打包的区块信息。
    接收链经过Hub做为中继,接收来自发送链的信息,并经过Merkle Proof以及验证节点的签名状况来判断发送链的交易是否最终确认。

以下图所示,为Zone 1空间向Zone 2空间传递代币的消息时序图,咱们将以此为例来讲明 IBC 通信协议的详细过程。
在这里插入图片描述

1). Zone 1 发起 IBCBlockCommitTx 交易,将新区块头部信息(包括全部验证人的公钥)传递到 HUB;
2) Zone 1 发起代币转移交易, Zone 1 对该交易进行逻辑验证,是否合法有效;, 将该合法交易放到面向 HUB 的消息队列中;
3) Zone 1 的中继程序监听到队列中有新的消息,即生成 Merkle Proof,并做为 IBCPacketTx 的 Payload 发送给 HUB。(在每一个 空间内都有一个独立的第三方中继程序,它负责从原链生成 Merkle Proof 并组装成 Packet,并发起交易,传递到目标链 上);
4) HUB 验证 Merkle Proof 是否有效,如有效则发送消息给 Zone2(HUB 给 Zone2 发送消息的过程同步骤 1~4);
5) Zone2 在接收到 HUB 的消息后验证 Zone1 为真实有效的交易,发送消息给 HUB 确承认接收来自 Zone1 的资产;
6) HUB 给 Zone2 发送消息,将资产发送给 Zone 2,完成了资产在不一样区块链之间的一次转移;

Cosmos 现状

  • Cosmos如今工程迭代速度缓慢,也长时间未真正落地。同时也存在如下问题:
  • IBC协议目前只完成了基本消息的传递功能,并无安全校验、注册机制以及一些异常的处理。
    Tendermint 协议性能不高,全部Zone和Hub基于该协议过于局限
    Hub 做为中枢网关,须要负责交易验证,承载压力太重

4.6.二、Polkadot

在介绍Polkadot和Substrate以前, 有必要先介绍下Gavin Wood。Vitalik发起了以太坊项目,初步构思了白皮书,同时进行了以太坊的ICO,可是直到Gavin加入以太坊技术才步入正轨。Gavin Wood完成了以太坊的白皮书,以及花了3周时间完成了以太坊cpp版本源码,能够说Gavin Wood是以太坊的隐形大脑。同时Gavin Wood也是以太坊Rust客户端Parity项目的发起人。因此追随Gavin Wood的脚步也许就是区块链的将来。

Polkadot是Gavin Wood在发现以太坊不足以后,所建立的项目,旨在完成全新的区块链平台。Polkadot 介绍能够看笔者这篇分享:区块链-Polkadot技术调研

在这里插入图片描述
Polkadot由一个中继链Relay Chain和若干平行链Parachain组成,以及异构链的转接桥Bridges。

**中继链(Relay Chain)**负责全网的共享安全共识和平行链的跨链交易转发,中继链能够理解为具备安全共识的网关。在中继链上,Polkadot 经过一个现代的异步(asynchronous)拜占庭容错(BFT) 算法达成对有效区块的相互共识,算法受简单的 Tendermint 和 HoneyBadgerBFT 启发。中继链自己不包含任何,只负责最顶层跨链消息的路由,应用均在平行链上进行开发和部署。

平行链(Parachain) 是附着于由中继链提供的安全性上的,可并行化的区块链应用。平行链由中既链提供共享安全共识和平行链之间的跨链消息转发。平行链可使用不一样类型的区块链底层技术,容许每一个参与者定义自身有效性的方法,来解决特定领域的问题。好比平行链能够是不一样币的跨链平台,也能够是一个撮合交易的平台。

转接桥(Bridges): 相对于部分异构链来讲可能须要,好比当以太坊的须要与 Polkadot 交互时候,以太坊的数据会经过针对以太坊专门开发的 Bridge 转换成在 Polkadot 中交互所需的模式。

Substrate

Parity Substrate是独立于Polkadot的项目。 Polkadot是基于Substrate构建的,是 Polkadot 运 行 环 境 ( PRE , Polkadot Runtime Environment)。Substrate包括对共识、 网络、WebAssembly、数据库、客户端等均有模块化的支持。

用户可使用Substrate来快速构建新的区块链项目,好比使用Substrate开发本身的区块链平台。固然最重要的是能够基于Substrate,咱们能够搭建Polkadot的平行链。好比ChainX。

ChainX

在这里插入图片描述
任何人均可以竞争性地向ChainX内的各资产链轻节点提交跨链数据,ChainX会根据原链的共识算法得出最优链和有效的跨链交易。由ChainX社区全民公投选举产生15个信托节点,在各资产链上生成多签地址来联合托管用户的链外充值资产,单方或几方没法挪用储备资产。对于Polkadot生态内的新型链,ChainX将使用双向轻节点跨链协议,无需多签锁定便可实现更高效的跨链资产转移。

在这里插入图片描述

ChainX v2将于2019年Q3 Polkadot发布v1后上线。ChainX将接入Polkadot并转变为其平行链运行。

5、总结

跨链项目整体处于探索阶段,跨链技术成熟度较低,相比于单链技术更加复杂,因此将来仍有较大发展空间。而且跨链技术设计的技术点很是多,不管是hash锁、公证人、中继都值得读者深刻研究。对于以上案例来讲,目前发展速度最快、迭代速度最快是Polkadot,因此笔者认为Polkadot值得不断学习和跟踪。

6、参考

一、https://ethfans.org/posts/chain-interoperability-report
二、http://www.noobyard.com/article/p-ofomypkf-kw.html