Starknet 训练营-课程笔记

我的学号21
▶️ 课程视频合集
📺 YouTube 合集:👉https://www.youtube.com/playlist?list=PLCv99tqIzSwm-6Dn2OLD8zRPS18sI2rOv
📺 Bilibili 合集:👉https://space.bilibili.com/1152852334/lists/7032696?type=season

开营仪式

使用软件
助教
大纲
如何提交作业
毕业标准
活动
激励
班长
课程二维码
课程周期
课程表

starkware是什么公司

StarkWare是2018年成立于以色列的隐私计算与区块链扩容公司,核心是基于STARK零知识证明技术,为以太坊生态提供高性能、隐私友好的Layer2扩容方案,同时开发了Cairo语言与StarkEx、StarkNet等核心产品,是Web3扩容与隐私赛道的头部技术提供商。


一、公司核心信息

项目 详情
成立时间 2018年
总部 以色列内坦亚(Netanya)
创始人 Eli Ben‑Sasson(CEO)、Alessandro Chiesa、Michael Riabzev、Uri Kolodny
融资 累计股权融资超2.5亿美元,获以太坊基金会1200万美元资助,投资方含Coatue、Tiger Global等
定位 以色列最大的区块链深度科技公司,专注STARK零知识证明技术研发

二、核心技术与产品

StarkWare的技术核心是STARK(Scalable Transparent ARguments of Knowledge),一种零知识、简洁、透明且抗量子的证明系统,能在保证计算完整性的同时,大幅压缩链上数据、降低Gas成本并提升隐私性。其核心产品如下:

  1. StarkEx:2020年6月上线的ZK‑Rollup SaaS,为DeFi与NFT等场景提供定制化扩容,支持批量交易与隐私保护,客户包括dYdX、Immutable X、Sorare等。
  2. StarkNet:以太坊上的去中心化无许可ZK‑Rollup,支持用Cairo语言编写智能合约,实现高TPS与EVM兼容,适合复杂DeFi与通用dApp开发。
  3. Cairo语言:专为STARK证明设计的图灵完备语言,让开发者无需深入密码学即可编写具备零知识证明能力的程序,是StarkNet生态的核心开发语言。
  4. Stwo Prover:新一代STARK证明器,进一步提升证明生成效率与扩容上限。

三、技术优势与应用价值

  1. 性能与成本:通过批量交易与证明压缩,将以太坊Layer2 TPS提升至数万级,单笔交易Gas成本降低90%以上,且每笔批量更新仅需约80KB的链上证明数据。
  2. 隐私与安全:STARK证明支持隐私交易(如私密转账),同时具备数学上的计算完整性保证,抗量子攻击,安全性高于传统侧链方案。
  3. 生态兼容:无缝对接以太坊主网,兼容EVM生态,降低开发者与用户的迁移成本。

四、行业影响

  • 推动ZK‑Rollup成为以太坊Layer2主流方案,引领“扩容+隐私”的技术趋势。
  • Cairo语言成为零知识智能合约开发的标杆,影响后续ZKP语言设计。
  • 服务dYdX等头部DeFi项目,验证了STARK技术在高频交易场景的可行性。

五、与Move/Solidity生态的差异

  • 与Move(资产安全优先)、Solidity(EVM通用优先)相比,StarkWare聚焦“零知识证明+扩容”,通过Cairo与STARK技术为以太坊生态提供隐私与性能的双重提升,是Web3安全审计与扩容开发中不可忽视的技术栈。

需要我基于你之前关注的Move与Cairo,整理一份“StarkWare技术栈vs Move生态”的核心差异对比表,并标注安全审计的重点风险点吗?

S-two证明器是什么

S-two是StarkWare推出的下一代开源ZK-STARK证明器与zkVM框架,基于Circle STARKs与M31素数域构建,用Rust实现,主打极致性能与客户端本地证明能力,2025年11月起成为Starknet主网默认证明器,全面替代前一代Stone证明器。


