科普:什麼是零知識證明,零知識證明的用例有哪些?

巴比特
2022-01-26 16:57:45
收藏
在這篇文章中,關於零知識證明的許多問題將得到解答。

作者:Captain Hiro,巴比特

也許你曾經聽說過ZK Proof或零知識證明。但是,你好像從來沒搞清楚它是什麼?什麼是ZK-rollups?什麼是ZK-SNARKs?在這篇文章中,你所有關於零知識證明的問題都將得到解答,所以請抓緊時間,讓我們一起開始學習零知識證明的旅程吧!
image

什麼是零知識證明?

零知識證明是一種證明方法,通過這種方法,一方(證明者)在不透露任何實際信息的情況下,可以向另一方(驗證者)證明它知道一個秘密或一個聲明是真實的。

上面提到的術語 "零知識 "本身就是對以下事實的證明:沒有透露任何信息,但第二方(驗證者)理所當然地相信第一方(證明者)知道這個秘密或他們的聲明是真實的。

那麼,為什麼我們需要零知識證明呢?當我們不相信別人會透露信息,但想說服他們我們知道這個秘密或我們的聲明是真實的。

有兩種類型的零知識證明:

  1. 交互式
  2. 非交互式

1️.我們先看一個交互式零知識證明的例子

假設你需要零知識證明你已經成年,但又不能實際透露你的具體年齡。我們需要一個第三方權威機構來證明你的年齡,該機構的騷操作是這樣的:

"謝謝你提供的出生證明副本,我們已經知道你21歲的事兒了。這裡有一個秘密號碼,請秘密存儲並保證它的安全。你可能在以後會需要它。"

"你的秘密號碼將被哈希處理22次,為你製作一個最終的年齡哈希碼(是的,系統的默認操作是將你的年齡+1進行哈希才能使發揮作用)。因此,在我們給你的秘密號碼和這個最終的年齡哈希碼之間有22次哈希處理。"

"我們會使用你的名字、一個時間戳和這個最終的年齡哈希碼來進行包裝。這就是你要給別人的證明材料。"

現在,只要你想向別人證明你已經超過18歲,那麼你就必須有效地證明,從你的秘密號碼到你的最終年齡哈希代碼有超過18個哈希步驟。

要做到這一點,你只需向他們展示最後18個哈希步驟,你需要首先通過自己做前4個哈希步驟(將你的秘密號碼進行4次哈希處理),然後給他們結果;即第四次哈希處理的結果。

然後他們對你提供的結果再進行18次哈希(因為機構現在已經對你的秘密號碼做了總共22次哈希處理),他們最終會得到最後的年齡哈希碼,並可以驗證你是否成年,因為這寫信息都在你的證明套件中。

實際上,驗證者會說:"給我們一個值,我們可以對其進行18次哈希,以獲得與你的最終年齡哈希碼相匹配的值。如果你不是18歲,那麼你的最終年齡哈希碼就不會有18次哈希步驟,我們就不能很好地認證你的真正年齡。"

這也是一個不錯的例子?

一個好的零知識證明的例子 - MathOverflow

但這種交互式方法也有一些局限性:

  1. 每次他們進行驗證都需要進行整個冗長的過程。而這個過程其實是相當簡單的哈希處理,想像一下進行實際的加密算法的計算是什麼樣的?
  2. 此外,無論是線上還是線下,雙方都需要在同一時間、同一地點(網絡平台)碰頭。

2️.來看看非交互式證明

1986年,Fiat和Shamir發明了Fiat-Shamir啟發式(Fiat--Shamir heuristic,非交互式零知識證明),從而成為第一個基於交互式零知識點證明的數字簽名算法。

Fiat-Shamir啟發式可以通過承諾方案(Commitment Scheme)變成非交互式零知識證明,因此產生了ZK-SNARKs或零知識的簡潔非交互式知識論證。

為了使Fiat-Shamir啟發式更強大,我們使用了承諾方案。承諾方案是許多加密協議的基本組成部分。它允許承諾人公布一個值(稱為承諾),並將這個值與一個消息綁定(binding),而不透露它(hiding)。

目前用於零知識證明的兩個最突出的承諾方案是佩德森承諾(Pederson commitment)和多項式承諾(Polynomial commitment)。

但是,直到2013年左右,ZK-SNARKs才變得實際有效,開發者可以在現實世界的應用中實現和使用它。

我推薦你閱讀Vitalik Buterin的這篇優秀文章‌,它總體上介紹了ZK-SNARKs為什麼可用,並解釋了它們是如何實現的。也許你不可能一下子就能搞清楚,多讀幾遍,一旦你理解了其中的內容,你就能明白其中的原理。

在後量子世界中,我們需要確保我們為ZK-SNARKs選擇的加密函數不能被量子計算機強行破解。這就是為什麼正在進行改進以實現後量子安全。如果你想了解更多這方面的信息,你可以看ACM的這個講座:

改進的非交互式零知識與後量子簽名的應用

好了,現在我們知道什麼是零知識證明了,但是它們是用來做什麼的呢?

在概念上它有兩個主要的用例:

  1. 擴大區塊鏈的交易規模
  2. 隱私------比如在醫療等領域保護個人數據安全

對區塊鏈進行擴展------ZK Rollups

rollup是一種區塊鏈的展解決方案,它通過在第一層網絡之外執行交易,但在第一層發布交易數據來工作。這使得rollup可以擴展網絡,並仍然從以太坊共識中獲得安全性。

