什麼是零知識證明及其在區塊鏈世界中的作用?

已發表: 2020-01-09

在過去的幾年裡,我們已經習慣了大型銀行和其他公司訪問和使用我們的個人信息來為我們提供增強體驗的方式。 隨著時間的推移,我們已經給他們一個“綠色信號”,讓他們使用我們敏感的細節來幫助我們以某種方式維持生命的機制。

但後來進入區塊鏈技術,它徹底改變了一切。

區塊鏈技術帶來了透明度、不變性、去中心化和分佈式賬本等各種特性。 它使用戶能夠匿名行動並以高端安全性執行交易。

[在進一步研究之前,我們強烈建議您花時間了解區塊鏈的基礎知識。]

簡單來說,區塊鏈讓用戶可以控制他們的隱私和未來。

但是,區塊鏈真的成功了嗎?

總之,答案是否定的

許多區塊鍊網絡使用公共數據庫。 因此,任何擁有互聯網連接的人都可以查看網絡交易歷史列表。 他們可以看到與交易相關的所有詳細信息以及您的錢包詳細信息,但他們仍然不知道用戶的姓名。 相反,它們將作為公鑰出現——代表區塊鍊網絡上用戶的唯一代碼。

這樣,通過密碼學技術創建的公鑰在一定程度上保護了您的隱私。 但是,仍然有可能通過其他技術暴露你。

這讓你的匿名封面被炸毀了; 揭穿區塊鏈匿名和隱私的神話,讓你意識到——

存儲在區塊鍊網絡上用戶敏感信息只是保密的,不是匿名的。

Quote 1

同樣,有各種由共識算法管理的區塊鍊網絡以提供高端隱私和穩定性,但在這種情況下,去中心化被視為第二優先事項。 在許多這樣的情況下,雙方互不信任。 [要詳細了解這些共識模型,請查看此區塊鏈共識算法指南。]

總的來說,這清楚地表明區塊鏈並不像許多愛好者所認為的那樣匿名和去中心化。 甚至會產生各種各樣的問題,比如——

區塊鍊網絡真的需要匿名嗎? 區塊鏈如何為用戶提供更多匿名性和更好的隱私保護?

在目前的區塊鍊網絡中,交易記錄在公共分類賬中並且本質上是透明的。 正因為如此,華爾街等各種知名品牌和市場都在猶豫採用零知識證明技術,因為客戶和交易的機密性對他們來說是必須的。 總體而言,這是在質疑區塊鏈 web 3.0 是否能夠影響企業

Quote 2

談到第二個問題,有各種概念和方法,如混幣、 Ringct和 Coin Join,它們使區塊鏈中的交易變得匿名,但受到高度讚賞的是零知識證明

我們在本文中詳細介紹。

那麼,讓我們從零知識證明區塊鏈的簡單定義開始

什麼是零知識證明?

零知識證明是麻省理工學院研究人員Silvio Micali 、Shafi Goldwasser 和 Charles Rackoff 在 1980 年代提出的一種加密方案。 在這種方法中,一方(證明者)可以證明特定陳述對另一方(驗證者)是真實的,而無需披露任何額外信息。

零知識加密確保除了您(甚至服務提供商或區塊鏈應用程序開發機構)之外的任何人都無法訪問您的安全數據。

定義清楚後,我們舉個例子來了解ZKP是如何工作的。

示例:兒童和糖果棒

假設,兩個孩子——鮑勃和愛麗絲,從一個聚會上收到了一些糖果棒。 Bob 想知道 Alice 是否有相同數量的糖果棒。 但是,與此同時,他們都沒有準備好透露確切的數字。

所以,他們所做的是 Bob 在一個房間裡帶了四個可上鎖的盒子,假設收到的糖果棒的數量是 10、20、30 和 40。他用與糖果棒數量相對應的值標記每個盒子。

然後,Bob 保留定義他口袋裡收到的糖果條數量的盒子的鑰匙(假設他有 30 條糖果條),並扔掉所有其他盒子的鑰匙。 他離開了房間。

現在,Alice 帶著 4 張小紙進入房間,在其中一張上寫上“+”,而在另一張上寫上“-”。 在這裡,“+”表示她得到的糖果條數,而“-”表示其他所有值。

她將帶有“+”號的紙片放入一個盒子(假設在一個代表 20 塊糖果的盒子中),並在其餘的盒子中放入“-”。 她離開了。

現在,鮑勃再次進入房間並打開鑰匙在他口袋裡的盒子。 然後,他檢查盒子是否有一張帶有“+”號或“-”號的紙。 如果它是一個“+”號,他意識到愛麗絲有相同數量的糖果棒。 而在另一種情況下,她沒有。