核心定位与关键特性

  • 技术底座:以Circle STARKs为密码学基础,采用M31(Mersenne31)小素数域,适配32位硬件指令,大幅提升多项式运算与FFT效率,证明速度较Stone提升一个数量级,部分场景达39倍。
  • 开发与集成:原生支持Cairo语言与直接AIR定义,兼顾开发便捷性与底层约束表达能力,适配Rust生态,便于Web3开发者集成与定制证明系统。
  • 客户端侧证明:针对消费级硬件优化,可在手机、浏览器、笔记本等本地设备生成证明,无需依赖中心化服务器/云算力,推动隐私DeFi、可验证AI、zk身份等应用落地。
  • 开放与生态:Apache 2.0开源,无缝接入Starknet、SHARP证明聚合器,降低链上验证成本,提升网络吞吐量与去中心化程度。

技术架构要点

模块 核心设计 价值
算术基础 M31素数域(2³¹-1) 适配通用硬件,加速模运算与多项式操作
代数结构 圆群(Circle Group) 优化FFT与多项式承诺,提升证明生成效率
多项式协议 Circle FRI + 向量/多项式承诺 低阶测试与高效承诺,保障证明安全性与简洁性
实现语言 Rust 高性能、内存安全,适配Substrate等Web3技术栈
前端适配 Cairo + 直接AIR 灵活表达计算约束,平衡开发效率与性能

性能与应用场景

  • 性能表现:4核Intel i7单线程Poseidon2哈希证明吞吐超50万次/秒;M3 Pro 12核达60万次/秒,远超传统STARK方案。
  • 典型场景
    1. Starknet Layer2扩容:为区块生成有效性证明,降低上链成本与延迟。
    2. 客户端隐私证明:本地生成身份/资产证明,不泄露敏感数据。
    3. 可验证计算:AI推理、数据合规等场景的计算完整性证明。
    4. 递归证明与聚合:通过SHARP聚合多笔交易/程序证明,进一步压缩链上开销。

与Stone证明器对比

维度 S-two Stone
密码学基础 Circle STARKs + M31 传统STARKs + 大素数域
实现语言 Rust C++
本地证明 支持(手机/浏览器) 依赖云/服务器算力
性能提升 10–39倍 基准线
生态适配 Cairo 1.0+/AIR Cairo 0.x

快速上手(Web3开发者)

  1. 安装依赖:Rust工具链、Cairo编译器(v2.0+)。
  2. 拉取代码:git clone https://github.com/starkware-libs/stwo.git
  3. 本地测试:运行Poseidon2哈希证明基准 cargo run --release --example poseidon_bench
  4. 集成开发:通过Cairo编写程序或直接定义AIR约束,使用S-two生成并验证证明。

总结

S-two通过密码学创新与硬件友好设计,将ZK-STARK证明从云端推向终端,为Web3安全审计、隐私计算、Layer2扩容提供高性能基础设施,尤其适配Rust/Substrate开发者构建高效zk应用的需求。

需要我基于你的Web3安全审计场景,整理一份S-two在Cairo合约验证客户端zk证明的最小可复现示例(含Rust代码片段与调试步骤)吗?

Move语言是什么

你想了解Move语言的核心概念、用途和特点,我会从新手容易理解的角度为你全面讲解。

一、Move语言的核心定义

Move 是一种专为区块链和数字资产设计的静态类型编程语言,最初由Meta(原Facebook)为Libra(后更名为Diem)区块链项目开发,现在已成为Aptos、Sui、Aptos等主流Layer1区块链的核心开发语言。

简单来说:如果把Solidity(以太坊智能合约语言)比作“区块链通用脚本语言”,Move就是“为数字资产量身定做的编程语言”,它的核心设计目标是安全、高效地管理数字资产(比如代币、NFT、稳定币等)。

二、Move语言的核心特点(新手易懂版)

1. 资产导向的核心设计

Move最独特的特性是将数字资产作为一等公民

  • 在Move中,数字资产(如代币)被定义为Resource(资源类型),这种类型有严格的安全规则:
    • 不能被复制(避免双花问题)
    • 不能被意外销毁
    • 只能通过显式的代码逻辑转移
  • 对比Solidity:Solidity中资产通常用映射(mapping)模拟,容易因代码漏洞导致资产丢失;Move的Resource类型从语言层面杜绝了这类问题。

2. 静态类型与安全性

  • Move是静态类型语言(类似Rust/TypeScript),编译时就能检查类型错误,避免运行时的资产安全问题;
  • 内置严格的权限控制和资源访问规则,大幅降低智能合约漏洞(如重入攻击、溢出攻击)的风险。

