什么是零知識證明
零知識證明(Zero-Knowledge Proof,ZKP)是現代密碼學的重要組成部分。它指的是證明者在不向驗證者提供任何有用信息的情況下,說服驗證者某個假設是正確的能力。
零知識證明本質上是一個涉及兩個或多個參與方的協議,即兩個或多個參與方需要完成一項任務的一系列步驟。證明者向驗證者證明並使驗證者相信他/她知道或擁有某個特定消息,但在證明過程中不會透露關於被證明消息的任何信息給驗證者。通俗來說,證明者不僅能夠證明自己想要證明的內容,而且同時向驗證者披露“零”信息。
關於零知識證明的更多概念,已經有很多中文資料進行了介紹,這裏就不贅述了。
零知識證明在區塊鏈領域的主要應用
零知識證明技術的兩個重要特點是其在區塊鏈領域應用的主要因素:
零知識證明可以保護數據的隱私並證明其有效性,而不泄露數據信息。
零知識證明可以通過生成少量的證明來證明大量的數據,這在壓縮數據量和提高性能方面具有重要作用。
因此,零知識證明的兩個方向就是:隱私保護和區塊鏈的擴展。下面分別敘述:
隱私保護
隱私保護一直是區塊鏈中一個極其重要的概念,代表了在分布式網絡中保護交易和參與者的能力。
區塊鏈一直倡導匿名性,參與者在大多數交易中無需使用真實姓名,而可以重復使用公鑰哈希值作爲交易標識符來識別交易者。但是,這些交易只有僞名,而不是真正實現了匿名性。默認情況下,用戶的每筆交易都是公开的,一旦用戶的地址被鎖定,就可以用來審查資金來源、計算持倉位置,甚至分析用戶的鏈上活動。
零知識證明技術可以通過提交證明來確認交易的有效性,而不泄露任何信息,實現交易信息的完全匿名化。在強調隱私問題加密的發展階段,許多开發者致力於隱私公鏈的探索。零知識證明的隱私保護和數據壓縮能力是成爲公鏈組件技術的主要原因。在此期間,像Zcash和Monero這樣的項目取得了異常出色的成果。以Zcash爲例,Zcash最初採用了Pinocchio協議,於2019年切換到Groth16證明系統。
Zcash錢包地址分爲隱藏地址和透明地址。透明地址之間的交易與比特幣(BTC)交易沒有區別:發送方、接收方和交易金額都是公开可見的;隱藏地址之間的交易也會出現在公共區塊鏈上,但交易的地址、資金金額和備注字段是加密的,並且zk-SNARK將根據網絡共識規則證明交易的有效性;此外,還可以在隱藏地址和透明地址之間進行交易。
Zcash對審計和監管友好,同時保護交易隱私。隱藏地址交易的發送方和接收方可以向第三方披露交易詳細信息,以滿足見證、合規或審計需求。
可擴展性
“不可能三角”是以太坊等L1區塊鏈面臨的永恆問題。不同的鏈始終在去中心化、安全性和可擴展性之間找到平衡。
以太坊更注重去中心化和安全性,因此必須面對可擴展性的限制。以太坊上的高燃氣費和長交易確認時間嚴重影響了用戶體驗。因此,其核心开發團隊和社區一直在探索各種可擴展性解決方案。
有兩種方法可以擴展區塊鏈:
-
擴展L1區塊鏈本身,方法包括增加區塊大小或分片。即將區塊鏈網絡中的節點劃分爲幾個相對獨立的分片。
單個分片的處理規模較小,甚至只存儲部分網絡狀態。但理論上,在多個分片並行處理交易的條件下,整個網絡的吞吐量將得到提高。然而,這種方法會犧牲去中心化。
-
將L1網絡上的交易轉移到L2層,L2收集交易,然後將其發送到L1網絡進行結算。這樣,每批交易只需支付一次燃氣費,而不是每筆交易都支付燃氣費。
因此,所有交易均平均分擔燃氣費用,有效降低了每筆交易的成本。這樣,L1成爲L2上執行的所有交易的結算層。L2擴展解決方案可以解決L1的可擴展性問題,同時不犧牲去中心化和安全性。
當然,L2擴展解決方案也經歷了從狀態通道到Plasma再到Rollup的演變。目前,Rollup是最主流和潛力巨大的L2解決方案。
Rollup是指首先在鏈下進行復雜的計算和狀態維護,然後通過使用更便宜的CALLDATA通過合約調用的方式將與狀態變化相關的數據進行鏈上保存,通過將大量交易總結和打包爲一筆交易,最終在保證數據可用性的前提下提高TPS。
Rollup解決方案的共同點是強調鏈上數據的可用性。也就是說,任何人都可以根據鏈上保存的數據恢復全局狀態,從而消除由數據可用性問題引起的安全風險。
除了壓縮鏈上計算量之外,零知識證明發揮作用的另一個方面在於確保數據的正確性。
ZK Rollup解決方案始於2018年下半年。這種解決方案的關鍵在於ZK。每個ZK Rollup解決方案的狀態變化都需要由主鏈上的合約提供和驗證零知識證明。
只有通過驗證才能改變狀態。也就是說,ZK Rollup的狀態變化嚴格依賴於加密證明。(注:有關ZK Rollup原理的詳細解釋,請參考李華的《關於分層和跨鏈方法的清晰視角》)
當然,還有其他的Rollup解決方案,例如在2019年下半年形成的樂觀Rollup。它不需要對每個狀態變化進行嚴格的驗證。
它首先樂觀地假設每次變化都是正確的,然後在一定時間限制內對變化進行挑战。如果挑战成功,就證明之前的提交存在問題,提交者將受到懲罰,狀態將被回滾。
也就是說,樂觀Rollup的狀態變化依賴於經濟激勵和博弈。
ZK Rollup的突出問題是難以實現可編程性,但這兩年的技術發展似乎要突破這個瓶頸,zkEVM的實現可以實現可編程性;樂觀Rollup最關注的問題似乎是當資金從Layer 2返回時,由於挑战期的延遲問題,但中介機構可提供預付服務。
因此,樂觀Rollup解決方案的實施速度更快。但 zkEVM 可能更加具有潛力。
零知識證明的新星解決方案
在早期的零知識證明項目中,盡管Zcash和Monero在隱私保護方面表現出色,但它們只能作爲價值存儲的手段,難以與其他應用程序合作。
正如前文所述,在許多开發人員的努力下,零知識證明已經可以用於通用計算,並與智能合約相結合,以探索零知識證明技術的更大潛力。下面主要介紹今年上线的兩個項目。
Aleo:通用隱私計算公鏈
Aleo項目於2019年正式成立,其成員包括來自Google、Amazon、Facebook等公司以及UC Berkeley、Johns Hopkins、NYU、Cornell等研究型大學的世界級密碼學家、工程師、設計師和運營人員。
Aleo構建了zkCloud系統,用於保護身份和交易,而受保護的身份可以直接相互交互(例如資產轉移)或通過智能合約進行編程。在典型的公共區塊鏈中,程序在由每個網絡節點運行的全局“虛擬機”(VM)上執行。因此,網絡上的每個節點都必須重新計算(並共同批准)給定程序的每一步,這是低效的,降低了速度,並增加了用戶的成本。zkCloud通過將應用程序的運行與區塊鏈的狀態維護(鏈上+鏈下)分離,並結合遞歸的零知識證明,解決了這些限制,使Aleo能夠實現完整的可編程性和隱私保護,並具有更高的交易吞吐量。
Aleo構建了一種名爲Leo的編程語言,這種語言對於零知識證明應用程序开發人員來說更加友好,爲他們提供了更好的環境。Leo是一種受Rust啓發的靜態類型編程語言,專爲編寫私密應用程序而設計。
目前,Aleo網絡已經經過了三輪測試,目前正在積極引導生態的發展,通過積分激勵社區參與生態應用建設。
Aleo是一條公鏈,其 Prover 是通過零知識證明參與網絡建設,在前期的 Test3 中,有大約40多萬張顯卡參與測試,作爲一個測試網,這是非常大的規模了。Aleo原計劃今年三季度上线,按照目前的情況,預估可能在三季度末,或四季度上线。可持續關注。
Scroll:EVM的zk原生解決方案
Scroll Tech旨在構建一個與以太坊兼容的zk-Rollup,並建立一個強大的證明網絡。經過數月的探索,他們取得了重大的技術進展。
Scroll的目標包括:
構建完全與EVM兼容的zk-Rollup。通過驗證EVM執行過程中每個操作碼的一致性和完整性,支持對以太坊區塊的直接驗證。這樣,L1智能合約可以無縫遷移到Scroll上,而無需進行任何修改。
實現和標准化二層證明外包。Scroll設計了一個強大的外包機制,可以激勵驗證者爲他們生成零知識證明。Scroll團隊計劃將此方案標准化,以適應更廣泛的離鏈計算領域。這將开啓一個新的證明市場。开發者可以在Scroll中部署復雜的合約,無需考慮Gas限制。許多新的應用可以通過離鏈方式實現,並將證明提交到鏈上。爲此,團隊還構建了全球最快的GPU和ASIC證明器。長期目標是實現完全去中心化,並減少MEV的影響。
升級到一種新的證明系統。Scroll計劃採用一種新的分層零知識證明系統。第一層是高效的證明生成層,具備自定義電路優化和硬件高效證明算法。第二層是高效的驗證層,具備簡潔的證明和與EVM兼容的驗證算法。相較於現有解決方案,該系統有潛力支持比EVM更大的程序和更多的功能,例如隱私保護。
Scroll Tech的這些進展在zk-Rollup和二層擴展解決方案領域具有重要意義,展示了他們在兼容性、效率和去中心化方面的承諾。
Scroll 在其Alpha測試中,已經接入了大量的應用,實現了其EVM應用程序可以直接移植到Scroll的承諾。預計 Scroll 主網在3個月內上线。Scroll 主網上线後,將進一步實現去中心化的 Prover網絡,這樣給予大家更多的參與機會。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。