什麼是 zk-SNARKs
原文:What Is zkSNARK: A Beginner-Friendly Explainer
作者:phemex
編譯:火火
出品:白話區塊鏈(ID:hellobtc)
原用標題:一文說透 V 神眼裡未來十年和區塊鏈一樣重要的 zk-SNARKs
一直以來,區塊鏈的不可能三角(即可拓展性、去中心化、安全性)三者只能得其二),所以在以太坊實現了較高程度的安全和隱私之後,擴容變成重中之重。
因此 Layer 2 順勢而生,當下在 Layer 2 擴容方案中,ZK 技術被太坊聯合創始人 Vitalik Buterin (V 神) 認為是解決擴容問題的最終方案。
5 月 21 日,在黑山舉辦的非營利性的年度全球以太坊會議 EDCON 2023 大會上,V 神表示,未來 10 年,以 ZK 為底層技術的 zk-SNARK 將與區塊鏈一樣重要。
那麼最近 V 神力推的 zk-SNARKs 到底是什麼?能解決哪些區塊鏈疑難雜症?一起來看看今天的這篇介紹。
以下為正文:
什麼是 zk-SNARKs?
1. 誰創造了 zk-SNARKs?
“zk-SNARKs” 一詞是由一群密碼學家創建的,其中包括 Nir Bitansky、Alessandro Chiesa 和 Eran Tromer,最初這些人在一篇論文中發表了關於 zk-SNARKs 的基本原理。由此,zk-SNARKs 逐步被許多不同的項目和團隊開發和改進。
2.zk-SNARK 代表什麼?
– ZK:zero knowledge 零知識
零知識意味著正在驗證聲明的人無法從驗證過程中獲得任何新信息。換句話說,在零知識證明過程中,驗證者只知道陳述是對還是錯,除此之外一無所知。
– S:simplicity 簡潔
簡潔的 zk-SNARKs 證明是簡短且易於驗證的證明。這與常規的零知識證明形成對比,後者可能非常長且複雜。通常,zk-SNARK 證明可以在幾毫秒內得到驗證。
– N:non-interactive 非交互式
非交互式 zk-SNARKs 證明不需要證明者和驗證者之間的任何交互。這意味著只有一條結果消息從證明者發送到驗證者。這與交互式證明形成對比,在交互式證明中,證明者和驗證者必須相互來回交互才能完成證明。
– AR:argument 爭論
論點是支持一個觀點的一個或一組理由。在 zk-SNARKs 的上下文中,論證是一系列數學運算,用於證明一個陳述論點是正確的。
– K:knowledge 知識
知識是指證明者知道完成證明所需的某些信息的想法。例如,這可能是帳戶的私鑰。
綜上所述,zk-SNARKs 是一個 ZK 系統(零知識證明系統),它允許用戶(“證明者”)向另一方(“驗證者”)證明某些東西,比如他們的身份、他們的資金所有權等,而無需透露有關這些資產的任何信息。例如:
– 用戶應該能夠證明他的賬戶中有足夠的餘額來購買產品或服務,而不必分享他所擁有的確切金額;
– 用戶應該能夠在訪問應用程序之前驗證他的身份,而不必共享他的個人數據。
以如何 “向一個 5 歲的孩子解釋 zk-SNARKs” 舉例,這裡可以通過一個遊戲來解釋 zk-SNARKs 是什麼:
“想像一下,你正在和三個朋友一起玩 “語文老師在哪裡?”,獎項是 1000 美元的賭注由獲勝者平分。你和你的朋友圍坐在一張桌子旁,每個人都拿到了一張有語文老師的圖片。
你必須在圖片中找到語文老師, 一旦找到語文老師就需要證明你找到了他,但不能透露她的位置或其他任何信息。換句話說,您想在不透露任何超出您聲明有效性的信息的情況下證明對事實的了解。
運用 zkSNARK 原中,可以拿一張相同大小的紙,並在圖片中語文老師的位置標記一個點。然後可以把紙藏在一個盒裡,一旦你的朋友解決了這個謎題,他們就可以自己看到你標記的語文老師所在的位置。”
換句話說,zk-SNARKs 允許你證明你所需的驗證信息,而無需透露該信息的具體值。在當前跨鏈生態系統中,使用 zk-SNARKs 技術可以維護其平台上構建的區塊鍊和 DApp 的隱私。
在這裡面,關鍵思想是驗證者不可能獲得關於該證明的任何信息(因此稱為 “零知識” 證明)。
zk-SNARKs 運作原理
zk-SNARKs 在加密領域尤為重要,因為許多區塊鏈本質上是公開的,隱私就變得尤為重要。
最著名的例子是 Zcash,它是一種隱私加密資產。當在比特幣和以太坊等公鏈交易 Zcash 時,會使用發送方和接收方地址等詳細信息以及輸入和輸出值(即花費了多少,未花費多少)進行驗證。
但通過 zk-SNARKs,Zcash 可以在不公開地址和價值等信息的情況下證明交易有效。
zk-SNARKs 如何運作?數字簽名構成了 zk-SNARKs 的工作原理。數字簽名使用加密算法對敏感信息進行保護,使其對另一方隱藏,同時向該方提供所要求的必要證據。
那麼具體它是如何完成的呢?步驟如下:
1. 證明者首先生成一對密鑰,一個公鑰,一個私鑰。他使用私鑰簽署交易。
2. 然後證明者將此交易編碼為 zk-SNARKs,這是交易有效的數學證明。
3. 證明與公鑰一起發送給驗證者。然後,驗證者使用公鑰檢查公式是否正確,而無需了解有關交易的任何其他信息。由於只驗證少量信息,因此可以非常快速地完成此檢查,以確認交易有效。
zk-SNARKs 的具體用例
1. 哪些 Token 使用 zk-SNARKs?
SNARK 加密 Token 是一種使用 zk-SNARKs 來改善隱私的加密資產,也稱為隱私 Token。這類隱私 Token 的例子有:
– Zcash (ZEC)
– Verge (XVG)
– Monero (XMR)
– Dash (DASH)
– Beam (BEAM)
– Horizen (ZEN)
– Bytecoin (BCN)
zk-SNARKs 的主要挑戰是如果私鑰被洩露,就可以創建偽造的證明。這可能允許偽造證明的創建者進行欺詐,例如,創建和使用偽造的隱私幣。
2. zk-SNARKS 的其他應用
Filecoin 是一個去中心化存儲提供商,運作過程涉及多個方面。
首先,Filecoin 網絡上的存儲提供者(提供存儲空間以換取區塊獎勵),而 “證明者”,必須證明他們正在正確地將數據存儲在鏈上。
另一方面,我們有 “驗證者”,即節點,他們必須驗證存儲提供商是否正確存儲和保護數據。這些驗證者必須對存儲提供者給出的證明感到滿意。
這要求存儲提供商和節點在數據易手時進行通信。可以想像,這一過程將是資源密集型的。
Filecoin 官方博客文章解釋道:“為了驗證他們的存儲,如今單個存儲提供商提供的必須證明的數據量是巨大的,而且只會隨著時間的推移而增長。Filecoin 網絡的出塊時間為 30 秒。為了保持時間不變並啟用可擴展的方法,Filecoin 需要一種允許快速、高效和穩健驗證的解決方案,”
借助 zk-SNARKs,Filecoin 網絡可以通過減少各方驗證存儲所需的時間來提高其可擴展性和效率。
對於存儲提供商,zk-SNARKs 減少了他們需要傳輸的數據量以證明其存儲,從而降低了運營成本。
3. zk-SNARKs 還可以用於其他事情
例如:
– 身份驗證:無需密碼即可驗證用戶憑據,不再需要護照、出生證明等文件證明,以保護出生地點和出生日期等敏感信息。
– 投票系統:無需身份識別即可驗證選民身份,即使選票洩露也無法識別選民身份,從而保護選民隱私。
– 數據壓縮:這是 zk-SNARKS 的一個有趣用途,值得單獨展開一節。
小結
總的來說,zk-SNARKS 有三個關鍵要點:
1.zkSNARKS 是一種零知識證明系統,它允許一方向另一方證明他們知道一個值 x,而無需傳達有關 x 的任何其他信息。
2. 關鍵思想是驗證者不可能僅僅從證明者能夠證明他們知道 x 的事實中推導出關於 x 的任何信息。這保護了證明者的數據隱私。
3. 零知識證明系統用於各種應用,包括安全通信、密碼學和隱私保護數據分析。
雖然目前零知識證明系統是一個相對較新的研究領域,其可行性和實用性仍有許多懸而未決的問題。然而,它們已經被用來創造一些令人印象深刻的產品。
免責聲明:作為區塊鏈信息平台,本站所發布文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。本文內容僅用於信息分享,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。