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 社交(需原生高吞吐)

关键差异详解

  1. 定位与扩容逻辑

    • StarkWare 是以太坊 L2,安全性锚定主网,适合需要以太坊生态与资产互通的场景,无需重构底层。
    • Move 生态是独立 L1,通过架构级并行与资源模型实现原生高吞吐,适合对性能要求极高且不依赖以太坊的场景。
  2. 安全模型对比

    • StarkWare:L1 兜底 + 零知识证明防计算错误,资产不离开以太坊,安全上限与主网一致。
    • Move 生态:语言层从根源避免重入、双花等漏洞,配合 Move Prover 做形式化验证,适合资产密集型应用。
  3. 性能与成本

    • StarkWare 受限于以太坊 L1 验证效率,TPS 上限低于 Move 生态,但安全性与互操作性更强。
    • Move 生态 TPS 更高,成本更稳定,但跨链互操作需额外桥接,存在桥接安全风险。
  4. 开发与工具链

    • 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) 需桥接适配,兼容性取决于桥接设计

二、关键差异详解

  1. 核心逻辑:“乐观” vs “悲观” vs “独立”

    • Optimistic Rollup:名字源于“乐观假设”——默认所有交易合法,只有当有人质疑时才触发欺诈证明,重新计算有争议的交易。优点是 EVM 兼容性好,缺点是终局慢。
    • Plasma Rollup:属于“分片式扩容”,将主网资产映射到子链,通过退出机制保障资产安全(用户提现需提交证明,无异议则完成退出)。优点是成本低,缺点是存在数据可用性风险,且退出流程繁琐。
    • Validity Rollup:即 ZK-Rollup,核心是“先验证再上链”——链下批量执行交易后生成零知识证明,主网合约验证证明合法后直接更新状态。优点是终局快、安全性高,缺点是证明生成成本高,早期 EVM 兼容性弱。
    • Sidechain:完全独立的区块链,通过跨链桥与以太坊主网互通。优点是性能高、成本低,缺点是安全性与侧链节点挂钩,桥接是最大安全风险点。
  2. 安全性排序(从高到低)
    Validity Rollup(ZK-Rollup) > Optimistic Rollup > Plasma Rollup > Sidechain

    • Validity Rollup 安全性与以太坊主网等价,资产始终托管在主网合约;
    • Sidechain 安全性最弱,若侧链节点被攻击或联合作恶,可能导致资产丢失。
  3. 适用场景差异

    • 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 的核心职责

  1. 交易排序:接收用户提交的交易,放入内存池(mempool),按规则(如费用优先级、时序)排序,过滤无效/失败交易,确保区块内交易的确定性与合法性。
  2. 交易执行:调用 Starknet OS(基于 Cairo 的系统程序)与 Cairo VM,执行排序后的交易,生成执行轨迹(execution trace)与状态差异(state diff),更新 L2 网络状态。
  3. 区块生成:将执行成功的交易打包成完整区块,生成区块头、状态根等关键数据,提交给证明者(Prover)生成 STARK 有效性证明,最终通过主网核心合约完成状态锚定。
  4. 节点功能: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 语言的说法,哪一项是正确的?

  1. Cairo 是 EVM 的一种方言

  2. Cairo 编译后的程序直接运行在 CPU 上

  3. Cairo 需要开发者深入理解 zk 电路才能使用

  4. 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 上,并可生成有效性证明

  • 核心逻辑
    1. Cairo是图灵完备语言,所有Cairo程序必须在CairoVM中执行(类似Solidity程序运行在EVM);
    2. CairoVM在执行过程中会记录程序的“执行轨迹”,基于这个轨迹可自动生成STARK有效性证明(这也是StarkNet作为ZK-Rollup的核心);
    3. 该证明可提交到以太坊主网验证,确保Cairo程序执行结果的正确性,这是Cairo最核心的设计价值。

总结

  1. Cairo是独立于EVM的语言,运行在专属的CairoVM上,而非CPU或EVM;
  2. Cairo的核心优势是“封装ZK证明复杂度”,开发者无需懂ZK电路即可使用;
  3. Cairo程序的最终价值是在CairoVM中执行并生成STARK有效性证明,这是它适配ZK-Rollup的核心能力。

如果需要,我可以整理一份Cairo语言核心特性速记清单,帮你快速区分它与Solidity/EVM的关键差异。

