Starknet Alpha v0.11.0 发布:Cairo 1.0 迁移正式开始

in 默认分类 with 0 comment

概要

引言

我们激动宣布备受关注的 Starknet alpha v0.11.0 版本正式上线测试网!该版本的发布使 Starknet 向前迈进一大步,在 Starknet v0.11.0 版本中支持声明、部署、运行 Cairo 1.0 智能合约。同时我们还引入一个全新的系统调用,允许将现有合约顺滑迁移至 Cairo 1.0 实现。

Cairo 1.0 从两个不同方面改善了 Starknet。首先它提供了更加丰富的编程语言,为 Cairo 引入类型、范例、特性、错误处理(等新功能),进一步提高开发体验。其次,Cairo 1.0 在 Starknet 去中心化道路上发挥出关键作用:Cairo 1.0 合约在 Starknet alpha v0.11.0 版本中发送至 Sierra 编译。Sierra 确保每个合约执行都可证明,是实现 Starknet 去中心化的关键特性。

v0.11.0 版本另一个重要改进就是计算成本降低五倍。能够加快 Starknet 实现对计算密集型应用程序友好。下文将详细阐述。

为重置计划做好准备

Starknet alpha v0.11.0 版本标志迁移过渡期正式开始,为 Starknet 主网重置计划做好准备。StarkWare 在几个月前公布了 Starknet 主网重置计划,重点将 Cairo 0 系统过渡到 Cairo 1.0 系统。

在此过渡期间,需要确保将现有 Cairo 0 版本合约(合约可升级型)的地址和存储数据无缝迁移至 Cairo 1.0 版本(详情查看下一章节)。

作为 Starknet 用户的你只需要在全新的 Cairo 1.0 版本帐户发布后,完成钱包升级(同样支持在状态重置前完成升级)。在此期间不会出现停机情况,系统中所有应用程序都将继续正常运行。

在重置计划完成后,Starknet 将暂停运行系统中所有的 Cairo 0 合约。我们会提前发布通知,以便开发者们有足够时间完成合约迁移。预计过渡期将持续几个月的时间,同时应用程序开发者可以将部署合约迁移至 Cairo 1.0。当过渡期结束后将迎来主网重置。

顺滑迁移至 Cairo 1.0

随着向 Cairo 1.0 过渡,将弃用现有的 Cairo 0 合约,且在状态重置时不再支持旧版本 Cairo 合约。为了让可升级的 Cairo 0 合约在重置后继续运行,且保持状态至重置完成,StarkWare 团队添加了一个新的系统调用,即 [replace_class]。可升级合约升级到 Cairo 1.0 实现没有问题,但是底层代理合约(保留实际状态的合约)仍将停留在 Cairo 0 实现上。replace_class系统调用解决了这个问题,允许代理合约替换其底层类,即保持相同的地址和存储,但替换实现。

计算成本降低五倍!

现在的 Starknet 交易费用由两个主要组成部分组成:计算和链上数据。Starknet 交易费用的计算部分由在 L1 上验证其证明的边际成本决定(有关详细信息,请参见文档)。

最初,在证明中使用 2 亿个 Cairo 步骤,进行验证需要 500 万 gas,因此团队粗略估计每个 Cairo 步骤所需 0.05 gas。自那时起,团队就转向递归证明,这可以大大降低 L1 验证成本(仅递归树的根到达 L1)。现在也是时候更新成本估算了,利用递归证明,每个 Cairo 步骤在 L2 上的成本将降低 5 倍,现在仅需花费 0.01 gas。

对于计算密集型应用程序,例如带有非本地签名的帐户合约,这种成本降低非常显著。简单交易的成本会略有降低(约 5%)。在未来的版本中,StarkWare 团队将处理第二个部分:链上数据成本。一旦链上数据的替代方案引入到 Starknet(也就是 Volition),成本全面降低。

Starknet 治理的首次投票

Starknet 治理的第一阶段已启动(详情见这篇博客)。社区成员现在可以通过对协议变更进行投票,以参与塑造 Starknet。

Starknet 治理第一阶段将专注于 Starknet 协议升级。每一次 Starkent 版本升级都会首先部署在测试网上,投票者将有六天时间来检查和测试 Goerli 上运行的升级版本,期间开启快照投票,社区可以投票决定是否批准新版本部署主网。

如果提案在六天天的投票期内获得多数「赞成」票,则提案通过,Starknet 主网将相应升级。

Starknet alpha v0.11.0 是第一个等待投票的版本。从测试网部署开始,投票将开放六天。

相关链接:

Cairo 1.0 和 Sierra

Sierra 即安全中间代表式 (Safe Intermediate Representation),是可以编译为 Cairo 程序集 (CASM) 的中间代表式。Starknet alpha v0.11.0 版本之前,开发者需要将 Cairo 0 编译为 CASM,再将结果送至 Starknet 排序器。有了 Cairo 1.0 开发者可以将代码编译为 Sierra,然后将中间表达式发送给排序器。排序器再编译为 CASM。Sierra 保证安全编译 CASM 安全。例如,CASM 自己不会失败,每次执行都可证明。这就保证即便撤销交易排序器也可以收取费用,籍此防范 DOS 攻击。详情请参阅文档

Starknet alpha 0.11.0 开始使用 Cairo 1.0-alpha.6 版本。此版本接近 Cairo 0 全功能匹配,全部 Starknet 系统调用都可以使用。

请注意 Starknet 排序器使用特定编译器版本,语言升级 Starknet 不会立即支持,只有 Starknet 版本升级后才会支持 Cairo 升级。具体来说就是,Cairo 1.0 → Sierra 编译器升级可立即使用,Sierra → CASM 编译器要等 Starknet 升级后才会更新。

其他新功能

新交易类型 — Declare v2

新增交易类型,声明 Cairo 1.0 类型。这种新 declare 交易与现有 declare 类似,但有两点差异:

详情请参阅文档

对开发者来说,开发体验未变。写好 Cairo 1.0 代码后,就可以使用 CLI 命令行工具声明类型。

请注意,Starknet 主网尚未支持 declare v2 交易。经过测试网测试后,才会在主网启用新交易类型,Cairo 1.0 类型才会在主网可用。

波塞冬来了

波塞冬是为实现高效代数电路的新型哈希函数。因此在 STARK 和 SNARK 这类证明系统中非常有用。从 Starknet alpha v0.11.0 开始,开发者可以使用。另外,Starknet 部分哈希计算会转向波塞冬(特别是类型哈希、编译后类型哈希和部分状态密诺会使用波塞冬,详情请参阅文档)。未来内部组件也会转向使用波塞冬哈希函数。

Starknet 中使用的具体版本和参数请看这里

其他更新

后续期待

现在所有与 Cairo 1.0 相关的基础设施已经就绪,您还可以期待:

The article has been posted for too long and comments have been automatically closed.