Diamond

Posted on Sep 12, 2023Read on Mirror.xyz

Cairo 世界的那些事儿

原文The What’s What of the Cairo World
翻译及校对
「Starknet 中文社区」

解读 Cairo VM、CASM、Cairo Zero、Cairo 和 Sierra。

引言

为了实现以太坊安全且去中心化的扩容,有效性证明 Rollup 使批量交易验证效率大大高于其直接重新执行。特定的节点(被称为排序器)在 L2 将交易打包到新的 L2 区块中,而以太坊主网的节点只需要极少的工作量即可确认这些交易。

Starknet 是一个利用 Cairo VM 的有效性证明 Rollup,专用于优化有效性证明的效率。Starknet 使用 STARKs(可扩展、透明的知识论证)作为其证明系统,能够为复杂的计算生成简洁的证明,从而大大降低链上验证过程的复杂性。

本文将深入探讨使 Starknet 成为 TPS 性能最强的 L2 的不同组件 — Cairo VM、CASM、Cairo Zero、Cairo 和 Sierra。

Cairo VM

为通用计算程序创建有效性证明,需要深入了解 STARKs 背后的复杂数学原理。对于每项计算,构建一个代数中间层表示(AIR)至关重要,它包含了一组多项式约束,能够准确地描述给定的计算。Cairo 最初被称为 「CPU AIR」,是一个虚拟 CPU 和一个单一的 AIR,能够用相同的「通用」 AIR 描述任何计算。Cairo VM 专门为有效性证明系统量身定制,并不受 EVM (以太坊虚拟机)所施加的限制所约束。

CASM

CASM(Cairo 汇编)是 Cairo VM 运行的机器代码。CASM 被转译为多项式约束,强制程序正确执行。CASM 是生态系统的关键组件,因为无论用户向 Starknet 排序器发送什么,被证明的都是 CASM 的正确执行。

Cairo Zero,一项突破

2020 年发布的 Cairo Zero 引入了世界上首个用于创建 STARK 可证明程序的图灵完备语言,彻底改变了可验证的计算方式。Cairo Zero 程序在本地编译为 CASM,然后发送到 Starknet 排序器。尽管 Cairo Zero 具有开创性,但由于 Cairo Zero 的低层级性质,它的学习曲线较为陡峭,并没有完全抽象出证明程序执行所需的底层加密原语。

Cairo:比 Cairo Zero 更强大

Cairo(现为 v2.1.1 版本)突破了 Cairo Zero 的局限性,有望实现更安全、更高效的合约编写。Cairo 采用类 Rust 的语法,并抽象出了 Cairo Zero 中存在的限制(例如,只写一次的内存),大大改善了开发者的体验。

Cairo 引入了 Rust 世界的现代编程概念,如特征/实现、泛型、枚举匹配等,同时无需牺牲底层 CairoVM 带来的证明生成效率。

Sierra

随着 Cairo 的出现,Sierra 也随之而来。Sierra 充当了 Cairo 和 CASM 之间的中间层表示的角色。这个附加层确保用户代码在所有情况下都是可证明的。Sierra 编译为 「安全 CASM」,这是 CASM 的一个子集,可保证所有输入都是可证明的。这个在用户代码和可证明代码之间的中间层至关重要,它可以保护 Starknet 排序器免受因不可证明交易形式出现的 DOS 攻击。

Sierra 的一个令人意外的好处是,由于这种简单的中间层表示的存在,Starknet 的排序器最终可以直接在本地硬件上运行,而无需通过 CairoVM。为了说明执行 Sierra 的排序器的强大功能,请看以下示例:人们可以使用 Sierra 的类型信息来处理本地类型(例如 u32),而无需在 CairoVM 的质数域字段中进行处理。

结论

Cairo 建立在 CairoVM 的基础上,革新了可验证的计算方式。凭借类 Rust 语法和现代编程语言的特性,Cairo 极大地优化了开发者的体验,简化了合约编写,降低了出现错误的几率。Cairo 将成为推动去中心化创新的强大工具。