当前,以太坊主网上已经有多个ZK-Rollups在运行了。然而ZK-Rollup的去中心化设计仍然处于早期阶段。我们目前都聚焦在Sequencer的去中心化问题上,大部分人都忽略了,实际上目前绝大部分的ZK-Rollup项目都没有实现去中心化的prover。
对于ZK-Rollup来说,中心化的prover仍然是安全的,并且也不像中心化的sequencer那样会带来审查的问题。但是中心化的prover也会引发很多问题。首先,如果只有一个prover,那么单节点宕机就会造成整个ZK-Rollup的有效性证明无法提交,从而给交易的最终确定性造成影响。其次,中心化的prover成本高昂,无法承担未来海量的ZK-Rollup的算力需求。最后,从经济的角度来说,中心化的prover独享了一部分收益,这在代币经济学上来说,实际上是不公平的。
去中心化prover能很好地解决以上的问题,但是也带来一些挑战,这也是为什么最近上线的几个zkEVM方案采用了中心化prover方案的原因之一。例如Polygon zkEVM的beta mainnet中依靠trusted aggregator来提交ZKP,zkSync era也是类似。
从技术细节上来讲,ZK-Rollup的智能合约验证ZKP的时候,需要原始的proof数据,这就可能引发各种不同的链上攻击行为。例如,某一个prover提交计算出来的ZKP到链上合约时,需要发一笔L1的交易。当这个prover发出的交易广播到交易池中,攻击者就可以看到原始proof数据,攻击者可以设置一个更高的gas费来发交易,从而优先打包到区块中,来获取PoW奖励。
此外,由于prover之间是依靠算力来竞争,没有一个可信的身份识别机制,也很难建立一个通信机制。不同的矿工有可能做重复的工作,从而造成算力的浪费。
Opside提出了一个ZKP两步提交算法,来实现了prover的去中心化。这种算法既能够防止ZKP抢跑攻击,又可以让更多的矿工获得奖励,从而鼓励更多的矿工在线,并提供稳定、持续的ZKP算力。
举一个例子,假设Opside中每个L2区块的PoW奖励是128 IDE,当前总共有64个Rollup slots,那么每一个Rollup sequence分配到的PoW奖励是2 IDE。如果先后有A, B, C 3个矿工为一个sequence提交了正确的ZKP,且A, B, C 3个矿工的矿工质押量(IDE)分别为200K,500K,300K。那么,A, B, C可以获得的PoW奖励分别为0.4 IDE,1 IDE,0.6 IDE。
为了避免针对prover的恶意行为,prover需要在一个特殊的系统合约中注册,并质押一定数量的token。如果当前质押数量小于阈值,则不允许提交hash和ZKP。prover提交ZKP获得的奖励也将依据质押量比例来分配,从而避免prover多次提交ZKP的恶意行为。
当prover出现以下行为,会进行不同程度的惩罚
罚没的token将被烧毁。
关于ZKP的两步提交机制更多的细节与考量,请读者参阅官方文档。prover质押以及惩罚的具体数字在未来可能会改动。
本文提出的ZKP两步提交算法,在实现了prover去中心化的同时,能很好地规避针对prover的抢跑攻击,并鼓励更多的矿工提供稳定、持续的ZKP算力。最初的版本将在Opside的Pre-alpha testnet上线。在未来,Opside也将在更多ZKP的挖矿领域进行更多创新。例如:
根据整个网络的ZKP算力供需关系,动态调整PoS与PoW的奖励分配比例;
根据ZK-Rollup类型、Rollup交易数量、gas使用量等进行工作量预估,建立Rollup batch的个性化定价机制;
应用开发者对所属Rollup的ZKP生成进行补贴,以激励矿工提供算力。
本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。
免责声明:本文为转载,非本网原创内容,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如有疑问请发送邮件至:bangqikeconnect@gmail.com