作者:Sergio Demian Lerner

来源:https://medium.com/iovlabs-innovation-stories/bitcoin-sidechains-74a72ceba35d

img

本文将讨论何为比特币的侧链,以及何以侧链在密码货币的生态系统中具有关键角色。我们先从简要回顾侧链的历史开始。

首个建立侧链的尝试可以追溯到 2012 年,比人们认为的要早得多。第一篇完整描述了一个比特币侧链方案的技术论文是由 Blockstream 的研究员撰写的,出版于 2014 年。不过,这篇文章里的想法已经被抛弃了。在 2015 年 10 月,RSK 发布了其白皮书,并立即基于一种混合的 SPV 联盟锚(hybrid SPV-federated peg)开发侧链代码,而且她具有扩展成一条 drivechain 的潜力(drivechain 的讲解见此 BIP)。在 2016 年 11 月,RSK 启动了其第一个测试网络(连接到比特币测试网),并开始使用测试网比特币测试其智能合约应用。与此同时,Blockstream 也开始开发一种联盟锚,并在 2017 年发布了他们的设计。到 2017 年,RSK 已经执行了多次发布和测试网重置。在 2018 年 1 月,RSK 最终启动了完整功能的主网。RSK 的原生代币是 BITCOIN,而且 RSK 的代码库除了 BITCOIN 以外不曾提到任何别的代币。随着 RSK 生态系统的发展,社区发行了许多种 ERC-20 代币,赋能了一些最新颖的 DeFi 应用。在 2018 年 9 月,Blockstream 启动了 Liquid Network 侧链。自那时候开始,再没有别的比特币侧链在生产环境中启动,虽然 drivechain 的构想有一些进展,而且有一个 drivechain 的测试网启动了。也有一些别的类似于侧链的方案出现,比如 statechain,但尚未有可用的测试网。

区块链桥

两个区块链可以使用一个双向锚定系统(two-way-peg system)来交换资产,这种双向锚定系统常常被称为 “桥”。桥其实就是一种账本间的通信协议。桥有许多种:Powpegs、SPV、hybrid-SPV、联盟桥和担保桥。每一种都有自身的优点和缺点。但不是只有侧链才需要桥。许多区块链,比如以太坊、EOS 和 Polkadot,都使用桥来将其它链的币转移到自己的平台上,虽然他们都有自己的原生货币。

联盟桥(federated bridge)的实质是一群参与锚定资产的多签名托管程序的参与者。Liquid Network 就有一个联盟桥。也有一个 RSK/ETH 联盟桥

Powpeg 中,联盟被一组 “锚定公证员(pegnatories)” 取代了,每个锚定公证员都运行一个特殊的硬件安全模块(Hardware Security Module,HSM)来保护一把可以参与多签名的私钥。每个 HSM 都跟随区块链的 PoW 共识来接收 “脱锚指令(peg-out commands)”(译者注:指让资产离开侧链、回到母链的指令),从而防止了锚定公证员直接掌握锚定的资金。RSK 的锚就是由一个 Powpeg 来保护的。

在担保桥(collateralized bridge)中,参与者(称为 “金库管理员”)可以完全访问控制着比特币的私钥,但他们需要存入一笔担保,以至于如果他们偷盗了桥中的比特币,他们会被罚没担保品。担保品的价值必须大于锚定资产的价值(超额担保),以防止偷盗。如果担保品的价格因为相关资产价格的剧烈波动而低于锚定资产的价值,一个自动化的清算程序会启动。这样做的结果就是,担保品的价值必须远远大于由锚定资产所媒介的整个经济的价值。所以它的资本效率是非常低的。担保桥的一个例子是 PolkaBTC,它把比特币和 Polkadot 连接起来。

“比特币侧链” 是什么意思

严格来说,一条比特币侧链,是一条独立的区块链,它可以安全地在内部转移比特币、从比特币网络获得/向比特币网络转出 比特币,且无需用上与比特币不同的货币

每一条侧链都需要一座桥来连接母链。不过,上述的桥并不都适合用在侧链上。具体来说,资产担保桥,由于它需要发行另一种代币,就非常不适合用在比特币侧链的设计中。而且,因为其高昂的担保需求,用在桥中作为担保的资产必须有极高的价格稳定性,以降低超额担保的比率,那么,这种资产就必须是一种货币资产,从而与比特币的价值存储角色产生了竞争。格雷欣法则(Gresham’s Law )表明,“良币” 会被储存起来,而不是被花掉,从而 “劣币” 会被用于支付。因此,在长期的运行中,没有人会愿意使用 “劣币” 作为担保品,因为担保品会锁定很长一段时间。

img

- 良币 vs. 劣币 -

“侧链” 的定义何以重要

侧链的第一个正式定义(2012)见于此处。在这个定义中,侧链不是由其功能来定义的,而是因为它是具备下列属性的区块链:

  • 不要求有独立的货币
  • 不需要被比特币网络完全接受或得到重大支持
  • 不会逐个区块保留比特币区块链的镜像
  • 使用和运行是独立于比特币的

