你好,Cairo !

  • starkware
  • 发布于 2020-10-02 20:59
  • 阅读 33

Cairo是首个用于生成STARK证明的一般计算的生产级平台,具有图灵完备性和高效性。本文介绍了Cairo的必要性、创新能力和扩展效率,并讨论了其开发工具的未来计划。Cairo可以提供高可扩展性和低Gas成本,非常适合DeversiFi、Immutable和dYdX等项目。

简明扼要

Cairo 是第一个用于生成 STARK 证明的一般计算的生产级平台。它是图灵完备的,并且高效。我们构建的所有东西——从我们在 Reddit Bake-off 的提交开始——都是用 Cairo 编写的,包括我们即将部署的所有项目:DeversiFiImmutabledYdX

无论你的计算和存储需求是什么,如果你希望在以太坊上以低Gas费用实现大规模,Cairo 都能派上用场。在接下来的几个季度,我们将开始提供 Cairo 开发工具;在此之前,我们邀请你与我们洽谈共同构建你的应用程序。

背景

伟大的 Reddit 扩展 Bake-off 对于我们在 StarkWare 来说是一个重要的里程碑。并不是因为我们实现了 什么——在单个 STARK 证明中处理 300,000 次交易——而是因为 我们是如何 实现的。Reddit Bake-off 是我们第一次将 Cairo 部署到以太坊主网,这是我们用于生成一般计算的 STARK 证明的生产级图灵完备¹平台。我们即将进行的主网部署都将基于 Cairo,包括:

本文将讨论:(i)Cairo 的必要性,(ii)其新颖性、能力和扩展效率,以及 (iii) 我们在与开发者社区分享 Cairo 工具链方面的下一步计划。

需求:生产级图灵完备的 STARKs

自2018年成立以来,我们一直专注于解决扩展问题,从以太坊开始。我们很早就意识到 有效性证明是一个强大的扩展解决方案,而 STARKs 在解决一般计算的可扩展性方面处于独特的地位。回想一下一般概念:一个链下的证明者处理大量计算(如大量交易),并产生成比例更小的有效性证明,后者在链上被验证。

我们的每个合作伙伴都有独特的计算需求需要转移到 Layer-2 (L-2)。DeversiFi 支持现货交易。Immutable 支持 NFT 的铸造和交易,而 dYdX 则执行关于永久合约的交易。为每个项目创建一个自定义的“手写” STARK 系统²将非常耗时,就像为每个计算建立一个专用的“ASIC”一样。因此,我们显然意识到,要扩大我们的业务并支持高速功能开发,需要一个生产级图灵完备的 STARK L-2 系统,因此我们开发了 Cairo。Cairo 代表 CPU Algebraic Intermediate Representation (AIR),并包含一个验证此“CPU”指令集的单一 AIR。

解决方案:Cairo — 一个 AIR 来统治它们所有

Cairo 加入了一个尊贵的工具链列表,该列表构建了可扩展的和/或零知识 (ZK) 证明的一般计算。所有以前在测试网或主网部署的系统都可以被分类为“写电路的库”³。这些也可以被视为为特定计算创建“ASIC”的工具链的等效物。Cairo 是一个根本不同的系统。Cairo 的引入可以被视为从“ASIC”到“CPU”的转变。

Cairo 是第一个实施图灵完备的 冯·诺伊曼架构 的生产级证明系统:每个 Cairo 程序 P 存储在虚拟机内存中,与它处理的数据 D 一起。Cairo 附带一个 单一 的 AIR(因此一个 单一 的验证器——在智能合约、WebAssembly 等中),能够验证 任何 Cairo 程序。也就是说,Cairo AIR 验证了在 D 上执行 P 的计算完整性,以及系统执行后状态的正确性。

有了 Cairo,新的业务逻辑不再需要一个新的智能合约,它只需要一个不同的 Cairo 程序。因此,业务逻辑和证明系统得到了清晰的划分。

一个 AIR 统治它们所有的深远意义在于:可以使用单一证明来保证一系列不同程序执行的完整性。例如,一个基于 VeeDo 的密封投标拍卖、一批 Gods Unchained 卡片的铸造和另一批 dYdX 交易都可以在单个证明确认有效!我们称这种功能为通用证明服务 (GPS),你很快会听到更多关于它的消息。

Cairo 语言

