Starknet 运作简析
温馨提示:这篇文章已超过616天没有更新,请注意相关的内容是否还可用!
Zk-proofs 即Zero-Knowledge Proofs 的缩写,中文称为零知识证明。零知识证明是一种方法,透过这种方法,一方可以向另一方证明给定的陈述是真实的,除了该陈述是真实的事实之外,无需透露任何其他资讯。
ZK-STARK 是什麽
ZK-STARK 是一个证明系统——两种演算法之间的互动过程中允许区块链更容易验证计算的完整性,Verifier 和Approver 双方可以透过互动来验证大量交易的完整性。
ZK-Rollup VS OP-Rollup
OP-rollup 和ZK-rollup 相比,ZK-rollup 则是比OP-rollup 更安全的替代方案,而OP-rollup 则是具有EVM 相容性的DeFi 专案的更好选择。由此可见,具备EVM 相容性的ZK-rollup 以其天然的安全性的优势将是Layer2 的未来的叙事发展方向。安全性的实现这一优势要归功于StarkNet 对最安全、最可扩展的密码学证明系统— — STARK 的依赖。
Zk-STARKs VS Zk-SNARKs
选择使用SNARKs 还是STARKs 取决于具体的应用场景和需求。SNARKs 在证明大小和验证速度上有优势,但需要信任设定。而STARKs 不需要信任设置,对量子电脑攻击有抵抗力,但证明较大,验证速度较慢。zk-STARKs 却是一种不需要信任设定的零知识证明系统。与需要信任设定的系统(如zk-SNARKs)不同,zk-STARKs 的证明产生和验证过程不依赖任何机密资讯。这提供了更高的透明性和安全性,因为系统的安全性不依赖任何特定个体或组织的行为。zk-STARKs 是透过使用一种称为“FRI”(Fast Reed-Solomon Interactive Oracle Proofs)的技术来实现的。
FRI 协定
FRI 协议的基本思想是透过一系列的抽样和插值步骤,逐步降低多项式的度。在每一步,证明者都会提供一个新的多项式,并声称它是原始多项式的压缩版本。验证者可以透过检查这些多项式在随机点上的值,来验证这个声称是否正确。
Starknet 运作原理
1. 使用者发起交易,并将交易传送给Squencer 进行验证、排序和执行,并打包批次。目前StarkNet 系统中只有一个StarkWare 官方掌握的Sequencer,但StarkWare 团队计划后续将Squencer 去中心化;Squencer 透过Cairo OS 来执行交易,扮演了EVM 的角色。
2. Squencer 将执行交易的踪迹递交给Prover,由Prover 对计算完整性产生一个有效性证明。执行踪迹是生成zkp 的核心,记录执行踪迹是Cairo 语言的zk 友好特性;这裡的Prover 也为StarkEx 生成有效性证明,并且可以聚合来自不同StarkEx 应用和StarkNet 的交易,实现共享。
3. Squencer 和Prover 将有效性证明和全域状态变化传送给全节点进行记录。全节点基于P2P 网路构建,负责记录整个Layer2 网路的交易历史和以太坊主网上与Layer2 相关的交易。
4. Prover 将有效性证明递交给主网上的Verifier。Verifier 是部署在以太坊主网路上的智慧合约,负责收取并验证Prover 提供的有效性证明。
5. Verifier 将验证过的结果传送至主网上的StarkNet Core 合约进行记录和保存。StarkNet Core 合约部署在以太坊主网上,用于接收Layer2 全局状态变化信息,包括状态哈希以及数据可用性;经过Verifier 验证过的结果是一串状态哈希,由Verifier 写入一笔新的Layer1 交易,并传递给Core 合约保存。
6. StarkNet Core 合约接收验证结果(状态杂凑)后,从Layer2 接收“Call data”形式的资料可用性并储存。此资料会同步给Layer2 的全节点进行解码,以确保全节点能够记录和重建Layer2 的历史交易;在Validium 方案中,StarkNet Core 合约不保存资料可用性,仅保存状态杂凑。