

(1).png)

最初的概念是由 Adam Back、Matt Corallo、Luke Dashjr、Mark Friedenbach、Gregory Maxwell、Andrew Miller、Andrew Poelstra、Jorge Timón 和 Pieter Wuille 于 2014 年提出的,他们后来创立了 Blockstream。
提出这个想法是为了创造一个更加自由的开发环境,人们可以在侧链上尝试新的想法和技术,而不会危及主比特币区块链的安全。
从那时起,侧链的设计空间就变得相当大。
归根结底,“侧链”是一个非常宽泛的术语,涵盖了一系列极其多样化和不同的系统。它们可以像整个山寨币和其他区块链的生态系统一样千差万别、恣意妄为。毕竟,它们就是其他区块链系统。
无论任何侧链的具体设计如何,它们都包含两个主要组成部分:锚定、共识机制和规则。锚定充当了在主链上“锁定”和“解锁”代币的载体,使代币在比特币底层和侧链之间来回转移。共识机制和规则决定了侧链本身的运作方式,例如如何创建新区块,以及允许哪些行为、交易或合约的规则。
这些是侧链的必要部分。
最初的提案
2014 年 Blockstream 设计提出使用合并挖矿作为共识机制,通过在主链区块头中间接提交侧链区块头来重用当前比特币矿工的工作,并使用简化支付验证证明(SPV 证明)来操作挂钩机制。
为了方便合并挖矿,所有侧链都会将其区块头构建为“子区块头”,并承诺在主链区块的coinbase交易中进行挖矿。这将允许所有矿工同时挖矿主链以及他们选择提交的任何侧链。任何满足侧链难度目标的主链区块头,即使不满足主链的目标,也可以作为有效区块提交到侧链网络。
挂钩需要 Merkle 证明来表明某些交易已被包含在区块中。拟议的挂钩机制可以采用两种方式之一:使用对称 SPV 证明或非对称 SPV 证明。
对称方案要求存款和取款均有 SPV 证明,并设置一个竞赛期。要存款,用户需要将币发送到主链上的脚本,该脚本只有生成 SPV 证明才能使用。等待竞赛期结束后,用户可以使用 SPV 证明解锁侧链上的币,证明他们已将币存入主链上的侧链脚本。任何证明主链上发生了更多工作量的重组,从而撤销了存款交易的证明,都可以用来使侧链上的认领交易无效,并且每个侧链用户都有动力生成该证明,以防止锚定失去 1:1 的支持。
提现则需要反向操作,将侧链上的币锁定在脚本中,需要主链的 SPV 证明才能解锁。等待竞赛期结束后,用户可以使用锁定在侧链上的 SPV 来解锁主链上的币。
非对称变体通过要求侧链节点也运行并通过共识验证主链,从而消除了存款时生成主链 SPV 证明的需要。这将允许更快、更安全的存款,但会增加侧链的验证成本。
虽然合并挖矿已经部署在众多侧链以及完全独立的山寨币网络中,但原始论文中提出的 SPV 挂钩以及比特币所需的共识变化从未实施或部署。
附录 – 联合挂钩及其他设计
在原论文的附录A中,作者们提议使用联邦锚定机制来代替(或直至)实现SPV锚定设计所需的软分叉。该方案是使用职能机构的多重签名来操作锚定机制,在侧链上使用时保管用户代币,并强制执行提现的有效性。Liquid和Rootstock的实现都实现了这一点,Liquid也使用职能机构使用加密密钥为侧链签名区块,而Rootstock则利用合并挖矿来实现侧链共识。
自这些侧链推出以来,已经出现了许多其他针对不同侧链共识机制以及不同侧链锚定机制的设计方案。虽然其中许多方案已经部署,但并非所有方案都已部署,而且没有一个方案真正实现了大规模的采用。
以下是我之前撰写的系列文章的链接,探讨了其他侧链设计方案的不同方面。虽然本系列文章并不完整,但涵盖了大多数重要的提案。
- ()






.png)





