將計算移到鏈外就可以處理更多的交易,因為只有rollup的部分交易數據必須使用以太坊區塊。

為了實現這一點,rollup交易在一個單獨的鏈上執行,甚至可以運行一個rollup的特定版本的以太坊虛擬機(EVM)。

在rollup上執行交易後的下一步是將它們批處理並發布到以太坊主鏈上。

整個過程本質上是執行交易,獲取數據,壓縮數據,並將其以單一批處理的方式rollup(滾)到主鏈上,因此這個過程被稱作"rollup"。

以太坊如何知道發布的數據是有效的,而不是由試圖為自己謀利的不良行為者提交的呢??

每個rollup在第一層都部署了一組智能合約,它負責處理充值和提現,並驗證證明。

證明也是不同類型的rollup之間的主要區別所在。

Optimistic的rollup使用欺詐證明,相比之下,ZKrollup使用有效性證明。

在ZKrollup中,每一批發布到第一層的文件都包括一個稱為ZK-SNARK的加密證明。當交易批次被提交時,該證明可以被第一層合約快速驗證,無效的批次可以被直接拒絕。

關於零知識證明和Optimistic rollups還有很多內容需要你了解,比如它們的實現方法,它們的局限性。這篇文章只涉及了一些簡單的概念,你還需要學習更多相關內容。

許多項目正在為以太坊開發基於ZKrollup的擴展解決方案。一些突出的項目有dYdX、Loopring、Polygon Miden、Polygon Hermez。

隱私------日常生活中的應用

假設兩家公司A和B想用區塊鏈作為媒介來運作和交流。

A將資產轉移給B,他們希望這些資產保留在自己內部。是的,區塊鏈會帶來透明度、互操作性、數據安全性和完整性以及其他好處,但為什麼一家公司會公開分享他們的內部物流信息?這個時候,零知識證明就有了用武之地。

再比方說,你想私下給你的海外朋友轉一些錢,但又不想讓政府監控這筆交易。你會怎麼做呢?零知識證明就可以幫上忙。

在其他幾個領域,零知識證明也會產生深遠的影響,如醫療、保險、電子投票、身份管理。

比如在醫療保健方面,確保DNA數據、個人信息、醫療記錄、基本病史信息、藥物可追溯性、臨床試驗、醫療保健供應鏈、器官移植的安全。

在保險方面,確保數字形式的保險憑證和保險證書、個人信息、車輛信息、結算索賠。

使用區塊鏈和ZKP的身份管理具有深遠的意義。每個與kyc(了解你的客戶)相關的應用程序、學校、大學、支付應用程序都要求提供我們的身份證圖像,如駕駛執照、護照、選民身份、國民身份。我們敏感的個人數據實際上就在那里,而我們甚至沒有意識到信息可能會有隨時泄露的風險。有了零知識證明,我們可以保護所有這些身份信息,只向供應商、應用程序和政府透露必要的信息。事實上,我們可以用零知識證明來完全改造這些身份信息的公布方式。

我們可以對所有這些使用零知識證明,這樣,每當需要某些信息時,用戶就會有選擇性地批准並提供所需的信息,而其餘的細節則被隱藏。

只是ZK-SNARKs的效率在2013年之後才足以實際實現並得到開發者的使用,這就是為什麼使用零知識證明的不同應用程序在未來有很大的空間湧現。

2016年推出的Zcash是目前唯一成功實現ZK-SNARKs並提供用戶間隱私交易的突出產品。

ZK-SNARKs與 ZK-STARKs

圖片來源:Matter Labs github資源庫
圖片來源:Matter Labs github資源庫

ZK-STARK代表零知識可擴展的透明 知識論證,ZK-SNARK代表零知識的簡潔非交互式知識論證。

這兩種零知識技術在本質上都是非交互式的,這也就意味著代碼可以被部署並自主行動。

ZK-SNARKs在其基礎上依賴於橢圓曲線的安全性。橢圓曲線在密碼學中的基本假設是:找到一個隨機橢圓曲線元素相對於一個公知基點的離散對數是不可行的。

可信設置(trusted setup)是指用於創建私人交易所需證明的鑰匙的初始創建事件以及對這些證明的驗證。

如果在可信設置事件中用於創建這些密鑰的秘密沒有被銷毀,那麼這些秘密可能被用來通過虛假的驗證來偽造交易。

SNARKs的另一個局限性,正如我們已經知道的,他們在後量子世界的可行性。

另一方面,在一個網絡中開始使用STARKs時是不需要信任設置的。這些也被稱為抗量子化。雖然STARK的證明規模比SNARK大得多。

但是,STARKs仍然處於初級階段,現階段它對開發者的支持也不多,所以我們還有幾年時間才能看到基於ZK-STARK的產品。

文章寫到這就結束了。這是對web3世界中使用零知識證明所做的事情的初步介紹,相信你對零知識證明已經有了一定的了解。

鏈捕手ChainCatcher提醒,請廣大讀者理性看待區塊鏈,切實提高風險意識,警惕各類虛擬代幣發行與炒作,站內所有內容僅係市場信息或相關方觀點,不構成任何形式投資建議。如發現站內內容含敏感信息,可點擊“舉報”,我們會及時處理。
ChainCatcher 與創新者共建Web3世界