Vitalik最新文章:探秘 Circle STARKs

2024-07-24 872 其它文章

作者:Vitalik Buterin,译者:Kurt Pan,XPTY

本文假设你熟悉 SNARK 和 STARK 工作原理的基础知识;如果你并不熟悉,建议阅读此文的前几节。特别感谢 Eli ben-Sasson、Shahar Papini、Avihu Levy 和 starkware 的其他人员提供的反馈和讨论。

  • https://vitalik.eth.limo/general/2024/04/29/binius.html

giqIX8UuFUqyU3HXmIvy9aaDXDvKNHvsqRGecqtz.jpeg

  • https://en.wikipedia.org/wiki/Karatsuba_algorithm

  • https://polygon.technology/blog/plonky2-a-deep-dive

  • https://blog.icme.io/small-fields-for-zero-knowledge/

这一转变已经使得证明速度大幅提升,最显著的是 Starkware 能够在一台 M3 的笔记本电脑上 每秒证明 620,000 个 Poseidon2 哈希。具体来说这意味着,只要我们愿意信任 Poseidon2 作为哈希函数的部分,那么构建一个高效的 ZK-EVM 中最困难的部分之一就已经得到了高效解决。但这些技术是如何工作的,密码学证明(通常需要大整数来保证安全性)是如何在这些域上构建的?以及这些协议与更奇特的 构造(比如 Binius)又如何比较?这篇文章将探讨其中的一些微妙差别,会特别关注一种称为 Circle STARKs 的构造(在 Starkware 的 stwo、Polygon 的 plonky3 和 我自己的python 实现 中有实现),其具有一些独特的性质,旨在与高效的 Mersenne31 域兼容。

  • https://x.com/StarkWareLtd/status/1807776563188162562

  • https://vitalik.eth.limo/general/2022/08/04/zkevm.html

  • https://vitalik.eth.limo/general/2024/04/29/binius.html

  • https://www.irreducible.com/posts/binius-hardware-optimized-snark

  • https://eprint.iacr.org/2024/278

  • https://github.com/starkware-libs/stwo

  • https://github.com/Plonky3/Plonky3

  • https://github.com/ethereum/research/tree/master/circlestark

小域常见的问题

在进行基于哈希的证明(或实际上任何类型的证明)时,最重要的“技巧”之一是用证明有关多项式在随机点的求值以代替证明有关底层多项式的事情。

22Pdm7ojogM7y6EZypFVlB4Ed24IMox5jwVa9kTx.jpeg

  • https://en.wikipedia.org/wiki/Fiat%E2%80%93Shamir_heuristic

C39mSPmU1YhvjPunuWCvGHCNQzwIJmfNmDn2x2xX.jpeg

这个问题有两个自然的解决方案:

  • 执行多次随机检验
  • 扩域

guoVyweINHql3uJguOtmAPnSn9vyHser7RqxFQZu.jpeg

  • https://www2.clarku.edu/faculty/djoyce/complex/mult.html

QZCW0qqJNHxNLSDJtNVi1oNWfah5xjg0Hl6uQlOl.jpeg

这里实现不是最优的(可以用Karatsuba优化),只是展示原理

2VOeixaBMRCtV0lPPmjUSL34lqVy646AfWJZp6wu.jpeg

常规 FRI

KBvcw3mvmnkBYiLa1N3iF5yJFVEVa70PkVz1CuD8.jpeg

bQAQExIgHCyFYU46QnVMcec3GHvIlFKBIn2fwPwz.jpeg

  • https://eccc.weizmann.ac.il/report/2017/134/

ERXuS4o5DYC95kgPjNMLwQ1VTz4G4utaa4vvw1ad.jpeg

bsGug3hbRcBmShajmubWet9ecabJeGdO4sQRKUIz.jpeg

Wb5YPYP9rp1J539jIdtNfQwuEnVG3fbgipZpcz1L.jpeg

Circle FRI

S43sv2DxzxdKYK6gQjiyQrBVgtC0u8gp8rBxkvtM.jpeg

  • https://elibensasson.blog/why-im-excited-by-circle-stark-and-stwo/

ccF23egAiMFfpps9nFr7NGQywjqxefHPmWSgaAOS.jpeg

这些点遵循加法律,如果你最近学过 三角学 或 复数乘法,你可能会觉得这个定律很熟悉:

- https://unacademy.com/content/cbse-class-11/study-material/mathematics/algebra-of-complex-numbers-multiplication/

TYjYFxfPg3r9wKhBRgiVNMNuPLOD3BNTS4Nyf6vw.jpeg

Nh8fHBc0MtlhwVO1zRzeuzCdVBnnCv2WudeXAwij.jpeg