这几年间,区块链的研究者们尝试提出侧链的新定义,而辩论仍在继续。在这段时间,我选取了侧链的几个定义,尝试捕捉人们最初的想法并结合人们现在对侧链的理解,结果就是上一节提到的那个:

一条比特币侧链,是一条独立的区块链,它可以安全地在内部转移比特币、从比特币网络获得/向比特币网络转出 比特币,且无需用上与比特币不同的货币

这个定义有涉及技术的部分,但也提到了激励上的兼容。而且这个定义没有使用 Blockstream 在 2014 年的论文中的解释,因为它在形式上是不清晰的。

当我说一条侧链不应支持一种货币代币时,我并不是说竞争性的货币代币无法用侧链平台创建出来,而是说,侧链网络运行不应当依赖于发行一种代币,侧链的社区也不应提出这样的激励。

不论我们使用什么定义,比特币侧链最重要的特性在于,侧链的身份是由比特币友来识别和认可的。因此,我们的责任在于保护这个词语的含义,以免一些项目仅仅出于营销的目的而标榜自己是比特币侧链。简而言之,侧链的定义需要包含 “激励兼容” 这一点。

这个定义的模糊之处在于,侧链可能会支持一种用于治理或作为未来手续费投资手段的代币,而没人能阻止这样的代币成为货币。在这种情况下,侧链可能会在某个时间停止运行。不过,这个侧链定义是有用、通用而且清晰的,它捕捉到了侧链对激励兼容的需要,而且不对使用哪种共识技术作限制。不过,这个定义没有被广泛接受。举个例子,Vitalik 所同意的就不是这个。

这个定义还能再进化吗?我觉得是不能了。但我们可以探究哪些地方可以改动:

“最大限度地去中心化”

若在定义中加入 “最大限度地去中心化”,我们就是在要求侧链保持比特币的安全模型、不允许中心化的账本被称作侧链。不过,这可能会迫使我们放弃激励兼容这一点,因为迄今为止发明的所有的双向锚定桥协议,安全模型的去中心化程度都严格弱于它们所连接到的区块链,尤其是跟比特币的工作量证明共识比较的话。一个接受匿名参与者使用另一种代币作为担保品的桥协议可能更为去中心化,但与比特币的激励很不兼容。除了格雷欣法则的影响,如果发行资产用于桥担保的也可以叫侧链,那么像 Polkadot 这样的链按照定义也会被划为侧链,即使这跟原始的侧链定义相去甚远。所以,为了维持我们原有的定义,侧链不应该支持其它任何尝试成为货币的可转让代币。

“使用比特币来支付交易费”

加上这个定义会造成滑坡谬误。可以使用比特币来支付交易费,并不代表用户有激励这样做。也许交易费还可以用其它的代币以更低的成本来支付。又或者,网络可以强制用于以比特币来支付交易费,但自动将它换成其它的代币来支付给矿工。

要是我们要求支付和接收都是比特币呢?那一定程度上我们就必须为元交易中继(meta-transaction relayer)(比如 RIF Enveloping 和 GSN)开一个特例,允许它们继续以稳定币来支付、为他们开设以稳定币买入比特币来支付 gas 的服务。我相信使用法币锚定型稳定币并不影响比特币的货币目标,因为许多用户都需要法币稳定币来进入这个世界,然后才能换得比特币用于长期储蓄,并在他们需要短期稳定性的时候换回稳定币。比特币的侧链不能想着对用户完全隐藏比特币,而是要向用户暴露比特币。而为定义加入手续费以比特币支付这一条,会将一些还仅存在于理论中,但有趣的比特币排除在侧链的范围之外。包括那些不要求支付手续费或者只限制用户交易速率、或以别的形式来抗女巫(比如每个交易都需要提供工作量证明)的区块链。

“没有预挖,以及没有区块奖励”

如此一来,一个没有单种原生代币、但允许多种外来的密码货币同步锚定多种原生代币、并一视同仁接受它们作为交易费支付手段的区块链也可以叫做侧链,尽管它跟比特币的激励兼容可以说荡然无存。

“由比特币的挖矿网络来保护”

少量的侧链共识机制是依赖于比特币挖矿的基础设施的:合并挖矿、PoX 和 Veriblock。最著名、最广泛使用和研究的共识协议是 Nakamoto 合并挖矿。RSK 使用 Decor+合并挖矿作为共识机制,并且已经获得了比特币 80% 的算力支持。 RSK 研究员已经开发出了一个安全和高级得多的合并挖矿版本,叫做 “包含型分叉感知的合并挖矿(Inclusive Fork-aware merge-mining)”。不过,每年都有新的共识协议为了降低区块间隔而被发明出来。没有理由要将侧链限制成只能使用合并挖矿作为共识机制,因为中本聪对极致去中心化的追求(“每个 CPU 投一票”)依然活在每个比特币人心中。因此,虽然激励比特币矿工可以作为侧链与比特币的兼容激励的一部分,但这种激励不应成为侧链的存在理由。

