侧链(sidechain)协议允许资产在比特币区块链(blockchain)和其他区块链之间互转。这一项目也来自比特币社区,最早是在2013年12月提出的,2014年4月立项,由BJockstream公司主导研发。侧链协议于2014年10月在白皮书《EnablingB1ockchain Imovations with Pegged Sidechains 》 中公开.
简单来讲,以比特币区块链作为主链(parentchain),其他区块链作为侧链,二者通过双向挂钩(two-way peg),实现比特币从主链转移到侧链进行流通。
侧链可以是一个独立的区块链,有自己按需定制的帐本、共识机制、交易类型、脚本和合约的支持等。侧链不能发行比特币,但可以通过支持与比特比区块链挂钩引入和流通一定数量的比特币。当比特币在侧链流通时,主链上对应的比特币会被锁定,知道比特币从侧链回到主链。侧链机制可以将一些定制化或高频的交易放到比特币主链之外进行,实现比特币区块链扩展。
我们从侧链诞生和详细介绍,侧链实质不是指特定的某个区块链,而是那些遵守侧链协议的所有区块链。
侧链的提出主要原因:
1. 应对其他区块链的应用威胁,通过侧链扩展主链应用,进而巩固主链地位。
2. 比特币核心开发组不欢迎附生链,比如合约币、彩色币等附生链应用,他们考虑这些附生链一定程度降低比特币区块链的安全性。
3. 商业化的考虑,有以太坊的众筹获取高额回报,比特币核心开发组也希望能以某种商业化方式来实现。
SPV证明:
前面我们所说的主链与侧链进行流通,流通就涉及到交易合法性、双花花费检查、脚本检查等。
中本聪设计的简单支付验证(SimplifidePayment Verification,SPV)即实现这一点。SPV能够以较小的代价判断某个支付交易是否已经被验证过(存在于区块链链中),以及得到了多少算力保护(定位包含该交易的区块在区块链中的位置)。
侧链协议中,用SPV来证明一个动作确实已经在区块链中发生过,称为SPV证明,SPV证明包括两部分内容:一组区块头的列表,标识工作量证明;一个输出确实存在于某个区块中的密码学证明。
双向挂钩:
侧链协议的设计难点在于如何让资产在主链和侧链之间安全流转。接受资产的链必须确保发送资产的链上的币被可靠锁定。
协议采用双向挂钩机制实现比特币向侧链的转移和返回。主链和侧链需要对对方特定交易做SPV验证。详细过程看下图
具体步骤:
1. 当用户要向侧链转移比特币时,首先在主链创建交易,待转移的比特币被发往一个特殊的输出,这些比特币在主链上被锁定。
2. 等待一段确认期,使得上述交易获得足够的工作量确认。
3. 用户在侧链创建交易提取比特币,需要在这笔交易的输入指明上述主链被锁定的输出,并提供足够的SPV证明。
4. 等待一段竞争期,防止双重花费攻击。
5. 比特币在侧链上自由流通。
6. 当用户想让比特币返回主链时,采取类似的动作。首先在侧链创建交易,待返回的比特币被发往一个特殊的输出。等待一段确认期后,在主链用足够的对侧链输出的SPV证明来解锁最早被锁定的输出。等待一段竞争期后,主链比特币恢复流通。
网友评论