Starknet 与 StarkEx 的主要区别是什么?

  1. StarkEx 使用 SNARK,而 Starknet 使用 STARK
  2. StarkEx 完全开放准入,Starknet 需要授权
  3. StarkEx 面向特定应用并需要 StarkWare 授权,Starknet 是开放网络
  4. 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 是开放网络

  • 核心逻辑
    1. StarkEx:定位是 B2B 定制化扩容 SaaS 服务,专为特定高并发应用设计(如 dYdX 永续合约、Immutable X 的 NFT 交易)。项目方需与 StarkWare 合作,根据自身业务需求定制交易规则和扩容逻辑,准入需授权,灵活性低但针对性强。
    2. 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),以下哪一项描述是正确的?

  1. Starknet 同时支持 EOA 和智能合约账户
  2. Starknet 的账户由私钥直接控制,无法更换
  3. Starknet 上的每个账户本质上都是一个智能合约
  4. 账户抽象只能用于多签钱包

正确答案

Starknet 上的每个账户本质上都是一个智能合约

各选项详细解析

1. 错误:Starknet 同时支持 EOA 和智能合约账户

  • 核心错误:Starknet 是原生账户抽象(Native Account Abstraction) 网络,不存在传统 EOA 账户
    以太坊的 EOA 是无代码的外部账户,由私钥直接控制;而 Starknet 中所有账户都是智能合约账户,即便是普通用户的基础钱包,也对应一个遵循账户抽象标准的合约(如 OpenZeppelin Account),私钥的作用是对合约交易进行签名授权,而非直接控制账户。

2. 错误:Starknet 的账户由私钥直接控制,无法更换

  • 核心错误
    • Starknet 账户的控制权由合约代码逻辑定义,私钥只是“签名工具”,而非账户的唯一控制核心。例如,用户可以通过合约升级或权限配置,添加新的私钥签名者、移除旧私钥,实现私钥的更换。
    • 部分智能钱包合约还支持社交恢复、多签授权等功能,进一步脱离了“单一私钥控制”的限制。

3. 正确:Starknet 上的每个账户本质上都是一个智能合约

  • 核心逻辑
    1. Starknet 摒弃了以太坊“EOA + 合约账户”的双层账户模型,采用全合约账户架构。所有账户都由 Cairo 编写的合约代码驱动,具备可编程性。
    2. 账户合约中定义了签名验证规则(如 ECDSA 签名验证)、交易执行逻辑(如转账、调用合约)、权限管理规则(如多签、社交恢复)。即便是最基础的个人账户,也需要部署一个标准账户合约才能使用。
    3. 这种设计是 Starknet 原生支持账户抽象的核心——所有账户天生具备智能钱包的特性,无需额外适配。

4. 错误:账户抽象只能用于多签钱包

  • 核心错误:账户抽象的功能远不止多签钱包,其核心价值是让账户具备可编程性,具体应用场景包括:
    • 多签/社交恢复钱包;
    • 无 Gas 交易(由第三方代付 Gas);
    • 批量交易(一次签名执行多笔操作);
    • 分级权限控制(如小额免签、大额需多签);
    • 与其他智能合约的无缝交互(如自动定投、自动复投)。

核心总结

Starknet 的账户抽象是原生级别的架构设计,区别于以太坊“通过 EIP-4337 适配账户抽象”的模式。其核心特征就是全账户智能合约化,让所有用户账户都具备灵活的可编程能力,而非局限于某一种钱包形态。

需要我帮你整理一份 Starknet 标准账户合约的核心代码解析,标注签名验证、交易执行的关键逻辑吗?

下面哪一项正确描述了 Cairo 的编译流程?

  1. Cairo → CASM → 直接上链
  2. Cairo → LLVM → CPU
  3. Cairo → Sierra → CASM → CairoVM 执行
  4. 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 合约的核心编译路径:
    1. Cairo(源码):开发者编写的高级语言代码(如 StarkNet 智能合约);
    2. Sierra(中间表示层):Cairo 编译器的核心中间产物,是“类型安全、可验证的中间语言”,作用是确保代码的安全性和可证明性(过滤掉无法生成 ZK 证明的逻辑);
    3. CASM(Cairo 汇编):Sierra 进一步编译为 Cairo 汇编代码,是 CairoVM 可直接执行的底层指令;
    4. 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 专属的执行环境,二者语法、编译目标、执行逻辑均无交集。

核心总结

  1. Cairo 的编译流程是分层定制化的,核心中间层是 Sierra(安全校验),最终产物是 CASM(供 CairoVM 执行);
  2. Cairo 编译的目标是适配 ZK 证明和 CairoVM,而非 CPU 或 EVM;
  3. “上链”的是 Cairo 程序执行的有效性证明,而非编译后的代码本身。

需要我帮你整理一份 Cairo 1.0 编译流程可视化清单(含各阶段的作用和安全校验点),方便你在审计中快速核对吗?