ZK Rollup 的核心承诺是:用密码学证明替代信任。每一批交易都附带一个证明,主网验证通过即确认状态正确,不需要挑战期。
但"生成证明"这件事本身有巨大的计算成本。不同的证明系统在这个成本上有数量级差异。StarkNet 选择的是 STARK,这个选择深刻影响了它的发展路径。
STARK 与 SNARK 的核心区别
SNARK(Succinct Non-interactive ARgument of Knowledge) 使用的是椭圆曲线密码学。证明体积小(几百字节),验证成本低,但生成证明需要可信设置(Trusted Setup)——一个需要多方参与、且如果参与者串通就可能导致安全假设失效的仪式。
STARK(Scalable Transparent ARgument of Knowledge) 使用哈希函数和多项式承诺。不需要可信设置(透明性),密码学假设更简单(只依赖哈希函数的抗碰撞性,这在量子计算面前相对更安全)。代价是证明体积更大(几十到上百 KB),验证成本更高。
StarkNet 选择 STARK 的理由是去信任化程度更高:不需要可信设置意味着没有"仪式参与者串通"这个隐藏风险,密码学基础也更简洁。
代价是证明的生成和验证成本都高于 SNARK。
证明成本的实际状况
这是 StarkNet 面临的核心工程挑战。
生成证明需要大量计算。 一个证明的生成可能需要数十秒到数分钟,并且需要大量的内存和专用硬件。这形成了证明者(Prover)的高门槛——不是任何人都能生成证明。
结果是证明生成的中心化倾向。如果生成证明的成本很高,那么实际上只有少数有能力的运营方能做这件事。这与"去中心化"的理想有距离。StarkNet 在这方面的进展包括:
- 优化证明系统(如 Cairo 的演进、证明递归等技术)
- 降低硬件门槛
- 引入多个证明者
递归证明(Recursive Proofs) 是一个重要方向:把多个证明聚合成一个证明,降低验证成本。这类技术的成熟度直接影响 ZK Rollup 的成本结构。
Cairo 语言:为证明而生
StarkNet 用 Cairo 作为智能合约语言。这不是普通的编程语言,它是专门为可证明计算设计的。
Cairo 的特点:
它是图灵完备但非确定性的。 用 Cairo 写的程序不仅是计算,还生成一个可验证的执行轨迹。证明系统基于这个轨迹生成证明。
它需要"提示(Hint)"机制。 因为有些计算在证明系统里很难直接表达(比如除法、开方),Cairo 允许开发者提供"提示"来辅助计算,然后用约束验证提示的结果是否正确。这增加了开发者的心智负担。
它不是 Solidity。 虽然 StarkNet 提供了将 Solidity 编译到 Cairo 的工具(Warp、Kakarot 等),但原生开发需要学 Cairo。
生态门槛:Cairo 的学习曲线比 Solidity 陡。更重要的是,开发者需要理解"什么计算在证明系统里是廉价的、什么是昂贵的"。一段在普通环境中很快的代码,在证明系统里可能极其昂贵。这种思维转换需要时间。
与 zkSync 的路线对比
StarkNet 和 zkSync 都是 ZK Rollup,但选择的路径不同:
| 维度 | StarkNet | zkSync |
|---|---|---|
| 证明系统 | STARK(透明,无需可信设置) | SNARK(zk-SNARK,需可信设置/后量子规划) |
| 合约语言 | Cairo(原生) | Solidity(通过 zkEVM 兼容) |
| EVM 兼容性 | 通过转译器,非原生 | zkEVM 更接近原生 EVM |
| 开发者迁移成本 | 高 | 低 |
| 证明成本 | 较高 | 相对较低 |
| 生态成熟度 | 较小 | 较大(EVM 兼容优势) |
核心差异是"兼容性 vs 性能"的取舍。zkSync 选择 EVM 兼容性,让 Solidity 开发者能低门槛迁移,代价是 zkEVM 的实现复杂度极高(要精确复现 EVM 的所有行为,包括那些"不优雅"的部分)。
StarkNet 选择原生开发(Cairo),技术上可以更优化,但生态迁移成本高。
从生态发展速度看,兼容性路线的优势明显——Solidity 开发者的基数太大,迁移成本是决定性的。
StarkNet 风险清单
风险一:证明生成的中心化。 如果证明者数量少且门槛高,那么"去中心化"主要是理论上的。这是整个 ZK Rollup 赛道共同面临的挑战。
风险二:证明系统的成熟度。 STARK 相对较新,形式化验证和实战检验都不如 SNARK 充分。密码学实现的 bug 是灾难性的。
风险三:Cairo 生态的工具链。 相比 Solidity,Cairo 的调试工具、审计资源、最佳实践都还在积累。这对开发者和安全审计都是挑战。
风险四:排序器中心化。 与所有 L2 一样,排序器目前是中心化运营的。
风险五:费用竞争力。 如果证明成本高,这笔成本最终会转嫁给用户。在与 Optimistic Rollup(无证明成本)的竞争中,这是一个结构性劣势。
风险六:生态规模。 生态不够厚意味着可组合性弱——你可能找不到需要的协议。
怎么评估 StarkNet 这类 ZK Rollup
看证明成本的实际数字。 每笔交易分摊的证明成本是多少?与 Optimistic Rollup 相比如何?
看证明者的去中心化程度。 有多少独立的证明者?门槛如何?
看 zkEVM 兼容起来的实际效果。 通过转译器跑 Solidity 的合约是否能正常工作?Gas 成本如何?是否有兼容性限制?
看生态的真实活跃度。 有多少真正在用的应用,而不是部署了但不活跃的?
看与以太坊升级的协同。 以太坊的 Danksharding 等升级会影响所有 L2 的成本结构。
技术选择的启示
StarkNet 的选择展示了一个经典的技术哲学分歧:追求理论上的优雅,还是追求工程的可用性。
STARK 在密码学属性上更优(透明、抗量子、假设简单)。但它的成本更高,生态迁移更难。技术上的"更正确"不等于生态上的"更成功"——这一点在区块链领域被反复验证。
这并不是说 StarkNet 的选择错了。STARK 的优势在长期(如果量子计算成为威胁,透明的、基于哈希的证明系统会更有价值),而且随着证明系统的优化,成本劣势可能缩小。
判断这类技术路线时,需要区分"当前最优"和"长期最优"。很多技术选择的合理性需要在更长的时间尺度上才能体现。对于用户和开发者,实际的问题是:在当前的成本和生态条件下,哪个方案能解决你的问题。
常见问题
STARK 和 SNARK 有什么区别?
SNARK 用椭圆曲线,证明小、验证便宜,但需要可信设置;STARK 用哈希和多项式承诺,无需可信设置、抗量子性更好,但证明体积更大、生成和验证成本更高。
Cairo 语言为什么难学?
它是专为可证明计算设计的语言,需要理解「什么计算在证明系统里昂贵」这个新维度,且需要处理 Hint 机制来辅助难以直接表达的计算。思维转换成本高于 Solidity。
StarkNet 的证明成本高会带来什么问题?
证明生成需要大量计算和专用硬件,形成高门槛,可能导致证明者集中化;同时这笔成本会转嫁给用户,在与无证明成本的 Optimistic Rollup 竞争时形成结构劣势。
StarkNet 和 zkSync 该怎么选?
核心是兼容性与性能的取舍。zkSync 走 EVM 兼容路线,Solidity 开发者迁移门槛低;StarkNet 用原生 Cairo,技术上可更优化但生态迁移成本高。生态发展速度上兼容性路线优势明显。