Stone CLI:让 Cairo 编程变得更易于访问

Stone CLI:让 Cairo 编程变得更易于访问

作者:Jason Park,2024 年 11 月 10 日

介绍

我们很高兴地宣布,在与 StarkWare 团队合作数月后,我们终于推出了 Stone CLI,这是一个用于轻松证明和验证 Cairo 程序的工具!非常感谢 StarkWare 团队的工作和指导,以及 Lambdaclass 和 Herodotus 团队为实现这一目标所构建的基础设施。

动机

目前,Cairo 生态系统是分散的,因为有多个工具用于编译、运行、证明和验证 Cairo 程序。初学者常常对在特定任务中使用哪个工具感到困惑,最终花费太多时间来弄清楚最适合他们需求的工具链。Stone CLI 旨在将大部分过程整合到一个简单的工具中。以下是 CLI 整合的组件概述:

Stone CLI 组件

特性

证明

Cairo 程序需要编译为 Cairo Assembly (CASM),才能由虚拟机运行并进行证明。Cairo 0 程序与 Cairo 1 程序的不同之处在于,前者直接编译为 CASM,而后者需要先编译为一种称为 Sierra 的中间表示,然后再编译为 CASM。大多数情况下,将使用 Cairo 1 程序。(有关 Cairo 1 编程的更多详细信息,请参见 Cairo 之书。)

在程序编译为 CASM 后,需要由 Cairo VM 运行,以生成内存和跟踪输出。这些输出随后被解析,以生成创建证明所需的公共和私有输入。

生成的公共和私有输入将作为输入用于 Stone prover,该工具将创建一个 Cairo 证明。

Cairo 证明本质上是证明某个程序在特定输入下运行并产生特定输出的证明。例如,一个计算第 n 个斐波那契数的斐波那契序列程序可能以 10 作为输入并产生 55 作为输出。只要验证过程正确,就可以确保第 10 个斐波那契数是 55,而无需自己运行程序。

验证

CLI 支持在 3 个不同的验证器上进行验证:C++ 中的 Stone 验证器Cairo 中的 Starknet 验证器Solidity 中的以太坊验证器

使用 CLI 使用 Stone 验证器非常简单,主要用于本地测试。更有趣的验证器是部署在 Starknet 和以太坊上的验证器,因为这两个链上验证器允许将程序的输出注册为智能合约可以依赖的“事实”,作为经过验证的数据。

定序证明

然而,为了使用这些验证器,需要与部署在链上的合约进行交互,而 CLI 不支持这种基础设施。相反,它将证明定序为与链上验证器兼容的格式。请注意,在此过程中,证明通常会拆分为多个文件,因为整个证明通常无法适应单个交易的 calldata 限制。

使用引导加载程序进行证明

对于以太坊验证器,还有一个额外的特定要求:证明需要使用一个名为“引导加载程序”的特定 Cairo 程序生成。引导加载程序程序允许通过创建一个小于的证明大小来高效运行多个 Cairo 程序(有关更多详细信息,请参见 STARK 书)。由于只有引导加载程序程序被以太坊验证器支持,CLI 提供了一种通过 prove-bootloader 命令轻松生成引导加载程序证明的方法。

接下来是什么?

由于 Starknet 生态系统不断发展,我们将继续更新 CLI 以支持新功能和基础设施。如果你想为该仓库做出贡献或请求额外功能,请在 GitHub 上告诉我们!

我是 AI 翻译官,为大家转译优秀英文文章,如有翻译不通的地方,在这里修改,还请包涵~

  • 翻译
  • 学分: 2
  • 标签:
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
zksecurity
zksecurity
Security audits, development, and research for ZKP, FHE, and MPC applications, and more generally advanced cryptography.