Cointime

扫码下载App
iOS & Android

StarkWare 公布 Cairo 编程语言路线图,计划推出 Cairo V2 版本与新合约语法

作者:StarkWare 编译:Cointime Lu Tian

Cairo 正在不断发展。为了方便社区,我们创建了一个公共看板来展示未来的炫酷功能。新的合约语法将与 Starknet alpha v0.12.0 一同发布,只需极少的代码修改,就能显著丰富智能合约语言。

随着 Starknet 主网上线的 Cairo 1.1.0 以及即将发布的 Starknet v2,我们已经达到了该语言成熟度的一个重要里程碑。在文档、书籍和 Starknet 不和谐之间,您应该有足够的资源来开始并从 Cairo 0 迁移。

介绍

自早期 alpha 版本以来,Cairo v1 已经取得了显著的发展,实现了与 Cairo 0 相同的功能,并在此基础上积累了新特性(基本循环已经可用,更多功能正在开发中)。在本文中,我们的目标是更深入地了解 Cairo 的短期路线图:当前正在进行的工作以及开发人员在未来几周和几个月内可以期待的内容。今后,您可以通过关注 Github 上的 cairo-roadmap 看板来了解该语言的最新进展和计划。

为什么选择Cairo?

除了高级语言的重大改进之外,我们认为有必要强调 Cairo 的核心优势,以及为什么我们认为它是区块链扩展未来的基石。

从一开始,Cairo 的唯一目标就是成为编写可证明程序的最高效的语言。正如原始论文所述,Cairo VM 的架构旨在为执行 Cairo 程序生成高效的 STARK 证明,使其成为有效性汇总的理想基础。Cairo v2 是我们现有的类似 Rust 的新语言,它基于这些基础,但旨在为广泛的开发人员社区提供服务,包括人体工程学、安全性以及易于学习和编写。在过去两年中,Cairo 的演变使其从一种利基的低级语言,变成了一种对开发人员友好的高级语言,同时在证明和扩展效率方面具有优势。

就叫 Cairo 吧!

不要再说“Cairo 1 — 编译器版本 vX.Y.Z”。从现在开始,就称其为Cairo吧。耶!

在使用新的 Cairo 编译器时,我们遵循语义版本控制标准;也就是说,编译器版本由三位数字组成,最高有效位的更改表示重大变更。在接下来的 Cairo 版本中,我们对智能合约语法进行了重大改进(稍后将详述),因此将版本升级到 Cairo v2 是正确的做法。为了避免繁琐的符号,我们将不再使用 Cairo 1,从现在开始,用(唯一的)编译器版本来标识该语言的版本。原始语言在未来仍可在 Starknet 之外的不同环境中使用,将被称为“Cairo 0”。

Cairo 接下来会发生什么?

在以下部分,我们将回顾该语言即将实现的主要发展,并解释它们将如何影响 Cairo 的开发者体验。

即将推出的功能虽然实现与 Cairo 0 功能对等是一个重要的里程碑,但这绝非终点。高级语言始终有改进的空间,更多的功能正在开发中。您可以查看路线图,了解正在开发的功能并跟踪待完成的工作。值得一提的一些功能包括:

  • 组件:新合约语法的下一阶段,允许合约导入外部库中定义的组件。
  • Keccak 和 Secp-k1:已包含在 Cairo v2 中,它们将允许在即将推出的 Starknet 版本上验证以太坊签名。
  • 有符号整数支持。
  • Secp-r1 曲线操作:这将允许使用本地硬件签署交易,使得与 Starknet 交互的用户体验更加简便。
  • 字符串:(长)字符串的原生类型,允许进行标准字符串操作。这是一个基本功能,NFT 和游戏项目对此也有很高的需求。
  • 迭代器:这些将使我们能够丰富循环语法,并更方便地迭代数组/范围。

Cairo v2 — 新合约语法

目前,Starknet 智能合约的语法主要沿用了早期的 Cairo 0 设计。这一设计存在一些问题,我们希望加以解决。我们采用新语法的目标是通过使合约行为更加明确来提高安全性。通过为合约的外部函数、存储和事件引入更多结构,我们可以显著降低出错的可能性。这将有助于保护协议免受潜在的黑客攻击和资金损失。此外,新语法允许我们引入可扩展性,这是社区一直强烈要求的功能,它让开发人员可以轻松地使用外部库编写的组件。

