零知識證明是魔法
零知識證明是一種魔法。它能讓我們做到以前想都不敢想的事情。
首先,讓我引用幾句名言來刺激你的大腦。有些可能是你耳熟能詳的,有些可能是你第一次聽說。
神奇的技術、不斷進步的文明、簡短的文字、隱私以及已經到來的未來。這就是零知識證明。這是怎么回事?
上個世紀,計算機和互聯網席卷了整個世界。這些技術無處不在,我們所做的一切都離不開它們,無論好壞。在此基礎上,我們建立了平臺、公司和巨頭。這些就像你的MAMAA。然后是巨頭的腹部--支付網絡、政府服務和大量的B2B應用程序,它們默默地運行著這個世界。最后,還有一條長尾應用--可愛的濾鏡圖片應用、語言學習平臺或在線社區。
當你向另一個在線服務輸入數據時,你期望實現一個特定小目標,比如聯系朋友,或者是申請抵押貸款這樣的大目標。但所有這些數據會發生什么變化呢?還有你不知道的冰山一角的隱藏數據。
誰真正了解這些系統以及我們如何使用它們的后果?反過來,它們又是如何利用我們的?雖然有些人可能比其他人更了解某些系統,但沒有人了解所有系統,更不可能了解它們是如何相互作用產生不可預見的后果的。
人類該怎么辦?信任,但你相信誰呢?
這是一個難題。我們人類的大腦還沒有進化到可以思考這個問題的程度。互聯網雖然能把我們聯系在一起,讓事情變得更簡單,但也在這方面卻造成了一些混亂。過去,當你與人私下交談時,風會吹走你發出的聲音。當你被鎖在屋外時,你可以找鎖匠,也可以自己撬鎖。當你被鎖在谷歌賬戶外,盯著"拒絕訪問"的屏幕時,你能怎么辦,你正站在一座無形而堅不可摧的城堡前。
ZKP可以幫助你。也許不是任何事情都可以搬到你,也不是此刻。但它可適用于許多事情、許多地方,而且越來越多。在本文的其余部分,我將嘗試說服你為什么以及如何做到。讓我們跟隨魔法的腳步。
什么是零知識證明?
本節將介紹零知識證明的概念
這是關于零知識證明及其應用系列文章的第一篇。我們將介紹什么是零知識證明、為什么你應該關注它、它是如何工作的,以及它的應用場合。
想象一下,你去酒吧,可以證明自己年滿18歲,而無需透露任何其他信息,包括帶有個人信息的身份證。或者,你可以證明自己正確繳稅,而無需向任何人透露你的收入或資產詳情。這些都是零知識證明可以實現的。所謂"零知識",簡單地說就是我們不會透露任何超出預期的信息。
ZKP可以讓你在不透露任何信息的情況下證明某件事情,只需證明該聲明是真實的即可。
這意味著什么呢?讓我們以經典的"沃爾多在哪里"為例。這個游戲是關于在一幅大圖中找到沃爾多。我可以向你證明我知道沃爾多在哪里,而不透露沃爾多的位置。怎么證明?
想象一下,我有一張"沃爾多在哪里"的圖片和一張比圖片大四倍的大紙。我在紙上開一個小洞,然后把這張紙放在"沃爾多在哪里"圖片的前面,小心地擺好位置,這樣沃爾多就可以通過小洞看到了。這意味著你可以看到瓦爾多,但只能看到瓦爾多,看不到其他東西。這樣,你就知道我知道沃爾多在哪里,但我并沒有透露沃爾多在圖片中的具體位置。
沃爾多在哪里
這顯然只是一個例子,但希望它能給我們一些直觀的印象,讓我們知道這樣的證明是如何實現的。但這意味著我們要更精確地要證明什么?我們接下來會深入探討這個問題,但現在讓我們看看ZKP給我們帶來了什么。
有了ZKP,你就能以通用的方式證明任意語句。更具體地說,ZKP能讓我們以一種私密而簡潔的方式證明一些東西。
這一點非常強大,我們接下來就會看到。
你為什么要關注ZKP?
本節將解釋為什么有人會關注ZKP,包括詳細介紹隱私、壓縮和ZKP的通用性。
讀了上面的內容,你可能會想:"好吧,我想這還挺不錯的,但我為什么要關心呢?這種想法完全合理。事實上,你可能不應該關心!就像你不應該關心計算機的工作原理、人工智能的發展方向或其他任何事情一樣。
為什么你會關心?因為你很好奇,想了解ZKP是如何工作的,以及它能開啟哪種類型的交互。這種機制非常普遍,許多在這一領域工作的人的直覺是,從根本上說,它是一種新的范式,可以釋放出許多新的東西。我們已經看到了這一點,而且似乎我們才剛剛開始。在本節的其余部分,我將向你介紹一些直觀的原因和方法。
Swing推出軟件工具以更輕松地部署跨鏈解決方案:金色財經報道,去中心化跨鏈流動性協議Swing推出了一個新的小部件和軟件開發工具包 (SDK),以簡化跨鏈加密部署。該項目于周三宣布,Swing的新小部件和SDK支持21個EVM兼容鏈,包括Ethereum、BNB Chain、Arbitrum和Optimism。Swing還計劃擴展到覆蓋四個非EVM網絡,如Solana和Cosmos。(The Block)[2023/1/18 11:19:24]
在深入探討之前,讓我們先從更高的層面了解一下ZKP給我們帶來了什么。ZKP主要具有以下一種或兩種特性:
1.隱私
2.壓縮
這兩個概念是什么意思?下面是一些思考這些特性的方法。
隱私
有很多事情我們都想保持隱私。下面是《牛津詞典》中"隱私"的定義:
只屬于一個人或一群人,或僅供他們使用。
我們有私人談話、私人浴室、隱私部位。商業秘密、敏感的個人信息,在自己家中的隱私:鑰匙、門和鎖。
隱私是正常的,它就在我們身邊。它與自我主權、自決和獨立的概念密切相關。這些概念對我們來說是如此自然,以至于許多重要文件,如《美國權利法案》和《聯合國憲章》分別將其視為個人和國家的基本權利。隱私是自由的前提。
更正式地說,ZKP的隱私屬性通常被稱為*零知識*或*數據隱藏*。ZKP隱藏了與某些應用功能無關的數據,然后將被隱藏過這些數據與相關應用數據綁定在一起。這些概念比較正式,可以實現隱私保護。隱私是一個更廣泛、更普遍適用的概念,所以我們現在將繼續關注這個概念。
在數字世界中,隱私也是至關重要的,但卻常常被忽視。以下是《賽博朋克宣言》中對隱私的定義:
隱私是有選擇地向世界展示自己的能力by《賽博朋克宣言》
對話、密碼、信用卡信息。這些都是我們希望在網上保持隱私的例子。互聯網是連接我們所有人的奇妙工具,但它也是一個開放而狂野的海洋。這里有很多陌生人和掠奪者,因此保持某些信息的私密性至關重要。
你可能會想,"我們已經可以將密碼等信息保密了,有什么大不了的?在有限的意義上,就這些具體例子而言,你是對的。我們必須發揮更多的想象力,才能真正理解通用的可編程隱私功能。
舉個例子,想一想奧古斯丁在他的《懺悔錄》(公元400年)中是如何發現主教圣安布羅斯的“默念”行為與眾不同的。當時,大多數人都大聲朗讀。
當朗讀時,他的眼睛掃視著書頁,他的心在尋找其中的含義,但他的聲音是沉默的,他的舌頭是靜止的。任何人都可以自由地接近他,而客人來訪也通常不會事先通知,因此,當我們去拜訪他時,經常會發現他就這樣靜靜地讀書,因為他從不大聲朗讀。
默讀
如今,每個人都認為默念是理所當然的。我們甚至很難想象,默念是怎樣被發明出來的。以前,只為眼睛閱讀的想法是陌生的。
在我們的現代,還有哪些類似的發明是可能的?這些都是我們大多數人當前是無法想象的。
在未來的章節中,我們將看到使用ZKP的現有和即將出現的此類發明的模樣。
壓縮
我把這篇文章寫得比平時長,只是因為我沒有時間把它縮短,來自布萊斯-帕斯卡
壓縮是指“把東西壓縮到更小的空間”
同樣,簡潔的定義是“用幾個詞清楚地表達某事的行為”
具有壓縮特性的ZKP意味著,我們可以用非常簡短的語句來證明某事為真。例如,某個計算的所有步驟都已正確執行。這在某些資源需求量大、價格昂貴的情況下最為實用。以太坊區塊鏈就是如此,但在其他情況下,這也是一個非常有用的特性。更難能可貴的是,無論我們要證明的事情有多復雜,這個證明的大小都是一樣的!
我們所說的"證明"和"證明的大小"是什么意思?這些都是數學上的精確概念,其中有很多細微差別。在以后的章節中,我們將結合ZKP深入探討證明的概念。現在,我們可以把它看作是一個我們知道是真的,或者可以通過某種方式驗證是真實的簡短陳述。
福爾摩斯
在典型的偵探小說中,偵探要收集證據,直到能夠證明兇手犯下了謀殺罪。然后,他們會在最后的大結局中證明他們是如何知道這一點的。我們可以把最后這句話看作證據。
更正式地說,我們將這一屬性稱為*簡潔性*。無論我們要證明什么,證明的大小都是一樣的。就公共區塊鏈而言,這也與可擴展性的概念有關。對于以太坊這樣的公共區塊鏈來說,區塊空間有限且昂貴,ZKP可以讓交易更便宜、更快速。如何做到這一點?我們創建一個證明,證明某些交易已經發生,并將這個微小的證明放在鏈上,而不是讓所有交易占用區塊鏈的空間。有了ZKP,這可以變得非常安全。
輕松集團執行副總裁馬孝武:區塊鏈技術用在保險方面使投買、理賠等整個鏈條服務更清晰:6月2日消息,2022第五屆華夏時報保險科技峰會今日線上舉行,輕松集團執行副總裁馬孝武指出,區塊鏈技術會用在保險方面,保險從前期的投買保險的過程以及后續的理賠、服務以及保障后續的一些核心的階段當中,都會使用到一個區塊鏈的技術,能夠讓整個鏈條服務更為清晰。這是整個智能匹配過程當中以用戶為中心,圍繞用戶需求,實現保險和健康資源的一個智能匹配,是一個完整的科技互聯網閉環。[2022/6/2 3:58:37]
簡潔性是一種通用屬性,與"區塊鏈"無關--只是出于多種原因,它們恰好非常適合。一般來說,簡短地證明某事屬實是非常有用的。有幾種方法可以說明原因。
一種方法是考慮*交易成本*。一般來說,交易成本越低,創造的價值和財富就越多。如果需要驗證的事情減少了,或者驗證變得更容易了,那么我們就可以更自由、更輕松地做事。
有時,當我們填寫表格時,會被要求寫兩次電子郵件地址,以確認是否正確。這樣做的目的是防止人為錯誤,使數據轉賬更加穩健。還有像校驗和這樣的東西,在你的UPS包裹代碼、信用卡號或書籍的ISBN代碼中多加一個數字,就可以簡單地檢查所有數字是否正確。顯然,所有這些都不是為了防止惡意使用,而只是為了防止無意的錯誤。
在計算機文件系統中,哈希通常用于確保文件的完整性。如果文件的一小部分發生損壞,哈希值就會完全改變。由于哈希值簡潔明了,即使底層文件非常龐大,也很容易保存和檢查。在此案例中,哈希函數能以安全的方式確保完整性。如果我們只通過保留文件的副本來檢查文件的完整性,那就太不切實際了。大文件、小文件都無所謂,哈希值的大小保持不變。哈希值的簡潔性使得這種應用成為可能。
你知道什么?
讓我們從壓縮、簡潔和證明中抽離出來。我們將繞道知識、精神開銷和信任。然后,我們將在本節末尾將其與ZKP聯系起來。
在日常生活中,你知道什么是真的,為什么?如果你每天都看到太陽升起,那么你很可能會期待它明天再次升起。在現代社會,我們在很大程度上可以免受自然界惡劣環境的影響,但另一方面,我們也有很多其他更現代的擔憂。其中許多都與我們日常打交道的各種機構有關。
如果你每天都能從銀行提取現金,你是否希望第二天還能再次提取?大多數人可能會說是的,但并不是每個人都能一直這樣做。這取決于很多因素:銀行是否值得信賴,你是否生活在一個安全的司法管轄區,最近世界經濟是否發生了重大事件,你的個人情況如何等等。所有這些因素加在一起構成了一些數據判斷點,你可以據此做出判斷。
這顯然是一個很小的例子,但生活中充滿了這樣的交互。所有這些都可以看作是一種精神開銷。這在多大程度上會引起關注,取決于你的個人情況和日常交易的復雜程度。例如,企業在與另一方簽訂合約時可能會更多地考慮這些因素。
我們建立了一些機制和規則來應對這種不確定性,比如使用聲譽服務、獨立審計、罰款以阻止不良行為、尋求一些可信機構的認證等。所有這些措施基本上都是膠帶,試圖找到問題的關鍵。某些東西是否如其所言?它是否遵循我們制定的規則?它是否值得信賴和可用?
當你要與多個機構、轄區、公司和人員打交道時,所有這些精神負擔都會變得更加沉重。你可能會受到連帶影響,比如你的銀行倒閉,你無法支付員工工資,從而導致你的企業無法為客戶提供服務。需要更多的控制措施。需要更多的停頓來考慮事情是否正確,以及哪些地方會出錯。
我引用一段話來結束本節:
文明的進步是通過增加我們不假思索就能完成的操作數量來實現的。來自阿爾弗雷德-諾斯-懷特海
例如,當你點燃爐子做晚飯時,你甚至不用考慮生火的問題。這與拾柴、保持干燥、生火、持續生火這一非常耗時的過程截然不同。在數學方面,如果沒有微積分,我們就無法登上月球。
阿波羅11號奧爾德林
有了ZKP和簡潔的證明,我們就能為不透明的系統引入更多確定性和清晰度。當我們考慮組合ZKP時,這一點變得更加強大。即以某種方式將多個證明合二為一,如聚合或遞歸。
所有這一切都假定我們可以將上面提到的一些機制或規則轉化為ZKP可以理解的形式。我們如何才能做到這一點呢?
通用(General-purpose)
回想一下,ZKP允許我們以通用方式證明任意語句。為什么這很重要?
現有的類似工具和ZKP之間的區別就像計算器和計算機之間的區別。一個是用于非常特殊的任務,而另一個則是通用的。這就是計算器和現代計算機之間的區別:
機構分析:比特幣可能輕松下探27199美元的關鍵回撤位:比特幣周三的狂野走勢可能刷走了很多多頭倉位,但技術圖形顯示,這個數字貨幣還有不少下行空間。關鍵回撤位表明,比特幣的下一個關鍵支撐位可能比周三盤中低點還要低約10%。這個水平對應27199.54美元,是疫情初期低位到今年4月高點整個漲勢的38.2%斐波納契回撤位。在此之前,30000美元的心理關口應該會提供一些支撐,但跌破該水平可能會吸引更多的動量拋盤,從而測試1月低點28019美元,27199美元也近在咫尺。 (金十)[2021/5/20 22:23:27]
帕斯卡計算器
回顧我們上面舉過的具體例子,可以更具體地說明隱私和簡潔性。密碼是允許你登錄某些服務的隱私信息。對于某些輸入數據的哈希值來說,它為我們提供了一個簡潔的東西來檢查相等性。
我們可以將哈希函數形象化如下:
哈希函數
我們在一些已知輸入數據上應用特定的哈希函數,如SHA256。例如,使用句子敏捷的棕狐貍會跳過懶惰的狗作為輸入,并應用SHA256哈希函數,結果是哈希值d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592。在句末添加一個.,就會得到完全不同的哈希值:敏捷的棕狐貍會跳過懶惰的狗.散列值為ef537f25c895bfa782526529a9b63d97aa631564d5d789c2b765448c8635fb6c。
盡管句子只改變了一點點,但得到的哈希值卻大相徑庭。安全的哈希函數很難被"破解",而且具有一些很好的特性。例如,如果掌握了哈希值,就無法創建新的初始輸入。此外,你也無法輕易構造出一個散列為特定、預定散列值的信息。這些哈希函數被稱為*加密哈希函數*。
我們上面使用的SHA256哈希函數是一種特定的加密哈希函數,它的安全需要大量時間和許多人的努力。哈希值本身并不能證明什么。它只有在與其他東西進行比較時才有意義。
非正式地講,我們可以把哈希函數看作是證明某些特定信息對應于特定哈希值的證據。我們只能用原始信息來驗證這一點。有時,人們會用哈希函數來證明自己寫了什么并進行預測--他們寫道:"2040年4月1日,外星人將降落在倫敦大本鐘頂端,彩票號碼25742069將中大獎。"然后提前公開發布這條信息的哈希值,比如在Twitter上。當事實證明他們是對的時候,他們就可以公開原始信息,讓人們相信他們確實預測了未來,是下一個諾斯特拉達穆斯。
相比之下,我們可以將ZKP形象化如下:
ZKP
與上面的哈希函數不同,ZKP有幾個很大的不同點:
我們有多個隱私和公共輸入,而不是只有一個輸入
我們可以使用任何程序,而不僅僅是加密哈希函數
我們能生成可驗證及自足證明
在上面的哈希函數示例中,我們需要公共輸入,以便驗證信息是否與散列一致。
對于ZKP,我們也可以使用隱私輸入。隱私輸入是指只有你能看到的輸入。也就是說,你不需要把它透露給任何人,就能生成證明。
例如,在本文開頭的"沃爾多在哪里"案例中,公共輸入是"沃爾多在哪里"的圖片。隱私輸入則是Waldo的實際位置。我可以證明我知道沃爾多在哪里,而無需向你透露隱私輸入,即沃爾多的位置。
同樣,如果我有一個數獨謎題,我可以向你證明我知道謎題的解法,而不向你透露解法。在此案例中,公共輸入是初始謎題,隱私輸入是謎題的解答。
你可能已經注意到,"沃爾多在哪里"和解數獨謎題是兩個完全不同的問題。然而,我們可以編寫一個簡單的程序來表達這兩個問題的工作原理,并使用ZKP進行證明。這是因為這個特殊程序中的邏輯是通用的,可以計算計算機所能計算的任何東西。
我們把原本屬于密碼學或數學的問題--定義加密哈希函數并使其安全--變成了編程問題。要想知道這為什么如此強大,請看下面的一些例子。
我們現在可以證明,我們知道產生某個哈希值的隱私數據。這就意味著,你可以在不泄露信息本身的情況下,證明你掌握了某條信息,比如一份重要文件。
為了更好地理解通用計算的強大功能,讓我們來詳細了解一下群簽名。群簽名是一群人共同簽署一份文件的方式,但不會暴露他們的身份。例如,《聯邦黨人文集》就是由代表多個個人的化名Publius簽署的。就像SHA256哈希函數一樣,有一種方法可以用密碼學和數學來表達群簽名。這非常了不起,需要大量的密碼工程技術才能開發出來。但有了通用ZKP,任何人都可以用幾十行Circom代碼來表達同樣的內容。
聲音 | Tezos聯合創始人:Tezos主網升級后可以輕松地在網絡上部署更復雜的智能合約:據ambcrypto報道,Tezos聯合創始人Arthur Breitman最近在接受采訪時表示,Tezos主網升級后基本上可以輕松地在網絡上部署更復雜的智能合約,并補充說,可以在一個區塊內完成更多的事情,其主要原因是,當網絡啟動時是非常新的,并且限制設置在一個非常保守的值。注:5月30日,公鏈項目Tezos完成主網升級,激活了“雅典 A”提案,實現了通過鏈上投票進行公鏈升級。[2019/6/3]
由于其通用性,我們可以很容易地進行特別構造。例如,你可能有一張身份證,上面有你的全名、地址和其他個人信息。要參加某個活動,你可能需要年滿18歲并持有有效門票。你可能不希望隨便一個人或在線系統看到你的地址,或冒著身份證被盜的風險。有了ZKP,你就可以證明這一點:
你持有有效身份證件
該身份證在過去5年內由認可機構簽發
身份證最近未被吊銷或報失
年滿18周歲
你已購買有效的活動門票
門票之前未被使用過
除上述情況外,不透露你的任何其他信息。
有了ZKP,我們現在就有了一個好的工具,可以讓人們以各種方式進行協調,尤其是在需要隱私和簡潔的系統中。我們將在應用部分看到更多的例子。
很多時候,你的想象力才是你所能表達的極限。
為什么是現在?
為什么現在開始流行ZKP?這既有技術原因,也有社會原因。
從技術上講,ZKP相當新。從數學上講,它們只存在了幾十年。與計算本身類似,即使在理論上,它也需要一段時間才能變得高性能和實用。
在此之后,必須有人將這些論文和密碼協議轉化為實用的東西。第一個值得注意的例子是2016年的隱私保護加密貨幣Zcash。它最初是由密碼朋克和研究人員撰寫的一篇論文)。第一個版本是將研究和工程應用于最終產品和系統的一項令人印象深刻的壯舉。雖然該系統存在許多問題,而且遠非最佳,但它是在現實世界中使用ZKP的第一個真正實用的例子。這向人們表明,在現實世界中使用ZKP是可能的,也是切實可行的。這導致了ZKP研究和工程工作的爆炸式增長,尤其是在最近幾年。
以太坊和Zcash等公共區塊鏈在其中發揮了重要作用。區塊鏈最擅長的是抗審查和透明度。這是以缺乏隱私和可擴展性為代價的,而這正是ZKP所擅長的。從這個意義上說,它們是天然的契合點。再加上區塊鏈社區對高級加密技術的需求,難怪很多創新都發生在區塊鏈和ZKP的交叉點上。由于許多資本雄厚的區塊鏈項目,這也讓傳統上學術性較強的研究和工程領域有了更多投資。
考慮到所涉及的復雜性,包括應用數學、密碼學、關于特定ZKP系統的論文、新型證明系統的實施、工具以及涉及其他復雜領域的應用,事情發展得非常快。每年,甚至每個月,都會有新的研究論文,其中包括新技術、改進的工具和應用。新研究成果與實施和應用之間的反饋環越來越緊密。雖然難度依然很大,但入門卻越來越容易。隨著工具的改進,開發人員需要了解ZKP背后的數學知識也越來越少。
就ZKP的性能而言,摩爾定律的形式正在發生。摩爾定律是指晶體管的數量大約每兩年翻一番。這就是計算機革命的起因。在ZKPs中,幾年前還只是白日夢、被視為完全不切實際的項目,現在已經開始實施,比如zkVM和zkML。根據經驗,在ZKP領域,每隔一年左右就會有一個數量級的進步。這是因為它是一項新技術,可以在堆棧的多個層面進行積極優化。我們沒有理由相信這種趨勢會很快停止。
ZKP
我們有一個特殊的程序,可以編碼用戶關心的邏輯。例如,證明他們知道得出某個哈希值的數據。與普通的計算機程序不同,這個程序是由約束組成的。我們要證明的是,所有約束條件都與隱私和公共輸入保持一致。
最后,驗證器將這個簡短的證明與驗證密鑰、公共輸入和包含所有約束條件的特殊程序結合起來,并在排除合理懷疑的情況下確信證明是正確的,然后輸出"true"。如果不正確,則輸出"假"。
以上觀點略顯簡單,但卻抓住了事情的本質。
約束
構成上述特殊程序的約束條件是什么?約束是一種限制或制約。例如,"1到9之間的數字"就是一個約束。數字7滿足這個約束,而數字11不滿足。如何將程序寫成一組約束?這本身就是一門藝術,讓我們先看一個簡單的例子:數獨
在數獨游戲中,我們的目標是在棋盤上找到滿足某些約束條件的解。每一行都必須包含數字1到9,但只能包含一次。每列和每個3x3子方格也是如此。我們會得到一些初始的起始位置,然后我們的任務就是以滿足所有這些約束條件的方式填入其余的位置。最棘手的部分是找到同時滿足所有限制條件的數字。
比特幣2017年表現再次超越各大傳統資產,2018年將輕松破4萬美元?:就在2017年擊敗所有證券、股票、黃金和資產的價格上漲和利潤率之后,比特幣已經開啟了新的一年。比特幣投資者Mike Novogratz重申他的比特幣目標價格為50000美元,他公開表示他對比特幣市值在2018年底超過1萬億美元很有信心。[2018/1/2]
數獨
通過ZKP,證明者可以構建一個證明,證明他們知道某個謎題的解。在此案例中,證明包括使用一些公共輸入和一些隱私輸入以及一個電路。電路由表達謎題的所有約束條件組成。
之所以稱其為電路,是因為這些約束條件彼此相關,我們將這些約束條件連接起來,有點像電路。在此案例中,電路處理的不是電流,而是數值。例如,我們不能把任何類似"香蕉"的值添加到我們的行約束中,它必須是一個數字,而且這個數字必須介于1和9之間,以此類推。
驗證者擁有相同的電路和公共輸入,可以驗證證明者發送給他們的證明。如果證明是有效的,驗證者就會確信證明者已經找到了該謎題的解。
事實證明,很多問題都可以用一組約束來表示。事實上,我們能用計算機解決的任何問題都可以用一組約束來表示。
數獨示例
讓我們把學到的有關ZKP各部分的知識應用到上面的數獨例子中。
在數獨游戲中,我們的特殊程序電路需要兩個輸入:
作為公共輸入的數獨謎題
數獨謎題的解作為隱私輸入
電路由一系列約束條件組成。所有這些約束條件都必須為真。這些約束條件是這樣的
謎題和謎底中的所有數字必須介于1和9之間
解決方案必須是謎題中所有位置均放置了數字
所有行中必須包含從1到9的數字,且每個數字只出現一次
所有列中必須包含從1到9的數字,且每個數字只出現一次
所有子方格中必須包含從1到9的數字,且每個數字只出現一次
如果一道謎題及其解法的所有這些限制條件都為真,那么我們就知道它是一個有效的解法。
證明者Peggy使用她的神奇證明者密鑰、謎題和解法,將其與特殊程序結合,創建一個證明。證明非常簡短,不到1000個字符。證明是自足的,驗證者可以通過它獲得驗證證明所需的所有信息。你可以把它想象成一個魔法咒語,它能實現你的愿望,而你無需了解其中的細節。
下面是19世紀一位威爾士醫生寫的一本魔法書中的咒語:
魔法咒語
下面是一個由Circom/snarkjs庫生成的零知識證明示例:
Circom證明
在此案例中,魔法確實起作用了。
驗證者Victor使用他的驗證密鑰、原始謎題輸入,驗證Peggy發送的證明是否正確。如果正確,則輸出"真";如果不正確,則輸出"假"。咒語要么有效,要么無效。這樣,Victor就確信Peggy知道那個特定謎題的解法,而實際上并沒有看到解法。就是這樣。
一些特性
我們說ZKP具有某些技術特性:
完備性--如果聲明為真,那么驗證者將被證明所說服
可靠性--如果語句為假,驗證者將不會被證明所說服
零知識--如果語句為真,除了它為真這一事實外,不會透露任何其他信息
此外,對于zk-SNARKs來說,證明是簡潔的,這意味著它基本上不會隨著程序變得越來越復雜而變大。
在實際的ZKP中,我們還關心許多其他特性:
系統做了哪些數學假設?
安全性如何?
是否需要可信的設置?
生成證明有多難?時間和其他資源
驗證證明有多難?時間和其他資源
ZKP系統是否允許將多個證明聚合在一起?
是否有可供程序員使用的ZKP系統庫?
用于編寫特定ZKP系統程序的語言的表現力如何?
等等。
正如你所看到的,ZKP有很多考慮因素和不同的變體。不過不用擔心,要點基本上都是一樣的,而且根據你的興趣所在,你可以對其中涉及的許多技術細節一無所知。回到動物園的比喻,就像對待動物一樣,你可能并不想成為一名生物學家。相反,你可能想和一些動物打交道,或者你只是想養一只寵物,甚至只是想摸摸你朋友的狗。
應用
本節將舉例說明ZK當前和未來的應用
ZKP有許多應用。一般來說,我們仍處于早期階段。很多焦點仍然集中在底層協議和基礎設施,以及區塊鏈的特定應用上。要想更好地理解區塊鏈的具體例子,最好對公共區塊鏈的工作原理及其面臨的挑戰有一定的了解。不過,這并不是必要條件。在本節中,我們將介紹一些更有趣的應用。我們將先看看現在已經上線的應用,然后再看看即將上線的應用。
未來已來。只是分布還不均勻。來自威廉-吉布森
ZKP魔法
當前已應用
電子現金:要在網上建立類似現金的支付系統,就必須像實物現金一樣具有可替代性和私密性。可替代性是指一種商品可被另一種相同商品替代的特性。也就是說,你的錢和我的錢沒有區別,它們都是同樣有效的支付形式。與比特幣或以太坊不同,我們可以使用ZK使交易歷史隱私化。這樣,你的交易歷史就不會被公開,從而確保電子現金的可替代性。目前,Zcash等系統以及TornadoCash等相關系統都采用了這種方式。
匿名信號:通常,我們可能需要在不暴露身份的情況下證明自己隸屬于一個具有某些特征的群體。其中一個例子是證明自己是某個群體的一員;另一個例子是投票。這意味著你不會把自己的身份與敏感的行為聯系在一起,比如你投票給哪個政黨,或者泄露其他不必要的信息。目前,Semaphore等系統中就有類似的機制,而且還有很多變種。
ZKRollup:允許更多、更便宜、更快速的交易。以太坊區塊鏈空間有限,價格昂貴,需求量大。我們使用所謂的第二層Rollup,與主區塊鏈分開進行交易。一旦有一定數量的交易進入L2層,它就會將其"打包"到L1層。ZKP在這方面非常有用,因為我們可以證明交易執行正確,創建一個簡潔的證明,只占用L1上的少量空間。這就使得交易對用戶來說更便宜、更快捷,同時具有近乎同等的安全性。由于證明整個以太坊虛擬機執行的復雜性,許多ZKRollup解決方案從關注簡單商資產的交換開始。目前在Loopring、zkSyncLite、dYdX和Starknet等系統中都有應用。
ZK-EVM:與ZKRollup類似,但具有通用性,因為可以執行任何類型的交易或程序。以太坊有一個EVM,它就像一臺全球共享的通用計算機。通過使用ZKP編寫該機器的邏輯,我們可以證明在以太坊上編寫的任何程序的正確執行,并構建一個簡潔的證明,證明該程序被正確執行。這有多種使用場景,但最直接的使用場景是擴展和允許更便宜、更快速的交易。目前已在PolygonzkEVM、zkSyncEra等系統中使用,其他一些ZKEVM系統也即將使用。
**ZK-VM:**部分原因是針對像EVM這樣的"SNARK不友好"平臺的復雜性,許多項目選擇做一個獨立于以太坊的新區塊鏈。這意味著他們可以首先優化虛擬機,以便更好地與ZK協同工作。根據具體系統的不同,這可以實現區塊鏈狀態的隱私和簡潔驗證。Mina已經上線,Aleo等系統正在積極開發中。
對snark不友好的平臺或函數指的是大多數現代計算機原語都是為特定的計算機體系結構設計的。這種架構與編寫約束時的架構非常不同。例如,SHA256哈希函數就是一個典型的snark不友好哈希。有些人創建了SNARK或zk友好的函數,例如Poseidon哈希函數,專門設計用于zkp。這些在zkp中更容易實現,并且效率可以提高100倍或更多
黑暗森林:黑暗森林是一款不完全信息實時策略游戲。基于ZK的不完全信息游戲有一個"加密戰爭迷霧",玩家只能看到世界的一部分,這是ZK強制實施的。與《星際爭霸》等傳統游戲相比,即使是中心化服務器也無法獲得所有信息。由于其程序化的特性,這使得新穎的游戲方式成為可能。
ZK跨鏈橋-跨鏈橋允許你在不同的區塊鏈和系統之間移動資產。這些跨鏈橋很難保證安全,而且經常被黑客攻擊。有了ZK,我們可以更安全、更快速地連接資產,而無需依賴可信的第三方或容易出錯的方法。目前,zkBridge已投入使用,SuccinctLabs等項目也正在進行相關工作。
隱私身份:隨著越來越多的獨立系統需要并托管我們的在線身份,個人最好能夠擁有、整合并保持這些去中心化的在線身份的私密性。目前,Sismo等項目已經實現了這一點,其他項目也在開發類似的系統。
以上只是幾個例子,絕不完整。我們還沒有談到隱私不可抵賴聲譽、導出Web2聲譽、抗sybil拒絕服務保護、抗脅迫證明、復制證明、匿名空投、分離度證明等。
即將來臨的
ZK-EVM:ZK-EVM有不同的類型,實現起來更具挑戰性的是那些完全等同于以太坊的ZK-EVM。其他ZK-EVM會采取一些捷徑,讓生成證明變得更容易。完全等同于以太坊的ZK-EVM與當前的以太坊系統沒有區別。這意味著我們可以用簡潔的證明來證明存在的每一個區塊的正確執行。你可以用手機驗證整個鏈的完整性,完全依靠數學,而無需信任第三方或使用昂貴的機器。目前ZK-EVM社區團隊正在開發中。
通用可證明計算:世界上大多數計算都不在EVM中進行,而是在其他系統中進行。基于WASM和LLVM的程序非常常見。我們可以利用ZK-EVM中的相同方法,進行通用的隱私可證明計算。例如,我們可以在不透露任何其他信息的情況下證明數據庫包含特定記錄。目前,許多不同的團隊,例如DelphinusLabs、RISCZero、OrochiNetwork和nil.foundation,都在研究這一技術。
ZK機器學習:我們可以在鏈外私下證明某些計算是正確完成的,然后公布計算正確的證明。這意味著,我們可以使用隱私數據來訓練更好的模型,而不會泄露這些數據。例如,敏感文件、語音,甚至DNA等用于發現健康問題的數據。這既提高了可擴展性,又保護了用戶隱私。目前已有一些概念驗證,如MNIST,人們正在研究更復雜的東西,如ZKP內部的神經網絡。
照片真實性:證明照片和視頻等內容的出處,包括標準的后期處理編輯。也就是說,證明照片是在特定時間和地點拍攝的,并且只進行了基本的大小調整、裁剪和灰度使用。已經有一些概念證明工作。
合規性:證明隱私交易符合某些規定,或某項資產不在特定的黑名單上。在不泄露資產的情況下證明交易所有償付能力。EspressoLabs等系統已經做了一些工作,有些系統已經有了簡單的版本。
隱藏意圖:公共區塊鏈的用戶有他們想要實現的特定目標,這些目標可以用意圖來表達。例如,用戶可能想用一種代幣兌換另一種代幣。用戶可以將自己的意圖告訴其他用戶,并與合適的對手方進行匹配。最好能對這些意圖進行屏蔽或完全保密。目前,Anoma正在從屏蔽意向匹配開始研究。要使意圖匹配完全保密,可能需要在密碼學方面取得突破性進展,這與本節最后一個例子類似。
自主世界:這是《黑暗森林》等作品的延續。世界可以是物理的,也可以是概念的,如納尼亞世界、基督教、美元世界、比特幣或英聯邦法律。根據這些世界的運行情況,如果任何人都可以在不破壞其客觀性的情況下改變規則,那么這些世界就可以是自主的。目前,0xPARC基金會正在游戲和創建這些世界的背景下進行探索。
數據真實性證明:從網絡應用程序中導出數據,并以非公開方式證明相關事實。使用TLS協議,這意味著它可以在任何現代網站上運行。目前由TLSNotary負責開發。
核裁軍:允許檢查核設施的人在不檢查任何敏感的內部工作原理的情況下,確認某個物體是否是核武器。已有物理模擬工作的論文。
和談與高風險談判:在談判中,人們通常會有一些硬性限制,他們不希望向對方透露這些限制,以削弱自己的談判能力。通過對這些限制進行明確編碼,雙方可以就一些高度復雜的領域進行談判,并在不透露其精確參數和限制細節的情況下達成協議。這樣,互不信任的雙方也能達成某種協議。這可能需要在多方計算方面取得一些突破,它允許我們在共享秘密的基礎上進行計算。
同樣,這里并沒有提到人們正在研究或思考的所有類型的問題。未來肯定還會有更多的東西。正如你所看到的,我們可以用ZK做很多事情。
你可能會問,為什么這些應用中有很多涉及區塊鏈。上一節"為什么是現在?"已經部分回答了這個問題。ZK是一種與以太坊等區塊鏈正交的技術,我們可以不使用區塊鏈,但在很多情況下,它只是一種可以利用的好工具。
同樣,從事這些工作的人群和他們關心的直接問題往往是重疊的。隨著這個領域的成熟,我們可以預見,ZK應用中的"區塊鏈"部分將不再僅僅是一個實施細節,而這在某種程度上已經發生了。再進一步看,"ZK"部分也很可能會消失,它將只是一個碰巧使用ZKP的應用程序。
最后,當在線信息和類似的加密技術被開發出來時,它是由軍方和互聯網公司使用和開發的。這不是郵局或某些從事實物安全運輸的公司的創新成果,即使理論上有這種可能性。
在本節的最后,我想引用巴里-懷特哈特在被問及對ZK未來的預測時的一段話作為結束語,他是一位著名的ZK研究員,在以太坊基金會的隱私和可擴展性探索團隊工作:
"到2040年,會有人因為使用零知識證明而獲得諾貝爾和平獎"。
離奇而大膽?當然。結果會是真的嗎?也許不會。但可能嗎?絕對有可能。這是一個耐人尋味的前景。將其視為真實可能的心智模式與立即將其一筆勾銷的心智模式之間有什么區別?要讓這樣的事件成為現實的結果,必須發生什么?
ZKP是一種全新的、非常有效的工具。限制我們的往往是我們對其潛在應用的想象力。
結論
本節對文章進行了總結,并提出了下一步的計劃
在本文中,我們了解了什么是ZKP、為什么要關注它們以及它們何時有用。我們還了解了它們的工作原理,以及它們為我們提供了哪些屬性。最后,我們探討了一些應用,包括當前和未來的應用。
我希望這能讓你更好地理解ZKP的本質,或許還能讓你產生一些"啊哈"時刻,并啟發你以新的方式思考問題。也許它還能幫助你在未來追隨ZKP的魔力。
在今后的文章中,我們將更深入地探討其中的一些方面,我們還將研究更多技術方面的問題,以便更好地理解ZKP的工作原理以及它們的用途。
如果某些具體內容引起了你的興趣,或者你希望在今后的文章中看到某些具體內容,請隨時通過Twitter或電子郵件與我聯系。
致謝
感謝MichelleLai、Chih-ChengLiang、JennyLin、AnnaLindegren和EveKo閱讀初稿并提供反饋。
本翻譯由DeCert.me協助支持,來DeCert碼一個未來,支持每一位開發者構建自己的可信履歷。
Tags:ZKP區塊鏈以太坊ZKP價格ZKP幣區塊鏈工程專業學什么區塊鏈存證怎么弄區塊鏈技術發展現狀和趨勢以太坊幣是什么幣
比特幣價格正試圖從26,000美元兌美元的區域重新上漲。目前價格接近27,100美元和55條簡單移動平均線。BTC/USD貨幣對的4小時圖上突破了關鍵的看跌趨勢線,阻力位在27,100美元附近.
1900/1/1 0:00:00近幾個月來,BTC銘文引起了巨大的熱議,使得BTC社區分成了兩派。而最新的升級“Recursive銘文”可能同樣具有爭議性,因為這項升級將允許銘文“間接地”突破4MB的區塊空間限制.
1900/1/1 0:00:00今天的加密貨幣價格:市場以綠色交易,因為在過去24小時內大量加密貨幣上漲。自進入新的一年以來,市場一直很樂觀。截至撰寫本文時,比特幣在過去24小時內上漲了3.45%。柴犬增加2.08%.
1900/1/1 0:00:00上一輪Defisummer的時候,隨著流動性挖礦的投機熱潮,Defi十分火熱,在高峰期甚至有人提出“Defi協議如何承受數百萬的用戶涌入?”事后看來,這個問題想的過于簡單和幼稚.
1900/1/1 0:00:0001Twitter觀點 1.Beanie:Friendtech讓散戶損失慘重ThreeinfluencersmadesixfixguresoffFriendtechinamatterofdays.
1900/1/1 0:00:002023年最值得關注的3大米姆加密貨幣:米姆加密貨幣在2023年的頭幾個月出現了顯著復蘇。盡管由于即將召開的聯邦公開市場委員會會議,預計第二個月將出現相當大的波動,但一些米姆硬幣顯示出強勁的看漲.
1900/1/1 0:00:00