ZKP如何確保Web3的隱私和安全?

以太坊目前使用零知識證明(ZKP)作為擴展解決方案已成為不可忽視的趨勢。零知識證明可以在不改變區塊大小或速度的情況下提高區塊鏈的吞吐量,從而使區塊鏈用戶實現隱私和安全。 ZKP允許驗證者確定某些事情是真實的或交易是有效的,而無需知道細節。如果沒有ZKP,則交易數據的驗證要求該數據公開可見。

ZKP對隱私的保護是其安全性的最佳體現。零知識證明(ZKP)提供了一種替代方案。使用ZKP,證明者可以證明對秘密的了解,而不會透露秘密本身。相反,密碼是最常見的用戶身份驗證形式。如果用戶可以提供正確的密碼,則會授予他們訪問帳戶的權限。基於密碼的身份驗證的局限性之一是它要求雙方都知道密鑰。要驗證用戶的密碼,服務器還需要知道他們的密碼(或至少知道其哈希值)。

什麼是零知識證明(ZKP)?

想像一下,你有一個患有色盲的朋友,他懷疑紅色和綠色實際上是不同的顏色。 ZKP對於兩個顏色不同但其他方面相同的球,可以在不透露每個球的實際顏色的情況下證明這一點。在這個證明中,驗證者(也就是你的色盲朋友)隱藏了兩個球。然後,他向證明者展示一個球並再次隱藏它,並詢問顯示的兩個球是否是同一個球。

從理論上講,證明者能夠區分球的唯一方法是顏色。如果證明者說的是實話,他們總是能夠說明兩個球是否相同。如果他們撒謊,他們每次都有50%的機會是正確的。這是ZKP的一個例子,因為它證明了球是不同的顏色,而沒有揭示哪個球是哪種顏色。證明者可以保留秘密,但需要向驗證者證明他們知道這個秘密。

圖:如果有10 個可能的答案,證明者猜出每次迭代的答案的概率

區塊鏈的數字分類賬技術是完全透明的,這意味著每個人都可以看到一切。驗證交易和執行智能合約代碼的需求意味著交易的源目標和內容對所有區塊鏈賬戶都是可見的。因此,區塊鏈上的隱私有限,因為任何人都可以查看帳戶錢包的內容及其執行的每筆交易。

ZKP能夠通過啟用交易驗證而不洩露交易內容來提高區塊鏈上的隱私和安全性。例如,如果轉賬的輸入是唯一的,並且輸入和輸出的總和相等,則金融轉賬(如發送比特幣)是有效的。 ZKP可以證明這一點,同時保持輸出分配的機密性,從而改善了區塊鏈上的隱私。

ZKP如何改變網絡安全?

在基於密碼的身份驗證和數字隱私的世界中,ZKP可能改變現代網絡安全的遊戲規則。網絡安全中的許多方法都涉及解決以下問題:

  • 如何在不輸入敏感信息的情況下註冊服務?

  • 如何在不洩露社會安全號碼的情況下證明用戶的身份?

  • 如何保護用戶的密碼免受互聯網黑客攻擊?

ZKP有可能通過允許服務驗證必要的信息來解決這些問題和其他問題,而無需用戶披露這些信息。這消除了第三方服務在數據庫中存儲敏感信息的擔憂,並且用戶不需要通過不安全的網絡發送敏感信息。

ZKP有3個屬性。首先,完整性:如果陳述是正確的,證明者可以說服驗證者。第二,合理性:如果陳述是錯誤的,證明者就無法說服驗證者。第三,零知識:驗證者無法獲得任何其他信息,除非陳述是正確的。

交互式零知識證明無法滿足區塊鏈系統的高性能的要求。於是zkSNARKs系統應運而生,這是一個非交互式的零知識證明系統,滿足區塊鏈系統的性能要求。它被一些具有隱私性的加密貨幣系統廣泛使用。

在加密貨幣系統中,zkSNARKs的工作原理是這樣的。首先,項目設計者設計協議。在協議中製定一些合法交易的規則。要證明交易是合法的,用戶需要證明交易遵循這些規則。然後,用戶可以使用電路語言編寫這些規則,並將其轉換為QAP系統。然後,開發人員或社區將進行設置以生成驗證系統的參數。

當有人想向其他人匯款時,他可以創建加密交易。然後使用證明密鑰生成證明pi,告訴其他人此加密交易是合法的。然後,他可以將加密的交易和證明發佈到區塊鏈。然後,每個人都可以驗證並接受此交易。

ZKP的風險與挑戰

第一,ZKP加密貨幣中會有實現漏洞。第一種錯誤是內存損壞。但是,大多數新的ZKP加密貨幣系統都是用具有內置安全性的語言實現的,例如java,go。因此,似乎不可能在它們上找到內存損壞錯誤。還有一些是用C++編寫的,例如libSNARKs。但是,這些應用程序中的ZKP場景很難被利用。因此,內存損壞錯誤在這裡不起作用。