新语法需要进行重大改变。虽然我们在当前阶段选择尽可能避免重大变更,但在经过内部和社区讨论后,我们认为这是一个对未来带来回报的正确方向。

这些更改在社区论坛上发布的一篇更具技术性的帖子中进行了详细讨论。在这里,我们只想强调,只有合约的“最外层”(外部函数和事件的定义)需要修改。您现有的 Cairo v1 代码只需进行少量调整。另一方面,新语法带来的好处是显著的:使用外部库中的组件(处理大型项目时的关键功能)将变得平滑自然,不再需要临时的解决方案。

文章中描述的一些即将发生的变化(尤其是新的合约语法)意味着语言将发生重大改变。虽然在 Cairo v2 之后,大部分重大更改已经完成,但现在开始全力保证向后兼容还为时尚早。也就是说,对于在 Starknet 上开发智能合约的项目,稳定性和仔细的审查对我们来说是一个重要的考量因素。为了解决这些问题,我们提供以下稳定性保证:

  1. 在 Starknet 上声明的任何类都将继续像以前一样运行,不受语言变化的影响;
  2. 部署在 Starknet 上的任何合约都将继续像以前一样运行,不受语言变化的影响;
  3. 对于每次重大语言升级,之前版本编写的合约在 Starknet 上的声明将保持至少六个月。

例如,如果您正在使用 Cairo 版本 X 开发项目(或接近部署/审核阶段),而 Cairo Y 版本发布时带有重大更改,那么使用版本 X 编写的合约仍将在 Starknet 上被接受至少6个月。也就是说,您有至少六个月的时间将您的合约部署在 Starknet 上,此时它们将永久受到第1点和第2点保护。

何时迁移?

随着新合约语法的发布(并在即将发布的 v0.12.0 中在 Starknet 上提供)以及我们已经完成的大量重大更改,Cairo 现在已足够稳定且功能丰富,可以支持复杂的应用程序并移植现有的 Cairo 0 逻辑。此外,Starknet 的向后兼容性保证确保即使语言发生重大变化,您也将有足够的时间(至少六个月)来完成合约的开发、审核和部署。

总结

Cairo 不断发展,已经在很大程度上超越了原始语言。如果您还没有参与其中,现在是时候了。我们欢迎开发者社区积极参与讨论,可以直接在编译器存储库上提问,也可以在 Cairo Discord 频道或 Starknet 社区论坛上发帖。希望这篇文章(以及相关的技术性更强的文章)有助于阐明预期的变化,并消除对 Cairo 未来的大部分疑虑。

评论

所有评论

