Bitcoin Forum
May 14, 2024, 02:15:35 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: 零知識證明的技術路徑之爭:zk-SNARK和zk-STARK誰更優?  (Read 14 times)
shalisiting88 (OP)
Newbie
*
Offline Offline

Activity: 38
Merit: 0


View Profile
December 28, 2022, 03:46:10 AM
 #1

Crypto行業被廣泛關注的零知識證明(Zero—Knowledge Proof)技術,並非是這幾年剛冒出來的新技術,而是在1980年就被數學家S.Goldwasser、S.Micali及C.Rackoff提出。

零知識證明涉及一系列步驟,可以實現密碼學中的「可用而不可知」。

而區塊鏈有著公開透明、不可篡改等特徵,意味著加密投資者的鏈上資產及交易記錄是沒有隱私可言的,於是零知識證明技術被引入了區塊鏈,當中以zk-SNARK和zk-STARK最為關注。

zk-SNARK被項目方採用得最多,zk-STARK則被密碼學專家認為優於ZK-SNARK。那麼綜合技術與實際應用,二者誰更優?

zk-SNARK:簡潔 + 非交互性

Alessandro Chiesa等人在2012年開發了zk-SNARK協議,這是一種簡潔化、非交互式的零知識證明技術,全稱是zero-knowledge succinct non-interactive arguments of knowledge,可以拆解成三部分來理解:

zero-knowledge:

零知識證明,在不暴露隱私情況下向對方證明一件事情,讓數據「可用而不可知」。

succinct:

簡潔性,要證明的東西佔用的空間很小,而且可以快速驗證(幾毫秒)。

non-interactive:

非交互性,意味著證明者和驗證者之間不需要有交集即可快速地得到驗證結果。

zk-SNARK的簡潔性和非交互性,是相對於傳統的零知識證明方案而言的。

簡單來說,傳統方案是交互式證明,即示證者(宣稱某一命題為真)和驗證者(確認該命題確實為真)之間反复確認,你可以理解為示證者不斷向驗證者詢問“是或不是?”,然後驗證者不斷給出回答,直到最後碰出一個正確答案來,所以效率很低。

zk-SNARK的解決方案則不需要雙方反复確認“是或不是”,而是提前先搞一個「可信初始化」,從而生成公共參考字符串(CRS),然後所有的示證者都可以直接訪問它。

打一個通俗的比方。交互式證明相當於老師要批改每一個考生的每一道考題,效率很低,但正確答案只掌握在老師這邊,基本不存在有人偷答案的情況。

但zk-SNARK直接上傳了正確答案,然後讓考生自己對答案(把自己解的某道題發送給後台系統,就會直接得到正確與否的最終結果),非常高效,代價是答案有可能被洩露,雖然這個答案系統是經過加密的。

因此針對zk-SNARK容易被洩露的問題,有很多圍繞著提高「答案系統」安全性的解決方案,不同採用zk-SNARK的項目方的方案各有不同。如zCloak錢包是直接把算法以純文本的形式發給用戶,用戶下載到本地去做計算(所以即使斷網也依舊能完成工作)。

zk-STARK:概率證明+緩衝時間

zk-STARK是成立於2017年12月的StarkWare團隊開發的,它是針對zk-SNARK的替代解決方案。研發歷時一年多,經過無數次迭代才徹底搞定,已經到2019年了。

zk-SNARK是提前生成公共參考字符串,用非交互式證明的方式提高了證明效率,但也留下了隱患。 zk-STARK雖然是交互式證明,但它是一種巧妙的交互式證明——通過哈希函數碰撞(一種概率證明的方式)來保證安全性,因此也實現了高效證明。

這個思路直接借鑒自2015年推出的交互式預言機證明(IOP)技術,簡單來說是先把問題用密碼學的方式打碎,然後驗證者隨機向示證者提出幾個的問題,如果幾輪下來,示證者都給出準確的回答,那麼驗證就通過了。

所以zk-STARK同樣也只需要極少的計算資源就可以完成證明,但是它更安全,不存在答案洩露的風險。並且為了進一步確保安全性,還設置了爭議時間延遲(DTD)來作為緩衝。

  zk-SNARK和zk-STARK的區別

1.透明度

zk-SNARK的公共參考字符串通常由一個小團體來保管,因此有洩露的可能性,從而被惡意利用,如創建虛假證明。

zk-STARK則直接利用生成隨機性的參數來驗證,不需要任何第三方的「答案系統」,因此透明度大幅提高。

2.抗量子計算機攻擊

zk-SNARK未來會輕易被量子計算機暴力破解(通過分解計算從公鑰中提取私鑰)。當然,量子計算何時到來還是個問題。

zk-STARK採用的是哈希函數碰撞的方法來證明,理論上量子計算機的暴力破解是無效的。

3.可擴展性

zk-SNARK的證明在鏈上更具可擴展性(生成的證明的字節數更小),zk-STARK在純鏈上似乎沒有優勢。

StarkWare官網宣稱是最快的,可能是因為zk-STARK允許鏈下進行大規模計算和存儲,然後在鏈上完成驗證,因此可擴展性顯著提升(甚至可以提高10倍),而成本顯著降低。

總結

zk-SNARK技術被採用得最多,尤其是在以太坊擴容場景中。 zk-SNARK主要是圍繞「隱私保護」去做身份、支付、DeFi、資產證明等各種應用。

zk-STARK雖然也在發展之中,但技術尚不成熟,至少在通用性上受限,所以我們看到大多是圍繞著「可擴展性」去做各種應用。

不過據StarkWare團隊在2022年的說法,已經解決了可擴展性,該把目標瞄準「隱私保護」了,而方式是通過StarkNet的Layer3以及Layer4中以分形分層的方式解決,這似乎與zk-STARK證明系統本身沒有直接關係。

至少就目前而言,大多數以太坊Layer2項目(zkSync、Aztec、Loopring、Scroll等)都採用的是zk-SNARK技術路線,除了通用性上受限,還有一個原因是普遍反饋說zk-STARK的開發難度過大……

當然長遠來看,zk-STARK可承載的運算量更大,可能更有前景。

總的來說,zk-SNARK和zk-STARK的關係,‍有些像Optimistic rollups和ZK rollups的關係,前者短期利好,後者長期利好。
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!