Cairo VM揭秘

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(以太坊虚拟机)施加的限制。
CairoVMEVM
目的Proof Optimized VMBlockchain
计算模型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官网

  • 26
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值