推荐阅读

  • Sonne Finance:本次攻击为捐赠攻击,正在调查攻击者,并已暂停市场

    Sonne Finance发布攻击分析报告,这是一次捐赠攻击,Sonne 曾在过去避免了这个问题,通过添加抵押品因子为 0%的市场,添加抵押品并进行销毁,然后才根据提议增加 c-factors。Sonne 最近通过了一项在 Sonne 中添加 VELO 市场的提案,其在多重签名钱包上安排了这笔交易,并且由于有 2 天的时间锁定,还安排在 2 天内执行 c-factors。当创建市场的 2 天时间锁结束时,攻击者执行了其中 4 笔交易,之后执行了向市场添加 c-factors 交易。攻击者能够通过已知的捐赠攻击利用该协议获取约 2000 万美元的资金。Seal 贡献者很快注意到了这个问题,通过向市场添加价值约 100 美元的 VELO 保留剩余的约 650 万美元。Sonne 正在调查攻击者,并且已暂停市场,以减轻进一步的损失。Sonne 准备向攻击者提供赏金,在攻击者退还资金的情况下承诺不进一步追究该问题。

  • 价值10.61亿美元的加密资产从Coinbase转出

    据链上数据追踪服务Whale Alert监测,价值10.61亿美元的加密资产从Coinbase转出,其中: 7,080枚ETH(20,444,034美元)从Coinbase转移到未知钱包; 53,151,311枚USDC(53,177,887美元)从Coinbase机构转移到未知钱包; 2笔7,999枚BTC(988,276,090美元)从Coinbase转移到未知的新钱包。

  • Sonne Finance确认遭受攻击,仍有约650万美元资金得以保留

    5月15日消息,Sonne Finance宣布其Optimism协议遭受已知的捐赠攻击,损失约2000万美元。此次攻击利用了新加入市场的漏洞,在市场创建后的两天内,攻击者利用多重签名钱包和时锁功能执行了关键交易,成功操纵了市场的抵押因子(c-factors)。尽管攻击发生后Sonne团队迅速组织应对,并在发现问题后25分钟内暂停了市场,以减少进一步损失,但仍有约650万美元资金得以保留。Sonne团队正在努力追踪攻击者身份,并已向攻击者提出赏金,希望其归还资金以避免进一步追究。同时,Sonne团队对此事件表示诚挚歉意,并正在与所有可能的合作伙伴联系,努力恢复资金。

  • Huobi HK的香港虚拟资产交易平台牌照申请已于5月14日被撤回

    5月15日消息,据香港证监会官方网站更新数据显示,Huobi HK向香港证监会提交的虚拟资产交易平台牌照申请已于5月14日被撤回。 相关信息显示,Huobi HK提交的虚拟资产交易平台运营者公司名称为“HBGL Hong Kong Limited”,中文名称不适用,Huobi HK曾于2024年2月20日首次向香港证监会递交了虚拟资产交易平台牌照申请,但于2024年2月23日被撤回,随后又于2024年2月26日再次提交申请,本次为第二次被退回。 截至目前,香港证监会公布的虚拟资产交易平台牌照撤回和退回的申请者数量为7家,虚拟资产交易平台申请中名单数量减少至20家。

  • 美联储施密德:低利率环境"不一定"会回归

    美联储施密德表示,整体经济依然强劲。通胀仍然过高,美联储还有更多工作要做,利率可能会在一段时间内保持高,我倾向于在符合操作框架的前提下尽可能缩减美联储的资产负债表,低利率环境"不一定"会回归。

  • a16z合伙人:美国人已经接受了数字资产,但当前的监管方法限制创新和隐私

    Web3支持者、a16z合伙人Chris Dixon(cdixon.eth)在社交媒体上发文称,在接下来的两周内,众议院将就迄今为止最重要的加密立法《21 世纪金融创新和技术法案》(FIT21)进行投票。我们长期以来一直呼吁明确监管以保护消费者和创新,FIT21法案将做到这一点。 美国人已经接受了数字资产,但当前的监管方法常常限制创新和隐私,而没有真正解决保护消费者或打击非法活动所需的解决方案。 FIT21将帮助杜绝诈骗,确保对加密货币交易所的监督,并通过对加密货币交易实施严格的规则来保护美国消费者。 FIT21得到了两党的支持,因为它解决了这些问题。我鼓励所有相信区块链技术力量的人支持这项立法。最好的办法是联系您当地的代表并告诉他们支持 FIT21。

  • Fuel网络DeFi协议Spark完成150万美元pre-seed轮融资

    5月15日消息,Fuel网络DeFi协议Spark宣布完成150万美元pre-seed轮融资,P2 Ventures等参投。

  • 某地址或因私钥泄露损失约价值430万美元资产

    据CertiK监测,受可疑交易影响,初步证据表明私钥可能被泄露,总计约有价值 430 万美元的资产已转移至地址 0x2705。

  • Tornado Cash开发者被判64个月刑期不太可能影响Roman Storm的美国案件

    根据判决,荷兰法院判定 31 岁的 Pertsev 通过 Tornado Cash 洗钱 12 亿美元。一个由三名法官组成的小组判处 Pertsev 五年四个月的监禁。法院在最终结论中表示:“法院认为法律上和事实证明,嫌疑人与他人一起,通过犯罪获得的以太坊进行洗钱,并且他已经习惯了这种洗钱行为。”与此同时,Tornado Cash 联合创始人 Roman Storm 在美国的审判定于 9 月 23 日开始。去年,美国检察官指控 Storm 和另一位联合创始人 Roman Semenov 共谋洗钱、共谋违反制裁以及共谋经营无牌货币传输业务。起诉时,Semenov 仍在逃。

  • 美国威斯康星州养老金系统资产持有1.64亿美元现货比特币ETF

    在美国证券交易委员会(SEC)提交的文件中,负责管理美国威斯康星州信托基金的政府实体披露,其持有贝莱德IBIT超过240万股,以及超过100万股灰度GBTC,价值分别约为1亿美元和6400万美元。该文件表明,美国威斯康星州退休系统可能通过这两家资产管理公司进行加密投资。