ZKP 的两步提交算法,为 ZK-Rollup 提供了标准的去中心化 Prover 机制。
撰文:Opside
Opside 提出的 ZK-PoW 算法,具有以下优势:
当前,以太坊主网上已经有多个 ZK-Rollups 在运行了,包括 Polygon zkEVM 以及 zkSync era。然而实际上目前绝大部分的 ZK-Rollup 项目都没有实现去中心化的 prover。例如 Polygon zkEVM 的 beta mainnet 中依靠 trusted aggregator 来提交 ZKP,zkSync era 也是类似。
当 ZK-Rollup 数量不多的时候,中心化的 prover 是可行的。但是随着 ZK 扩容技术的成熟,特别是未来一到两年时间内 zkEVM 技术的逐渐落地,ZK-Rollup 数量将迎来非常可观的增长。在海量 ZK-Rollup 的情况下,中心化的 prover 也会引发很多问题:
首先,prover 成本高昂,且需要专业的设备与机房,不是每一个 ZK-Rollup 的运营者都具有维护一个中心化的 prover 集群的能力。因此我们需要专业的矿工来承担未来海量的 ZK-Rollup 的算力需求
其次,如果只有一个 prover,那么单节点宕机就会造成整个 ZK-Rollup 的交易无法被确认。我们需要一个去中心化 Prover 机制来鼓励多个矿工同时参与一个 ZKP 的计算,并获得对应的奖励。
最后,我们需要一个标准化的 ZKP 优化算法,来提升整体的硬件效率。
作为一条高度去中心化的公链,Ethereum 已经拥挤不堪,gas fee 极其昂贵。很多 Web3 应用,尤其是金融衍生品、Game、社交网络等,需要往 layer 2 或者其他公链迁移。其实,单纯提供高性能和低 gas 的执行环境并不难,一些中心化的方案可以很容易做到这一点。难的是如何在保证高性能和低 gas 同时,保持高度的去中心化程度。
在 Opside 的设计中,每一个 Web3 应用都可以拥有一个专属的 ZK-Rollup,并且可以自由选择 base chain。目前,Opside 支持 4 条 base chain,分别是 Ethereum、Opside、BNB chain、Polygon。也就是说,开发者可以选择在这 4 条公链上面部署自己的 ZK-Rollup。为了支撑数量众多的 ZK-Rollups 带来的海量硬件资源的需求,Opside 还提供了一个统一的 ZKP 算力市场,鼓励 Miner 来为这些 ZK-Rollups 生成 ZKP。
Opside 采用了 PoS 和 PoW 混合共识。其中 PoS 部分是基于 ETH2.0 的共识改进的。因此,Opside 将拥有超过 10w 多个 validator 来提供海量的数据可用性,同时具有高度的去中心化程度。
在 Pre-Alpha 测试网阶段,根据 PoW 算法,一个 Opside 区块内,每个 Rollup 会按照一定规则提交一个 sequence。所有 sequence 根据当前 Rollup slots 注册数量来以及包含的 batch 数量来划分当前区块的 PoW 奖励。当然,可能某些 rollup 在某些区块没有提交 sequence,因此 PoW 实际的通胀会低于预期。
Miner 可以自由选择参与其中一个或者多个 Rollup 的 ZKP 计算。在未来,各个 sequence 将根据对应的 ZK-Rollup 类型、所包含的 Rollup 交易数量、gas 使用量等进行工作量预估,从而对不同 sequence 进行不同的定价。
为了避免 Miner 相关的恶意行为,Miner 需要在一个特殊的系统合约中注册,并质押代币。Miner 需要在系统合约中为一个 Rollup 质押相应的 token,才可以为该 Rollup 提交 ZKP。Miner 提交 ZKP 获得的奖励也将依据质押量比例来分配,从而避免 Miner 多次提交 ZKP 的恶意行为。
更多细节请参考 Opside Tokenomics
为了鼓励多个矿工同时参与一个 ZKP 的计算任务,Opside 提出了一个两步提交的 ZKP 验证机制。一个 ZKP 对应的 PoW 奖励份额,会按照一定规则分配给有效 ZKP 的提交者,也就是矿工。
提交 proofhash:在一个时间窗口内,对于某个 sequence,允许多个矿工参与 zero-knowledge proof 的计算。各个矿工计算出 proof 之后,并不直接提交原始的 proof,而是计算(proof / address)的 proofhash,并向合约提交 proofhash。
提交 ZKP:在时间窗口后,矿工提交原始的 proof,并与之前提交的 proofhash 进行验证。验证通过的矿工都可以得到 PoW 奖励,奖励金额按照矿工质押量的比例来分配。
更多细节请参考 ZKP's Two-Step Submission Algorithm
Rollup 的智能合约验证 ZKP 的时候,如果提交的是原始 proof 数据,就有可能引发链上攻击行为。为了防止恶意攻击行为,ZK-Rollup 往往需要进行额外的工作量来隐藏原始的 proof 数据。有一种解决方案是,矿工提交的 ZKP 包含了对矿工地址的聚合结果。Opside 提出的 ZKP 的两步提交算法,则巧妙地采用了先提交 + 后验证的模式,不再需要对 proof 和地址做类似的不必要的聚合计算。
此外,在一些开源的 zkEVM 中,ZKP 的计算与提交都是串行的。当 ZK-Rollup 提交了大量的 sequence 时,矿工无法同时计算多个 ZKP。在 Opside 中,ZKP 的两步提交算法实现了 ZKP 的并行计算与串行提交,允许矿机同时执行多个 ZKP 生成任务,从而大大加速了 ZKP 的生成效率。
Opside 团队还对 ZKP 递归聚合算法进行了一系列的优化,充分提升了集群内机器资源的利用率,进一步提高了 ZKP 的计算速度。
在实际的压测环境中,矿工拥有 20 台 128 core CPU + 1TB RAM 组成的机器集群,测试交易稳定在 27.8TPS 约 40 分钟。在相同条件下,Opside 将交易的平均确认时间从约 5-6 分钟降低到了约 3 分钟,ZKP 生成效率提高了约 80%。在未来,随着更多 ZK-Rollup 以及矿工的加入,ZK 算力市场的需求端和供给端的规模将进一步扩大,Opside 的 PoW 算法带来的效率提升将体现得更加明显。
Opside 提出的 ZK-PoW 算法,创造性地定义了一个市场化的 ZK 算力定价机制。这个算力市场为即将到来的 ZK-Rollup(尤其是 zkEVM)的大规模爆发提供了海量算力平台;同时也为大量闲置的矿工提供了新的挖矿场景。
ZKP 的两步提交算法,为 ZK-Rollup 提供了标准的去中心化 Prover 机制,鼓励更多的矿工提供稳定、持续的 ZKP 算力。同时,优化的 ZKP 计算与提交机制,将生成 ZKP 的效率提高了 80%
在未来,Opside 的 PoW 机制的应用场景可以轻易地拓展,不但可以用于扩容(ZK-Rollup),在未来也可以应用于 AI(ZKML)。
9.6万 热度
1.3万 热度
7215 热度
17.1万 热度
5.1万 热度
一文读懂 Opside 的 ZK-PoW 算法
撰文:Opside
TL;DR
Opside 提出的 ZK-PoW 算法,具有以下优势:
为什么我们需要 ZK 算力的 PoW 算法?
当前,以太坊主网上已经有多个 ZK-Rollups 在运行了,包括 Polygon zkEVM 以及 zkSync era。然而实际上目前绝大部分的 ZK-Rollup 项目都没有实现去中心化的 prover。例如 Polygon zkEVM 的 beta mainnet 中依靠 trusted aggregator 来提交 ZKP,zkSync era 也是类似。
当 ZK-Rollup 数量不多的时候,中心化的 prover 是可行的。但是随着 ZK 扩容技术的成熟,特别是未来一到两年时间内 zkEVM 技术的逐渐落地,ZK-Rollup 数量将迎来非常可观的增长。在海量 ZK-Rollup 的情况下,中心化的 prover 也会引发很多问题:
首先,prover 成本高昂,且需要专业的设备与机房,不是每一个 ZK-Rollup 的运营者都具有维护一个中心化的 prover 集群的能力。因此我们需要专业的矿工来承担未来海量的 ZK-Rollup 的算力需求
其次,如果只有一个 prover,那么单节点宕机就会造成整个 ZK-Rollup 的交易无法被确认。我们需要一个去中心化 Prover 机制来鼓励多个矿工同时参与一个 ZKP 的计算,并获得对应的奖励。
最后,我们需要一个标准化的 ZKP 优化算法,来提升整体的硬件效率。
Opside 的 ZK-PoW 算法
作为一条高度去中心化的公链,Ethereum 已经拥挤不堪,gas fee 极其昂贵。很多 Web3 应用,尤其是金融衍生品、Game、社交网络等,需要往 layer 2 或者其他公链迁移。其实,单纯提供高性能和低 gas 的执行环境并不难,一些中心化的方案可以很容易做到这一点。难的是如何在保证高性能和低 gas 同时,保持高度的去中心化程度。
在 Opside 的设计中,每一个 Web3 应用都可以拥有一个专属的 ZK-Rollup,并且可以自由选择 base chain。目前,Opside 支持 4 条 base chain,分别是 Ethereum、Opside、BNB chain、Polygon。也就是说,开发者可以选择在这 4 条公链上面部署自己的 ZK-Rollup。为了支撑数量众多的 ZK-Rollups 带来的海量硬件资源的需求,Opside 还提供了一个统一的 ZKP 算力市场,鼓励 Miner 来为这些 ZK-Rollups 生成 ZKP。
PoW 的奖励分配机制
Opside 采用了 PoS 和 PoW 混合共识。其中 PoS 部分是基于 ETH2.0 的共识改进的。因此,Opside 将拥有超过 10w 多个 validator 来提供海量的数据可用性,同时具有高度的去中心化程度。
在 Pre-Alpha 测试网阶段,根据 PoW 算法,一个 Opside 区块内,每个 Rollup 会按照一定规则提交一个 sequence。所有 sequence 根据当前 Rollup slots 注册数量来以及包含的 batch 数量来划分当前区块的 PoW 奖励。当然,可能某些 rollup 在某些区块没有提交 sequence,因此 PoW 实际的通胀会低于预期。
Miner 可以自由选择参与其中一个或者多个 Rollup 的 ZKP 计算。在未来,各个 sequence 将根据对应的 ZK-Rollup 类型、所包含的 Rollup 交易数量、gas 使用量等进行工作量预估,从而对不同 sequence 进行不同的定价。
为了避免 Miner 相关的恶意行为,Miner 需要在一个特殊的系统合约中注册,并质押代币。Miner 需要在系统合约中为一个 Rollup 质押相应的 token,才可以为该 Rollup 提交 ZKP。Miner 提交 ZKP 获得的奖励也将依据质押量比例来分配,从而避免 Miner 多次提交 ZKP 的恶意行为。
更多细节请参考 Opside Tokenomics
ZKP 的两步提交算法:标准的去中心化 Prover 机制
为了鼓励多个矿工同时参与一个 ZKP 的计算任务,Opside 提出了一个两步提交的 ZKP 验证机制。一个 ZKP 对应的 PoW 奖励份额,会按照一定规则分配给有效 ZKP 的提交者,也就是矿工。
提交 proofhash:在一个时间窗口内,对于某个 sequence,允许多个矿工参与 zero-knowledge proof 的计算。各个矿工计算出 proof 之后,并不直接提交原始的 proof,而是计算(proof / address)的 proofhash,并向合约提交 proofhash。
提交 ZKP:在时间窗口后,矿工提交原始的 proof,并与之前提交的 proofhash 进行验证。验证通过的矿工都可以得到 PoW 奖励,奖励金额按照矿工质押量的比例来分配。
更多细节请参考 ZKP's Two-Step Submission Algorithm
优化的 ZKP 生成算法:矿工效率提高了 80%
Rollup 的智能合约验证 ZKP 的时候,如果提交的是原始 proof 数据,就有可能引发链上攻击行为。为了防止恶意攻击行为,ZK-Rollup 往往需要进行额外的工作量来隐藏原始的 proof 数据。有一种解决方案是,矿工提交的 ZKP 包含了对矿工地址的聚合结果。Opside 提出的 ZKP 的两步提交算法,则巧妙地采用了先提交 + 后验证的模式,不再需要对 proof 和地址做类似的不必要的聚合计算。
此外,在一些开源的 zkEVM 中,ZKP 的计算与提交都是串行的。当 ZK-Rollup 提交了大量的 sequence 时,矿工无法同时计算多个 ZKP。在 Opside 中,ZKP 的两步提交算法实现了 ZKP 的并行计算与串行提交,允许矿机同时执行多个 ZKP 生成任务,从而大大加速了 ZKP 的生成效率。
Opside 团队还对 ZKP 递归聚合算法进行了一系列的优化,充分提升了集群内机器资源的利用率,进一步提高了 ZKP 的计算速度。
在实际的压测环境中,矿工拥有 20 台 128 core CPU + 1TB RAM 组成的机器集群,测试交易稳定在 27.8TPS 约 40 分钟。在相同条件下,Opside 将交易的平均确认时间从约 5-6 分钟降低到了约 3 分钟,ZKP 生成效率提高了约 80%。在未来,随着更多 ZK-Rollup 以及矿工的加入,ZK 算力市场的需求端和供给端的规模将进一步扩大,Opside 的 PoW 算法带来的效率提升将体现得更加明显。
总结
Opside 提出的 ZK-PoW 算法,创造性地定义了一个市场化的 ZK 算力定价机制。这个算力市场为即将到来的 ZK-Rollup(尤其是 zkEVM)的大规模爆发提供了海量算力平台;同时也为大量闲置的矿工提供了新的挖矿场景。
ZKP 的两步提交算法,为 ZK-Rollup 提供了标准的去中心化 Prover 机制,鼓励更多的矿工提供稳定、持续的 ZKP 算力。同时,优化的 ZKP 计算与提交机制,将生成 ZKP 的效率提高了 80%
在未来,Opside 的 PoW 机制的应用场景可以轻易地拓展,不但可以用于扩容(ZK-Rollup),在未来也可以应用于 AI(ZKML)。