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 更少。