3. 模块化与可复用性

  • Move的代码组织基于模块(Module)脚本(Script)
    • Module:相当于智能合约的核心逻辑(存储资产、定义规则),部署后不可修改;
    • Script:触发Module中逻辑的“调用脚本”(类似交易指令),仅用于执行操作。
  • 支持代码复用(比如通用的代币标准),且模块可以跨链复用(Aptos的Move模块可适配Sui)。

4. 高性能

  • 针对区块链并行执行优化,Sui、Aptos等链基于Move实现了高TPS(每秒交易数),远高于以太坊。

三、Move语言的简单示例(核心语法)

以下是一个极简的Move模块示例,定义一个自定义代币(新手可重点看注释):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// 声明模块,格式:address::模块名(address是部署地址)
module 0x42::MyToken {
// 导入核心库(类似Python的import)
use std::signer;
use std::event;
use aptos_framework::coin;

// 定义代币的资源类型(核心:不可复制、不可销毁)
struct MyToken has store, mintable, burnable {}

// 初始化代币(部署时执行)
public fun init_module(account: &signer) {
// 注册代币元数据(名称、符号、小数位)
coin::register<MyToken>(account);
// 铸造1000个代币给部署者
coin::mint<MyToken>(1000, account);
}

// 转账函数(核心逻辑)
public fun transfer(from: &signer, to: address, amount: u64) {
// 检查金额合法性
assert!(amount > 0, 1); // 1是错误码
// 执行转账(语言层面保证资产安全)
coin::transfer<MyToken>(from, to, amount);
}
}

四、Move的应用场景

  1. 智能合约开发:为Aptos、Sui、Diem等区块链编写DeFi(去中心化金融)、NFT、稳定币等合约;
  2. 数字资产管理:安全地定义、发行、转移各类链上资产;
  3. 跨链应用:基于Move的跨链协议开发(如Aptos ↔ Sui)。

五、Move与Solidity的核心区别

特性 Move Solidity
核心设计目标 资产安全管理 通用智能合约
资产类型 原生Resource(不可复制) 映射(mapping)模拟
安全性 编译时检查,漏洞少 运行时检查,易出漏洞
主要应用链 Aptos、Sui、Diem 以太坊、BSC、Polygon

总结

  1. Move是专为区块链数字资产设计的静态类型语言,核心优势是资产安全性;
  2. 它将数字资产定义为Resource类型,从语言层面杜绝复制、销毁、双花等问题;
  3. 主要用于Aptos、Sui等高性能区块链的智能合约开发,是Web3领域的重要编程语言。

如果你想进一步学习,建议先从Aptos官方的Move教程入手,结合实际案例(如发行代币、编写NFT合约)理解核心语法。

cairo语言是什么

你想了解Cairo语言的核心概念、用途和特点,我会延续讲解Move语言的风格,从新手视角把Cairo讲清楚,还会对比你刚了解的Move,帮你更好区分。

一、Cairo语言的核心定义

Cairo(中文常译“开罗”)是一种专为零知识证明(Zero-Knowledge Proof,ZKP)设计的图灵完备编程语言,由StarkWare公司开发,是StarkNet(以太坊Layer2扩容方案)的核心智能合约语言。

简单来说:如果Move的核心是“安全管理区块链资产”,那么Cairo的核心就是“高效实现零知识证明”——它能让开发者编写可以生成和验证ZKP的程序,既保证区块链交易的隐私性,又能大幅提升以太坊的处理效率。

二、Cairo语言的核心特点(新手易懂版)

1. 专为零知识证明(ZKP)而生

这是Cairo最核心的特性:

  • ZKP的核心逻辑是“证明者能向验证者证明自己知道某个秘密,但不泄露秘密本身”(比如证明你有100ETH,但不暴露你的钱包地址);
  • Cairo的语法和底层设计完全适配ZKP的数学逻辑(基于STARK证明系统),开发者无需手动编写复杂的密码学代码,就能让程序具备ZKP能力;
  • 对比普通语言:用Python/Java写ZKP程序需要深入理解密码学,而Cairo把ZKP能力“内置”到语言层面。

