侧链,是对于某个主链的一个相对概念。英文为sidechains。侧链概念的提出主要是为了实现比特币和其他数字资产在多个区块链间的转移,简单的说,侧链就是一种使货币在两条区块链间移动的机制。侧链是以融合的方式实现加密货币金融生态的目标,而不是像其它加密货币一样排斥现有的系统。利用侧链,我们可以轻松的建立各种智能化的金融合约,股票、期货、衍生品等等。
侧链的产生
最开始,侧链的出现是为了弥补比特币区块链运行中的一些问题比如比特币区块链是一个单一原生的数字资产,不能与其他任何资产相兑换,以及,在比特币区块链中,由于本身强大的共识机制反而导致交易缓慢等,这些都需要比特币区块链考虑是否进行技术上的升级,来满足人们对区块链更多的需求。
然而比特币区块链对整个系统的完备性和安全性都有很高的要求,对比特币系统本身的升级改造需要很严密的验证以及需要一个安全升级的途径。为了满足更多更新的需求,就需要一种辅助的区块链,首先,能够实现将比特币以一种虚拟的方式转移到侧链中,然后,不同的侧链可以根据对应的需求进行针对性开发,以帮助比特币区块链或者说主链实现其他需求,而不需要主链频繁的更新。同时,在侧链完成操作之后,在侧链中的资产可以随时的转移回比特币区块链或者主链中,从而实现资产的安全回流。由此就产生了开发侧链的需求。
侧链的原理
为了能够实现侧链,首先需要明确清晰的认识到侧链的目的,在实现主链暂时不能胜任的新需求时,能够将主链上的资产无缝的转移到侧链上,而且侧链上的资产不是一种新的独立的币,因为如果每一种侧链都引人一种新的数字货币,那么,在主链向侧链进行资产互通的过程中还要处理大量的汇率转换问题。所以侧链和主使用统一的数字货币,货币的发行机制以及本身的安全性都由主链来整体维护,侧链只需要关注技术上的创新就行了。
我们从实现的角度出发,当资产从A区块链向B区块链转移时,我们在A链上创建一个锁定资产的交易,然后在B链上创建一笔交易,该交易的输入中包含一个密码学证明凭证,来解锁侧链中的等值资产。而反过来操作的话,就是先将B链中的资产通过交易锁定,然后在A链中将等值资产解锁,来实现货币在不同区块链中的转移。
其中的A链我们称之为主链,B链则称为侧链。在某些模型中,两条链可以对等地来处理。从概念上讲,我们打算将资产从(初始)主链转移到一条侧链,可能会再转移到别的侧链,最终还能转回至主链,并保全初始资产。一般我们把主链看成是比特币系统,侧链是其他区块链中的某一个。当然,侧链中的币也可以在侧链间传递,并非只能与比特币系统进行往来;不过,由于任何一个最初从比特币系统移动的币都可以移回去,所以不管变成什么样,它仍是个比特币。
要完成转移资产方式的实现,有一个难点,就是侧链是如何知道资产已经在主链上完全锁定了。逆向转移同样也需要考虑这个问题。在上面我们说过,要利用一个密码学证明凭证。而这个证明机制其实就是利用之前在比特币区块链中提到的SPV证明,SPV证明即简单支付验证,可以轻量级的验证某一个支付的安全性,而不必获取整区块链数据。
我们仍然以比特币区块链作为主链来讲解,首先在主链上将主链币发送至一个特定的输出,这个特定的输出是包含了侧链信息的特殊地址。然后在侧链中利用SPV证明去验证这个支付是可靠的,没有出现双花等安全性问题,之后就会在侧链中产生一个来自主链的输入,接收到这个输入之后,就可以在侧链中自由的使用这个资产了。
在这个两种链之间资产转移的过程中,我们需要两个等待期来同步这两个链。
侧链接收资产前的确认期
这个等待周期是为了保证在主链上的交易已成功记录到区块上,当主链上发送至特殊输出的交易生成之后,用户需要等待确认期的结束,然后在侧链上利用SPV证明确认该笔输出已经在主链上创建,接着在侧链上生成一个引用该输出的交易。这个确认期是一个依侧链而定的安全参数,要在跨链之间的交易速度和安全性间做权衡。
侧链接收资产后的竞赛期
这个期间,新转移过来的币不能在侧链上花费。竞赛期的目的是防止重组时出现双花,这里的重组指的是侧链释放锁定的币发放给指定用户。在这个延迟期内的任何时刻,如果有一个新的SPV工作证明发布出来,而最终记录到主链上的区块没有包含这个信息,那么该资产转换将被确认为失效。我们称此过程为重组证明。渡过竞赛期的过程我们称之为重组证明。
通常竞赛期也是一或两天的时间。而且在整个资产转移过程中,额外的SPV证明会使整个交易变大,从而占用更多的空间,为此我们还推荐用户用原子交换进行大多数交易,只要在两个链上都持有代币就可以很方便的进行。
当下的侧链
[if !supportLists]1. [endif]BTC-Relay
由ConsenSys团队推出BTC Relay被认为是区块链上的第一个侧链,BTC Relay项目是在以太坊基金会之下诞生并成长起来的,其主要原理是BTC Relay把以太坊网络与比特币网络以一种安全去中心化的方式连接起来。BTC
Relay通过使用以太坊的智能合约功能可以允许用户在以太坊区块链上验证比特币交易。
BTC Relay使用区块头创建一种小型版本的比特币区块链,以太坊DApp开发者可以从智能合约向BTC Relay进行API调用来验证比特币区块链上的交易。BTC Relay进行了跨区块链通信的尝试,打开了不同区块链交流的通道。
[if !supportLists]2. [endif]RootStock
RootStock是一个建立在比特币区块链上的智能合约分布式平台。它的目标是将复杂的智能合约实施为一个侧链,为核心比特币区块链增加价值和功能。RootStock实现了以太坊虚拟机的一个改进版本,它将作为比特币的一个侧链,使用了一种可转换为比特币的代币作为智能合约的消耗币。
[if !supportLists]3. [endif]Elements(元素链)
元素链作为比特币侧链,其最具创新意义的特性莫过于私密交易。私密交易中的金额仅由该交易的参与者知道(或其他指定的人可以知道)。
比特币用地址来保证隐私,同时公开交易让别人验证,元素链在保护个人隐私上更进一步。通过引入一种新地址类型,称为私密地址,私密地址含了一个盲化因子,比普通比特币地址更长,这种地址在元素链Alpha版本中是默认地址。
[if !supportLists]4. [endif]闪电网络
闪电网络我们在比特币中有过介绍,也是为了弥补比特币区块链交易速度慢的缺点,将交易转移至线下进行,通过内部的鼓励惩罚机制保证交易的安全。