Cairo 程序用一种类似汇编语言的语言(称为 Cairo)编写,该语言具有以下特性:内存、函数调用、递归和分支条件。它还使用证明者端的“提示”来创建快捷方式并启用某些计算。当我们说 Cairo 是生产级时,我们不仅指即将进行的主网部署——我们指的是为其构建的强大开发环境,包括将 Cairo 语言转换为 Cairo 字节码的编译器、模拟 Cairo 执行的虚拟机、调试器、IDE 集成,以及上述单一验证智能合约用 Solidity 编写的内容。

我们将很快发布一份白皮书,详细介绍 Cairo 的设计哲学,以及这个新编程语言的完整规范。在未来几个月中,我们将开始发布用于编写、调试和运行 Cairo 程序的工具(注册 获取更新)。

Cairo 的效率和安全性

可以从涉及的数学(AIR)或工程实现(验证智能合约,针对以太坊)来考虑效率和安全性——Cairo 在这两方面都有所帮助。

Cairo 的 AIR 相对简单,这导致了链上验证器和链下证明服务的效率和低摊销成本。它还提高了安全性,因为审计一个单一简单的 AIR 比审计多个复杂的应用特定 AIR 更安全。

因此,利用 Cairo,我们可以依赖一个单一的验证智能合约;不再需要为每个应用程序部署一个验证器。请注意这一属性的安全含义:对这一个合约进行的一整套审计可以保护任何应用程序免受证明系统风险,只需对业务逻辑进行审计。至于业务逻辑,理解和审核 代码 的正确性要比理解应用程序特定 AIR 更容易。

为了感受 Cairo 在实际用例中衡量的具体效率,让我们看两个例子:

DeversiFi:

当前在以太坊主网支持 DeversiFi 2.0 的 StarkEx 系统是一个“ASIC” STARK 系统。我们在 Cairo 上实现了同样的 StarkEx,进行了测试网运行,并比较了这两个系统。像往常一样,CPU 的速度低于 ASIC。但在我们的案例中,由于一些强大的 Cairo 优化,差异微乎其微:

  • Cairo 的证明者比当前的“ASIC”实现慢 30%
  • 验证者消耗的Gas仅多 3%

Reddit Bake-off:

在与整个生态系统的合作下,我们全力以赴完成了 伟大的 Reddit 扩展 Bake-off。多亏了 Cairo:

  • 我们高效地完成了任务: 将所有 300K tx 批处理成一个单一证明,包括汇总调用数据(仅表示每个批次修改的账户,而不是每一个 tx)——这些都是 Cairo 可编程性和算法优化易于实现的直接结果。我们在 6:03 分钟内完成了整个过程。

值得注意的是:高级编程可以轻松添加优化,通常超过上述 CPU “惩罚”。因此,在许多情况下,Cairo 的实现可能会表现得比使用专门的 AIR 实际上可实现的效果更好。

  • 我们迅速达到目标: 很少有人注意到,我们的单一证明在 7月15日提交给主网,比六周冲刺的最后期限提前了两周。这表明了 Cairo 可以为功能进展带来的奇迹。

前进之路

我们计划将 Cairo 和 GPS 能力——由我们和他人开发——提供给更广泛的开发者社区。我们打算提供强大的开发者工具。我们计划开发从高级语言到 Cairo 的编译器。我们将使我们的基于云的生产环境对大量开发者开放。这将需要相当大的努力和资源——Cairo 不会在一天内构建完成。相反,我们将定期推出新一代的 Cairo,提供增强的功能、更好的性能和强大的优化。

目前,我们正在内部测试 Cairo,并与我们的合作伙伴 DeversiFiImmutabledYdX 一起每周改善。如果你想要今天在以太坊上构建,并且受到扩展和上升的Gas价格的阻碍,如果你想要构建一个需要生产级工具链并具备高速功能开发的真实业务,请与我们联系。

推特:StarkWare,邮箱:info@starkware.co

感谢 Bobbin ThreadbareGeorgios Konstantopoulos 对本文草稿的深刻评论。

Lior GoldbergShahar PapiniMichael RiabzevEli Ben-Sasson

¹ 我们在 口语意义上使用该术语,涵盖所有实际的通用计算。

² 更确切地说,不同应用之间的差异在于代数中间表示 (AIR),这是 STARK 在 SNARK 中的算术电路和 R1CS 系统的类似物。

³ 按zkp.science 的分类

  • 原文链接: medium.com/starkware/hel...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
starkware
starkware
江湖只有他的大名,没有他的介绍。