2. 图灵完备+以太坊兼容

  • 图灵完备:能实现所有可计算的逻辑(和Solidity、Move一样),可以编写任意复杂的智能合约;
  • 以太坊兼容:StarkNet作为以太坊Layer2,Cairo编写的合约能和以太坊主网无缝交互,且兼容EVM(以太坊虚拟机)生态。

3. 高性能与低Gas费

  • Cairo程序编译后会生成“算术电路”,通过STARK证明压缩计算量,让StarkNet的TPS(每秒交易数)远超以太坊主网;
  • 基于ZKP的批量验证,大幅降低用户的Gas成本(比以太坊主网低90%以上)。

4. 静态类型+内存安全

  • 和Move、Rust一样是静态类型语言,编译时检查类型错误,避免运行时漏洞;
  • 内置内存安全机制,防止常见的内存越界、空指针等问题。

三、Cairo语言的简单示例(核心语法)

以下是一个极简的Cairo合约示例,实现“私密转账”(核心逻辑是验证转账合法性但不暴露金额/地址):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// 声明合约(类似Solidity的contract、Move的module)
#[starknet::contract]
mod PrivateTransfer {
// 导入核心库
use starknet::ContractAddress;
use starknet::get_caller_address;
use core::felt252;

// 存储状态:用户余额(私密存储,仅通过ZKP验证)
#[storage]
struct Storage {
// felt252是Cairo的核心类型(252位整数,适配区块链)
balances: LegacyMap<ContractAddress, felt252>,
}

// 初始化函数:给部署者设置初始余额
#[constructor]
fn constructor(ref self: ContractState, initial_balance: felt252) {
let deployer = get_caller_address();
self.balances.write(deployer, initial_balance);
}

// 私密转账函数(核心:通过ZKP验证,不暴露转账细节)
#[external(v0)]
fn transfer(
ref self: ContractState,
to: ContractAddress,
amount: felt252,
// zk_proof:零知识证明参数(验证转账合法性)
zk_proof: felt252
) {
let caller = get_caller_address();
// 1. 验证ZKP(核心:证明caller有足够余额,且未作弊)
assert!(verify_zk_proof(caller, amount, zk_proof), "Invalid proof");
// 2. 扣减转账方余额
let caller_balance = self.balances.read(caller);
self.balances.write(caller, caller_balance - amount);
// 3. 增加接收方余额
let to_balance = self.balances.read(to);
self.balances.write(to, to_balance + amount);
}

// 辅助函数:验证零知识证明(简化版)
fn verify_zk_proof(caller: ContractAddress, amount: felt252, proof: felt252) -> bool {
// 实际开发中会调用StarkNet的ZKP验证库
// 这里简化为“证明非空且金额>0”
proof != 0 && amount > 0
}
}

四、Cairo的应用场景

  1. 隐私型智能合约:开发需要隐私保护的DeFi(如私密借贷、匿名交易)、NFT(匿名铸造/转移);
  2. 以太坊Layer2开发:为StarkNet编写扩容合约,承接以太坊主网的高并发需求;
  3. ZKP应用开发:除了区块链,还能用于身份验证、数据隐私计算等非链上ZKP场景;
  4. 游戏/元宇宙:高并发+隐私保护的链上游戏(如私密道具交易)。

五、Cairo vs Move vs Solidity(核心区别)

特性 Cairo Move Solidity
核心设计目标 零知识证明+以太坊扩容 区块链资产安全管理 以太坊通用智能合约
核心优势 隐私性、高性能(ZKP) 资产安全性(Resource) 生态成熟、通用性强
主要应用链/平台 StarkNet(以太坊Layer2) Aptos、Sui、Diem 以太坊、BSC、Polygon
核心类型 felt252(适配ZKP的整数) Resource(资源类型) mapping(映射)

总结

  1. Cairo是专为零知识证明(ZKP)设计的图灵完备语言,核心优势是隐私性和高性能;
  2. 它是StarkNet(以太坊Layer2)的核心开发语言,兼顾隐私保护和以太坊生态兼容;
  3. 与Move相比,Cairo聚焦“ZKP+扩容”,Move聚焦“资产安全管理”,二者都是区块链领域的重要专用语言。

如果想入门Cairo,建议先从StarkWare官方的Cairo 1.0教程开始,重点理解felt252类型、ZKP验证逻辑和StarkNet合约的部署流程。

stark和snark的区别是什么

