Starknet 训练营-课程笔记2
“StarkWare技术栈vs Move生态”的核心差异对比表
以下是 StarkWare 技术栈 vs Move 生态 的核心差异对比表,覆盖定位、技术架构、性能、安全、开发与适用场景等关键维度,兼顾 Web3 安全审计与开发视角。
核心差异总览表
| 对比维度 | StarkWare 技术栈(StarkNet/StarkEx) | Move 生态(Aptos/Sui 等) |
|---|---|---|
| 网络定位 | 以太坊 Layer2(ZK‑STARK Rollup),依托主网安全性做扩容 | 独立 Layer1 公链,原生高吞吐与独立共识 |
| 扩容路径 | 链下批量执行 + STARK 有效性证明上链,压缩数据与计算 | 并行执行 + 资源隔离 + 交易流优化,原生架构提效 |
| 核心技术 | Cairo 语言、Stone Prover、STARK 证明、账户抽象 | Move 语言(资源模型)、并行执行、Move Prover、拜占庭容错共识 |
| 安全性来源 | 以太坊主网合约验证证明,资产托管于 L1,零知识证明保障计算完整性 | 语言层资源不可复制/销毁、形式化验证友好、内置安全检查 |
| 理论 TPS | 数千级(StarkNet 可达 1000+,优化后更高) | 数万至十万级(Aptos 2000‑5000 稳定,Sui 峰值更高) |
| 交易终局性 | 证明验证通过即终局,无欺诈证明窗口期 | 共识确认后快速终局(Aptos 约 1-2s,Sui 亚秒级) |
| Gas 成本逻辑 | 批量压缩链上数据,成本比 L1 低 90%+,随 L1 波动 | 原生低费,不依赖以太坊,成本更稳定 |
| 开发语言 | Cairo(类 Rust,适配 STARK 证明生成) | Move(资源导向,形式化验证友好) |
| 生态核心项目 | StarkNet(通用 L2)、StarkEx(应用定制 L2)、dYdX、Immutable X | Aptos、Sui、Starcoin、Movement Network |
| 隐私潜力 | 天然支持隐私交易(隐藏金额/地址) | 需额外协议实现隐私,语言层无原生隐私 |
| 去中心化程度 | 定序器逐步去中心化,依赖以太坊去中心化 | 原生去中心化共识,验证节点网络独立 |
| 安全审计重点 | 证明生成逻辑、Rollup 合约漏洞、链下执行一致性 | 并行执行漏洞、资源模型误用、共识与内存池安全 |
| 适用场景 | DeFi、NFT、游戏(需以太坊安全与互操作性) | 高并发支付、大规模 DeFi、Web3 社交(需原生高吞吐) |
关键差异详解
定位与扩容逻辑
- StarkWare 是以太坊 L2,安全性锚定主网,适合需要以太坊生态与资产互通的场景,无需重构底层。
- Move 生态是独立 L1,通过架构级并行与资源模型实现原生高吞吐,适合对性能要求极高且不依赖以太坊的场景。
安全模型对比
- StarkWare:L1 兜底 + 零知识证明防计算错误,资产不离开以太坊,安全上限与主网一致。
- Move 生态:语言层从根源避免重入、双花等漏洞,配合 Move Prover 做形式化验证,适合资产密集型应用。
性能与成本
- StarkWare 受限于以太坊 L1 验证效率,TPS 上限低于 Move 生态,但安全性与互操作性更强。
- Move 生态 TPS 更高,成本更稳定,但跨链互操作需额外桥接,存在桥接安全风险。
开发与工具链
- Cairo 适配零知识证明,适合编写需要证明的合约;Move 适合安全第一的数字资产与 DeFi 开发,形式化验证更成熟。
选择建议(Web3 安全审计视角)
- 优先选 StarkWare:需以太坊安全性、资产互通、隐私交易或已有 L1 项目扩容。
- 优先选 Move 生态:需原生高吞吐、独立网络主权、资产安全优先的大规模应用。
需要我基于这个对比,整理一份 Web3 安全审计的核心检查项清单,分别覆盖 StarkWare 与 Move 生态 的高频风险点吗?
optimistic rollup, plasma rollup, validity rollup, sidechain有什么区别
Optimistic Rollup、Plasma Rollup、Validity Rollup、Sidechain 是以太坊生态四种主流的扩容方案,核心差异体现在安全性来源、数据存储、交易终局性、适用场景四个维度,以下是详细对比:
一、核心定义与本质区别
| 对比维度 | Optimistic Rollup(乐观 Rollup) | Plasma Rollup(等离子 Rollup) | Validity Rollup(有效性 Rollup) | Sidechain(侧链) |
|---|---|---|---|---|
| 核心信任假设 | 乐观假设交易合法,需欺诈证明挑战 | 依赖主链智能合约+子链共识,采用欺诈证明/退出博弈 | 悲观假设交易可能非法,需有效性证明验证 | 完全依赖侧链独立共识,主链仅做资产锚定 |
| 安全性来源 | 以太坊主网 + 欺诈证明窗口期 | 以太坊主网 + 子链轻节点 + 退出机制 | 以太坊主网 + 零知识证明(ZKP)/简洁证明 | 侧链节点共识(如PoS/PoA),主网无直接安全兜底 |
| 数据存储 | 交易数据全量上链(以太坊主网) | 仅存储交易哈希/状态根,数据链下存储 | 仅存储证明+最终状态根,交易数据链下 | 数据完全侧链存储,主网仅记录资产跨链映射 |
| 交易终局性 | 需 7天挑战期,期间可撤回交易;挑战期后终局 | 退出需等待 1-7天窗口期,存在数据可用性风险 | 证明验证通过立即终局,无窗口期 | 侧链共识确认后即终局,速度快但安全性弱 |
| 代表项目 | Optimism、Arbitrum | Plasma Cash、OMG Network | ZK-Rollup(StarkNet、zkSync) | Polygon PoS、xDai |
| TPS 性能 | 约 1000-2000 | 约 1000-5000(受限于退出机制) | 约 1000-10000+(批量压缩效率高) | 约 1000-10000+(独立共识无主网瓶颈) |
| Gas 成本 | 比主网低 5-10 倍 | 成本极低,但退出流程复杂 | 比主网低 10-100 倍 | 成本最低,与主网 Gas 无直接关联 |
| 以太坊兼容性 | 完全 EVM 兼容,开发门槛低 | 部分兼容,需定制退出逻辑 | 部分兼容(如 zkEVM)或独立 VM(如 Cairo VM) | 需桥接适配,兼容性取决于桥接设计 |
二、关键差异详解
核心逻辑:“乐观” vs “悲观” vs “独立”
- Optimistic Rollup:名字源于“乐观假设”——默认所有交易合法,只有当有人质疑时才触发欺诈证明,重新计算有争议的交易。优点是 EVM 兼容性好,缺点是终局慢。
- Plasma Rollup:属于“分片式扩容”,将主网资产映射到子链,通过退出机制保障资产安全(用户提现需提交证明,无异议则完成退出)。优点是成本低,缺点是存在数据可用性风险,且退出流程繁琐。
- Validity Rollup:即 ZK-Rollup,核心是“先验证再上链”——链下批量执行交易后生成零知识证明,主网合约验证证明合法后直接更新状态。优点是终局快、安全性高,缺点是证明生成成本高,早期 EVM 兼容性弱。
- Sidechain:完全独立的区块链,通过跨链桥与以太坊主网互通。优点是性能高、成本低,缺点是安全性与侧链节点挂钩,桥接是最大安全风险点。
安全性排序(从高到低)
Validity Rollup(ZK-Rollup) > Optimistic Rollup > Plasma Rollup > Sidechain- Validity Rollup 安全性与以太坊主网等价,资产始终托管在主网合约;
- Sidechain 安全性最弱,若侧链节点被攻击或联合作恶,可能导致资产丢失。
适用场景差异
- Optimistic Rollup:适合需要 EVM 兼容、快速迁移的 DeFi 项目(如 Uniswap V3 部署在 Arbitrum);
- Plasma Rollup:适合低频大额转账场景(如比特币 Plasma 侧链),不适合高频复杂合约;
- Validity Rollup:适合高频交易、隐私需求场景(如 StarkNet 上的 dYdX 永续合约);
- Sidechain:适合对成本敏感、对安全性要求不高的场景(如游戏、社交 dApp)。
三、与你关注技术栈的关联
- 你之前了解的 StarkNet 属于 Validity Rollup 中的 ZK-STARK Rollup 子类,是 Validity Rollup 性能与隐私的代表;
- Move 生态公链(如 Aptos)本质是独立 Layer1,而非以上四类扩容方案,其性能提升源于原生并行执行,而非“主链+扩容层”架构。
需要我帮你整理一份扩容方案安全审计优先级清单,标注不同方案的核心风险点和审计重点吗?
Starknet 中负责交易排序、执行并生成区块的组件是?
StarkNet 中负责交易排序、执行并生成区块的核心组件是 Starknet Sequencer(排序器),它是网络的核心执行与出块单元,以下从核心职责、运行逻辑、关键关联组件三方面详细说明:
一、Sequencer 的核心职责
- 交易排序:接收用户提交的交易,放入内存池(mempool),按规则(如费用优先级、时序)排序,过滤无效/失败交易,确保区块内交易的确定性与合法性。
- 交易执行:调用 Starknet OS(基于 Cairo 的系统程序)与 Cairo VM,执行排序后的交易,生成执行轨迹(execution trace)与状态差异(state diff),更新 L2 网络状态。
- 区块生成:将执行成功的交易打包成完整区块,生成区块头、状态根等关键数据,提交给证明者(Prover)生成 STARK 有效性证明,最终通过主网核心合约完成状态锚定。
- 节点功能:Sequencer 节点是 Starknet 的核心节点类型,兼具排序、执行、出块、与 L1 交互的全流程能力,当前由 StarkWare 运营,未来将实现去中心化(如 Madara 等社区开源 Sequencer 方案)。
二、与关联组件的协同流程
| 组件 | 角色 | 与 Sequencer 的协同关系 |
|---|---|---|
| Sequencer | 排序、执行、出块 | 主导交易处理全流程,输出区块与执行结果 |
| Starknet OS | 系统层执行引擎 | Sequencer 调用其 Cairo 程序完成交易执行与状态更新 |
| Prover(证明者) | 生成 STARK 证明 | 接收 Sequencer 输出的执行轨迹,生成有效性证明供 L1 验证 |
| L1 Core Contract | 主网验证与状态锚定 | 验证 Prover 提交的证明,确认后更新 Starknet 状态根,完成终局性确认 |
三、关键补充
- 去中心化进程:当前 Starknet 为中心化 Sequencer 模式,社区正推进去中心化排序(如 Starknet 2.0 路线图),目标是引入多 Sequencer 网络,消除单点故障,提升网络抗审查性。
- 安全边界:Sequencer 的执行结果需经 Prover 生成的 STARK 证明验证,最终由以太坊主网合约确认,确保其行为的有效性与不可篡改,安全性与主网等价。
需要我帮你整理一份 Sequencer 安全审计的核心检查项(含排序逻辑、执行一致性、内存池过滤、出块权限控制等),方便你在 Web3 安全审计中快速复用吗?
下列关于 Cairo 语言的说法,哪一项是正确的?
Cairo 是 EVM 的一种方言
Cairo 编译后的程序直接运行在 CPU 上
Cairo 需要开发者深入理解 zk 电路才能使用
Cairo 程序运行在 CairoVM 上,并可生成有效性证明
你想确认关于Cairo语言的四个说法中哪一项是正确的,我先直接给出答案,再逐一拆解每个选项的对错原因,帮你彻底理解核心知识点。
正确答案
第4项:Cairo 程序运行在 CairoVM 上,并可生成有效性证明 ✅
各选项详细解析
1. 错误:Cairo 是 EVM 的一种方言
- 核心错误:EVM(以太坊虚拟机)是以太坊生态的执行环境,适配Solidity语言;而Cairo是StarkWare专为STARK零知识证明设计的独立语言,运行在CairoVM(而非EVM)上,二者语法、底层执行逻辑完全无关,不存在“方言”关系。
- 补充:部分ZK-Rollup项目(如zkSync)的zkEVM是让EVM合约适配ZK证明,而Cairo从设计上就不兼容EVM,是独立的虚拟机体系。
2. 错误:Cairo 编译后的程序直接运行在 CPU 上
- 核心错误:Cairo程序编译后生成的是“代数化计算轨迹”(Algebraic Execution Trace),专门适配STARK证明的生成逻辑,只能运行在CairoVM(定制化虚拟机) 中,无法直接在普通CPU上执行。
- 补充:CairoVM是为ZK证明优化的虚拟机,会将程序执行过程转化为适合生成STARK证明的数学结构,这是Cairo区别于普通编程语言的核心特征。
3. 错误:Cairo 需要开发者深入理解 zk 电路才能使用
- 核心错误:Cairo的设计目标就是让开发者无需深入理解ZK电路/密码学,就能编写支持零知识证明的程序。StarkWare已将ZK证明的复杂逻辑封装在CairoVM和底层库中,开发者只需关注业务逻辑(如合约功能),证明生成由工具链自动完成。
- 反例:用Cairo编写StarkNet智能合约时,只需掌握Cairo基础语法,无需手动设计ZK电路,和用Solidity写合约无需理解EVM底层一样。
4. 正确:Cairo 程序运行在 CairoVM 上,并可生成有效性证明
- 核心逻辑:
- Cairo是图灵完备语言,所有Cairo程序必须在CairoVM中执行(类似Solidity程序运行在EVM);
- CairoVM在执行过程中会记录程序的“执行轨迹”,基于这个轨迹可自动生成STARK有效性证明(这也是StarkNet作为ZK-Rollup的核心);
- 该证明可提交到以太坊主网验证,确保Cairo程序执行结果的正确性,这是Cairo最核心的设计价值。
总结
- Cairo是独立于EVM的语言,运行在专属的CairoVM上,而非CPU或EVM;
- Cairo的核心优势是“封装ZK证明复杂度”,开发者无需懂ZK电路即可使用;
- Cairo程序的最终价值是在CairoVM中执行并生成STARK有效性证明,这是它适配ZK-Rollup的核心能力。
如果需要,我可以整理一份Cairo语言核心特性速记清单,帮你快速区分它与Solidity/EVM的关键差异。
Starknet 与 StarkEx 的主要区别是什么?
- StarkEx 使用 SNARK,而 Starknet 使用 STARK
- StarkEx 完全开放准入,Starknet 需要授权
- StarkEx 面向特定应用并需要 StarkWare 授权,Starknet 是开放网络
- StarkEx 只能部署 DeFi 项目,Starknet 不能
正确答案
第3项:StarkEx 面向特定应用并需要 StarkWare 授权,Starknet 是开放网络 ✅
各选项详细解析
1. 错误:StarkEx 使用 SNARK,而 Starknet 使用 STARK
- 核心错误:StarkEx 和 StarkNet 均基于 STARK 零知识证明技术 构建,二者都不使用 SNARK 算法。
- 补充:StarkWare 全产品线的核心技术都是 STARK,区别仅在于证明的应用场景和网络形态,与证明类型无关。
2. 错误:StarkEx 完全开放准入,Starknet 需要授权
- 核心错误:该描述与实际情况完全相反。
- StarkEx 是定制化许可制扩容方案,需要项目方与 StarkWare 合作并获得授权,才能基于其技术搭建专属扩容层;
- StarkNet 是无需许可的开放型 ZK-Rollup 网络,任何开发者都可以自由部署合约、提交交易,无需授权。
3. 正确:StarkEx 面向特定应用并需要 StarkWare 授权,Starknet 是开放网络
- 核心逻辑:
- StarkEx:定位是 B2B 定制化扩容 SaaS 服务,专为特定高并发应用设计(如 dYdX 永续合约、Immutable X 的 NFT 交易)。项目方需与 StarkWare 合作,根据自身业务需求定制交易规则和扩容逻辑,准入需授权,灵活性低但针对性强。
- StarkNet:定位是 通用型无需许可 ZK-Rollup 网络,是以太坊 Layer2 上的“公共计算平台”。任何开发者都可以用 Cairo 语言编写智能合约并部署,支持任意类型的 dApp(DeFi、NFT、游戏等),无需 StarkWare 授权,生态开放性强。
4. 错误:StarkEx 只能部署 DeFi 项目,Starknet 不能
- 核心错误:二者的适用场景描述均错误。
- StarkEx 不仅支持 DeFi 项目(如 dYdX),也支持 NFT 项目(如 Immutable X、Sorare),只要是高并发、有明确业务规则的应用都可适配;
- StarkNet 作为通用网络,完全可以部署 DeFi 项目,且支持更复杂的通用智能合约逻辑。
核心区别总结表
| 对比维度 | StarkEx | StarkNet |
|---|---|---|
| 网络定位 | 定制化许可制扩容 SaaS | 无需许可的通用型 ZK-Rollup |
| 准入规则 | 需要 StarkWare 授权合作 | 完全开放,无需授权 |
| 适用场景 | 特定高并发应用(如中心化交易、NFT 市场) | 全类型 dApp(DeFi、NFT、游戏等) |
| 灵活性 | 按应用需求定制规则,灵活性低 | 支持自由编写合约,灵活性高 |
| 证明技术 | 基于 STARK 证明 | 基于 STARK 证明 |
需要我帮你整理一份 StarkEx 与 StarkNet 安全审计侧重点对比清单 吗?
关于 Starknet 上的账户抽象(Account Abstraction),以下哪一项描述是正确的?
- Starknet 同时支持 EOA 和智能合约账户
- Starknet 的账户由私钥直接控制,无法更换
- Starknet 上的每个账户本质上都是一个智能合约
- 账户抽象只能用于多签钱包
正确答案
Starknet 上的每个账户本质上都是一个智能合约 ✅
各选项详细解析
1. 错误:Starknet 同时支持 EOA 和智能合约账户
- 核心错误:Starknet 是原生账户抽象(Native Account Abstraction) 网络,不存在传统 EOA 账户。
以太坊的 EOA 是无代码的外部账户,由私钥直接控制;而 Starknet 中所有账户都是智能合约账户,即便是普通用户的基础钱包,也对应一个遵循账户抽象标准的合约(如OpenZeppelin Account),私钥的作用是对合约交易进行签名授权,而非直接控制账户。
2. 错误:Starknet 的账户由私钥直接控制,无法更换
- 核心错误:
- Starknet 账户的控制权由合约代码逻辑定义,私钥只是“签名工具”,而非账户的唯一控制核心。例如,用户可以通过合约升级或权限配置,添加新的私钥签名者、移除旧私钥,实现私钥的更换。
- 部分智能钱包合约还支持社交恢复、多签授权等功能,进一步脱离了“单一私钥控制”的限制。
3. 正确:Starknet 上的每个账户本质上都是一个智能合约
- 核心逻辑:
- Starknet 摒弃了以太坊“EOA + 合约账户”的双层账户模型,采用全合约账户架构。所有账户都由 Cairo 编写的合约代码驱动,具备可编程性。
- 账户合约中定义了签名验证规则(如 ECDSA 签名验证)、交易执行逻辑(如转账、调用合约)、权限管理规则(如多签、社交恢复)。即便是最基础的个人账户,也需要部署一个标准账户合约才能使用。
- 这种设计是 Starknet 原生支持账户抽象的核心——所有账户天生具备智能钱包的特性,无需额外适配。
4. 错误:账户抽象只能用于多签钱包
- 核心错误:账户抽象的功能远不止多签钱包,其核心价值是让账户具备可编程性,具体应用场景包括:
- 多签/社交恢复钱包;
- 无 Gas 交易(由第三方代付 Gas);
- 批量交易(一次签名执行多笔操作);
- 分级权限控制(如小额免签、大额需多签);
- 与其他智能合约的无缝交互(如自动定投、自动复投)。
核心总结
Starknet 的账户抽象是原生级别的架构设计,区别于以太坊“通过 EIP-4337 适配账户抽象”的模式。其核心特征就是全账户智能合约化,让所有用户账户都具备灵活的可编程能力,而非局限于某一种钱包形态。
需要我帮你整理一份 Starknet 标准账户合约的核心代码解析,标注签名验证、交易执行的关键逻辑吗?
下面哪一项正确描述了 Cairo 的编译流程?
- Cairo → CASM → 直接上链
- Cairo → LLVM → CPU
- Cairo → Sierra → CASM → CairoVM 执行
- Cairo → EVM Bytecode → 执行
正确答案
第3项:Cairo → Sierra → CASM → CairoVM 执行 ✅
各选项详细解析
1. 错误:Cairo → CASM → 直接上链
- 核心错误:Cairo 编译后不会“直接上链”,且 CASM 并非 Cairo 编译的直接产物(中间还有 Sierra 层)。
- 补充:Cairo 代码需先编译为 Sierra(中间表示层),再编译为 CASM(Cairo 汇编),最终在 CairoVM 中执行;执行结果的有效性证明会上链(以太坊主网),而非 CASM 代码本身。
2. 错误:Cairo → LLVM → CPU
- 核心错误:Cairo 是专为 ZK 证明和 CairoVM 设计的语言,不基于 LLVM 编译,也无法直接在普通 CPU 上执行。
- 补充:LLVM 是通用编译框架(如 Rust/C++ 常用),但 Cairo 的编译链是定制化的(Sierra → CASM),目标是适配 CairoVM 的执行逻辑和 STARK 证明生成,与 CPU 执行无关。
3. 正确:Cairo → Sierra → CASM → CairoVM 执行
- 核心逻辑:这是 Cairo 1.0+ 版本的标准编译流程,也是 StarkNet 合约的核心编译路径:
- Cairo(源码):开发者编写的高级语言代码(如 StarkNet 智能合约);
- Sierra(中间表示层):Cairo 编译器的核心中间产物,是“类型安全、可验证的中间语言”,作用是确保代码的安全性和可证明性(过滤掉无法生成 ZK 证明的逻辑);
- CASM(Cairo 汇编):Sierra 进一步编译为 Cairo 汇编代码,是 CairoVM 可直接执行的底层指令;
- CairoVM 执行:CASM 代码在 CairoVM 中运行,生成执行轨迹,最终可基于轨迹生成 STARK 有效性证明。
- 补充:Sierra 层是 Cairo 1.0 新增的关键层,解决了早期 Cairo 0.x 直接编译为 CASM 导致的安全风险(如无边界循环、无效操作)。
4. 错误:Cairo → EVM Bytecode → 执行
- 核心错误:Cairo 与 EVM 完全无关,不会编译为 EVM 字节码,也无法在 EVM 中执行。
- 补充:EVM 是以太坊的虚拟机,适配 Solidity 语言;Cairo 适配 CairoVM,是 StarkNet 专属的执行环境,二者语法、编译目标、执行逻辑均无交集。
核心总结
- Cairo 的编译流程是分层定制化的,核心中间层是 Sierra(安全校验),最终产物是 CASM(供 CairoVM 执行);
- Cairo 编译的目标是适配 ZK 证明和 CairoVM,而非 CPU 或 EVM;
- “上链”的是 Cairo 程序执行的有效性证明,而非编译后的代码本身。
需要我帮你整理一份 Cairo 1.0 编译流程可视化清单(含各阶段的作用和安全校验点),方便你在审计中快速核对吗?