zk-SNARKs 和 zk-STARKs 都是零知识证明,这是一种加密方法,允许一方在不透露任何细节的情况下向另一方证明某事。
主要区别在于 zk-SNARKs 需要可信设置阶段(trusted setup phase),而 zk-STARKs 不需要。可信设置阶段是一个过程,其中一些初始参数由一方或多方生成,然后销毁。这些参数用于创建和验证证明,但如果它们没有被销毁,它们可以被用来创建假证明。
zk-SNARKs 和 zk-STARKs 的另一个区别是 zk-SNARKs 更加简洁高效,而 zk-STARKs 更加透明和安全。zk-SNARK 证明非常简短,因此可以以较低的计算成本生成并快速验证。相反,zk-STARK 证明不依赖于隐藏的假设或秘密,并且理论上可以抵抗量子计算机攻击。
虽然 zk-SNARKs 由于其快速的证明验证而看起来更具可扩展性,但 zk-STARKs 才是更具可扩展性的解决方案,因为它们生成证明的速度更快,即使它们的证明大小更大。此外,zk-STARKs 在提交到以太坊主网时消耗的 gas 更少。