STARK与SNARK是零知识证明(ZKP)的两大主流方案,核心差异集中在可信设置、证明效率、抗量子安全、生态成熟度四个维度,二者为不同场景做了“安全-性能-成本”的取舍,在Web3安全审计与Layer2开发中各有适用场景。


一、核心定义与本质区别

特性 STARK(Zero-Knowledge Scalable Transparent Argument of Knowledge) SNARK(Zero-Knowledge Succinct Non-interactive Argument of Knowledge)
核心定位 透明、可扩展优先,面向大规模计算与抗量子未来 简洁、非交互优先,追求链上轻量验证与快速部署
核心设计 基于哈希函数+信息论,无信任假设 基于椭圆曲线+多项式承诺,依赖公共参考字符串(CRS)
互动性 理论交互式,通过哈希随机挑战实现“非交互等效” 原生非交互式,单次证明即可完成验证

二、关键技术差异(安全审计重点)

1. 可信设置(Trust Setup)

  • SNARK:必须执行“可信设置仪式”生成公共参考字符串(CRS),参数泄露会导致系统安全失效;Groth16需一次性仪式,Plonk支持多方更新但仍有信任假设,存在“有毒废物”风险。
  • STARK:完全无需可信设置,通过公开随机性与哈希碰撞保证安全,消除信任假设与参数泄露风险,部署更安全、透明。

2. 证明大小与验证效率

  • SNARK:证明仅数百字节,验证速度极快(毫秒级),适合链上轻量存储与高频验证(如Zcash、zkSync)。
  • STARK:证明大小达数十KB(比SNARK大1-2个数量级),验证耗时稍长,但大规模计算时验证复杂度呈对数增长,扩展性更强。

3. 抗量子安全性

  • SNARK:基于椭圆曲线离散对数假设,量子计算机可通过Shor算法破解,存在后量子安全隐患。
  • STARK:依赖哈希函数(如SHA-256)的抗碰撞性,被认为具备后量子安全潜力,适合长期安全需求场景。

4. 底层密码学与计算模型

  • SNARK:用算术电路描述计算,依赖椭圆曲线多项式承诺(如Groth16、Plonk),工具链成熟(Circom、Halo2等)。
  • STARK:用代数化计算轨迹+哈希挑战验证,适配Cairo语言与STARK证明系统,适合复杂计算的ZKP转化。

5. 生态与工具链

  • SNARK:生态成熟,框架丰富(Zokrates、snarkjs等),适合快速开发隐私合约与Layer2扩容(如zkSync、Polygon zkEVM)。
  • STARK:由StarkWare主导,Cairo语言+StarkNet生态,适合高性能隐私扩容与零知识智能合约开发,学习成本较高。

三、适用场景与安全审计选择

场景 优先选择 审计重点
隐私代币、轻量合约 SNARK 可信设置仪式安全性、参数保护、椭圆曲线漏洞
以太坊Layer2高并发扩容 STARK 证明压缩效率、哈希函数安全性、Cairo合约漏洞
后量子安全需求场景 STARK 哈希函数抗量子性、计算轨迹完整性验证
快速部署与生态兼容 SNARK 工具链漏洞、多方仪式参与方可信度

四、Web3安全审计的核心取舍

  • SNARK优势:链上验证成本低、生态成熟,适合对Gas敏感的高频交易场景,但需严格审计可信设置流程与参数安全。
  • STARK优势:无信任假设、抗量子、大规模计算可扩展,适合长期安全与高吞吐需求,但需关注证明大小带来的Gas成本与验证效率。

需要我基于你关注的Web3安全审计场景,整理一份“STARK/SNARK合约审计清单”,标注可信设置、证明验证、抗量子安全的关键检查项与漏洞示例吗?

EOAs是什么

EOAExternally Owned Account 的缩写,中文译为外部账户,是区块链(尤其是以太坊生态)中最基础的账户类型,也是普通用户日常使用的钱包账户。

与之相对的是 CA(Contract Account,合约账户),二者共同构成了以太坊等链的账户体系。

