基于 STARK 的 ZK-Rollup 方案 StarkNet Alpha 1 有两个新功能:L1 与 L2 双向交互、上链数据优化。
原文链接 :《
通告 | StarkNet Alpha 1
》
撰文 : StarkWare
翻译 & 校对 : 闵敏 & 阿剑
介绍
今年年初,我们宣布 StarkWare 正在构建基于 STARK 的 ZK-Rollup 方案 StarkNet 。StarkNet 是基于以太坊的 Layer2 网络,具有免许可性和去中心化这两大特征。它可以扩展 dApp 的计算能力,且无需牺牲以太坊的可组合性和安全性。
上个月, StarkNet Alpha 0 已经发布( 中文译本 )。开发者史无前例地能够在无需许可的情况下 编写 智能合约并部署到 ZK-Rollup 上。用户在将交易发送至 StarkNet 网络时能够获得类似以太坊的体验。
今天(7 月 19 日),我们发布了新版本 Alpha 1。为了让开发者能够尽快体验新功能,我们通过滚动方式发布功能。我们希望这样能缩短反馈周期,以便根据社区反馈快速改进 StarkNet。
Alpha1 的功能
L1 和 L2 双向交互
Alpha 1 包括一个 L1 和 L2 之间的双向消息传递协议,可以让开发者在 L1 和 L2 之间实现无缝交易。开发者现在可以将消息从 L1 上的合约发送至 L2 上的合约,反之亦然。
ZK-Rollup 的优点之一是,状态更新是终局的,而且没有任何延迟。这就意味着,从 L2 发送到 L1 的消息能够立即发送到目标合约。这为构建 L1 和 L2 之间真正具有互操作性的应用提供了可能性。
想要尝鲜 Alpha 1 吗?点击 此处 ,查看教程。
特此感谢 Optimism 和 Arbitrum 等 L2 项目。它们之前的研究工作为我们的双向消息传递协议设计提供了很多灵感。
链上数据可得性
如今,StarkNet 的状态更新同样会发布到以太坊上,成为链上数据。这样一来,任何用户都可以根据 L1 数据完整构建出 StarkNet 的状态。每次状态更新都包括状态差别,即,已存储数据中发生变化的部分及新的值。
Alpha1 也充分利用 ZK-Rollup 的优势。相比要求将完整交易数据发送到链上的 Optimistic Rollup,ZK-Rollup 只要求将找到状态差别所需的最少量数据发送到链上。
一个最好的例子是价格输入机制。更新价格输入机制的交易通常包括多个交易,但是只会更新一个存储单元,即相关交易对的价格。在 Optimistic Rollup 中,单次状态更新需要发布到链上的数据随所包含的价格输入机制事务的数量线性增加;然而在 ZK-Rollup 中,永远只需提供一个存储项更新的数据。
另外,压缩算法可以应用于已发布的数据,其有效性由 STARK 证明证明,进一步减少链上足迹。StarkNet 的后续版本将在这方面继续创新优化。
StarkNetOS
我们还发布了 StarkNet 操作系统代码。StarkNetOS 是运行 StarkNet 的 Cairo 程序,处理网络上的所有操作 —— 合约部署、交易执行、L1 和 L2 双向消息传递等。我们将单独发布一篇文章来详细讲解 StarkNetOS 的架构和设计。
其它功能
除了 StarkNet Alpha 迭代,我们也在改进 Cairo。如果你想全面了解 Cairo v0.3.0 的新功能,请查看 发布说明 。
生态欣欣向荣
除了 StarkNet Core 的开发工作,围绕整个 StarkNet 生态的开发也在持续推动中。我们很高兴能与生态中最优秀的几支团队合作。
StarkNet 的首个全节点项目 Fermion 由 Erigon (前身是 TurboGeth)团队开发。凭借 Erigon 团队在以太坊开发工作中取得的丰富知识和经验,以及我们的 STARK 证明所带来的可扩展性,我们将与 Erigon 团队携手共建一个强大的全节点。
Nethermind 正在开发从 EVM 到 Cairo 的编译器 Warp。我们向来只在新工具准备发布时才进行展示,请耐心等待即将到来的好消息!我们可以保证,这个好消息正在快马加鞭赶来。
未来计划
StarkNet 的下一站将是可组合性 —— 实现合约之间的交互。敬请期待。
注 1:正如我们之前提到过,ZK-Rollup 这个术语虽然很常见,但是极具误导性:很多 ZK-Rollup 解决方案(目前)不提供零知识证明。
来源链接: ethfans.org