区块链侧链的几种实现方式

什么是侧链

  侧链协议是一种跨区块链解决方案,它允许资产在比特币区块链和其他区块链之间互转。通过这种解决方案,可以实现数字资产从第一个区块链到第二个区块链的转移,又可以在稍后的时间点从第二个区块链安全返回到第一个区块链。其中第一个区块链通常被称为主区块链或者主链,每二个区块链则被称为侧链。
  最初,主链通常指的是比特币区块链,而现在主链可以是任何区块链。二者通过双向挂钩(Two-way peg),实现比特币从主链转移到侧链进行流通。
  侧链最早是在 2013 年 12 月提出,2014 年 4 月立项,由 Blockstream 公司(由比特币核心开发者 Adam Back、Matt Corallo 等共同发起成立)主导研发。侧链协议于 2014 年 10 月在白皮书《Enabling Blockchain Innovations with Pegged Sidechains》中公开。

背景
  2012年首次出现了关于侧链概念的相关讨论,当时比特币的核心开发团队正在考虑如何可以安全的升级比特币协议,以增加新的功能,但是直接在比特币区块链上进行功能添加比较危险,因为如果新功能在实践中发生软件故障,则会对现有的比特币网络造成严重影响。另外,由于比特币的网络结构特性,如果进行较大规模的改动,还需要获得多数比特币矿工的支持。
这时,比特币核心开发者便提出了侧链方案。
这种技术允许开发人员将新功能附加在其他的区块链,但是这些区块链仍然附着在现有比特币区块链上。这些区块链中新功能可以充分利用现有比特币的网络特性,而不会对现有的比特币网络造成危害。

  侧链可以是一个独立的区块链,有自己按需定制的账本、共识机制、交易类型、脚本和合约的支持等。侧链不能发行比特币,但可以通过支持与比特币区块链挂钩来引入和流通一定数量的比特币。当比特币在侧链流通时,主链上对应的比特币会被锁定,直到比特币从侧链回到主链。可以看到,侧链机制可将一些定制化或高频的交易放到比特币主链之外进行,实现了比特币区块链的扩展。

侧链的实现方式

  侧链的核心在于能够冻结一条链上的资产,然后在另一条链上产生。它实现的技术基础是双向锚定(Two-way Peg),通过双向锚定技术,可以实现暂时的将数字资产在主链中锁定,同时将等价的数字资产在侧链中释放,同样当等价的数字资产在侧链中被锁定的时候,主链的数字资产也可以被释放。
双向锚定实现的最大难点是协议改造需兼容现有主链,也就是不能对现有主链的工作造成影响,其具体实现方式可以分为以下几类:

1、单一托管模式
  最简单的实现主链与侧链双向锚定的方法就是通过将数字资产发送到一个主链单一托管方(类似于交易所),当单一托管方收到相关信息后,就在侧链上激活相应数字资产。这个解决方案的最大问题是过于中心化。图1给出了以比特币为主链的单一托管模式的工作原理示意图:

2、联盟模式
  联盟模式是使用公证人联盟来取代单一的保管方,利用公证人联盟的多重签名对侧链的数字资产流动进行确认。在这种模式中,如果要想盗窃主链上冻结的数字资产就需要突破更多的机构,但是侧链安全仍然取决于公证人联盟的诚实度。图2给出了以比特币为主链的联盟模式的工作示意图:

3、SPV模式
  SPV(Simplified Payment Verification)模式是最初的侧链白皮书《Enabling Blockchain Innovations with Pegged Sidechains》中的去中心化双向锚定技术最初设想。SPV是一种用于证明交易存在的方法,通过少量数据就可以验证某个特定区块中交易是否存在。
