1. 引言
为解锁以太坊的安全和去中心化扩展,Validity Rollups让批量交易的验证比简单的重新执行更加高效。L2 上的专用节点(称为Sequencer)将交易捆绑到新的 L2 区块中,而以太坊主网节点则以最小的effort来确认这些交易。
Starknet为:
- 利用 Cairo VM 的Validity Rollup。
- 专门设计用于优化Validity proofs的效率。
- 采用STARKs(Scalable, Transparent ARgument of Knowledge)作为其证明系统,能够为复杂的计算生成简洁的证明,从而大大降低链上验证过程的复杂性。
本文将深入探讨使 Starknet 成为 TPS 性能最高的 L2 的不同组件:
- Cairo VM
- CASM
- Cairo Zero
- Cairo
- Sierra
2. Cairo VM
为通用计算程序创建Validity Proofs需要深入掌握 STARKs 背后的复杂数学原理。对于每个计算,构建Algebraic Intermediate Representation (AIR) 至关重要,AIR中包含一组准确表示给定计算的多项式约束。
Cairo:
- 最初被称为“CPU AIR”
- 是一个虚拟 CPU 和一个singular(单一)AIR
- 能够使用相同的“通用”AIR 描述任何计算。
Cairo VM:
- 是专门为 Validity Proof 系统量身定制的,且不受 EVM(以太坊虚拟机)施加的限制。
CairoVM | EVM | |
---|---|---|
目的 | Proof Optimized VM | Blockchain |
计算模型 | Von Neumann架构 | 基于Stack的虚拟机 |
基本类型 | 域元素 | 256-bit words |
内存模型 | Nondeterministic read-only memory (key in optimizing the proof for memory accesses) | 读写内存需要更多计算来生成proof |
3. CASM
CASM(Cairo Assembly)是Cairo VM运行的机器码(machine code)。 CASM 被转换为多项式约束来强化某程序的正确执行。 CASM 是Starknet生态系统中的关键组件,因为无论用户向 Starknet sequencer发送什么内容,所证明的都是 CASM的正确执行。
4. Cairo Zero——突破
Cairo Zero 于 2020 年发布,推出了世界上首个,用于创建 STARK 可证明程序,的图灵完备语言,彻底改变了可验证计算。Cairo Zero程序在本地编译到 CASM 中,然后发送到 Starknet sequencer。尽管具有开创性,但Cairo Zero:
- 因其底层特性而具有陡峭的学习曲线,
- 且没有完全抽象出证明程序执行所需的底层密码学原语。
5. Cairo:更好的Cairo Zero
CAIRO (当前为 v2.6.3)克服了 Cairo Zero 的限制,提供更安全、更高效的合约编写。 Cairo 通过类似 Rust 的语法并抽象出 Cairo Zero 中存在的限制(如一次写入内存),极大地改善了开发人员的体验。
Cairo 借鉴了Rust的现代编程概念,如trait/impls、generics、枚举匹配,而不会影响底层 CairoVM 的证明生成效率。
6. Sierra
Cairo不仅是一种编程语言,其还是:
- 一整个CPU架构,该CPU架构的指令集为CASM(Cairo assembly)。
Cairo程序编译为一种名为Sierra(Safe IntermediatE RepResentAtion)的中间表示,会将Sierra再编译为CASM。
即包含2个编译过程:
- Cairo -> Sierra
- Sierra -> CASM(由sequencer来编译,生成的CASM code由Starknet OS来执行。)
Sierra提供的安全性在于:由“Sierra -> CASM”生成的任何CASM,都可被证明,这对于区块链上下文来说,是至关重要的属性。
Prover实际不知道高层的Cairo,仅证明“CASM执行”。高层Cairo存在的目的是改进开发者体验,同时支持高效证明。
Sierra的作用为:
- 作为Cairo(用户代码)与CASM(proven代码)之间的中间层,用于保护Starknet sequencer免受unprovable交易DOS攻击。
- Starknet sequencer最终可直接在native硬件上运行,而不是通过 CairoVM。
与Cairo一起的,还有Sierra。 Sierra 是Cairo和 CASM 之间的中间表示。Sierra这个附加层确保用户代码在所有情况下都保持可证明。 Sierra 编译为“safe CASM”,“safe CASM”是 CASM 的一个子集,保证对所有输入都可证明。用户代码和proven代码之间的中间层对于保护 Starknet sequencer免受unprovable交易形式的 DOS 影响至关重要。
Sierra 另一惊人好处在于,由于这种简单的中间表示,Starknet sequencer最终可直接在native硬件上运行,而不是通过 CairoVM。为说明执行 Sierra 的sequencer的强大功能,举例如下:
- 可使用源自 Sierra 的type信息来处理native类型(如 u32),而不是在 CairoVM 的素数域中工作。
7. 结论
Cairo 建立在 CairoVM 奠定的基础上,彻底改变了可验证计算。凭借类似 Rust 的语法和现代编程语言功能,Cairo 极大地增强了开发人员体验,简化了合约编写并减少了出现错误的机会。Cairo成为推动去中心化创新的强大工具。
参考资料
[1] 2023年9月11日Cairo 官方博客 Deciphering Cairo VM, CASM, Cairo Zero, Cairo, and Sierra
[2] Cairo and Sierra
[3] Cairo官网