📖 术语 📖 术语 🔰 新手

🔐 zk-SNARK 与 zk-STARK zk-SNARKs vs zk-STARKs

两种零知识证明——一种证明某件事为真(比如「我有足够的钱付款」)、却不亮出背后数据的办法。它们的主要分别在于:怎么搭建、证明有多大、以及面向未来有多耐用。

💡
常见误解 — STARK 是不是严格意义上比 SNARK 更好?不对!这是一种取舍,而非胜负。STARK 省掉了可信设置、还能抗量子计算机;SNARK 的证明则小得多、也便宜得多。两者都在被大量使用。
🔐 同一个 ZK 思路 证明为真,藏住数据 🟦 zk-SNARK 🧨 需要可信设置 📜 证明又小又省 🔓 椭圆曲线数学 更早 · 部署广泛 🟪 zk-STARK ✨ 无需可信设置 📦 证明较大 ⚛️ 抗量子哈希 更新 · 起步较晚
🔐 同一个零知识思路分成两支:🟦 zk-SNARK(可信设置,证明极小)对阵 🟪 zk-STARK(无需设置,证明较大,⚛️ 抗量子)。是取舍,不是胜负。

🧩 两者的共同点

它们都属于零知识证明。一个证明者要让验证者相信某句话为真,同时把私密细节藏好不露;而验证者那一边的核验始终又快又轻。打个比方:一个环形山洞,正中间有一道上了锁的魔法门。爱丽丝说她知道口令。鲍勃守在洞口,喊出他想让她从哪一侧走出来。如果每次她都恰好从他喊的那侧出现,那她必定知道口令——可她从头到尾一个字也没说出来。这就是全部精髓:证明你知道某件事,却不把它说破。

🔤 这两个名字到底是什么意思

缩写全称拆开
🟦 zk-SNARKZero-Knowledge Succinct Non-interactive ARgument of Knowledge(零知识简洁非交互式知识论证)
🟪 zk-STARKZero-Knowledge Scalable Transparent ARgument of Knowledge(零知识可扩展透明知识论证)

📌 偶尔会看到有人把 STARK 写成「succinct transparent(简洁透明)」。Ben-Sasson 等人 2018 年的原始论文里,那个 S 指的是 Scalable(可扩展);「succinct」是常见的混淆。

⚖️ 真正要紧的差别

问题🟦 zk-SNARK🟪 zk-STARK
需要可信设置吗?需要——一次性的秘密仪式不需要——用公开随机数
证明大小极小(几百字节)较大(几十到几百 KB)
链上成本更便宜更高(差距在缩小)
抗量子吗?不抗——建立在椭圆曲线数学上抗——建立在哈希函数上
年头更早(2012 年前后)更新(2018 年)

🧨 用大白话说说可信设置

zk-SNARK 需要做一次性的设置,过程中会生成一些秘密参数(常叫「公共参考串」,CRS)。这些秘密事后必须销毁。万一有人留了一手、把残渣(外号「有毒废料」)藏起来,就能伪造出看起来真假难辨的证明。zk-STARK 干脆跳过了这一步。它的证明只用公开随机数和哈希函数搭起来,没有秘密要生成,也就没有东西需要销毁。STARK 里那个「Transparent(透明)」说的就是这个意思。

🚀 新手会在哪里遇上它们

它们撑起了你常会读到的两件事。第一件是隐私:藏起金额和地址,就像 Zcash 用 zk-SNARK 来做屏蔽交易那样。第二件是靠 zk-rollup扩容——这些二层(L2)网络把大量交易打包进一份便宜的证明,再贴到以太坊上。StarkNet 就是建立在 zk-STARK 之上的知名二层网络。

🧠 值得记住的一点:在 rollup 里,「零知识」主要指的是给一大坨运算做出一份又小又快的证明,而不是为了藏数据。隐私这层意思和扩容这层意思,是同一套数学能干的两份不同的活。

🧭 那到底哪个「更好」?

  • 🟦 看中 SNARK 的长处——当真正卡你的是证明体积和链上成本时:它的证明又小、核验又便宜
  • 🟪 看中 STARK 的长处——当你要的是无可信设置、透明、以及对未来量子计算机的防护时
  • 📈 扩展性——面对超大规模的运算,STARK 往往应付得更从容
  • 🔁 现实——谁都没被淘汰;两者今天都跑在真实产品里,很多团队还把两边的思路混着用

❓ 常见问题

zk-STARK 是不是就是更好的 zk-SNARK?
不是。这是一种取舍,没有谁完胜谁。STARK 不需要可信设置、还能抗量子计算机,但证明体积大得多。SNARK 的证明又小又省,代价是要做一次性的可信设置。两者如今都在被广泛使用。
「零知识」是不是一定意味着隐私?
不一定。在隐私币里它用来隐藏金额和地址。但在 zk-rollup 里,同一套数学主要是用来压缩一大批交易、并快速完成验证,并不是为了藏起来。那里要的是又小又快的证明,而不是保密。
新手通常在哪里会碰到这两个词?
一般在两处:像 Zcash 这样用 zk-SNARK 来屏蔽交易的隐私币,以及把大量交易打包成一份证明、再拿到以太坊上核验的 zk-rollup 二层网络。StarkNet 就是一个建立在 zk-STARK 之上的知名例子。

🔗 相关术语 · 币种