这是我之前讨论现有不同侧链提案的文章系列的延伸。 这些文章可以在这里找到: 空间链, 太空链用例, 软链, 传动链, 联盟链, 和 侧链的权衡。
植物尼克斯实验室 最近提出了一种全新的侧链设计,称为 蜘蛛链,目的是将以太坊虚拟机移植到锚定到比特币网络的平台上。 该架构与大多数先前的具体设计方案存在很大偏差。 首先,它不直接让矿工达成共识,也不使用任何变体形式的合并挖矿。 其次,它使用多重签名和托管债券在比特币之上创建第二层权益证明系统。 第三,它不需要对比特币进行任何更改即可部署。
首先要澄清的是,从技术上讲,蜘蛛链并不是真正的侧链。 任何利用蜘蛛链部署的侧链都将位于蜘蛛链的“上方”,蜘蛛链位于主链基础层的上方。 侧链区块将由共识系统中的利益相关者(本文中称为协调者)独立生成。 蜘蛛链并不是真正的侧链,而是一种抵押层,有助于在主链上托管用户资金和利益相关者债券。 把它想象成侧链和主链之间的三明治的中间。
权益证明变体
为了更好地了解系统的工作原理,我们来了解一下 Botanix EVM 链如何与蜘蛛链层交互。 除了实际托管支持侧链代币的资金之外,该系统对比特币区块链的首要用途之一是选择区块构造器。 权益证明链需要一个选择过程,在这个过程中,抵押者实际上将内存池中的交易中的区块放在一起。 在工作量证明中,所有矿工都独立执行此操作,无论谁幸运并找到有效的区块头哈希,他们的区块都会被接受到区块链中。 由于权益证明的全部目的是消除谁选择下一个区块的能源密集型随机化,因此这些系统需要另一种解决方案。 他们使用可验证随机函数(VRF),该函数允许所有参与者验证结果实际上是随机的,而不是有偏见或确定性的。 蜘蛛链利用比特币区块哈希来获得可验证的随机性。
就像其他权益证明系统一样,Botanix 将区块链划分为称为“纪元”的离散部分,这些部分会定期确定并选择新的块构造函数。 在一个纪元开始时,主链区块哈希被获取并作为随机源应用于所有利益相关者以选择新的区块构造函数。 在六个区块之后,为了考虑重组的可能性,网络将过渡到该纪元的新区块构造器。 现在,这描述了权益证明系统处理侧链上的区块构建并就轮到谁达成共识的方式,是时候了解这一切如何与蜘蛛链交互(以及蜘蛛链到底是什么)。
蜘蛛链
除了定期使用它来选择区块构造器之外,侧链还利用 VRF 来选择质押者的随机子集,以构建一个多重签名地址,以便将每个比特币区块存入侧链。 没错,是挂钩多重签名的一组随机成员。 与联邦侧链不同,联邦侧链将资金托管在由整个联盟成员组成的地址中,蜘蛛链将每笔存款(或与侧链挂钩的交易的变化)分解到一个唯一的地址,具体取决于它在组成中确认的主链块风险承担者集合的随机子集。 即,如果有 50 人在任何给定的区块高度进行质押,则随机选择 10 人作为下一个区块中发生的任何存款的密钥持有者。 直觉上这似乎相当疯狂,但其中有一些合理的逻辑原因。
它将资金风险与恶意方隔离。 大多数人都会想到盗窃,但对于这样的系统来说,即使失去活性也可能是一场灾难。 想想联邦侧链,你不需要恶意的多数人来造成严重的问题,只需要恶意的少数人。 如果联盟需要 2/3 的阈值来移动代币,那么只需 1/3 + 1 名成员就足以保持这些代币冻结(这就是为什么 Liquid 拥有一个延时紧急恢复路径,其中 Blockstream 持有密钥以防止永久代币丢失在这个情况下)。 严格来说,您甚至不需要任何恶意行为者,只是密钥丢失就可能会造成该问题。 通过将存款分解为具有随机成员的独立子集密钥,您可以减轻(而不是解决)此类问题。 如果密钥丢失,或者恶意行为者能够在系统中获得足够的赌注百分比来拖延或窃取,从统计上看,他们永远无法访问蜘蛛链中的全部资金。 每个区块都有完全独立的几率构建由恶意多数人控制(或由恶意少数人实施)的存款地址,如果满足这些条件,则只有该特定区块中通过提款变化存入或展期的资金才会面临风险而不是侧链的全部资金。
还有另一个有趣的安全属性,它源自提款的处理方式。 任何不将所有存款聚合到单个滚动 UTXO 中的侧链挂钩机制都会引发使用哪些 UTXO 来完成提款的问题。 蜘蛛链设计采用先进先出(FIFO),这意味着侧链的任何提款都将使用最近存入的 UTXO 进行处理。 在恶意实体加入利益相关者群体以从蜘蛛链窃取资金的背景下考虑这一点。 在这些恶意实体成为多数之前存入的所有资金都是完全安全的,并且受到防火墙的保护,直到任何提款要求开始需要花费这些资金并将更改转移到新地址为止。 现在,即使他们成为大多数利益相关者,他们也只能在随机成为存款地址创建协议中的大多数关键成员的情况下才能获得资金。 因此,即使他们进入并接管之后,由于使用 VRF 创建存款地址,他们也无法完全访问此后存入的所有资金。
这条随机构建的多重签名链就是蜘蛛链,它是一种用于锁定和解锁侧链的代币的挂钩机制。
质押债券
任何权益证明系统的最后一部分都是债券,而且它非常简单。 如果质押者不需要提供任何抵押品来换取参与共识机制,那么他们就不会受到任何东西作为对恶意行为的惩罚。 您猜对了,这是通过使用蜘蛛链来完成的。 与为用户生成存款地址的方式相同,每个区块都会为想要在侧链上进行质押的人生成一个新的存款地址,以便将债券存入由一组随机的现有质押者组成的多重签名中。 一旦这种债券得到确认,新成员将被视为质押者,并包含在从中选择新区块构造者和存款地址成员的整体集合中。
届时,如果质押者未能做出回应并保持在线状态或参与恶意行为,他们可能会受到削减的处罚,并且如果有必要,最终会通过削减整个质押债券而将其从质押者集合中删除。 这样做的好处是削减政策,即对特定行为或不当行为的处罚金额,不是程序性的或社会性的,而是两者兼而有之。 削减以编程方式发生在主链的基础层上,但由质押债券的密钥持有者以社交方式发起。 这意味着事情可能会有点混乱,但可以灵活地将事情调整到平衡,使事情以有利于利益相关者和用户的方式运行。
将它们粘合在一起
将权益证明的想法作为基础层共识机制,现在就抛弃这个想法。 事实并非如此,为了将权益证明作为第二层系统而不是独立的基础层,需要解决的问题也不同。 权益证明本质上是一个联盟,但任何人都可以加入并且无法阻止这样做,并且具有惩罚恶意行为的机制。 作为产生各种存在问题的基础层,例如严厉处罚的客观性。 当用于削减的债券位于主链上并由工作量证明管理时,作为第二层的权益证明就不存在这个问题。
权益证明作为第二层的问题是如何保证新成员不会被排除在“联盟”之外。 如果所有资金均由当前成员保管,则大多数(或 1/3 + 1 的恶意少数)可能会阻止任何资金转移到包含新成员的多重签名。 他们可能会被阻止加入。 存款和质押债券利用蜘蛛链的方式,以及它是由“联盟”子组组成的可证明随机生成的多重签名,它优雅地解决了当前成员能够排除新成员的问题。 管理地址成员和新进入者的一切都是可证明的,并通过第二层共识来执行,信息可在工作量证明管理的主链上查看。 一旦有人发行了债券,他们就会被选为托管存款和其他质押债券的一部分。 一切都在那里并且可以验证。
它还根据其工作原理创建了一些有趣的安全属性和动态。 在联合侧链中,即时资金被轮换为由足够多的恶意实体组成的多重签名,整个侧链资金都受到损害。 借助蜘蛛链,如果能够快速识别,几乎可以完全阻止新的恶意多数人的进入。 只要停止新的存款,直到削减可以消除足够多的恶意参与者,就可以将面临风险的资金量限制在新存款的统计部分,这些新存款最终出现在他们成为多数人之后控制的地址中。 他们将无法在进入之前削减任何旧的质押债券,但现有的成员将能够从统计上削减他们的一部分债券。
只要单个多重签名的规模与质押者总数保持平衡,并且所有存款的价值与质押债券相比,这可能是一个非常可行的系统。
总的来说,这是一个非常有趣的提案,它针对将联盟“升级”为权益证明系统的问题提出了有趣的解决方案:任何人都可以加入,防止恶意成员的机制,以及参与的激励,因为利益相关者可以分割交易费用。 踢球者? 你为什么要关心? 它根本不需要任何分叉来启用,所以它就会发生。