第二種是邏輯錯誤。在協議設計、電路實現或應用邏輯中存在許多邏輯錯誤。此外,在加密方案的實施中也存在許多錯誤。由於ZKP加密貨幣系統總是使用一些新設計的加密貨幣,因此使用新的加密貨幣,會出現新的錯誤。設計zkp加密貨幣的目標是實現隱私,性能和易用性。但是,這些屬性彼此衝突,因此協議將始終變得非常複雜。並涉及大量的加密貨幣。

要構建ZKP 應用程序,應用程序開發人員只需使用一些ZKP 庫即可。但是,由於對ZKP技術缺乏足夠的了解,他們的代碼很容易受到攻擊。第一個例子是信號量雙花攻擊。除了邏輯錯誤之外,ZKP項目的加密實現中也存在許多錯誤。 ZKP項目總是使用很多新的加密方案,而實施這些新的加密方案總是會導致新的錯誤。

ZKP加密貨幣的第三個安全風險是信託風險。 zkSNARKs系統的基本思想是:提前生成驗證者的挑戰x。為了解決這個信任問題,我們可以使用安全多方計算(MPC)來生成加密的x。然後沒有人知道x的明文,沒有人有後門。如果一個輕量級節點想要解密交易,他需要將他的解密密鑰交給一個完整的節點。而且ZKP計算總是成本很高,所以它對輕量級節點並不那麼友好。因此,我們可以得出結論,輕量級節點幾乎沒有隱私。

這是因為隱私實際上與易用性相衝突。目前市場上沒有好的解決方案。許多ZKP系統在數學上是完美的零知識,但是,完美的零知識並不意味著完美的隱私。在實際使用ZKP時,存在許多信息洩露。 ZKP技術相對較新,發展非常迅速。但它正在改進ZKP加密貨幣可以提供強大的匿名性。

ZKP領域的明星玩家

STARKWARE是ZKR領域的頂級玩家之一,推出了通用StarkNet,最近以80億美元的估值籌集了1億美元,使用了兩種主要的zk 技術:zk-SNARK 和zk-STARK。 STARKs與基於SNARK的算法的優勢在於它們不依賴於可信的設置,使得STARKS量子具有抵抗力,並且具有更快的證明時間,這是它們最實際的好處,也是當今近期可擴展性的主要瓶頸。 .

對於STARKs來說,證明和驗證時間隨著計算的複雜性而準線性地擴展,而對於SNARK,它們則線性擴展。由於協議需要更多的規模/計算,STARK將看到越來越大的優勢。 STARKS的缺點是它們的尺寸比SNARKS大得多,因此需要更多的鏈上存儲並且驗證成本更高。

像任何東西一樣,zk-SNARK 和zk-STARK的選擇是一種權衡,取決於正在構建的內容。對於需要極大量計算和規模的產品,STARKS將更適合。它們將大大加快速度,並且證明者/驗證成本將在更多用戶之間分攤。如果構建一些計算強度較低的東西,那麼也許你不需要STARKs,而SNARKs更實用。

到目前為止,STARKEx一直是StarkWare的主要產品,但他們現在正在加大力度推出他們的智能合約鏈StarkNet。我們還沒有看到基於ZKP的通用智能合約鏈的主要原因是,簡單地說,它們非常難以工作。 EVM是在ZKR成為一個想法之前構建的,因此zkEVM由於對橢圓曲線的支持有限,不同的字大小,特殊的操作碼以及更多不能很好地與有效性證明配合使用的問題,因此zkEVM面臨著許多設計挑戰。

另一個缺點是ROLLUP需要等待在以太坊上進行更改/升級,以保持完全兼容性。雖然可以從龐大的EVM 開發人員生態系統中受益,但它是一個受約束的環境,其靈活性有限,並且未針對ZKP 進行優化。雖然StarkWare已經開發了一個名為Warp的Solidity編譯器,但這不是他們的重點,而是努力用他們自己的語言針對STARK進行了優化。

正如我們所強調的那樣,StarkWare團隊沒有試圖將EVM安裝到StarkWare中,這是一個非常具有挑戰性的問題,而是專注於從頭開始構建一個新的開發人員生態系統,這很難引導,但如果成功,將具有實質性的長期優勢。使用針對ZKP優化的語言作為一種沒有工具的新語言,這不是一件容易的事,但在2022年已經取得了長足的進步。

該領域的主要瓶頸是證明成本。隨著複雜性和計算的上升,它將增加證明時間並需要進一步的硬件加速,這對於試圖啟動的項目來說是一個重大障礙(取決於以太坊的gas成本〜100萬美元/年)。從長遠來看,驗證行業很可能是專業人士的天堂,並且隨著硬件的進步和採用的幅度增加,攤銷的證明成本應該會大大降低每筆交易的成本。

正是在這一點上,ZKP需要很多年才能達到最終形式,但即將推出的完全可組合的智能合約鍊是第一步。圍繞他們的設計空間和生態系統發展空間廣闊,發展步伐不斷加快。它不會在一夜之間發生,但大規模採用的道路是明確的。

Total
0
Shares
Related Posts