一、EOA的核心特点

  1. 由私钥控制
    EOA的所有权完全由非对称加密算法生成的私钥掌控,私钥持有者可以签署交易(转账、部署合约、调用合约等)。
    核心逻辑:私钥生成公钥,公钥通过哈希运算生成账户地址(以太坊地址格式为0x开头的42位十六进制字符串)。

  2. 无代码逻辑
    EOA是“被动账户”,本身不包含任何智能合约代码,无法主动触发交易或执行逻辑。
    所有操作都必须由私钥持有者主动发起并签名,这也是它和合约账户的核心区别。

  3. 可收发原生代币
    EOA可以直接接收和发送区块链的原生代币(比如以太坊的ETH、BSC的BNB),也能与智能合约交互(比如转账ERC-20代币、铸造NFT)。

  4. 无需部署
    EOA是“无中生有”的账户——只要生成私钥,对应的地址就存在于区块链中,无需像合约账户那样通过部署交易创建。

二、EOA vs 合约账户(CA)核心区别

特性 外部账户(EOA) 合约账户(CA)
控制权 私钥持有者 智能合约代码逻辑
代码逻辑 有(Solidity/Cairo/Move编写)
交易发起方 可以主动发起交易(需签名) 只能被动响应交易(被EOA或其他合约调用)
创建方式 私钥生成,无需部署 部署交易创建,需消耗Gas
主要用途 用户钱包、资金管理、发起操作 执行复杂逻辑(DeFi、NFT、DAO等)

三、EOA在Web3安全中的重要性

对于你关注的Web3安全审计来说,EOA的安全是基础:

  1. 私钥泄露风险:EOA的资产安全完全依赖私钥,一旦私钥泄露,攻击者可直接转移账户内所有资产,且无法追溯。
  2. 交易签名风险:恶意DApp可能诱导用户签署伪造交易(比如授权无限额度代币转账),审计时需重点检查合约对EOA签名的验证逻辑。
  3. 与合约交互的权限边界:EOA调用合约时,需明确权限范围(比如是否允许合约转账、是否有时间锁限制),避免越权操作导致资产损失。

需要我帮你整理一份EOA安全防护清单,包含私钥管理、交易签名验证、合约交互风险规避的具体操作吗?

smart wallets是什么

Smart Wallet(智能钱包) 是基于区块链智能合约技术构建的可编程账户钱包,本质是一种合约账户(CA),而非传统的外部账户(EOA)。它通过嵌入自定义代码逻辑,实现了传统EOA钱包不具备的安全、便捷和可编程功能,是Web3生态中账户体系升级的核心方向。

一、智能钱包的核心本质

传统钱包(如MetaMask)本质是EOA钱包,由私钥直接控制,所有操作都需要私钥签名;
智能钱包本质是部署在链上的合约账户,控制权可以由多组私钥、甚至其他智能合约共同管理,其核心逻辑由预先编写的合约代码定义。

简单来说:

  • EOA钱包 = 私钥 + 地址(被动账户,无逻辑)
  • 智能钱包 = 合约代码 + 多签/权限规则 + 地址(主动账户,可自定义规则)

二、智能钱包的核心优势(对比EOA钱包)

  1. 非单一私钥控制,提升安全性

    • 支持多签验证:比如设置“2/3私钥签名才能发起交易”,避免单私钥泄露导致资产丢失;
    • 支持社交恢复:私钥丢失时,可通过预设的“监护人地址”投票重置控制权,无需依赖助记词;
    • 可设置交易限额/时间锁:比如单日转账上限1 ETH,或大额交易需等待24小时确认,降低黑客攻击损失。
  2. 可编程自动化,提升便捷性

    • 批量交易:一次签名即可完成多笔操作(比如同时兑换代币+存入流动性池),减少Gas消耗和操作步骤;
    • 自动执行逻辑:比如设置“当ETH价格低于1500 USDT时,自动兑换为USDT”,无需手动盯盘;
    • 无Gas交易:可由第三方(如DApp、中继器)代付Gas费,用户无需持有原生代币即可交互(比如用ERC-20代币支付Gas)。
  3. 灵活的权限管理

    • 可以给不同设备/用户分配分级权限:比如手机端只能小额转账,硬件钱包才能发起大额操作;
    • 支持临时授权:给DApp授予限时权限,到期自动失效,避免长期授权的安全风险。

