前言

2020年,StarkWare发布了Cairo 0,这是一种支持可验证计算的图灵完备编程语言。Cairo最初是一种汇编语言,后来逐渐变得更具表现力。因为Cairo 0.x是一种低级语言,没有完全抽象出为程序的执行建立证明所需的底层加密原语,所以最初的学习曲线很陡峭。

随着Cairo 1的发布,由于尽可能地对Cairo架构底层的不可变内存模型进行了抽象,开发者的体验有了很大的改善。受到Rust的强烈启发,Cairo 1是为了帮助你无需具体了解其底层架构就创建可证明的程序而生,这样你就可以专注于程序本身,这提高Cairo程序的整体安全性。在Rust虚拟机的支持下,Cairo程序的执行速度现在快得惊人,允许你在不影响性能的情况下建立一个广泛的测试套件。

想在Starknet上部署合约的区块链开发者将使用Cairo编程语言来编写他们的智能合约。这允许Starknet操作系统生成交易的执行跟踪,以供证明者生成证明,然后在更新Starknet的状态根之前在Ethereum L1上由验证者验证该证明。

然而,Cairo不仅仅适用于区块链开发者。作为一种通用的编程语言,它可以用于任何需要在一台计算机上生成证明并在其他硬件要求较低的机器上验证的计算场景。

本书是为对编程概念有基本了解的开发人员设计的。它是一本友好而平易近人的书本,旨在帮助你提高你的Cairo知识水平,同时也帮助你提高你的通用编程技能。因此,请潜下心来,并准备好学习所有关于Cairo的知识!

Acknowledgements

This book would not have been possible without the help of the Cairo community. We would like to thank every contributor for their contributions to this book!

We would like to thank the Rust community for the Rust Book, which has been a great source of inspiration for this book. Many examples and explanations have been adapted from the Rust Book to fit the Cairo programming language, as the two languages share many similarities.