作者:新躍社科大學(xué)普惠金融節(jié)點 SUSS NiFT 研究員 @Jesse_meta、Beosin 研究員 @EatonAshton2、Least Authority 安全研究員 @kaplannie
不管信息是存儲在互聯(lián)網(wǎng)上還是線下檔案室,無論是出于主觀故意還是客觀意外,信息泄露事件在今天已經(jīng)屢見不鮮,無需多言。只要信息是中心化存儲,就會有受到單點攻擊的危險。只要驗證過程需要可信賴的第三方,就會存在道德風(fēng)險且效率低下。信息安全的解決至關(guān)重要,迫在眉睫。而零知識證明技術(shù)讓用戶在保護(hù)自身隱私的前提下,更高效、更安全地完成驗證。
如果說比特幣是區(qū)塊鏈帶給現(xiàn)實世界的第一大發(fā)明,提供價值存儲的新方式,以太坊的智能合約是第二大里程碑事件,解鎖創(chuàng)新的潛力,那么零知識證明的應(yīng)用是區(qū)塊鏈發(fā)展史上第三大第三大技術(shù)革新,帶來隱私和可擴展。這既是 Web3 生態(tài)的重要一環(huán),也是有潛力推動社會變革的重要基礎(chǔ)技術(shù)。
這篇文章以非技術(shù)人員的角度,介紹零知識證明的應(yīng)用場景、工作原理、發(fā)展現(xiàn)狀和未來趨勢,以期讓無技術(shù)背景的讀者了解零知識證明即將帶來的重大變革。
1.什么是零知識證明
零知識證明(ZKP)是在1985年由 Shafi Goldwasser、Silvio Micali、Chales Rackoff 合著的論文《The knowledge complexity of interactive proof systems》首次提出的數(shù)學(xué)協(xié)議,除了某一要證明的事實之外,不會透露任何其他信息。驗證者無法獲得生成證明的秘密信息。舉一個例子幫助大家理解:我要證明我知道某個人的電話號碼,我只需要能夠在眾人面前撥通那人的電話就可以證明這一事實,不需要透露那人的真實號碼。零知識證明提供了一種有效的近乎無風(fēng)險的數(shù)據(jù)分享方式。利用零知識證明,我們可以保留對數(shù)據(jù)的所有權(quán),極大地提高隱私保護(hù),有望使數(shù)據(jù)泄露事件成為過去式。
零知識證明具有三個特性:
完整性
如果一個聲明是真實的,誠實的驗證者會被誠實的證明者說服。即對的錯不了。
合理性
如果一個聲明是錯誤的,在絕大多數(shù)情況下,欺騙的證明者不能讓誠實的驗證者相信虛假的聲明。即錯的對不了。
零知識
如果一個聲明是真實的,驗證者除了能得知這聲明是真實的,之外不能獲得任何多余的信息。
零知識證明存在極小的概率產(chǎn)生合理性誤差,即一個作弊的證明者可能使驗證者相信一個錯誤的聲明。零知識證明是概率性的證明,而不是確定性的證明,但我們可以通過一些技術(shù)將合理性誤差降低到可以忽略不計。
2.零知識證明的應(yīng)用
零知識證明最重要的兩個應(yīng)用場景是隱私和可拓展。
2.1 隱私
零知識證明允許用戶在沒有透露個人詳細(xì)信息的情況下,安全地分享必要的信息來獲得商品和服務(wù),免受黑客攻擊和個人身份信息的泄露。隨著數(shù)字和物理領(lǐng)域的逐漸融合,零知識證明的隱私保護(hù)功能對于 Web3 乃至 Web3 以外的信息安全變得至關(guān)重要。如果沒有零知識證明,用戶信息就會存在受信任的第三方數(shù)據(jù)庫,有受到黑客攻擊的潛在危險。零知識證明在區(qū)塊鏈中的第一應(yīng)用案例是隱私幣Zcash,用來隱藏交易細(xì)節(jié)。
2.1.1 身份信息保護(hù)和驗證
在網(wǎng)上活動中,我們經(jīng)常需要提供諸如姓名、出生日期、電子郵件、復(fù)雜的密碼來證明我們是有合法使用權(quán)限的用戶。因此,我們也常在網(wǎng)上留下了不愿透露的敏感信息。如今接到直呼我們姓名的詐騙電話已經(jīng)屢見不鮮,可見個人信息泄露的情況十分嚴(yán)重。
我們可以利用區(qū)塊鏈技術(shù),賦予每個人一個包含個人數(shù)據(jù)的特殊加密數(shù)字標(biāo)識符。這個數(shù)字標(biāo)識符可以構(gòu)建去中心化身份,且不可能在其所有者不知情的情況下被偽造或改變。去中心化身份可以由用戶來控制對個人身份的訪問權(quán)限,在不透露護(hù)照細(xì)節(jié)的情況下證明公民身份,簡化了認(rèn)證過程,還減少了用戶由于遺忘密碼而失去訪問權(quán)限的事件發(fā)生。零知識證明由能證明用戶身份的公開數(shù)據(jù)和帶有用戶信息的隱私數(shù)據(jù)生成,可用于用戶訪問服務(wù)時的身份驗證。這既減少了繁瑣的驗證流程,提升了用戶體驗,又避免用戶信息的中心化存儲。
此外,零知識證明還可以在構(gòu)建私人信譽系統(tǒng),允許服務(wù)機構(gòu)在用戶不暴露身份的情況下驗證其是否符合某些信譽標(biāo)準(zhǔn)。用戶可以從Facebook、Twitter和Github等平臺在掩蓋具體來源賬號的前提下,匿名輸出聲譽。
2.1.2 匿名支付
使用銀行卡支付的交易細(xì)節(jié)通常對多方可見,包括支付提供商、銀行和政府等相關(guān)方,這在一定程度上暴露了普通公民的隱私,用戶需要信任相關(guān)方不作惡。
加密貨幣可以使支付擺脫第三方,直接進(jìn)行點對點交易。但目前主流公鏈上的交易公開可見,雖然用戶地址匿名,依然存在通過鏈上的關(guān)聯(lián)地址和鏈下如交易所kyc、Twitter信息等數(shù)據(jù)分析來找到現(xiàn)實世界身份。如果知道一個人的錢包地址,相當(dāng)于可以隨時查看個人的銀行賬戶余額,甚至可能對用戶身份、財產(chǎn)造成威脅。
而零知識證明可以從隱私幣、隱私應(yīng)用和隱私公鏈三個層次來提供匿名支付。隱私幣Zcash,隱藏了包括發(fā)送方、接收方地址、資產(chǎn)類型、數(shù)量和時間等交易細(xì)節(jié)。Tornado Cash 是以太坊上的去中心化應(yīng)用,使用零知識證明混淆交易細(xì)節(jié)來提供隱私轉(zhuǎn)賬(但也多被用于黑客洗錢)。Aleo 是旨在從協(xié)議層面為應(yīng)用程序提供隱私功能的L1區(qū)塊鏈。
2.1.3 誠實行為
零知識證明可以在保留隱私的前提下促進(jìn)誠實行為。協(xié)議可以要求用戶提交零知識證明來證明其誠實行為。由于零知識證明的合理性(錯的對不了),用戶必須根據(jù)協(xié)議要求做出誠實的行為才可以提交有效的證明。
MACI(Minimal Anti-Collusion Infrastructure,最小反串謀基礎(chǔ)設(shè)施)就是一個促進(jìn)誠實的應(yīng)用場景,防止在鏈上投票或其他形式的決策過程中發(fā)生串謀。該系統(tǒng)利用密鑰對和零知識證明技術(shù)來實現(xiàn)這一目標(biāo)。在MACI中,用戶將他們的公鑰注冊到一個智能合約中,并通過加密的消息將他們的投票發(fā)送到合約中。MACI的防串謀特性允許投票者改變他們的公鑰,以防止其他人了解他們的投票選擇。協(xié)調(diào)者在投票期結(jié)束時用零知識證明來證明他們已經(jīng)正確處理了所有消息,且最終的投票結(jié)果是所有有效票數(shù)的總和。這保證了投票的完整性和公正性。
2.1.4 個人信息核查
當(dāng)我們想要獲取貸款時,可以從公司拿一個數(shù)字收入證明來申請貸款。這個證明的合法性容易在密碼學(xué)上得到檢查。銀行可以用零知識證明來驗證我們的收入是否達(dá)到了規(guī)定的最低限度,但得不到敏感的具體信息。
2.1.5 結(jié)合機器學(xué)習(xí)挖掘私有數(shù)據(jù)潛能
在訓(xùn)練機器學(xué)習(xí)模型時,通常需要大量的數(shù)據(jù)。通過使用零知識證明,數(shù)據(jù)擁有者可以證明他們的數(shù)據(jù)滿足模型訓(xùn)練的要求,而無需實際公開這些數(shù)據(jù)。這有利于讓私有數(shù)據(jù)發(fā)揮作用,并且實現(xiàn)貨幣化。
此外,零知識證明可以允許模型創(chuàng)建者證明他們的模型滿足某些性能指標(biāo),但無需公開模型的細(xì)節(jié),以防止他人復(fù)制或篡改他們的模型。
2.2 可擴展
隨著區(qū)塊鏈用戶的增多,區(qū)塊鏈上需要進(jìn)行大量的計算,造成了交易擁堵。有些區(qū)塊鏈會走分片的擴展路線,但這需要對區(qū)塊鏈的基礎(chǔ)層進(jìn)行大量的復(fù)雜的修改,可能會威脅到區(qū)塊鏈的安全性。另外一個較為可行的方案是走ZK-Rollup路線,利用可驗證計算,將計算外包給另外一條鏈上的實體來執(zhí)行,然后將零知識證明和可驗證結(jié)果一起提交到主鏈上以供驗證真實性。零知識證明保證交易的真實性,主鏈只需將結(jié)果更新到狀態(tài),不需要存儲細(xì)節(jié)或重放計算, 也不需要等待其他人來討論交易的真實與否,極大地提高效率和擴展能力。開發(fā)者可借助零知識證明,設(shè)計可以運行在如手機這樣的普通硬件上的輕節(jié)點 dapps,更有利于 Web3 走向大眾。
零知識證明的擴展既可運用在在一層網(wǎng)絡(luò)上,如 Mina Protocol,也可以運用二層網(wǎng)絡(luò) ZK - rollups。
3.零知識證明如何工作
Dmitry Laverenov (2019)把零知識證明結(jié)構(gòu)分為交互式和非交互式。
3.1 交互式零知識證明
交互式零知識證明的基本形式由三個步驟構(gòu)成:證據(jù)、挑戰(zhàn)者和回應(yīng)
證據(jù):隱藏的秘密信息就是證明者的證據(jù)。這些證據(jù)建立一系列只能由知道這些信息的人正確回答的問題。證明者開始隨機抽取問題,把計算答案發(fā)給驗證者來進(jìn)行證明。
挑戰(zhàn):驗證者從集合中隨機挑選另一個問題,要求證明者回答。
回應(yīng):證明者接受問題,計算答案后將結(jié)果返還給驗證者。證明者的回應(yīng)能夠使驗證者檢查證明者是否知道這些證據(jù)。
這個過程可以重復(fù)多次,直到證明者在不知道秘密信息卻猜出正確答案的概率變得足夠低。舉一個簡化的數(shù)學(xué)例子,如果證明者在不知道秘密信息卻能猜出正確答案的概率為 1/2,重復(fù)交互十次,證明者每次都命中的概率僅有萬分之 9.7,想讓驗證者錯誤地認(rèn)可虛假證明的可能性極低。
3.2 非交互式零知識證明
交互式零知識證明具有局限性,一方面是需要證明者和驗證者同時存在并進(jìn)行重復(fù)驗證,另一方面是每計算一個新的證明都需要證明者和驗證者傳遞一組信息,證明不可在獨立的驗證中重復(fù)使用。
為了解決交互式零知識證明的局限性,Manuel Blum, Paul Feldman, 和 Silvio Micali 提出了非交互式零知識證明,由證明者和驗證者共享密鑰,且僅需進(jìn)行一輪驗證來使得零知識證明更加有效。證明者將秘密信息通過特殊算法來計算生成一個零知識證明,發(fā)送給驗證者。驗證者使用另外一種算法檢查證明者是否知道秘密信息。該零知識證明一旦生成,任何有共享密鑰和驗證算法的人都可以進(jìn)行驗證。
非交互式零知識證明是零知識證明技術(shù)的一大突破,促進(jìn)了今天使用零知識證明系統(tǒng)的發(fā)展。主要方法有 ZK-SNARK 和 ZK-STARK。
4. 零知識證明的主要技術(shù)路徑
Alchemy(2022)將零知識證明的技術(shù)路徑分為 ZK-SNARK、ZK-STARK 和 遞歸ZK-SNARK。
4.1 ZK-SNARK
ZK-SNARKs 是一個零知識的簡潔的非交互式的證明。
公鏈要確保在網(wǎng)絡(luò)上執(zhí)行交易的正確性,需要通過讓其他計算機(節(jié)點)重新運行每筆交易來實現(xiàn)。但這種方法會使每個節(jié)點重新執(zhí)行每筆交易,會減慢網(wǎng)絡(luò)的速度,限制可擴展性。節(jié)點還必須存儲交易數(shù)據(jù),導(dǎo)致區(qū)塊鏈的規(guī)模呈指數(shù)級增長。
對于這些限制,ZK-SNARK就發(fā)揮了作用。它可以證明在鏈外進(jìn)行的計算的正確性,而不需要節(jié)點重放計算的每一步。這也消除了節(jié)點對存儲多余交易數(shù)據(jù)的需求,提高網(wǎng)絡(luò)的吞吐量。
使用 SNARK 驗證鏈外計算將計算編碼為一個數(shù)學(xué)表達(dá)式來構(gòu)成有效性證明。驗證者檢查證明的正確性。若證明通過了所有檢查,那么底層計算就被認(rèn)為是有效的。有效性證明的大小要比它所驗證的計算小很多倍,因此我們稱 SNARKs 是簡潔的原因。
大多數(shù)使用 ZK-SNARK 的ZK Rollup 遵循以下步驟。
1. L2 的用戶簽署交易后提交給驗證者。
2. 驗證者利用密碼學(xué)將多個交易壓縮生成相應(yīng)的有效性證明(SNARK)。
3. L1鏈上的智能合約對有效性證明進(jìn)行驗證,決定了這批交易是否發(fā)布到主鏈上。
值得一提的是ZK-SNARK 需要進(jìn)行可信設(shè)置。在這階段,密鑰生成器會獲取一個程序和一個秘密參數(shù)來生成兩個可用的公鑰,分別用于創(chuàng)建證明和驗證證明。這兩個公鑰只需通過一個可信的設(shè)置儀式生成一次公共參數(shù),就可供希望參與零知識協(xié)議的各方多次使用。用戶需要相信可信設(shè)置儀式的參與者不作惡,且沒有辦法評估參與者的誠實性。知道秘密參數(shù)便可生成假證明,欺騙驗證者,因此存在潛在安全隱患。目前有研究員在探索 ZK-SNARK 無需信任假設(shè)的方案。
優(yōu)勢
1. 安全性
ZK rollup 被認(rèn)為比 OP rollup 更安全的擴展方案,因為 ZK-SNARK 使用了先進(jìn)的加密安全機制,很難欺騙驗證者和進(jìn)行惡意行為。
2. 高吞吐量
ZK-SNARK 減少了以太坊底層的計算量,緩解了主網(wǎng)堵塞情況,鏈下計算分擔(dān)交易費用,帶來更快的交易速度。
3. 小證明尺寸
SNARK證明的小尺寸使它們?nèi)菀自谥麈溕系玫津炞C,這意味著驗證鏈下交易的 Gas Fee 較低,減少了用戶的成本。
局限
1. 相對中心化
大多數(shù)時候都依賴于一個可信的設(shè)置。這和區(qū)塊鏈去信任的初衷相違背。
用ZK-SNARK生成有效性證明是一個計算密集型的過程,證明者必須投資于專門的硬件。這些硬件價格昂貴,只有少數(shù)人負(fù)擔(dān)得起,因此 ZK-SNARK的證明過程是高度集中的。
2.?ZK-SNARK?使用橢圓曲線密碼學(xué)(ECC)來加密用于產(chǎn)生有效性證明的信息,目前相對安全,但量子計算的進(jìn)步可能會打破其安全模型。
使用 ZK SNARK?的項目
Polygon Hermez
Polygon 在2021年 以 2.5 億美元并購 Hermez,成為首個兩個區(qū)塊鏈網(wǎng)絡(luò)全面并購的案例。Hermez 給 Polygon 快速增長的用戶群帶來的 ZK 技術(shù)和工具,使 Polygon 獲得開發(fā) zkEVM 的支持。Hermez 1.0 是支付平臺,把一批交易在鏈外執(zhí)行,允許用戶便捷地把 ERC-20 代幣從一個 Hermez 賬戶轉(zhuǎn)移到另一個 Hermez 賬戶,每秒交易可達(dá) 2000次。
Hermez 2.0 作為一個零知識的 zkEVM 以透明方式執(zhí)行以太坊交易,包括具有零知識驗證的智能合約。其可與以太坊完全兼容,無需對智能合約代碼進(jìn)行太多改動,方便開發(fā)者將L1的項目部署到 Polygon Hermez 上。Hermez 1.0 使用 SNARK-proofs,2.0 中同時使用 SNARK-proofs 和 STARK-proofs。在 2.0,使用 STARK-proof 證明鏈外交易的有效性。但 STARK-proof 在主鏈上驗證的成本很高,因此引入 SNARK-proof 來驗證 STARK 。
zkSync
Matter Labs 于 2020 年推出的 zkSync 1.0 不支持智能合約,主要用于交易或轉(zhuǎn)賬。支持智能合約的 ZkSync 2.0 已于 2023 年 3 月份公開上線主網(wǎng)。
ZkSync 把以太坊上的智能合約源代碼 Solidity 編譯為 Yul 來實現(xiàn) EVM 的兼容性。Yul 是可以編譯成不同 EVM 的字節(jié)碼的中間語言。使用 LLVM 編譯器框架可以將 Yul 代碼重新編譯為為 zkSync 的 zkEVM 設(shè)計的自定義、電路兼容的字節(jié)碼集。通過這種方法,免除通過更高級別的代碼對 EVM 執(zhí)行中的所有步驟進(jìn)行 zk 證明,從而在保持高性能的同時更容易使證明過程去中心化。未來還可以通過構(gòu)建新的編譯器前端來添加對 Rust、Javascript 或其他語言的支持,增加 zkEVM 架構(gòu)的靈活性和更多的開發(fā)者。
Aztec
Aztec是第一個混合型zkRollup,在一個環(huán)境中同時實現(xiàn)公共和私有智能合約的執(zhí)行。這是一個零知識的執(zhí)行環(huán)境,而非zkEVM。通過將公共和私有執(zhí)行合并到單個混合匯總中來實現(xiàn)機密性,例如公開AMM的隱私交易、公開游戲中的私密對話、公開DAO的隱私投票等等。
4.2 ZK-STARK
ZK-STARK 不需要可信的設(shè)置。ZK-STARK 是 for Zero-Knowledge Scalable Transparent Argument of Knowledge 的縮寫。相比 ZK-SNARK, ZK- STARK 有更好的可拓展性和和透明性。
優(yōu)勢
1. 去信任
ZK-STARK 公開可驗證隨機來取代可信設(shè)置,減少對參與人的依賴,提高協(xié)議安全性。
2. 更強的擴展能力
即使底層計算的復(fù)雜性呈指數(shù)級增長,ZK-STARK依然保持了較低的證明和驗證時間,而非像 ZK-SNARK 線性增長。
3. 更高的安全保證
ZK-STARK 使用抗碰撞哈希值進(jìn)行加密,而不是 ZK-SNARK 中使用的橢圓曲線方案,可抗量子計算的攻擊。
局限
1. 更大的證明尺寸
ZK-STARK 證明尺寸更大,使得在主網(wǎng)驗證的成更更高。
2.較低的采用率
ZK-SNARK 是零知識證明是區(qū)塊鏈中的第一個實際應(yīng)用,因此大多數(shù) ZK rollup采用ZK-SNARK, 具有更成熟的開發(fā)者系統(tǒng)和工具。盡管 ZK-STARK 也有以太坊基金會的支持,但是相比之下采用率不足,基礎(chǔ)工具還有待完善。
哪些項目使用 ZK-STARK?
Polygon Miden
Polygon Miden,一個基于Ethereum L2的擴展解決方案,利用zk-STARK技術(shù)將大量L2交易集成到單一的以太坊交易中,從而提升了處理能力并降低了交易成本。在不進(jìn)行分片的情況下,Polygon Miden可以在5秒內(nèi)產(chǎn)生一個區(qū)塊,并且其TPS可以達(dá)到1000以上。而在進(jìn)行分片后,其TPS可高達(dá)10,000。用戶只需要15分鐘,就能將資金從Polygon Miden提現(xiàn)到Ethereum。Polygon Miden的核心功能是一個基于STARK的圖靈完備虛擬機——Miden VM,它使得合約的形式化驗證變得更為簡便。
StarkEx 和 StarkNet
StarkEx 是一個需要許可的、為特定應(yīng)用程序定制的擴展解決方案的框架。項目可以使用 StarkEx 來進(jìn)行低成本的鏈下計算,生成證明執(zhí)行正確性的 STARK 證明。這樣的證明包含 12,000–500,000 筆交易。最后將證明發(fā)送到鏈上的 STARK 驗證器,驗證正確后接受狀態(tài)更新。在 StarkEx 上部署的應(yīng)用程序包括永續(xù)期權(quán) dYdX、NFT L2 Immutable、體育數(shù)字卡牌交易市場 Sorare 和多鏈 DeFi 聚合器 rhino.fi。
StarkNet 是一個無需許可的 L2,任何人員都可以在其中部署以 Cairo 語言開發(fā)的智能合約。部署在 StarkNet 上的合約之間可以進(jìn)行交互來構(gòu)建新的可組合協(xié)議。與應(yīng)用程序負(fù)責(zé)提交交易的 StarkEx 不同,StarkNet 的排序器批量交易并發(fā)送它們進(jìn)行處理和證明。StarkNet 更適合需要與其他協(xié)議同步交互或超出 StarkEx 應(yīng)用范圍的協(xié)議。隨著 StarkNet 開發(fā)的進(jìn)展,基于 StarkEx 的應(yīng)用將能夠移植到 StarkNet,享受可組合性。
ZK-SNARK?和 ZK-STARK?對比
4.3 遞歸 ZK-SNARK
普通 ZK rollup 只能處理一個交易區(qū)塊,這限制了他們可以處理的交易數(shù)量。遞歸 ZK-SNARK 可以驗證一個以上的交易區(qū)塊,把不同的 L2 區(qū)塊生成的 SNARK 合并為一個單一的有效性證明,提交給L1鏈。一旦 L1 鏈上合約接受了提交的證明,所有這些交易都會變得有效, 極大地增加了可以用零知識證明最終完成的交易數(shù)量。
Plonky2 是 Polygon Zero 的一種使用遞歸 ZK-SNARK 來增加交易的新證明機制。遞歸 SNARK 通過將幾個證明聚集到一個遞歸證明中,來擴展證明生成過程。Plonky2 使用同樣的技術(shù)來減少生成新區(qū)塊證明的時間。Plonky2 將成千上萬的交易并行生成證明,再遞歸地將它們聚合成一個區(qū)塊證明,因此生成速度很快。而普通的證明機制試圖一次性生成整個區(qū)塊證明,效率更低。此外,Plonky2 還可以在消費級設(shè)備上生成證明,解決了 SNARK 證明常伴隨的的硬件集中化問題。
5. Zero Knowledge Rollup VS Optimistic Rollup
ZK-SNARK 和 ZK-STARK 已經(jīng)成為區(qū)塊鏈擴展項目的核心基礎(chǔ)設(shè)施,特別是Zero Knowledge Rollup 方案中。Zero-Knowledge Rollup 就是指是指使用零知識證明技術(shù)將所有的計算轉(zhuǎn)移到鏈下處理來減輕網(wǎng)絡(luò)堵塞的一種以太坊的二層擴容解決方案。Zero Knowledge Rollup的主要優(yōu)點是可以大幅提高以太坊的交易吞吐量,同時保持較低的交易費用,且交易一旦打包進(jìn)rollup,就能立即確定。
目前以太坊的L2擴展方案除了Zero Knowledge Rollup, 還有 Optimistic Rollup。在 Optimistic Rollup 運行的交易被默認(rèn)為有效并立即執(zhí)行。只有當(dāng)發(fā)現(xiàn)欺詐性交易時(有人提交欺詐證明),該交易才會被撤銷。所以安全性是低于Zero Knowledge Rollup的。為了防止欺詐交易,Optimistic Rollup 設(shè)有一段挑戰(zhàn)期,如果交易需要在挑戰(zhàn)期過后才能最終確定。這可能導(dǎo)致用戶在取回他們的資金時需要等待一段時間。
最初設(shè)計EVM的時候沒有考慮到使用零知識證明技術(shù)。以太坊創(chuàng)始人 Vitalik 認(rèn)為短期內(nèi) Zero Knowledge Rollup 存在技術(shù)上的復(fù)雜性,但最終在擴容戰(zhàn)爭中會戰(zhàn)勝 Optimistic Rollup。以下是 Zero Knowledge Rollup 和 Optimistic Rollup 的對比。
來源:SUSS NiFT, ChatGPT
6. 零知識證明技術(shù)的未來前景如何?
零知識證明技術(shù)領(lǐng)域處于獨特的地位:近年來,經(jīng)過大量努力致力于推進(jìn)該領(lǐng)域的研究,許多成果在密碼學(xué)和安全通信領(lǐng)域都是相當(dāng)新的。因此,許多有趣的問題還有待學(xué)術(shù)界和開發(fā)者社區(qū)解答。與此同時,零知識證明技術(shù)被用于各類項目,展現(xiàn)了零知識技術(shù)的挑戰(zhàn)并拓展了其要求。
零知識證明技術(shù)值得關(guān)注的領(lǐng)域之一是零知識證明技術(shù)的后量子安全性的討論??晒_驗證的 SNARK(簡潔的非交互式知識論證)是零知識技術(shù)領(lǐng)域的關(guān)鍵組成部分。然而,大多數(shù)廣泛使用的可公開驗證的 SNARK 方案并不被認(rèn)為是量子安全的。例如 Groth16、Sonic、Marlin、SuperSonic 和 Spartan。這些方案所依賴的數(shù)學(xué)問題可在量子計算機的幫助下會被有效解決,這大大損害了它們在后量子世界中的安全性。
我們發(fā)現(xiàn)學(xué)術(shù)界正在積極尋找量子安全的零知識證明,該證明可用于各種沒有預(yù)處理階段的語句。目前最先進(jìn)的量子安全零知識證明的例子包括 Ligero、Aurora、Fractal、Lattice Bulletproofs 和 LPK22 等方案。Ligero、Aurora 和 Fractal 基于哈希函數(shù),而 Lattice Bulletproofs 和 LKP22 基于點陣函數(shù)。這兩個函數(shù)都被認(rèn)為是量子安全的。推廣這些方案并提高其效率已成為趨勢。
我們對零知識技術(shù)未來的另一個期望是它抵抗攻擊的能力和實現(xiàn)相關(guān)的代碼成熟度。鑒于編寫的代碼量的增加,將會有更多安全且經(jīng)過審查的庫和最佳實踐用于各種零知識證明技術(shù)。當(dāng)然,未來也會有更多將等待被發(fā)現(xiàn)和溝通的常見錯誤。我們期望該領(lǐng)域成熟并被高度采用,努力標(biāo)準(zhǔn)化協(xié)議并確保不同實現(xiàn)之間的互操作性, 一個名為 ZKProof 的項目已經(jīng)開始這樣做了。
零知識技術(shù)社區(qū)中將繼續(xù)存在的另一個趨勢是在高效算法和可能的特殊硬件上進(jìn)行更多工作。近年來,我們已經(jīng)看到證明大小的減小以及證明者和驗證者變得更加高效。算法、特殊硬件和計算優(yōu)化的進(jìn)步可能會帶來更快、更具擴展性的實現(xiàn)。
雖然現(xiàn)有算法的效率有利于未來零知識證明技術(shù)的用戶,但我們也期望看到零知識證明的功能不斷擴大。過去,我們在實現(xiàn)預(yù)處理 ZK-SNARK 時遇到過很多實例。現(xiàn)在我們發(fā)現(xiàn)越來越多的可升級 ZK-SNARK 實例。此外,一些零知識證明技術(shù)的使用更多是因為其簡潔性,而不是其零知識能力。
最后,零知識證明技術(shù)的另一個趨勢是機器學(xué)習(xí)與零知識證明的交叉(ZKML)。這個想法需要在多方環(huán)境中訓(xùn)練大型語言模型,并使用零知識技術(shù)來驗證計算。這對于當(dāng)前人工智能非常有用。該領(lǐng)域有興起項目的可能。
結(jié)束語
本文由區(qū)塊鏈安全聯(lián)盟成員共同撰寫,通過本文的介紹,我們可以了解到零知識證明在區(qū)塊鏈領(lǐng)域的廣泛應(yīng)用,技術(shù)路徑,發(fā)展趨勢與所面臨的挑戰(zhàn)。相信隨著硬件技術(shù)與密碼學(xué)的發(fā)展,零知識證明將在未來取得更多突破,為數(shù)字世界提供更快速,更安全的應(yīng)用服務(wù)。
登載此文出于傳遞更多信息之目的,并不意味著贊同其觀點或證實其描述。文章內(nèi)容僅供參考,不構(gòu)成投資建議。投資者據(jù)此操作,風(fēng)險自擔(dān)。