三、智能钱包的工作原理

  1. 账户创建:用户部署一个智能钱包合约到链上,合约中预先写入权限规则(如多签阈值、恢复机制)。
  2. 交易发起:用户发起交易时,智能钱包合约会先验证签名是否符合权限规则(比如是否满足多签数量)。
  3. 交易执行:验证通过后,合约自动执行交易逻辑(如转账、调用其他DApp),无需用户直接用私钥签名链上交易。
  4. 安全兜底:当私钥丢失或账户异常时,触发预设的恢复机制(如监护人投票)重置控制权。

四、智能钱包 vs 传统EOA钱包 核心区别

特性 传统EOA钱包(如MetaMask) 智能钱包(如Argent、Safe)
账户类型 外部账户(EOA) 合约账户(CA)
控制权 单一私钥/助记词控制 多签、社交恢复、代码规则控制
核心安全风险 私钥泄露=资产全丢 单私钥泄露不影响,需突破权限规则
功能扩展性 仅支持基础转账/签名 批量交易、自动执行、无Gas交易等
恢复机制 助记词是唯一恢复方式 社交恢复、监护人重置
适用场景 普通用户小额资产管理 大额资产存储、机构钱包、高频DApp交互

五、智能钱包的安全审计重点

对于Web3安全审计而言,智能钱包的核心风险点集中在合约代码逻辑上:

  1. 权限规则漏洞:比如多签阈值设置错误、监护人权限过大,可能导致恶意攻击;
  2. 签名验证漏洞:合约对用户签名的验证逻辑存在缺陷,可能被伪造签名绕过权限;
  3. 重入攻击风险:智能钱包调用外部合约时,未做重入防护,可能被利用转移资产;
  4. 社交恢复机制漏洞:监护人投票机制设计不合理,可能被恶意操控。

六、主流智能钱包方案

  • Safe(原Gnosis Safe):以太坊生态最成熟的多签智能钱包,支持自定义权限规则,适合机构和大额资产管理;
  • Argent:面向普通用户的智能钱包,主打社交恢复和无Gas交易,操作简洁;
  • ZeroDev:基于ERC-4337标准的智能钱包开发框架,支持开发者快速定制钱包逻辑。

需要我帮你整理一份智能钱包安全审计检查清单,标注权限规则、签名验证、重入防护的关键检查点吗?

TPS最高可以达到1000这句话是什么意思

“TPS最高可以达到1000”这句话的核心含义是:这条区块链网络在理想条件下,每秒最多能够处理并确认1000笔交易

关键补充说明

  1. TPS的定义
    TPS = Transactions Per Second,即每秒交易数,是衡量区块链网络处理能力的核心指标,直接关系到网络的吞吐量和用户体验(TPS越高,交易拥堵概率越低,转账/合约交互速度越快)。

  2. “最高”的前提条件
    这个数值是理论上限或理想峰值,实际运行中很难稳定达到,受以下因素影响:

    • 交易类型:简单转账交易(如ETH转账)比复杂智能合约交易(如DeFi流动性挖矿)更节省资源,能支撑更高TPS;
    • 网络负载:网络拥堵时(如NFT mint高峰期),实际TPS会低于理论上限;
    • 底层技术:采用Layer2扩容(如ZK-Rollup)、并行执行(如Move生态链)的网络,更容易接近或突破这个峰值;而以太坊主网未扩容前TPS仅约15-30,远低于1000。
  3. 不同技术方案的TPS对比参考

    技术方案/公链 理论最高TPS 实际稳定TPS 核心技术支撑
    以太坊主网(未扩容) 30左右 15-20 纯PoW共识,无扩容
    StarkNet(ZK-Rollup) 数千级 500-1000+ 批量交易+ZKP证明压缩
    Aptos(Move生态) 10万+ 2000-5000 并行执行+资源隔离
    普通侧链 1000-5000 500-2000 独立共识,脱离主网约束

结合你关注的Web3安全审计视角

当一条链宣称“TPS最高1000”时,需要关注两个点:

  • 该数值是测试网峰值还是主网实际值?测试网无真实负载,数据水分较大;
  • 高TPS是否以牺牲安全性为代价?比如部分公链通过简化共识或降低去中心化程度提升TPS,可能存在节点垄断风险。

需要我帮你整理一份高TPS公链安全性评估清单,对比ZK-Rollup和Move生态链的安全取舍吗?

ZK-rollup 技术是什么

