StarkNet:基于 STARK 的免许可型 ZK-Rollup
我们的 StarkNet 开发分为 4 个阶段:
筑基(已完成)
行星:只支持单一 App 的 Rollup
星群:支持多 App 的 Rollup
宇宙:去中心化的 Rollup
我们预计在几个月内部署好 “行星”,并在 2021 年底之前完成 “星群” 和 “宇宙” 的构建。
介绍
我们正在构建的 StarkNet 是一个基于 Stark 技术的去中心化 L2 ZK-Rollup 方案,支持在以太坊上的通用计算,具有免许可性和抗审查性。该方案是使用图灵完备的 Cairo 语言编写的。
一个免许可型 L2 Rollup 可以满足开发者、用户和 StarkNet 节点的所有期望:开发者可以根据自己的商业逻辑构建应用并部署到 StarkNet 上。用户可以发送交易到 StarkNet 上执行,就像和以太坊交互那样。StarkEx 的节点和参与者将受到密码学货币的经济激励,来确保网络高效公平地运行。
所有 StarkNet 交易将会被定期打包处理,提供 STARK 证明来证明其有效性,并在以太坊上进行验证。与验证以太坊事务的计算成本相比,验证 STARK 证明所需的计算成本要小得多。因此,StarkNet 可以将以太坊的可扩展性提升好几个数量级。
由于所有 StarkNet 状态转换都将由 STARK 证明来证明,只有有效的状态转换会被以太坊接受。重构完整 StarkNet 状态所需的全部数据都将在链上发布。任何人都能运行他们自己的 StarkNet 节点。这些特性会让 StarkNet 获得堪比以太坊的安全性和免许可性。
我们的开发工作持续了 3 年,并且在将 “月亮数学(Moon Math)” 转化为以太坊上高效的生产级软件方面取得了一些重要里程碑。我们的做法是先解决难题,构建核心技术,然后逐步投入生产。我们将继续通过这种方式构建 StarkNet,直至最后阶段。
筑基
我们已经为 StarkNet 打下了一些基础。
Cairo
Cairo 是图灵完备的高级编程语言和框架,可以为通用计算生成 STARK 证明。应用开发者可以使用 Cairo 定义任何商业逻辑,在链下生成证明,并在链上进行验证,而无需自己编写复杂的“电路”或 AIR。Cairo 已在主网上线,向所有开发者开放。
近几周内,我们将在以太坊公共测试网上发布 Cairo 的通用证明服务(Generic Proof Service ,GPS)的 alpha 版本。通过该服务,开发者可以使用 Cairo 构建自己的应用,实现他们想要的一切商业逻辑。他们会将自己的 Cairo 代码发送至 GPS 来生成证明,再在链上进行验证。
GPS 可以使用单个证明来证明多个独立应用的执行完整性,让这些应用可以分摊证明验证的 gas 成本。
Cairo 和 GPS 都是 StarkNet 的基础。我们决定将二者开放给外部开发者,让他们早些接触 StarkNet 技术。这样一来,开发者不仅可以开始在 StarkNet 的基础上进行构建,还能影响 StarkNet 的发展。
我们会基于开发者社区的需求和反馈继续开发 Cairo。我们会引入新的功能、语法和能够提高其可用性的内部插件来强化该语言。我们会继续开发并改进 Cairo 工具:编译器、跟踪器/调试器以及与通用 IDE(集成开发环境)的集成。
StarkNet 也会在底层运行 Cairo。
STARK 软件栈
我们已经开发了整个生态系统中最强大的证明系统。这个系统已经在主网上线数月之久。我们还开发了开源证明器 ethSTARK。ethSTARK 不仅在速度上比任何证明器都要快 20 倍,而且提供抗量子计算的零知识签名。
我们的可扩展性实效(既不是推断,也不是承诺)包括,在主网上使用单个证明处理 30 万笔交易,在 Rollup 吞吐量上创下了高达 3000 tps 的世界记录。在此过程中,我们同样在 Rollup 的 gas 效率上创下每笔交易 315 gas 的世界纪录,比以太坊 L1 上的交易便宜几个数量级。
ethSTARK 将成为 StarkNet 去中心化证明层的基石。因此,作为 StarkNet 开发的一部分,我们还将发布更多增强型证明器(请关注我们后续的博客文章)。
StarkEx
StarkEx 是我们的 L2 可扩展性引擎。2020 年 6 月以来,StarkEx 就一直在为主网上的 DeversiFi 用户提供服务。接下来几周,StarkEx 将开始支持 dYdX 和 ImmutableX。StarkEx 可以处理复杂的交易逻辑(现货交易、衍生品、非同质化代币)以及付款。
在 StarkEx 的开发过程中,我们也亲自试用了自己开发的工具,并测试了其是否能满足现实世界的需求。没有什么比实际需求和用户更能推动工具不断走向成熟。这也帮助我们了解了生态需要我们去解决什么问题,如,与钱包和区块浏览器的集成。
StarkEx 是使用基于 STARK 的 ZK-Rollup 提高应用可扩展性的活生生的例子,也是第一个在主网上线的采用 Cairo 语言编写的应用。另外,它也是运行在 StarkNet 上的应用之一。
展望未来
行星:只支持单一 App 的 Rollup
在该阶段,开发者可以在 StarkNet 上构建并部署他们自己的可扩展应用。
每个 StarkNet 实例都能运行一个应用。不同的实例可能会运行不同的应用。
StarkNet 架构包含以下部分:
为任意 Cairo 逻辑生成 STARK 证明、然后提交证明并在以太坊上验证所需的机制
与 L1 以太坊交互:L1 代币的存取、链上数据的发布、保护用户免受恶意 StarkNet 运营者攻击的逃跑机制
L2 用户余额以及应用存储项的管理
开发者只需专注于根据自己的商业逻辑构建应用,然后正式上线:在 StarkNet 上部署并大规模运行。
我们之所以能构建通用计算可扩展 ZK-Rollup,主要依赖于以下两点:
通用型图灵完备的编程语言 Cairo
我们强大的 STARK 技术(证明器和验证器),可以将大量计算捆绑到一个证明中
星群:支持多 App 的 Rollup
该阶段将支持多个应用在同一个 StarkNet 实例上运行,并访问同一个的全局 L2 状态。这样一来,不同应用之间将具有互操作性,而且规模经济也有助于降低 gas 成本。
强大的 STARK 栈 Cairo 和 GPS 增强了 StarkNet 在支持多 App Rollup 方面的竞争优势。
在这一阶段,StarkNet 将成为一个功能完备的框架,可以在以太坊的基础上运行多个商业逻辑不同的应用,每个实例都由一个单独的运营者来运行。
运营者可以运行 StarkNet 节点,应用开发者可以在上面部署自己的合约。从用户的角度来说,StarkNet 感觉上跟以太坊差不多,但是在可扩展性上强于以太坊。
宇宙:去中心化 Rollup
StarkNet 发展的最后一步是实现去中心化运营。
关于该阶段,我们现在正在解决一些有趣的研发问题,包括:(i)使用 ZK-Rollups 来改进共识机制,以及 (ii)设计密码学经济机制来激励去中心化 StarkNet 贡献者和运营者(交易排序者、证明者等)高效、公平且安全地运行。
总结
我们正在构建 StarkNet。StarkNet 是一个基于 Stark 技术的去中心化 L2 ZK-Rollup 方案,具有免许可性,支持基于 Cairo 语言的通用计算。
StarkNet 可以在不损害安全性的情况下提高应用的可扩展性,帮助用户节省交易费用,并促进整个生态系统迅猛发展、实现其承诺。
我们诚挚邀请开发者社区与我们一起踏上这一征程。
原文链接:
https://medium.com/starkware/on-the-road-to-starknet-a-permissionless-stark-powered-l2-zk-rollup-83be53640880
作者: StarkWare
翻译&校对: 闵敏 & 阿剑