# 构建持久的 dApp：为什么 Cairo 是 Web3 开发者的首选编程语言？

By [Starknet 中文](https://paragraph.com/@starknet-zh) · 2024-11-28

---

> _原文：_[_Building dApps that Last: Why Cairo is the Winner Programming Language for Web3 Devs_](https://hackernoon.com/building-dapps-that-last-why-cairo-is-the-winner-programming-language-for-web3-devs)
> 
> _作者：James Strudwick，Starknet 基金会执行总监_
> 
> _翻译及校对：_[_Starknet 中文社区_](https://twitter.com/StarkNet_ZH)
> 
> _📑 转载请注明出处 🕹️_

精选速览
====

*   Cairo 是一种高度优化的可证明编程语言，专为扩展以太坊而设计。
    
*   与其他语言如 Rust、Solidity 和 Python 相比，Cairo 在处理高频区块链活动、隐私保护等方面具有独特优势。
    
*   尽管学习曲线较陡，但掌握 Cairo 将为开发者提供推动去中心化应用未来发展的巨大潜力。
    

引言
==

_「要了解世界，首先需要了解开罗（Cairo）。」_

这句话源自埃及作家 Naguib Mahfouz，道出了这座古城在塑造全球文化、政治和历史方面所发挥的重要作用。

如今，与其同名的编程语言 Cairo 正逐渐成为理解 Web3 生态系统的关键所在。正如开罗这座城市是探索复杂历史的门户一样，Cairo 编程语言正在去中心化世界中开启新的大门，推动创新与普及。

与其他编程工具相比，Cairo 有何独特之处？为何 Web3 开发者应该投入时间去精通这门语言？

如果你愿意深入探索并向顶尖专家学习，[请加入 Starknet 的训练营，全面掌握 Cairo 的所有知识。](https://www.notion.so/1541b3c1f49f439da872d3d71647d834?pvs=21)

Cairo 能做什么？
===========

Cairo 是一种高度优化的可证明编程语言，而 STARK 技术则恰好非常适合扩展以太坊，因为验证证明所需的时间比使用相同输入执行程序的时间更短。因此，Starknet 的底层代码完全采用 Cairo 编写，旨在扩展以太坊并构建 Web3 应用。

Starknet 通过提升网络处理交易量的能力，在不引发常见的网络延迟或高额费用的情况下，增强了以太坊的可扩展性。其实现方式是仅提交状态变化至以太坊，同时将多个 Starknet 状态转换证明聚合为一个单一的证明，从而将证明成本在多个用户之间分摊。该过程依赖于零知识证明（ZKP），允许以太坊在不暴露每笔交易细节的情况下安全验证交易，类似接收一张汇总收据。

通过批量处理交易并只与以太坊共享重要数据，Starknet 对于 Cairo 的应用不仅降低了成本，还显著提升了交易速度。

Cairo 的应用场景
===========

Cairo 的高效性和隐私特性使其成为众多 Web3 应用程序不可或缺的工具。在 DeFi 领域，Cairo 使平台能够以更低的成本处理大量交易，从而使用户可以更容易使用 DeFi 服务。在 NFT 领域，Cairo 支持数字藏品的创建与转移，同时显著降低交易费用，提升市场的可访问性和可扩展性。此外，借助 Cairo，开发者可以高效地验证已具备隐私保护特性的其他证明系统。

尽管 Cairo 的强大功能使其成为推动以太坊和 Web3 发展的关键，然而其复杂性也为开发者带来了学习门槛。但对于那些掌握 Cairo 的开发者来说，Cairo 释放出了推动去中心化应用未来发展的巨大潜力。

作为一种备受追捧的小众技能，Cairo 得到了志同道合者的重视，这些人致力于开发长期持久的应用程序，以有意义的方式推动大规模的应用普及。同时，他们还能深入了解 Cairo 与更流行的传统编程语言相比所具备的独特优势。

Cairo vs. 其他编程语言
================

**以 Rust 为例。**

Rust 凭借其高性能、安全性和多平台兼容能力，成为那些希望在区块链平台及其他应用程序中获得灵活性的开发者的理想选择。不过，Cairo 比 Rust 更适合以太坊扩展和特定区块链应用程序，因为其在设计时就考虑到了这些用例。Rust 缺乏 Cairo 在以太坊扩展性和隐私保护方面的特定功能，例如交易打包和零知识证明。Cairo 与 Starknet 以及以太坊的深度集成，使其成为专注于扩展和优化以太坊应用程序的开发者的更专业工具。Rust 在多个区块链平台上更具通用性和灵活性，但在扩展以太坊的高效性方面，Cairo 具备无可比拟的优势。

Cairo vs. Solidity
------------------

作为以太坊创建智能合约的主要语言，Solidity 为处理区块链中的单笔交易而设计。而 Cairo 则通过成为验证计算完整性证明的高效语言，弥补了 Solidity 在以太坊可扩展性方面的不足。Cairo 既是智能合约，又是编程语言，意味着其可兼用于链上和链下操作。相比之下，Solidity 因其应用范围仅限于 EVM 内部，则无法像 Cairo 那样聚合区块。

通过专注于交易可扩展性，Cairo 提升了基于 Solidity 的智能合约的性能，使这两种语言相辅相成。Cairo 为处理高频区块链活动提供了一个具备本地计算完整性的关键层。

Cairo vs. Python
----------------

Python 以其在数据科学、机器学习和 Web 开发中的通用性和易用性而闻名，Cairo 则是专注于扩展以太坊的专业可证明语言。Python 的初学者友好设计、可读性和灵活性使其成为通用应用程序的理想选择，但这些优势并不能满足区块链的特定需求。Python 广泛适用于各行各业，Cairo 的性能则根据 Web3 的需求量身定制，使其在区块链扩展性和交易效率方面更具优势。

Cairo vs. C++/Java
------------------

C++ 和 Java 是高性能的通用编程语言，常用于游戏和企业软件等要求速度和复杂逻辑的应用领域。然而，Cairo 凭借其可证明性和现代编译器架构，可以在排序器中并发执行操作，并通过将执行证明聚合在一起，根据以太坊验证的同一套规则对这些证明进行约束，从而将其扩展至数千笔交易。这种机制为 Cairo 提供了极高的安全性，因为任何人都无法在不符合 StarknetOS 规则的情况下生成区块。

Cairo 为以太坊区块链量身定制，专门用于处理满足 DeFi 和高交易吞吐量的需求。而 C++ 和 Java 则擅长于传统的中心化环境。Cairo 作为一种对开发者友好的可证明语言，能够管理链下批量交易并对其进行安全验证，使其成为区块链扩展的上佳选择，而 C++ 和 Java 等通用语言则无法满足这一需求。

C++ 和 Java 的另一个问题在于其拥有庞大的用户群，因此更倾向于使其语言保持稳定不变，从而显得略为陈旧过时。而 Cairo 则不同，能够灵活采用新理念和新技术，进一步证明了其优越性。

为什么 Cairo 对 Web3 开发者至关重要
========================

Cairo 在特定场景任务中（尤其当任务为扩展以太坊时）堪称顶级编程语言。然而，如果你需要的是超高效但无需验证的内存安全程序，那么 Rust 则是更合适的选择。然而，随着对以太坊应用程序需求不断增长，对降低成本和提高速度的解决方案需求也随之增加，这使得 Cairo 成为 Web3 生态系统中的关键工具。

开发者可以突破传统编程语言在区块链中的局限性，构建能够大规模运行且成本更低的应用程序。尽管 Cairo 的普及程度尚不及其他语言，但它对 Web3 的未来至关重要。正如开罗这座城市是理解复杂历史的桥梁，Cairo 编程语言则是通往更加开放、高效和去中心化未来的桥梁。

掌握 Cairo 需要时间吗？当然。

那你们能掌握这门语言吗？我们相信你们一定可以。

任何值得追求的事物，任何能让你超越平凡、迈向卓越的目标，都需要投入专注与努力。

开罗（Cairo ）不是一天建成的，Web3 的建设亦是如此。但是，只要拥有一支技术精湛的开发团队，未来就会蕴藏着巨大的潜力，为所有人创造一个更美好的社会。

---

*Originally published on [Starknet 中文](https://paragraph.com/@starknet-zh/dapp-cairo-web3)*