8Z1221Wy7JAkB6TWkiIqcGORNDrrCiFb0EJltQ9B.jpeg

4C0w4awnAjAE8C5jETzsz8VMO9doQbzkqsVdFS3P.jpeg

从第二轮往后,映射改变:

ogolQ6CGTiMUO4fJyzTe699RKMKh3aKgHyT240AI.jpeg

Circle FFTs

QgGN1DslO7dZcfj0aj5PJLoRJOr84i3NoiArOYOB.jpeg

  • https://vitalik.eth.limo/general/2019/05/12/fft.html

4AHT8AW64fRSg3dgGp3s1F1RmGniAqRdwhI2OB6Q.jpeg

uc2SZrplWZuMPLNi0MUghNKQcviNf1R5ztiRBbmH.jpeg

  • https://www.researchgate.net/publication/353344649_Elliptic_Curve_Fast_Fourier_Transform_ECFFT_Part_I_Fast_Polynomial_Algorithms_over_all_Finite_Fields

从这里开始,让我们来了解一些更深奥的细节,对于实现circle STARK 的人来说,与常规 STARK 相比,这些细节会有所不同。

取商

Zak5MHgMCTwfGXMAt8dxZNSZU0F1jeQMLhuQuNP2.jpeg

  • https://eprint.iacr.org/2019/336

J9joiUxvUpj6dhXc1kglM0jGDC0yf67xRTT9MWEz.jpeg

kkorpdBoM0D3nUb2Y2zKtCETAeRiTHFEZOpheeqP.jpeg

消失多项式

YhACPhhC0Ks2eYE4x825ne3x5au9ZtfvHAVHhFrr.jpeg

反转比特序

MmzKXTbgpltbginUGUPPsZ109eijiA3ggjbxbxkC.jpeg

Hu6vQpq9c2XSD8vUz6qw1XG5SFupfGDX7hIwXJ4m.jpeg

w3sZobSlezb0TwlABSE2lMVjFUWSvzmbczdxP7db.jpeg

效率

u0LqGrZTW9NrlS38z3S1FmKtLKczh2WeRx5pIwyU.jpeg

因此,circle STARK 实际上非常接近最优了!Binius 甚至更强大,因为它允许混合搭配不同大小的域,从而为所有东西给出更高效的位打包。Binius 还提供了执行 32 比特加法的选项,且无需产生查找表的开销。然而,这些收益是以(在我看来)显著更高的理论复杂性为代价的,而circle STARK(以及基于 BabyBear 的常规 STARK)在概念上是相当简单的。

结论:我对 circle STARKs 怎么看?

与常规 STARK 相比,Circle STARK 并不会给开发者带来太多额外的复杂性。在实现的过程中,上述三个问题基本上就是我看到的与常规 FRI 相比的唯一区别。Circle FRI 所操作的“多项式”背后的数学原理是相当反直觉的,需要一段时间才能理解和领悟。但恰好这种复杂性被隐藏起来了使得开发者不会看到太多。Circle 数学的复杂性是封装过的,而不是系统性的。

  • https://vitalik.eth.limo/general/2022/02/28/complexity.html

理解circle FRI 和circle FFT 还是理解其他“奇异 FFT”的良好智力途径:最值得注意的是 二进制域 FFT,之前在 Binius 和 LibSTARK 中使用,还有更奇诡的构造,如 椭圆曲线 FFT,其使用几对一映射,可以很好地与椭圆曲线点运算配合使用。

  • https://github.com/ethereum/research/blob/master/binius/binary_ntt.py#L60

  • https://github.com/elibensasson/libSTARK

  • https://arxiv.org/abs/2107.08473

通过结合 Mersenne31、BabyBear 和 二进制域技术比如Binius,我们确实感觉得到正在接近 STARK “基础层”效率的极限。在这个时间点,我预计 STARK 优化的前沿将转向对哈希函数和签名等原语进行最高效的算术化(并为此目的优化这些原语本身)、进行递归构造以解锁更多并行化、对虚拟机进行算术化以提升开发者体验,以及其他上层任务。

币币情登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。

交易平台最新公告查看更多>
成交额排行榜
  • 交易所
  • 币种
排名 交易所 成交额
1 币安网币安网 ¥4,003.30亿
2 欧易OKX欧易OKX ¥1,520.35亿
3 HTXHTX ¥234.88亿
4 CoinbaseCoinbase ¥87.49亿
5 芝麻开门芝麻开门 ¥742.44亿
6 BitgetBitget ¥1,025.27亿
7 BybitBybit ¥1,113.68亿
8 Crypto.comCrypto.com ¥141.00亿
9 BitfinexBitfinex ¥6.63亿
10 抹茶抹茶 ¥1,621.63亿