ZK-Rollup 是以太坊生态主流的 Layer2 扩容技术,核心是通过零知识证明(ZKP) 将大量链下交易“打包压缩”,仅向以太坊主网提交交易的有效性证明,以此在不牺牲主网安全性的前提下,大幅提升交易吞吐量、降低 Gas 成本。

一、ZK-Rollup 的核心工作原理

可以把整个过程拆解为 3 步,理解起来更清晰:

  1. 交易归集
    所有用户交易先发送到 ZK-Rollup 节点的链下执行环境,而非直接上以太坊主网。节点会批量处理这些交易(比如一次打包 1000 笔),并生成对应的交易状态快照(比如用户余额变化、合约状态更新)。

  2. 生成零知识证明
    节点基于这批交易的执行结果,利用零知识证明算法(如 STARK、Groth16 等)生成一个简洁的有效性证明
    这个证明的核心作用是:向以太坊主网证明“我已经正确执行了这 1000 笔交易,且最终状态是合法的”,但不需要把每笔交易的细节都上传

  3. 上链验证与状态更新
    节点将这个证明数据 + 最终状态快照提交到以太坊主网的 ZK-Rollup 智能合约。合约会验证证明的有效性:

    • 验证通过 → 直接更新主网的 Rollup 状态,完成所有交易的最终确认;
    • 验证失败 → 拒绝状态更新,确保交易的正确性。

简单总结:把大量计算和数据留在链下,只把“证明结果”上链

二、ZK-Rollup 的核心优势

  1. 安全性与主网等价
    所有交易的最终状态由以太坊主网合约验证,资产始终托管在主网,不存在侧链“脱离主网”的安全风险,是目前 Layer2 中安全性最高的方案之一。

  2. 高吞吐量 + 低 Gas 成本

    • 以太坊主网 TPS 仅 15-30,而 ZK-Rollup 可轻松达到 1000+ TPS,部分优化方案(如 StarkNet)理论 TPS 可达数千甚至上万;
    • 批量交易压缩了链上数据,单笔交易的 Gas 成本可降低 90% 以上
  3. 即时终局性(部分方案)
    不同于 Optimistic Rollup 需要 7 天的“欺诈证明窗口期”,ZK-Rollup 的交易在证明验证通过后立即确认,无需等待,用户体验更优。

  4. 隐私性潜力
    基于零知识证明的特性,ZK-Rollup 可以轻松实现隐私交易(比如隐藏转账金额、交易双方地址),适合需要隐私保护的 DeFi、NFT 场景。

三、ZK-Rollup 的关键分类(按证明类型)

根据所使用的零知识证明算法,ZK-Rollup 主要分为两类,这也是你之前关注的 STARK vs SNARK 的落地体现:

类型 核心技术 代表项目 特点
ZK-STARK Rollup 基于 STARK 证明 StarkNet 无需可信设置、抗量子攻击、证明体积稍大
ZK-SNARK Rollup 基于 SNARK 证明 zkSync Era、Polygon zkEVM 证明体积小、验证速度快、需要可信设置

四、与你关注的技术栈的关联

  1. 和 Cairo 语言的关系:StarkNet 作为 ZK-STARK Rollup 的代表,其智能合约就是用 Cairo 语言编写的,Cairo 的设计天然适配 STARK 证明的生成,让开发者能高效编写支持零知识证明的合约。
  2. 和 Move 生态的区别:Move 生态公链(如 Aptos、Sui)是独立 Layer1,通过并行执行提升 TPS;而 ZK-Rollup 是以太坊 Layer2,依托主网安全性做扩容,二者是“扩容赛道的不同路线”。

五、Web3 安全审计的重点

对于 ZK-Rollup 项目的安全审计,核心关注 3 点:

  1. 证明生成逻辑的正确性:避免证明算法存在漏洞,导致“错误交易被验证通过”;
  2. 主网合约的安全性:Rollup 智能合约是资产托管的核心,需防范重入攻击、权限漏洞等;
  3. 链下执行环境的可信性:节点的链下交易处理是否存在恶意篡改风险,需验证执行逻辑与证明的一致性。

需要我帮你整理一份 ZK-Rollup 项目安全审计的核心检查清单,覆盖证明验证、合约逻辑、链下执行三个维度吗?