Cairo简介 Cairo 是第一个生成 STARK 证明的生产级平台。 它是图灵完备的,而且非常高效。 要在 StarkNet 上部署高性能并且低 gas 费的 Layer 2 应用组件就需要使用 Cairo 来编写应用程序。 Cairo 语言不是一门专门的合约语言,但是可以并且主要用来写类似合约的内容。 zk-Rollups 当前的缺点是通用计算: 将智能合约逻辑直接移植到 rollups 中更具挑战性,因此只有有限的功能可用,例如转移和交易。 然而,Cairo 填补了这个空缺,可以将智能合约逻辑直接移植到 rollups 中。 zkSync 和 Optimistic 的做法分别是让 rollups 做到 EVM 兼容和 EVM equivalency (更加全面并且进一步的 EVM 兼容). 特点计算完整性 计算完整性是代表了在没有监管的情况下,能保证计算的公正性。 保证 COMputational Integrity 的方法有五种: 银行委托问责制 (基于信誉,审计等), 计算可重放性 (例如比特币和其他 L1 公开所有交易), 可信执行环境 (例如英特尔的 SGX), 欺诈证明 (Optimistic rollups, 介于委托问责和计算可重放性之间), 密码学证明 (zk-STARK). Cairo 语言经过多篇论文以及数学证明的验证,可以安全可信地生成 zk-STARK 的证明来保证计算完整性。 AIR (代数中间代码表示) 在 STARK 证明的过程中,需要用到很多设计代数证明的运算以及符号,Cairo 会通过编译器把编程语言转化为 Cairo 字节代码,生成一个 AIR 来包含所有的数学证明步骤,最终生成结果。 Cario 语言有配套的 AIR 可视化工具,来查看证明中的细节。 语言设计 Cario 语言的设计遵循 Minimal Variable Language 的原则,讲究恰到好处。 同时做到了语言的表达性 (便于开发者阅读) 以及 STARK 证明的生成效率。 Cario 语言的设计也并非过于复杂,仅有三个寄存器 (PC, 分配指针,帧指针), 和简洁的指令集。 Cario 语言也支持一些必要的功能,包括函数,递归,分支,判断等。 Cario 语言设计的感觉更加符合数学证明的逻辑,更加工整。 工具链 编译器、虚拟机、代码编辑环境插件 (VSCode 上的代码提示 插件)、跟踪程序、代码示例。 语言生态目前 Cairo 语言的生态可以说非常全面但年轻。 在工具链方面一应俱全,根据这些工具的 GitHub 星数可以判断出并没有收获很大的关注,但是仓库的开发者在持续更新,基本在一到两周内都有新的提交。 未来 Cairo 语言会更加开放,培养更多开发者后,在 StarkEx 引擎上写 Cairo 代码的工作很可能从 StarkWare 移交到开源开发者手里,这样对 StarkWare 应用的去中心化会有很大的意义。 更重要的是 OpenZeppelin 正在做 Cairo 语言的 ERC-20、ERC-721 等基础模版的 实现。这个实现的意义就是能方便开发者在此实现的基础上开发,能让开发者放心且大胆地拷贝此实现,迅捷开发并且不用过于担心安全性。从仓库的 commit 来看,OpenZeppelin 目前有专人来为 Cairo 语言做支持,证明 OpenZeppelin 对 StarkWare 生态的重视。 (责任编辑:admin) |