原文标题:《引介 | 两全其美的 zk rollup 预共识机制》 本文概述了一种预共识机制,可以实现即时终局性并减少验证 gas 成本,同时不影响 zkRollup 的即时资金退出。 背景和动机在承诺间隔足够短(如 10 分钟)的情况下,zkRollup 可以实现即时终局性。在这个方案中,聚合者的信任风险会随间隔时间增长而增加,实现终局性的成本(如果是 Groth16 算法,每个承诺的验证 gas 成本超过 20 万 gas)会随间隔时间延长而降低。 首先说明 zkRollup 的配对验证成本超过 20 万 gas (价值 100 至 500 美元)。也就是说,在 zkRollup 的每个承诺间隔期内,聚合者都需要花费这么多 gas 来验证并敲定承诺。 我们不能忽略这一成本,因为 zkRollup 的承诺间隔很短。我们需要承诺来实现即时退出的终局性。只要承诺间隔很短,且恶意聚合者回滚交易的积极性不高,我们就可以实现即时终局性(经济终局性,零确认交易)。 尽管我们可以使用递归零知识证明和高效的证明计算系统来聚合多个交易,我们也很难改变承诺间隔。如果我们盲目延长承诺间隔,就会影响安全性。 然后,我们需要思考如何在 zkRollup 中实现安全的即时终局性和较长的验证间隔。 方法聚合者的运行成本源自合约上零知识证明验证的 gas 成本高且承诺间隔短。 因此,我们可以在不影响安全性和可用性的情况下延长验证间隔。 第一步:跳过零知识证明配对验证首先,我们最容易想到的解决方案就是跳过配对计算,并引入针对承诺的简单欺诈证明。 聚合者向合约提交证明或验证 zkRollup 承诺所需的任何东西,但这时不执行配对计算,也就不需要支付 20 万 gas。一段时间过后,这个承诺就会得到验证;这个承诺中的每个状态将成为下一个承诺的公共输入。聚合者需要锁定一些以太币来激励验证者。一旦验证者发现欺诈行为,聚合者就会受到惩罚。 承诺就是公共输入、零知识证明数据、上一个状态根、下一个状态根、交易哈希和聚合者地址这几项的哈希值。 原像由链上事件提供,承诺保存在合约存储内。 这种方法具有很大的优势。 每个人都可以成为瞭望塔,等同于 Optimistic Rollup 中的「验证者」,无需运行全节点或进行任何特殊的起步设置。 数据可得性问题不会发生,因为验证或执行欺诈证明所需的一切数据都在链上发出的事件中。执行欺诈证明时,我们不需要 Layer 2 交易数据及交易结果,因为这些数据全都包含在了零知识证明的公共输入和证明中。 如果恶意聚合者提交了恶意默克尔根,并放弃了所有交易数据和默克尔树数据,我们不需要运行全节点来进行欺诈证明。我们只需检查零知识证明数据,并执行配对验证函数,即可发现这类恶意行为。 (责任编辑:admin) |