簡要:
零知識證明(Zero knowledge proofs)是一種隱藏交易細節的加密技術,該技術由一批數學家於1980年代首次提出,Zcash是第一個部署該技術的加密貨幣,此後又有其他加密貨幣使用該項技術。
零知識證明用於證明某些已知資訊為真而不會直接洩露已知資訊,舉例來說,比如“系統在不公開檔案的情況下證明該檔案確實有某一句話”就是零知識證明要做的事情。所以它允許在轉賬交易中將私人資訊保密。零知識證明是間接證明,可讓您證明自己知道秘密,而不會向任何人透露秘密。您只證明自己在說真話。
在像比特幣這樣的區塊鏈網路上,我們所有的交易活動都記錄在公共分類帳本中,所有人都可以檢視。“絲綢之路”(指曾經的一個暗網網站,專門做違法交易)上的毒販被捕試圖清洗比特幣,因為國土安全部能夠追溯到他們最初的交易。毒販應該被抓,但如果美國資本主義政府腐敗或侵犯基本人權怎麼辦?像比特幣這樣的加密資產曾經承諾要擺脫那些國家的專橫統治,但是沒有隱私,會有自由嗎?這就是零知識證明想要解決的隱私問題。
我們將討論零知識證明如何工作,誰發明了零知識證明以及它們目前如何在區塊鏈和其他地方應用。
零知識證明解釋
零知識證明是一種用於密碼學的方法,用於證明某些已知資訊為真而不會直接洩露已知資訊,舉例來說,比如“系統在不公開檔案的情況下證明該檔案確實有某一句話”就是零知識證明要做的事情。所以它允許在轉賬交易中將私人資訊保密。零知識證明是間接證明,可讓您證明自己知道秘密,而不會向任何人透露秘密。您只證明自己在說真話。
概念:證明者和驗證者
在零知識證明中,基本角色是證明者和驗證者。證明者必須證明他們知道秘密,驗證者必須能夠驗證證明者在說真話。
如何做到的呢?驗證者要求證明者做一些只有在證明者肯定知道秘密的情況下才能做的事情。如果證明者是在亂猜測,最終將由驗證者的測試證明他(她)是錯誤的。如果知道秘密,那麼證明者將每次都能透過驗證者測試而不會出現問題。 就像銀行或機構要求您提供一個已知秘密單詞的字母來驗證您的身份時一樣。您不是在告訴銀行您的銀行帳戶中有什麼,只是在告訴他們您知道給定單詞的順序。
簡要歷史
1985年:Shafi Goldwasser,Silvio Micali和Charles Rackoff在一篇名為“互動式證明系統的知識複雜性”的論文中首次提出了零知識證明。 2012年:亞歷山德羅·基耶薩(Alessandro Chiesa)和一組研究人員創造了zk-SNARKs一詞。 2016年:Zcash釋出,成為第一個使用zk-SNARKs的以隱私為中心的加密貨幣。
特殊之處
Zcash是加密貨幣世界中第一個廣泛使用零知識證明的案例和應用。該隱私代幣使用一種稱為zk-SNARKs的零知識證明形式。 在我們一直在討論的基本零知識證明中,證明者和驗證者必須互動幾輪,以使驗證者確信證明者的誠實。但在zk-SNARKs中,取消了這種互動,這使得證明變得更加複雜。但是,zk-SNARK還可以使證明更加有效,在使用更少的資料情況下,這是區塊鏈網路中的一項重要條件。在區塊鏈系統中,記憶體和空間都非常寶貴,這可以保持網路的正常穩定執行。
在基於zk-SNARKs的協議中,必須存在“可信設定”才能啟動系統。如果啟動時使用的資訊落入錯誤的人手中,則可能在部署整個系統後危及整個系統。在Zcash中,啟動時使用的私鑰和對其進行處理的計算機在一次特殊儀式上被銷燬。
可信設定階段被視為有安全漏洞,因為人們需要相信設定過程中使用的資訊已被正確銷燬。為了解決zk-SNARK的缺點,建立了zk-STARK。 Zk-STARK也是一種零知識證明,它不需要易受攻擊的可信設定階段,並且聲稱比zk-SNARKs具有更高的可伸縮性和效率。
StarkWare是一家開發zk-STARKs工具包和軟體的公司,旨在使區塊鏈更加隱私和可擴充套件性。它是由建立zk-SNARK的研究人員之一亞歷山德羅·基耶薩(Alessandro Chiesa)創立的。
零知識證明可用來做什麼?
Aztec是一個專案,旨在透過構建一整套以隱私為重點的智慧合約,為現有的以太坊網路帶來零知識證明。這些完全隱私的智慧合約可用於建立具有隱私特性的以太坊代幣和去中心化自治組織(DAO)。以太坊的一個升級代號為Istanbul,是專門為降低零知識證明的成本而設計的。
其他區塊鏈也開始認真考慮隱私特性,Tron波場也在其網路上部署了zk-SNARK版本,儘管並非所有交易都是隱私的。
前景
在Facebook,Amazon和谷歌等中心化平臺上,他們透過出售個人隱私資料來牟利,並透過廣告操縱我們的行為。 在完全開放的區塊鏈網路上,我們的所有活動都被記錄並公開。零知識證明提供的是一個公共透明的網路技術,但可以保護人們免受我們數字時代的窺探者、偷窺者和爬蟲的對個人隱私侵害。