# Collaborative Rollup：无需 ZK EVM 的更快确定性提案


By [0xoptimistic](https://paragraph.com/@0xoptimistic) · 2022-08-20

---

原文作者:  Ethereum

创作者：[Xinyang@DAOrayaki.org](mailto:Xinyang@DAOrayaki.org)

审核者：[DAOctor@DAOrayaki.org](mailto:DAOctor@DAOrayaki.org)

原文:  The Risks of LSD

背景
--

自从 ETH2 提上日程后，人们就 sharding（分片）讨论了很长时间。danksharding 提出后，社区似乎对数据分片达成了共识，将执行权留给了 L2（各种 Rollup），而最初的多委员会（multi-committee）执行分片（execution sharding）设计由于其复杂性而很少被谈论。但我认为执行分片仍需深入研究，它的一些属性仍然可以使用，尤其是它的安全模型。

在这篇文章中，将提出 Collaborative Rollup，一种新型的 Rollup，它基于从执行分片方案派生的多委员会，因此具有相同的安全模型。与 ZK Rollup 相比，它可以轻松地完全兼容 EVM，而 zkEVM 仍然很难解析一些操作码。与 Optimistic Rollup 相比，Collaborative Rollup 不需要一段长时间的挑战期。

概述
--

Collaborative Rollup 的关键组件包括生产者节点（PN）、背书节点（EN）、管理合约（MC）和状态合约（SC）。

人们可以质押代币并将其公钥（BLS）注册到 MC ，成为 PN 或 EN。我们将根据质押数量选择前 N 个 EN，并通过 RANDAO 或 VRF 等可信任的随机来源将它们随机分发到 M 个委员会中。委员会的信息也由 MC 管理。

PN 以数据包的形式收集 L2 交易，通过在 EVM 中运行交易生成执行结果，并将结果发送给 EN 委员会进行背书。EN 通过在其本地 EVM 中实际执行交易来验证结果。如果结果有效，EN 签署结果作为背书并广播它们。委员会中收集到至少 2/3 EN 的背书的，可以将这些 BLS 签名聚合为证明，并像其他 Rollup 一样将执行结果、证明和交易提交到链上。

安全模型
----

如上所述，Collaborative Rollup 的安全模型依赖于随机委员会的背书，就像 ETH2 原来讨论的执行分片一样。众所周知，单个节点不能被信任，而一组随机选择的节点却可以。如果我们假设少于 1/3 的节点是恶意的，并且委员会的多数是 2/3，那么只有当恶意节点无法在单个委员会中获得多数时，才能保持安全。

接下来，我们将估计恶意节点在委员会中获得多数席位的概率。设 N 是总节点的大小，其中 K 个是恶意的。n 是委员会大小， k 是对手大小，因此一个委员会中恶意节点数量的概率分布可以建模为超几何分布：

所求的概率

遵循累积超几何分布，当 很大时，它会降级到二项分布：

其中 p 是 1/3。我们可以看到，当 n 足够大时，恶意节点在委员会中获得多数席位的概率可以忽略不计。这里，“多数”可以理解为 POS 中的质押份额。下面列举一些概率情形：

另一方面，如果一个包含非法验证的背书被某个故障节点签名，无论它是否可以获得足够的签名来提交给 L1，签名的无效背书本身都可以被视为欺诈证明并提交给 L1 以惩罚签名节点，这是一种 1-of-N 信任模式。

背书和验证
-----

L2 中的状态可以组织为一棵 Verkle 树，它使用 KZG 作为其状态承诺，也像 MPT 一样实现 trie。因此，状态根是整棵树的承诺。我们在这里使用 Verkle 树，因为它的 proof 比 Merkle 树小。给定 N 个叶子的 k-ary 树，则是

PN 在其本地 EVM 中执行交易后，我们可以获得输入状态、输出状态和输出状态根。那么执行结果可以作如下呈现：

执行结果包括背书费用信息，最后状态根，结果的状态根，交易的 Merkle 根，以及相关的输入状态和 Verkle 证明，属于最后状态根输出状态的 Verkle 路径，需要执行的交易，以及上面三个根的签名和背书费用信息。

当 EN 接收到一个合格的 PN 产生的执行结果时，它首先检查它是否具有最后状态根，然后验证输入状态的 Verkle 证明以及输出状态的路径。如果以上所有内容都有效，我们将拥有一个包含所有所需状态的部分状态树。之后，检查交易的 Merkle 根并在该状态树顶部使用本地 EVM 运行所有交易以生成输出状态树。最后，检查输出状态树的根是否与执行结果中的根相等。如果为真，则通过对执行结果中三个根的数据进行签名来生成背书，并且值为 1。否则，EN 只对与上述内容相同的数据签名，但值为 0。

任何签名的 EN，收到来自 2/3 委员会的背书的，可以将背书中的签名聚合为一个以形成最终背书，并将其提交给 L1，由合约调用交易，就像其他 rollup 一样。L1 链通过验证签名以及背书中交易的 Merkle 根来检查背书。如果它们都有效且状态为 1，则将接受 rollup 交易并将状态根设置到状态合约 SC。

费用和激励
-----

如上所述，承诺到 L1 的交易费用将由 EN 支付。还有一点需要说明的是，在发送给 EN 进行背书的执行结果中有背书费用信息。SC 中的每个 PN 都有一个背书费用帐户，用于支付该费用。EN 将检查账户余额以确定是否足以支付要背书的执行结果中设定的费用。一定比例的背书费用会被支付给成功将背书交易发送到 L1 的EN，所有签署背书的 EN（包括发送交易的）将平分剩余的费用。

背书费用信息也可以设计为包括 GAS\_PRICE 和 GAS\_LIMIT 。无论执行结果是否有效，SN 都可以收集委员会 2/3 的签名，承诺到 L1，并收取背书费。

另外，如上所述，这里有一个渔夫机制。任何无效的背书，无论是否已承诺到 L1，都可以作为恶意证明并由任何节点发送到 L1。支持错误背书的 EN 的质押将被削减，一部分削减的质押将作为激励提供给证明发送节点。

本文链接：[https://www.defidaonews.com/article/6772560](https://www.defidaonews.com/article/6772560)

---

*Originally published on [0xoptimistic](https://paragraph.com/@0xoptimistic/collaborative-rollup-zk-evm)*