我們知道 Alice 有 20 根糖果棒,Bob 有 30 根糖果棒,很明顯,Bob 會在他擁有鑰匙的可上鎖盒子中找到一個“-”號。 這將使他清楚地知道他們都沒有相同數量的糖果棒。

與此同時,Alice 將重新進入房間,發現 Bob 的手上有一個“-”符號,她也會知道他們有不同數量的糖果棒。

注意:通過這種方法,Bob 將了解到他們沒有相同數量的糖果棒。 但是,他仍然不知道愛麗絲的糖果比他多還是少,反之亦然。

因此,零知識證明以太坊在進行交易時維護了用戶敏感信息的隱私(在這種情況下,交易是在尋找他們是否擁有相同數量的糖果條)。

雖然這個例子可以幫助你理解什麼是零知識證明(ZKP),但讓我們用一張圖片來刷新一下這個概念——

Zero Knowledge Proofs (ZKPs)

現在,隨著對零知識證明 (ZKP) 概念的解釋,現在是研究是什麼讓每個人都更喜歡它而不是其他可用選項的最佳時機。 讓我們深入了解零知識證明的優缺點:

零知識證明 (ZKP) 的好處

  1. 簡單——零知識密碼學的主要優點之一是它不涉及任何復雜的加密方法。
  2. 安全——它不需要任何人透露任何類型的信息。
  3. 交易─ 與 ZKP 相關的另一個保證好處是縮短區塊鏈上的交易。 因此,用戶不必擔心信息存儲,包括與不同類型資產的兼容性和身份。

雖然這些是零知識證明的優點,但這個概念也有一些缺點。 其中一些是:-

  1. 冗長——零知識技術大約有2k 次計算,每次都需要一定的時間來處理。 這是使用零知識證明的首要問題。
  2. 不完美——傳遞給驗證者/證明者的消息可能被破壞或修改。
  3. 有限——零知識協議要求秘密是一個數值。 在其他情況下,需要翻譯。

有了這些,在我們評估何時以及如何將零知識協議引入區塊鏈生態系統之前,讓我們更深入地研究技術細節。

從零知識證明的核心特徵開始。

零知識證明的性質

Zero-Knowledge Proofs Properties

1. 完整性

如果該聲明是真實的並且兩個用戶都虔誠地遵守規則,那麼驗證者將在沒有任何外部幫助的情況下被說服。

2. 穩健性

如果該陳述為假,則驗證者在任何情況下都不會被說服(即使證明者說該陳述在某些小概率下為真)。

3. 零知識

在這兩種情況下,驗證者都無法知道除了聲明是真是假之外的任何信息。

雖然涵蓋了 ZKP 的原則,但讓我們來談談商業愛好者可以投資的不同類型的 ZKP。

零知識證明的類型

1. 交互式零知識證明

交互式零知識證明中,證明者在數學概率機制下執行一系列動作以使驗證者相信特定事實。

2.非交互式零知識證明(NIZKP)

如名稱所示,非交互式零知識證明不需要交互式過程。 這意味著,證明者可以一次生成所有挑戰,而驗證者可以稍後做出響應。 這限制了串通的可能性。 然而,它需要額外的機器和軟件來找出實驗的順序。

注意:可以從非交互式 ZKP 過渡到交互式 ZKP。

Improving Privacy on a Blockchain

區塊鏈系統在哪裡實現零知識證明?

1. 消息傳遞

在消息傳遞中,端到端加密是必不可少的,這樣除了您正在與之通信的人之外,沒有人可以閱讀您的私人消息。 為了確保安全,消息傳遞平台要求用戶向服務器驗證他們的身份,反之亦然。

但是,隨著 ZKP 的出現,他們將能夠在消息傳遞世界中建立端到端的信任,而不會洩露任何額外的信息。 這是區塊鏈世界中零知識證明的主要應用之一。

2. 認證

零知識證明還可以促進以更好的安全性傳輸身份驗證信息等敏感信息。 它可以為用戶建立一個安全的渠道,在不洩露信息的情況下使用他們的信息。 這樣,在最壞的情況下避免數據洩漏。

3.存儲保護

零知識證明 (ZKP) 的另一個可能用例是在存儲實用程序領域。

零知識證明附帶一個協議,該協議不僅可以保護存儲單元,還可以保護其中的信息。 不用說,訪問通道也受到保護,以提供無縫和安全的體驗。

4. 發送私有區塊鏈交易

在談論發送私有區塊鏈交易時,將其置於第三方無法觸及的範圍內是非常重要的。 現在,雖然傳統方法具有一定的保護性,但它們也存在一些漏洞。

這是 ZKP 發揮作用的另一個領域。 明智地集成該概念有助於使黑客幾乎不可能入侵或攔截私有區塊鏈交易。