真正的比特币侧链

当前实际存在的比特币侧链仅有 RSK 和 Liquid Network。两条侧链都允许比特币转入、转出以及在平台内流转,而且两者都没有将比特币之外的货币代币具备特权地位。

比特币和一条侧链的关系,就像养在一起的一只猫和一只狗。它们有区别,但都属于同一个家庭。

img

- RSK 侧链与比特币 -

只不过这只狗可不是一只小奶狗,是一只不可战胜的蜜獾。

img

- 更形象的比特币和 RSK 侧链 -

侧链 vs. Rmorachain

有一些区块链重用了比特币网络的某些部分(通常是为了达成共识),但它们引入了一种新的代币:我们管这种区块链叫 “䲟鱼链(remora chain)”。䲟鱼是一种吸附在其它大鱼上以求生存的鱼,但既不会给宿主带来什么好处,也不会有什么害处。虽然这些区块链可能有一些技术亮点,但因为它们存在一个独立的、通常是竞争性的比特币货币经济,所以它们不算侧链,比特币人应该留意。

img

- 吸附在比特币区块链上的 Veriblock -

现有的两条䲟鱼链是 Veriblock Stacks。Veriblock 已经死掉了,但 Stacks 在 2020 年重新启动,并且支持一种新的智能合约语言。两者都有自己的原生 token。我觉得䲟鱼这个名字也不完全准确,因为任何发行了货币代币的新区块链都会在价值存储的市场中占据一席之地,因此会跟比特币竞争。只要它在竞争,它就会增加价值存储币的供应量,并削弱这些币的质量。因此,任何要求资产担保的䲟鱼链,实际上在某种程度上都伤害比特币(不过我不会管它们叫 “寄生虫链”,因为它们可能为生态贡献了别的价值)。

要为䲟鱼链下一个清晰的定义,我们必须排除任何使用了比特币、但没有自己的区块链的系统,因为它们不是 “区块链”,而只是区块的链条。一个 Rollup 也许由一串区块组成,但它并不是 “一个区块链”。一套比特币覆盖层协议,与一条独立的区块链小臂,在复杂性和维护成本上存在巨大的差异,覆盖层协议不需要一套独立的共识算法来决定区块的排序,也不需要一个独立的点对点网络,但对独立的区块链而言,这两者都需要。创造独立区块链的主要动力有两个:更快的区块和更大的区块链(等价于更便宜的交易成本),因为母链的链上空间稀缺而昂贵。覆盖层协议的常见例子有:Counterparty、Omni,以及染色币的其它变种。我觉得它们都不是䲟鱼链。

这是我对䲟鱼链的定义:

一条比特币的䲟鱼链是一个独立的区块链,可以在内部转移比特币,从比特币网络获得/向比特币网络转出 比特币,不过在协议层仅支持一种不同于比特币的货币代币。

我没有发现䲟鱼链有什么特别吸引人的地方,因为一般来说,䲟鱼链和宿主链之间没有共同的激励。虽然䲟鱼链会为一些比特币交易付费,从这些交易中获得的奖励与区块奖励相比(平均而言)是微不足道的。结果是,䲟鱼链会严重依赖于宿主链和宿主社区,但这个群体随时有可能背弃䲟鱼链。这不是互惠共生的关系。举个例子,比特币的䲟鱼链通常使用 OP_RETURN 操作码的负载,但它是由体积上限的,在交易独立传播时强制执行。这个体积上限在未来随时有可能下降,只要简单的一次软件更新就行,但它会直接影响䲟鱼链的共识。

比䲟鱼链还要奇怪的东西

我们来设想一种区块链,它依赖于多个宿主区块链来保护其共识,但任何一个宿主链的失败都会阻止其共识达成。举个例子,一个区块链可能同时与比特币、以太坊、莱特币和 zCash 合并挖矿,而且跟每个区块链都有桥。这就不是一条䲟鱼链了,它是一种更奇怪的动物:可能是鹿角小飞兔吧。

img

- 这只鹿角小飞兔链准备好处理交易了 -

因为现在还没有这种链,我就先略过不提。

总结

巩固比特币的价值储存地位,暗示着侧链需是比特币金融栈的自然延伸,就像 Paul Sztorc 自始至终不断强调的那样。侧链是跟比特币社区高度激励兼容的独立区块链。RSK 是最老的,也是唯一一个图灵完备的比特币侧链,并且已经有了一个丰富的 DeFi 生态系统。比特币人将比特币侧链理解为对比特币生态系统有所贡献的独立区块链,不管为侧链下什么样的定义,都应该保留这种共同的信念。比特币的侧链是去中心化的金融生态系统终将出现的部分。RSK 生态的不断成长,证明了比特币侧链的未来是光明的。

(完)