什么是Opside
Opside 是一个去中心化的ZK-RaaS (ZK-Rollup as a Service)网络。基于模块化区块链的理念,Opside设计了三层的区块链架构,采用PoS & PoW 混合共识,为Web3开发者提供了一键生成应用zkEVM链的功能。
在扩容领域,L2 的概念并不陌生。但L2不能很好地统筹各种类型的硬件资源,例如数据可用性、ZKP算力、打包节点等,因此出现了模块化区块链的概念。Opside的3-layer架构,在L2的基础上进一步升级,在内部统筹了不同的模块,对外提供了ZK-RaaS的平台。
•L1,Public Chain:Ethereum、BNB Chain、Polygon 等公链。
•L2,Opside Chain:提供大规模去中心化的共识、数据可用性以及ZKP算力,所有产生的交易和数据将在L2 验证打包上链和存储。交易速度快,手续费低。
•L3,Rollup Layer:Rollup 将昂贵的计算过程从链上移到链下,从而实现可扩展性。Opside提供了不同种类的ZK-Rollup SDK,尤其是zkEVM,包括Polygon Hermez、Scroll、Taiko、zkSync 等。开发者可根据SDK 一键在Opside L3 上部署属于自己的ZK-Rollups 项目,并且所有的硬件资源都由Opside去中心化网络来提供。
各个Layers 之间通过不同类型的跨链桥进行连接,可以从L1 直接将资产转移到L2 或是L3。
ZK-RaaS
ZK-RaaS (ZK-Rollup as a Service) 即提供一键生成ZK-Rollup服务。
Opside 提供通用的ZK-Rollups SDK(软件开发工具包),开发者根据SDK 便可轻松的在Opside L3 上部署ZK-Rollups 项目。
Opside L3的ZK-Rollups由系统合约来管理,包括注册、中止与退出等。开发者花费一定数量的IDE(Opside token)租赁一个Rollup slot,即可拥有一个ZK-Rollup。这个概念类似于波卡插槽,但Opside L2 和L3 共享了同一个共识和数据可用层,安全性更高,更加去中心化,维护成本也更低。
开发者租赁了一个Rollup slot后,即拥有独立的运行环境,例如,开发者可以单独拥有一条zkEVM链。开发者对ZK-Rollup拥有主权,可以自定义rollup经济模型,包括选择gas token。开发者可以自由调整gas费用,甚至是0,这样用户不需要支付任何费用。此外,L3中的各个ZK-Rollups 项目之间可实现原生的跨rollup 通信。
开发者不需要承担任何硬件成本。所有的硬件资源,包括数据可用性、sequencer、ZKP算力等,皆由下面的PoS & PoW混合共识来去中心化地提供。
PoS & PoW Hybrid Consensus
ZK-Rollup 和OP-Rollup 相比,有很多优点,包括更安全、无需信任以及更快的提款速度。同时技术上也有一个非常大的不同,就是ZK-Rollup额外需要有一个强大的ZKP算力来支撑零知识证明的生成。
在Opside网络中,未来可能有成百上千个ZK-Rollups共同组成Rollup Layer,这将带来极大的ZKP算力需求。因此,我们需要激励矿工加入这个生态来做出贡献。从以太坊PoW 转向PoS 以后,有很多以太坊矿机失去了应用场景,从资金规模上来讲,矿机的价值就有120 亿美元,目前很多都处于闲置的状态。随着ZK-Rollup技术的成熟,ZKP的生成需要大量的FPGA、GPU 等硬件和矿机来提供计算能力。Opside的PoS 和PoW 的混合共识,除了使用PoS 机制来激励Validator 提供数据可用性以外,也使用PoW 机制来激励Miner 提供ZKP 算力,从而为ZK-Rollup 提供完整的硬件设施。这也是Opside 核心思想之一。所有角色,包括用户、开发者、节点运营商、矿工,都能够在这个Opside 经济模型当中获得利益。
Opside 除了让ZK-Rollup 继承上一层的安全性以外,也要让ZK-Rollup 继承上一层的去中心化程度。以太坊现在是全球最大规模的去中心化网络,有超过50 多万个节点。这些节点不但提供了大规模的去中心化,在未来,得益于数据分片技术,这50多万个节点也提供了海量的数据可用性。这也是Opside 选择基于ETH 2.0 的PoS 共识来改进的原因之一。
我们预期Opside 上将拥有超过10万多个节点。那么如何让Rollup 的去中心化程度也达到这个级别,而不是由一个单节点去完成中心化的打包?一个很好的做法是让Opside Chain 的区块提议者同时提议Rollup Layer 的区块。对于Rollup Layer 来说,实际上就是完成了builder 与proposer 的分离:builder 是无需许可地由一个P2P 网络来支持,proposer 则沿用了L2 的区块proposer,这样避免了单节点带来的可用性风险,同时也具有一定的抗MEV 性和抗审查性。
下面是PoS & PoW 混合共识的分工:
Layer 2(L2)
•PoS:Opside 将采用以太坊2.0 的PoS 算法,并对其进行必要的改进。因此,Opside 的共识层将拥有超过10万个validator。任何人都可以持有IDE 代币并成为validator。此外,Opside 的PoS 是可证明的,validator 将定期向L1 提交PoS 证明。validator 可以在L2 中获得区块奖励和gas 费用。
Layer 3(L3)
•PoS (Sequencer):validator 不仅提议L2 区块,还提议L3 区块(即data batch)。因此validator 同时也是L3 中rollup 的sequencer。sequencer 可以从L3 交易中的交易费中赚取gas 费用。
•PoW (Prover):任何人都可以成为L3 中rollup 的prover,只要它具有足够的计算能力进行ZKP 计算。prover为L3 中的每个本地rollup 生成零知识证明。根据PoW 规则,prover 根据sequencer 提交的L3 区块生成zk 证明。
一个ZK-Rollup 就类似于一台电脑。电脑是有两个核心组件,一个是硬盘,一个是CPU。PoS 提供的数据可用性就相当于是硬盘,PoW 提供的算力就相当于是CPU。Opside 需要做的是在PoS 与PoW 当中找到一个平衡,从而让每一个角色都能充分发挥价值并从中受益,让大规模的ZK-Rollups 网络有更好的性能和体验。
代币的供应与需求
Opside 代币(IDE)分配细则如下:铸造上限为100亿枚IDE。其中,10%分配给早期融资,14%分配给Opside 团队以及贡献者,15%分配给社区,包括测试网早期参与者、生态项目方以及未来可能的空投。28%分配给基金会,将被用作生态发展,后续融资以及其他用途。其余的33%作为PoS & PoW 混合共识的奖励,分别被分配给Validator 和Miner,用于提供数据存储服务、生成零知识证明、维护区块链、运行合约等。
代币分配饼图如下:
根据PoS & PoW 混合共识,区块奖励分为PoS 和PoW 两部分,分别对应Validator 和Miner。在Pre-Alpha 测试网阶段,PoS 与PoW 的区块奖励比例暂时固定为1:2,即11%的IDE 被分配给Validator,22%的奖励被分配给Miner。在未来,这两者的比例会随着整个网络的ZKP 算力供需关系动态调整。
PoS 的奖励
如上所言,Opside 采用了基于ETH 2.0 改进的PoS 共识。5月2日,Opside 已宣布开放测试网验证者节点申请。要作为Validator 参与,用户必须将一定量的IDE 存入存款合约,并运行三个独立的软件:执行客户端、共识客户端和Validator。这些Validators 负责检查通过网络传播的新块是否有效,并偶尔自己创建和传播新块。如果Validator 行为不诚实或懒惰,那么抵押的IDE 将作为抵押品被销毁。
在PoS 下,Opside 的出块速度是固定的,时间分为slot(12 秒)和epoch(32 个slots)。在每个slot 中随机选择一个验证者作为区块提议者。该Validator 负责创建新块并将其发送到网络上的其他节点。同样在每个slot中,随机选择一个Validator 委员会,其投票用于确定所提议区块的有效性。具体机制请参考ETH PoS。
Opside 预期在Alpha 测试网支持EIP-4844,数据可用性抽样(DAS)将用于确保ZK-Rollup 在执行后提供其交易数据,同时不会对任何单个节点造成太大压力。每个Validator 随机抽取blob 中提供的交易数据,以确保所有数据都存在。同样的技术也可以用来确保区块生产者将他们所有的数据提供给安全的轻客户端。同样,在提议者-构建者分离(PBS)下,只需要区块构建者来处理整个区块——其他验证者将使用数据可用性抽样进行验证。
在一些具体参数上,Opside将有所不同,读者可以在代码库里找到最新的值。
总的来说,Staking 使个人更容易参与保护网络,促进去中心化。Validator 节点可以在普通笔记本电脑上运行。一些代理质押池甚至允许用户在没有足够IDE 的情况下进行质押。
PoW 的奖励
在Opside 的L3,也就是Rollup Layer 上,每一个Web3 应用都可以拥有一个专属的ZK-Rollup。为了支撑数量众多的ZK-Rollups 带来的海量硬件资源的需求,除了上面提到的Validator 提供数据可用性以外,Opside 还提供了一个统一的ZKP 算力市场,鼓励miner(也就是prover)来为这些ZK-Rollups 生成ZKP。这就是Opside 的PoW 机制。
单个Rollup sequence的奖励份额计算
在Pre-Alpha阶段,一个L2区块内,每个Rollup只能提交一个sequence(可以包含该Rollup的多个区块)。所有sequence根据当前Rollup slots注册数量均分当前区块的PoW奖励。这也就意味着,如果当前总共有64个注册的rollup slots,那么在L2的一个区块中,PoW奖励被均分为64份,每一个sequence获得的奖励为区块PoW奖励的1/64。当然,可能某些rollup在某些区块没有提交sequence,因此PoW实际的通胀会低于预期。
在未来,各个sequence将根据对应的ZK-Rollup类型、所包含的Rollup交易数量、gas使用量等进行工作量预估,从而对不同sequence进行不同的定价。
ZKP的两步提交
一个sequence获得的PoW奖励份额,会按照一定规则分配给有效ZKP的提交者,也就是矿工。Rollup的智能合约验证ZKP的时候,需要原始proof数据,这就可能引发链上攻击行为。例如某一个prover计算出ZKP之后,交易广播到交易池中,攻击者就可以看到原始proof数据,攻击者可以设置一个更高的gas费来发交易,从而优先打包到区块中,来获取PoW奖励。为了防止恶意攻击行为,Opside提出了一个两步提交的ZKP验证机制。
1.提交hash
•对于某个sequence,prover计算出ZKP之后,计算(proof / address)的hash,并向合约提交hash和address,其中proof是某一个sequence的proof,address是prover的地址,该地址必须提前质押。
•假设在第1个prover在第T个区块提交了hash,则在第T+10区块以内,还可以接受其他prover提交hash,没有数量限制。第T+11区块及之后,不再接受新的prover提交hash。
2.提交ZKP
•第T+11区块及之后,允许任何prover提交zkp。只要有一个zkp通过验证,那么就对所有提交过的hash进行校验。校验通过的prover都可以得到PoW奖励,奖励金额按照矿工质押量的比例来分配。
•如果在第T+20区块之前,都没有ZKP通过验证,则所有提交过hash的prover都罚没1000 IDE。此时该sequence重新开放,允许提交新的hash
举一个例子,假设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的恶意行为,prover需要在一个特殊的系统合约中注册,并质押至少100000 IDE。如果当前质押数量小于阈值,则不允许提交hash和ZKP。prover提交ZKP获得的奖励也将依据质押量比例来分配,从而避免prover多次提交ZKP的恶意行为。
当prover出现以下行为,会进行不同程度的惩罚
•如果prover提交了错误的hash,则罚没10000 IDE
•对于某个sequence,如果没有对应的ZKP通过验证,则所有提交过hash的prover都将被罚没1000 IDE,罚没的IDE将被烧毁。
关于ZKP的两步提交机制更多的细节与考量,请读者参阅官方文档。prover质押以及惩罚的具体数字在未来可能会改动。
开发者租赁Rollup slot
Opside为开发者提供了ZK-Rollup launch base,开发者可一键注册一个Rollup slot,从而拥有属于自己的ZK-Rollup。该ZK-Rollup所有的硬件资源都由Opside去中心化网络来提供。开发者需要向Opside网络支付Rollup slot的租金,这部分租金将直接烧毁。
除了一个固定金额的租金以外,开发者还可以为自己的ZK-Rollup提供额外ZKP补贴,以激励矿工提供算力。这部分将在Alpha测试网推出。
具体的租金与补贴规则与参数,读者可以在官方文档或者代码库里找到。
治理与发展
Opside网络的功能和性能将随着时间的推移而不断发展,以下为几个优先级更高的示例:
•根据整个网络的ZKP算力供需关系,动态调整PoS与PoW的奖励分配比例
•Validator的数据分片与数据可用性抽样,将为整个Rollup Layer提供更加丰裕的存储空间,从而容纳更多的ZK-Rollup生态
•Rollup的提议者与构建者分离,使得L3共用L2的validator作为区块提议者,继承上一层的去中心化
•矿工的质押与slash机制的优化,鼓励矿工提供持续而稳定的ZKP算力
•开发者对所属Rollup的ZKP生成进行补贴,以激励矿工提供算力
•根据ZK-Rollup类型、Rollup交易数量、gas使用量等进行工作量预估,建立Rollup batch的个性化定价机制
这些改进将显著提高Opside的网络效用,从而促进ZK-Rollup as a Service的长期发展以及繁荣。
Opside主网启动后,建立一个Opside DAO,包含合理的流程和机制来共同决定网络的未来。Opside主网的所有参数和机制的更新将通过Opside DAO来确定。需要强调的是,Opside是一个合作共建的经济体,并随着时间推移而不断发展演化。未来的改进会以DAO提案的形式详细地解释这些方案是如何给Opside经济的长期利益和每个参与者类别带来好处。随着网络的发展,打造一个无需大量工具和补贴亦可以独立且稳健运行的经济至关重要。