5. 複雜的文檔

由於零知識證明有可能以塊的形式加密數據,它使人們能夠控制某些塊以向特定用戶提供訪問權限,同時限制其他用戶的訪問權限。 通過這種方式,該概念可以保護複雜的文檔不被未授權的人看到。

6. 文件系統控制

另一個可以看到有效的零知識證明實現的地方是文件系統。

這一概念為文件、用戶甚至登錄添加了不同的安全層,這使得人們很難破解或操縱存儲的數據。

Read here

7. 傳輸私有區塊鏈交易

私有區塊鏈交易所的傳輸是區塊鏈中 ZKP 的各種傑出執行中的顯著通知之一。 私人區塊鏈交易在發送時應受到任何第三方的保護。

發送私有區塊鏈交易的主要擔憂暗示了常規策略中明顯的不同漏洞。 ZKP 與私有區塊鏈交易的強大集成可以使其適用於任何類型的黑客或乾擾。

8. 民主化投票驗證

將 ZKP 與區塊鏈一起應用的最明顯例子暗示了它們在檢查選票方面的民主角色。 ZKP 可以通過在公共區塊鏈(例如以太坊)上記錄投票,為可審計投票提供可靠的答案。

隨後,除了限制要求之外,投票過程不需要任何第三方確認。 ZKP 可以允許選民證明他們有資格投票,從而防止他們敏感的個人數據被洩露。 同樣,選民可以要求不可變的證據來考慮他們在最終計票中的投票。

9. 敏感信息的安全

最後但同樣重要的是,零知識證明還改進了區塊鏈技術改造交易的方式

ZKP 為每個包含敏感銀行信息(例如您的信用卡詳細信息和歷史記錄)的塊添加了高端安全級別,這樣銀行只需在用戶請求信息時操作所需的塊。 其他塊保持不變,因此受到保護。

例如

熟練的開發人員使用 ZoKrates(一個數字工具箱)通過 Solidity(一種用於創建基於以太坊的智能合約的面向對象的編程語言)來設計和驗證 ZKP。

Aztec 正在尋求通過開發一系列以隱私為重點的智能合約,將以太坊零知識證明帶入現有的以太坊網絡。

因此,這些是區塊鏈開發服務中零知識證明的一些用例 要通過構建其中之一來讓您的品牌在市場上佔有一席之地,請聘請一家區塊鏈應用程序開發公司

如果您對它的實際實施感到困惑,請檢查以下現有項目是否融合了兩者。

Quote 3

零知識證明與區塊鏈融合的真實例子

1. ZCash

Zcash是一個開源且無需許可的區塊鏈平台,它提供了根據要求保持交易“透明”和“屏蔽”的功能。

在前一種情況下,交易由 t-addr 管理,就像比特幣交易一樣。 而在後一種情況下,使用稱為zk-SNARKs的零知識證明,並且交易由 z-addr 控制。

它是 ZKP 在加密世界中的第一個加密貨幣用例和應用。 它是第一個部署該技術的零知識證明加密貨幣。

2. 荷蘭國際集團

ING 是一家總部位於荷蘭的銀行,推出了自己的零知識區塊鏈。 然而,他們已經修改了他們的零知識系統,使其成為零知識知識範圍證明,以降低對計算能力的需求。

通過這種方式,他們準備了零知識系統,以提升區塊鏈在金融科技中的影響力

3、零幣

該公司使用基於零知識證明的 Zerocoin 協議來增強交易過程中的安全性和匿名性。 然而,它與其他致力於此概念的項目的不同之處在於它也提供了可擴展性。

儘管各種國際參與者已經開始對將零知識證明的概念實施到區塊鏈中表現出興趣,但採用速度太慢了。 背後的主要原因是與將 ZKP 添加到區塊鏈環境相關的以下一系列挑戰。

將 ZKP 集成到區塊鏈項目時可能面臨的挑戰

1. 缺乏標準

由於區塊鏈技術本身處於早期採用階段,因此沒有標準、系統和同質語言可以使應用程序開發人員和業務前景與 ZKP 的概念進行交互並以有效的方式利用其潛力。

2. 可擴展性

限制在區塊鏈環境中採用零知識證明的另一個挑戰是可擴展性,前提是此類算法需要高計算能力才能在高水平上運行。

Let's Get in Touch

包起來

現在您已經清楚 ZKP的概念及其在區塊鏈領域的範圍(以及現實生活中的示例),我們希望您在進入去中心化世界的同時投資於該概念的更廣泛應用。

但是,如果您仍有任何疑問,請聯繫我們的區塊鏈顧問或我們的美國區塊鏈應用程序開發服務專家。