在SPV模式中,用户在主链上将数字资产发送到主链的一个特殊的地址,这样做会锁定主链的数字资产,该输出仍然会被锁定在可能的竞争期间内,以确认相应的交易已经完成,随后会创建一个SPV证明并发送到侧链上。此刻,一个对应的带有SPV证明的交易会出现在侧链上,同时验证主链上的数字资产已经被锁住,然后就可以在侧链上打开具有相同价值的另一种数字资产。
这种数字资产的使用和改变在稍后会被送回主链。当这种数字资产返回到主链上时,该过程会进行重复。它们被发送到侧链上锁定的输出中,在一定的等待时间后,就可以创建一个SPV证明,来将其发送回主区块链上,以解锁主链上的数字资产。SPV模式存在的问题是需要对主链进行软分叉。图3给出了以比特币主链的SPV模式的工作流程示意图:

4、驱动链模式
  驱动链概念是由Bitcoin Hivemind创始人Paul Sztorc提出的。在驱动链中,矿工作为‘算法代理监护人’,对侧链当前的状态进行检测。换句话说,矿工本质上就是资金托管方,驱动链将被锁定数字资产的监管权发放到数字资产矿工手上,并且允许矿工们投票何时解锁数字资产和将解锁的数字资产发送到何处。矿工观察侧链的状态,当他们收到来自侧链的要求时,他们会执行协调协议以确保他们对要求的真实性达成一致。诚实矿工在驱动链中的参与程度越高,整体系统安全性也就越大。如同SPV侧链一样,驱动链也需要对主链进行软分叉。图4给出了以比特币为主链的驱动链模式的工作流程示意图:

5、混合模式
  上述所有的模式都是对称的,而混合模式则是将上述获得双向锚定的方法进行有效的结合的模式。由于主链与侧链在实现机制存在本质的不同,所以对称的双向锚定模型可能是不够完善的。混合模式是在主链和侧链使用不同的解锁方法,例如在侧链上使用SPV模式,而在主链网络上则使用驱动链模式。同样,混合模式也需要对主链进行软分叉。

对应上诉各种侧链的实现方式,设计到的技术方案有以下几种

补充说明

1、比特币在侧链里流通时还是比特币,侧链的比特币与主链的比特币通常是1比1的汇率,也可能有预定的汇率。
2、侧链的挖矿不能产出比特币,侧链可能有自己的币,也可能没有自己的币,仅是为了比特币的流通。
3、侧链可能是对等的和非对等的。对等的侧链独立存在,其也可成为主链。主侧是相互的,如果有足够的需求,比特币也可成为莱特币的侧链。非对等侧链依赖主链而存在。
4、去中心化没改变,每个人或公司都可创建自己的比特币侧链,用户和矿工认同的会成为主流。
5、当然侧链要有足够的算力保证侧链的可靠和安全。
6、侧链白皮书提出了清晰的侧链框架,具体侧链怎么实现容许设计者自由发挥。
7、滞留费。即长期不移动的币随着时间的推移将减值,减去的金额回馈矿工。比如超过1年不动的币,每年减值10%。现在的比特币网络,时常有大户丢失密钥,相应的币也就丢了。这将降低比特币经济体货币的充足性和流动性,被认为是比特币潜在的一个风险。通过滞留费,鼓励货币流动,激励矿工,也可回收一些因丢失密钥丢掉的币。
8、新的挖矿所得约定。矿工的算力如果威胁到网络安全,将扣发挖矿所得。比如,算力超过50%的矿工没有奖励,这样可约束矿工节制算力,防止51%攻击。
9、挖矿所得延期支付约定。现在,矿工挖到矿后立即得到奖励和交易费。这个约定把挖矿所得延期支付。 比如:在挖到矿的100个区块后支付挖矿所得。这有助于激励矿工维护网络的正常运作。
10、定期可动用地址。新增一种与时间有关的地址。只有到了特定的时间才可动用该地址的币。比如人们可以把10个币发到这类型地址,设定10年后用。时间没到时,任何人,包括拥有者,也不能动里面的币。
11、侧链收益。侧链矿工的收益可以来源于侧链单独的奖励,也可以是来源于主链的奖励