本文來自| a16z
原文作者|MichaelBlau
編譯| Odaily 星球日報Azuma
編者按:作為Crypto 在擴容、隱私等多個方向上發展的“秘籍寶典”,零知識證明(zero-knowledge proofs,簡稱ZKPs)被業界寄予了了極高的期許。然而,由於針對該概念的解釋性內容大多面向於具有一定計算機科學或密碼學基礎的人群,所以對於多數普通用戶而言,想要徹底理解該概念本身仍具有一定的障礙。
9 月8 日,a16z 合夥人Michael Blau 發布了關於零知識證明的科普性文章。文章巧妙了避開了零知識證明概念本身較為抽象的數學思辨部分,而是利用魔術表演來將ZKP 的效用具像地展現了出來。
以下為Odaily 星球日報就Michael Blau的原文內容(第一人稱口吻)所做的編譯,出於閱讀流暢度考慮,存在一定刪改。
《 2001 太空漫遊》的作者克拉克說過:“任何足夠先進的科技,都與魔法無異。”
零知識證明就是那些如同魔法般的科技中的一個,它其實是一個密碼學概念,可用來解決Web3 中的兩項重大難題——擴容和隱私。
從效用來看,採用零知識證明有助於降低鏈上交易費用,設計全新的隱私保護型App,從而推動Crypto 傳播至十億級別的用戶。拋開Crypto 不提,ZKP 也有潛力被應用於安全傳輸敏感數據,進而幫助打擊非法金融系統或對抗氾濫的詐騙信息。
但零知識證明究竟是什麼呢?對於少部分研究員、開發者而言,網絡上可以找到很多詳盡的解釋,但這些內容並不面向計算機科學或秘密學經驗較少的普通用戶。儘管部分先驅也寫過一些類比型的科普文章,但截至今日,想要找到一個精闢、通俗的零知識證明相關解釋,進而幫助普通人準確地把握其魔力,仍不是一件簡單的事情。
所以在接下來這篇文章中,我結合了我在Crypto 和魔術行業的背景來探索一個全新的類比——把零知識證明想像成一場偉大的魔術。
首先,還有要有些基礎知識
我會先行分享關於零知識證明(特別是其經典算法zk-SNARK)的“高級”定義,以及它的主要特性,然後再將這些“部件”一一對應至一場魔術之中。
a16z 的研究合夥人Justin Thaler 針對zk-SNARK 給出的定義是:“zk-SNARK 允許某人(證明者)向其不信任的另一個人(驗證者)證明他知道一些數據,而無需透露任何關於數據本身的信息。”
麻省理工學院的課程則是這麼定義的:“零知識協議允許我向你證明我知道一個事實,而不需要告訴你事實本身。”
這在區塊鏈的敘事下有著非常大的應用價值,因為:
-
(對應隱私)零知識證明可以在保護私人信息的同時允許他人驗證信息的真實性。
-
(對應擴容)零知識證明可以“簡化”並“節省”工作量。 “簡化”意味著“證明”的大小要比所證明的“數據”本身更小要;“節省”則意味著驗證者檢驗“證明”的效率要比分析原始“數據”本身更高。在以太坊上,這意味著智能合約處理的數據將會更少,因此用戶的gas 成本會更低,Layer2 也可以利用這些特性,允許Dapps 以更低的成本處理更多的數據。
總之,零知識證明具有兩個主要特性:
-
一是隱私性:你正在證明的“數據”(或“事實”,或“知識”)不會被透露給驗證者。
-
二是可擴展性:檢驗“證明”比直接分析原始“數據”效率更高。
這便是零知識證明的經典解釋了,但聽起來仍像是在打謎語—— 一個人如何才能在不分享信息的情況下證明自己知道這件事呢?
讓我們重新看一遍這個定義,但這一次,我們要變一場魔術。
魔術本身就是零知識證明
簡單來說,在一場魔術表演中,“魔術”本身就是零知識證明。為了完成一場魔術,“魔術師”需要掌握背後的“秘密”,只有知道這個秘密他們才可以進行表演,但他們肯定不想把這個秘密透露給“觀眾” —— 這顯然會破壞魔術的效果。
-
Odaily 星球日報注:注意這裡用引號圈出了四個角色。
“秘密”對應原始“數據”;
“魔術”對應“證明”;
“魔術師”對應“證明者”;
“觀眾”對應“驗證者”。
接下來,我們將把上一段落中關於零知識證明的“高級”定義帶入到這場魔術之中,想像魔術師為“證明者”,觀眾為“驗證者”。
魔術表演則是“證明者”向“驗證者”進行證明的過程。如果演出成功了,即相當於證明有效,觀眾也可以確認魔術師一定了解背後的秘密;如果演出失敗了,則意味著證明無效,觀眾在失望之餘也會意識到魔術師可能並不知曉相關技巧。
顯然,魔術很清楚地展現了零知識證明的隱私性,因為觀眾始終未被告知背後的秘密究竟是什麼。那麼可擴展性呢?讓我們繼續回到這個比喻中…
觀眾若想要知道魔術師是否掌握了秘密(“證明者”是否了解原始“數據”),完全可以跳過正常表演,只要求魔術師分享背後的秘密本身。然而,魔術的技巧一般都相當複雜、繁瑣,觀眾很難在較短的時間理解這些技巧的設計機制及實現效果,更不要提完全掌握了,甚至於魔術師完全可以提供一個錯誤的技巧,觀眾也很難分辨其真偽。因此,想要通過剖析秘密本身來完成證明,往往需要較長的時間和較大的工作量。
這就好比直接分析原始“數據”更費時費事一樣,檢驗“證明”效率會更高,其背後所顯現的正是零知識證明的可擴展性。
用紙牌來舉例
舉個簡單的例子,假設我吹牛說我擁有“反向洗牌”的技能,可以把一副混亂的撲克牌洗出我想要的效果。那麼我該如何向你證明呢?
最高效的方式就是我直接給你洗出一副具有一定規律的牌出來,你看到這副牌之時就可以確認我確實具備這個技能,這既不要求我向你分享技巧,也比你自己慢慢去學要來得更快。
總而言之,我希望這個類比有助於揭開零知識證明的神秘面紗,關於“魔術”“秘密”“魔術師”“觀眾”的這套解釋可以作為理解零知識證明主要特性的有效模型,幫助更多的普通用戶接觸這一概念。
再次強調,魔術本質上就是零知識證明,而零知識證明則與魔法無異。