由于StarkNet的系统设计中包含与零知识证明和Merkle Tree相关的数据结构,因此读者需要对零知识证明和Merkle Tree有初步了解,这将有助于阅读本文内容。未来我们也将继续深入讨论各个系统组件。
作者:ChiHaoLu(chihaolu.eth) @ imToken Labs
StarkNet OS(操作系统)是由Cairo开发的StarkNet原生语言编写的。类似于Solidity,它用于编写智能合约,并且是一种零知识证明语言,用于构建StarkNet核心操作系统和各种功能。
StarkNet OS包含了StarkNet链上的所有逻辑,例如账户状态定义、交易原理、合约执行,甚至包括位运算、哈希运算和本地签名算法等。操作系统需要在接收交易和合约输入后生成输出,并将该输出更新到StarkNet L2状态中。
为什么要使用零知识证明语言来编写StarkNet OS,而不是其他常见的编程语言呢?我们知道,扩容的一种方法是将复杂的计算放在Off-Chain,只需在On-Chain进行验证。StarkNet会将由Cairo编写的ZK-STARK程序的执行结果通过STARK-proof system进行证明,并在以太坊上进行验证。
我认为StarkNet的系统架构有三个重点:Sequencer、Prover&Verifier和L1 Core Contract。此外还有原生AA设计的User Account、Full Node、Fact Register等组件,但本文主要介绍前三个重点。
StarkNet的系统概述: StarkNet不需要矿工角色,但仍然需要一个角色来"验证交易"、"决定交易顺序"和"构建区块",这个角色就是Sequencer。
Sequencer是一个Off-Chain服务器,其工作流程的第一步是接收用户提交的交易(来自不同用户的多个交易),然后Sequencer决定交易顺序并构建L2区块。
Sequencer需要确认交易是由账户所有者授权的(由于StarkNet使用了原生AA账户系统,所以这里的确认可能不仅仅是验证签名的正确性,可能还涉及多签或其他验证逻辑)。通过StarkNet OS执行一次交易,接收输入并执行合约逻辑,生成输出。
Sequencer执行交易后会生成一个trace,并将这些执行过程的"过程见证"提供给Prover生成证明,告诉其他人:"我执行过这段代码"。
在接下来的Prover和Verifier验证成功后,Sequencer会更新L1 StarkNet Core Contract中的状态。
Prover也是一个Off-Chain服务器,其主要功能是接收Sequencer生成的代码执行过程trace,并生成相应的STARK proofs,然后交给L1上的Verifier Contract进行验证。验证通过后,将结果注册为fact供未来的L1 StarkNet Core Contract查询使用。
图像来源:Starkience推文
Verifier Contract在L1上负责验证所有这些内容是否合法,包括接受输入和STARK Proof来进行决策。
补充说明:目前StarkNet只有一个Prover,它不仅为StarkNet生成证明,还为运行在StarkWare自己的StarkEx rollup上的所有其他应用程序(如Immutable X、dYdX、Sorare等)生成证明。这就是为什么这项服务被称为Shared Prover或SHARP的原因。
StarkNet L1 Core Contract存储了L2状态的证明。当我们的trace通过Prover生成证明并在L1 Verifier Contract验证后,会告知L1 Core Contract这个"状态更新"。
2022年5月,以太坊Layer 2开发商StarkWare宣布以80亿美元估值完成1亿美元D轮融资,这使得StarkWare成为一级市场上估值最高的项目之一,远超现在热门的Layer1公链Aptos和Sui。截至10月...
原文来源:Yinan,PANews背景从 2018 年开始,StarkWare 开创性地运用 STARK 有效性证明来解决以太坊的可扩展性问题。它推出了基于 SaaS 业务模型的 StarkEx,创造了 Cairo 编程...
ᗪIᗪ YOᑌ KᑎOᗯ? 𝗦𝗵𝗼𝗼𝘁𝗶𝗻𝗴 𝗦𝘁𝗮𝗿 𝗖𝗮𝗻𝗱𝗹𝗲 𝘀𝘁𝗶𝗰𝗸𝙏𝙝𝙚 𝙎𝙝𝙤𝙤𝙩𝙞𝙣𝙜 𝙎𝙩𝙖𝙧 𝙞𝙨 𝙖 𝙗𝙚𝙖𝙧𝙞𝙨𝙝 𝙘𝙖𝙣𝙙𝙡𝙚𝙨𝙩𝙞𝙘𝙠 𝙥𝙖𝙩𝙩𝙚𝙧𝙣 𝙩𝙝𝙖𝙩 𝙖𝙥𝙥𝙚𝙖𝙧𝙨 𝙖𝙩 𝙩𝙝𝙚...
在受到社区的严厉批评后,开发公司StarkWare同意大幅减少分配给计划于4月份解锁的团队的代币数量,周四Starknet的STRK代币上涨了10%。一份电子邮件声明称:“在听取了生态系统朋友和合作者的反馈后,我们正在更...