一文簡析V神長期看好的零知識證明

用數學解開那把鎖

本文出自零知識證明領域加密研究者Alex Beckett,本文詳述了零知識證明的兩種細分算法的不同之處。律動BlockBeats 對全文進行了翻譯:

在密碼學領域中,零知識證明是最前沿的技術之一,它的出現豐富了區塊鏈擴容以及隱私保護的方式。不僅如此,在其基礎之上又衍生出了兩個相似的技術,分別是zkSNARKs 和zkSTARKs。

通過零知識證明,一方能在不提供任何必要信息的情況下,向另一方證明某件事,從而達到保護隱私的效果。這其中,想要證明某事的一方被稱為證明者,而確保信息正確的一方被稱為驗證者。

比如,如果你想證明自己已經年滿18 周歲的話,你可以向他人出示自己的駕駛證。然而,這樣做不僅會讓他人得知你的年齡,還會暴露你的姓名、出生日期等一系列個人信息。不過,零知識證明就可以讓你在不透露自己任何信息的情況下,證明自己確實已經過了18 歲。在這個情景中,你便是證明者,而你試圖證明自己年齡的一方則是驗證者。

在使用了零知識證明之後,各方之間只需要發送並驗證一條證明,而不需要公佈所有必要信息,這樣也就大大提升了可擴展性。雖然零知識技術目前仍處於發展之中,但其中最著名的例子當屬Mina 的區塊鏈了,其大小只有22kb,相當於幾條推文的大小。

zkSNARK 是一串縮寫,其中小寫字母代表零知識(zero-knowledge),而大寫字母則代表的是簡潔的非交互知識論證(Succinct Non-interactive Arguments of Knowledge)。

zkSNARKs 雖然簡短但十分高效,它能以較快的速度來創建並驗證證明。當zkSNARKs 由Rollup 擴容方案發佈到L1 上時,簡短的字節數也意味著人們無需花費太多Gas 就能對其進行驗證。一般來說,zkSTARKs 或zkSNARKs 在與Rollup 擴容方案一起使用時,可以極大地提高區塊鏈的可擴展性,因為它們可以一次性驗證一大批交易的真實性。

雖然說,zkSNARKs 會要求進行信任假設,因為它們需要為受信的初始化確定一套具體參數。但這也會同時引發中心化的問題,因為zkSNARK 的初始化過程通常是由一小部分人在一個封閉體系當中完成的。如果有人成功獲取了zkSNARK 的初始化參數,那麼他就能偽造一份有效的zkSNARKs 證明,並欺騙驗證者接受該證明。不過最近一些系統也在相繼誕生,在這些系統當中zkSNARKs 不再需要進行受信的初始化。

人們一般認為,zkSNARKs 更容易受到量子攻擊。在這種情況下,知識論證會假設證明者的計算能力有限,因為從理論上講,一個計算能力較強的證明者有能力說服驗證者相信一個假的zkSNARKs 證明。

zkSTARK 這串縮寫後半部分的意思是可擴展的透明知識論證(Scalable Transparent Arguments of Knowledge)。

雖然zkSTARKs 的字節數比zkSNARKs 多,但其大小並不能直接決定證明生成所需要的時間長短,因為其計算類型也是一大影響因素。不過,字節長短也起到了一定的抑製作用,因為使用zkSTARKs 的Rollup 擴容方案需要更高的Gas 費才能把證明提交到L1。

即便如此,zkSTARKs 的生成速度還是比zkSNARKs 要快。當計算要求增加時,zkSTARKs 的證明者數量以及驗證時間的增長速度都將比zkSNARKs 更為緩慢,所以也有著更強的可擴展性。

ZkSTARKs 不需要有受信的初始化,因為它們所創建的系統是依靠可公開驗證的隨機性來完成的。與zkSNARKs 不同的是,zkSTARKs 由於在其設計中使用了更強的加密原語,如抗碰撞哈希函數,因此具備了抗量子性,這就是為什麼其證明明顯長於zkSNARKs 證明的原因了。因此,zkSTARKs 的知識論證並沒有假設證明者計算能力有限。

zkSTARKs 和zkSNARKs 都屬於最前沿的密碼學領域技術,正推動著區塊鏈擴容不斷邁向更高的台階。隨著技術以及硬件設施的日益改進,我們可以預見零知識證明在未來將作為支撐模塊化擴展和區塊鏈發展的底層技術而得到更多普及。

展開全文打開碳鏈價值APP 查看更多精彩資訊

Total
0
Shares
Related Posts