LDAO 帶你共探零知識證明,發現 ZK 的新潛能
作者:LXDAO
排版: Soleil
設計: Daisy
封面:Photo by Ruan Richard Rodrigues on Unsplash
知識證明(Zero-Knowledge Proofs)技術以卓越性的隱私保護能力,成為了資料安全領域的一顆璀璨明星,也曾一度登頂加密產業首榜熱詞行列。然而,ZK 技術的深度和複雜性卻讓許多渴望探索這一領域的學習者望而卻步。而在本期 LX 分享會中,特邀安比實驗室創辦人郭宇,分享他的真知灼見與前瞻思考,讓我們一同回顧本期精彩內容,解鎖 ZK 的無限可能
8 月 16 日晚上 8 點,LX 分享會如期開展,邀請到了安比實驗室創始人郭宇作為嘉賓,由 LXDAO 運營小組 PM Cikey 作為主持人,共探 ZK,從理論到實踐!錯過直播的小夥伴可以點擊連結查看回放。
回放連結: https://youtu.be/pend4orm6ZE?si=q19ifciIRD8TZ0KE
1 . 理論與實務的脫節
ZK 的應用場景在哪裡
郭宇指出在比較眾多的密碼學分支中,ZK 的實踐儼然已經十分充分了。但相比偏理論的研究,ZK 的理論由於其工程化以及產品的快速迭代,導致部分產品會使用相較不成熟且未經嚴格驗證的協議。而就目前而言 ZK 的學習材料偏理論居多,主要有以下兩個原因:
1. 目前活躍的 ZK 研究者,大部分偏理論研究居多,做工程實務的偏少。就其成果產出, ZK 理論研究顯然比工程實務的產出週期要短的多。例如許多的工程師,在打磨產品時,由於各自背景不同,就需要相對比較長的時間,去學習底層的演算法/數學並積極實踐,這就容易給人一種錯覺,就好像我們看到東西都是偏理論的。
2. 本身產業的快速發展、產品的高速更新迭代,部分工程內容在特定的應用場景上容易被其他協定取代甚至會逐漸退出人們的視野,因此即便目前 ZK 的技術門檻已經下降許多,但相比較實踐,理論的發展總是會遠先於實踐的。
而如果想要進行 ZK 的實踐,可以收集一些比較好的參照物,比如優質的工程代碼,去進行模仿、使用甚至簡單修改,先理清它的用途及其作用原理;其次如果有額外的需求,想嘗試改動它的程式碼,增加新的效能,那就需要對這個程式碼有較深度的理解才能去修改它;再接下來,假設你有一個新的想法,想做一個產品,需要從頭寫程式碼,這就需要付出非常多的投入與潛心學習。但不管是理論還是實踐,以模仿為主會比較切實。當我們隨著自己程度的提高,也會發現自己能做的事越來越多,當我們了解並掌握底層原理之後,我們也會有更多勇氣去做更多的事。
近十年來,ZK 工程實踐已取得了長足的發展並依舊保持著快速發展的勢頭, ZK 的理論也進入了一個百花齊放的狀態,然而這也給我們帶來了部分學習的阻礙,比如從哪個開始學、該怎麼學,特別是密碼學,有很多深不見底的數據但你不知道它的用途是什麼、演算法來源是什麼。而對於 ZK 的應用場景或有什麼較好的應用,其實屈指可數,大量的應用級產品還處於概念驗證階段。但整體而言,不斷湧現新事物的同時也會為我們帶來更多的希望,對於整個產業來說也需要有新事物的產生,需要有更多的人去做實驗,去探索正確的道路。
2 . ZK 鏈下應用與變現路徑
郭宇對此回覆說 ZK 具備未來發展的巨大的潛力,但倘若涉及到變現,其實更多依靠的是產品本身需真實解決核心問題,切實符合市場的需求/痛點,以此才能帶來收益。
就目前來看的話,對於 ZK 鏈下應用,更加看好聚焦明確需求的應用,比如說:錢包、橋、Layer 2 以及智能合約的鏈下計算等。從其多年的學習經驗來看,其實區塊鏈在其發展過程中就已提出的不少明確的需求,比如說擴容、儲存等,以及區塊鏈本身的協議問題比如說節點數量太少、怎麼有效壓縮傳輸量等。當然,還有一類與區塊鏈無關的,比如說隱私保護,但隱私保護也不是一個純技術問題,可能更多的是一個社會問題,隱私的定義究竟是什麼、大家對於隱私的接受度又是如何的,這是屬於大家的博弈。
而更聚焦點的,比方說:以太坊狀態爆炸、節點數量的資料可用性(Data Availbility)、增加更多的 Validator、解決 MEV 問題,包括鏈上合約的安全性,複雜性以及跨鏈橋的安全性問題等,滿足這類需求/解決這類問題的應用大抵都具備較好的發展前景。
3 . CRS 是什麼
ZK 為什麼需要它
郭宇指出所謂的 CRS(Common Reference String)就是 Prover & Verifier 不是憑空信任對方,一定是基於哪怕是一個 Bit 的共識的基礎上相信對方,即在共識的基礎上信任對方。
就例如,ZK 的基本概念中有一個概念叫電路,而電路就是把 Prover & Verifier 雙方要共識的計算過程公開給所有人。在 Verifier 已知的前提下,由 Prover 計算隱私的參數並證明計算過程的完整性,其中電路必須公開,只有輸入參數可以對 Verifier 進行隱藏。而這個電路本身也就是共識的一部分,因此在 Prover 前,雙方就必須要達成一致的意見即電路,而按照定義,它就應該在 CRS 裡。就目前而言,我們都在用零知識證明協議:ZK-SNARK(Zero Knowledge Succint Non-interactive ARguments of Knowledge)來說也基本上都含蓋 CRS。
如果是基於橢圓曲線類的,它有兩種,一種是像 Groth16,會有一個可信設定(Trusted setup)的過程,這個過程是一個安全多方計算的協議,完成後把這部分共識的電路燒進去。另一種不燒電路的像 Marlin、Plonk 等,雖然不需要燒電路,但事先需要燒一些共識內容進去。
另一類雖然是基於橢圓曲線,但其安全假設取決於離散對數也就是橢圓曲線離散對數問題(ECDLP)的這一類協議。對這類協定則需要進行透明設定(Transparent setup),同樣也需要達成內容的共識,比方說:選擇哪根橢圓曲線、金鑰產生演算法(Generator)以及 P、Q 這些質數等。還有一類是基於 Hash-based,像是 Stark、Risk Zero 等這一類 Hash-based zkSNARK,也需要有 CRS,你選用的雜湊函數、RS code(Reed-solomon codes)等,嚴格意義上這些都在 CRS 裡面。
所以,總的來說 CRS 基本上是必須的,只是說 CRS 的內容可能非常不同,一般而言其目的之一也是為了減少通訊開銷、減少證明的 Size 等,但不同的協定也存在一定的差別。
4 . 現實需求要如何
轉化為 ZK 的多項式表達
郭宇指出從理論層面來講,要實現 ZK 的多項式表達,就得需要計算,無論是擴容還是隱私,都需要用適合的電路進行表達,並且這個計算得是固定的計算,這不僅指算法固定,也包括計算的規模也得固定。而當演算法本身在一個比較確定性的階段,其計算量易被拆解時,也更加便於去操作,這也叫做寫電路。
隨著對 ZKEVM 的深入研究,ZKVM 技術堆疊的快速發展,也已經出現了免費使用的開源零知識計算平台比如 Risc Zero、SP1、zkWASM 等不同的實現,能夠無需構建電路,僅通過 Rust 構建或自定義程式碼即可編寫 ZK 應用程式。因此,把業務邏輯 ZK 化變得越來越簡單。
而除了寫電路之外,另一種計算則是基於 RAM(Random Access Machine)模型。我們可以把它想像為一台虛擬機器在運行,在這個過程在不再是寫電路而是寫狀態轉移,而怎麼把業務邏輯更好的寫成狀態轉移甚至實現輕量級或直接將業務邏輯轉變為多項式,這則更依賴自身的能力以及需要經驗的累積。
但總的來說,它是有門檻的,即使寫電路也有門檻。
5 . 精彩答疑集錦
為什麼需要 ZK?
郭宇認為就目前其實缺少比較大的應用可以證明其可用/好用性,而 ZK 的出現可以更好的構建這種信任,況且 ZK 技術在密碼學當中都是比較少有的針對信任問題的基礎性工具。其次,在區塊鏈發展的過程中,本身就遇到了諸多的問題,例如:節點數的急劇下滑、以太坊狀態的爆炸等,這些都有望於 ZK 去改善以及解決,因此對於現在包括未來, ZK 對於區塊鏈都是至關重要的。
當然,ZK 本身也需要區塊鏈,它的前提基礎需要有相信的存在其次才是信任甚至協議互動的問題,而區塊鏈就是 ZK 信任冷啟動環節中不可或缺的一環。兩者相輔相成,缺一不可。
ZK 入門及其學習心得與經驗分享
郭宇對此回覆首先從動機出發,是因為我本身對理論層面非常感興趣,我想要清楚明白它是什麼,又為什麼它可以。就入門來說,更多的是多去看一些專業的論文以及基礎的資料,掌握必備的基礎知識與深入學習,在這個過程中,慢慢積累,厚積薄發。而對於論文,其實有很多沒有寫清楚的上下文或魚龍混雜,所以需要多看甚至重複看,才可能做到看的非常順暢與理解到位。當然,如果是找工作的話,寫電路是比較切實可行的途徑。多實踐,多學習優質專案的程式碼,也許就在一些不起眼的角落你會找到令你拍案叫絕的東西,以及多模仿寫電路,甚至嘗試總結經驗,轉化為自己的知識沉澱與個人經驗總結。
同時,也可以多關注業界的一些非專業愛好者。他們通常會普及一些簡單易懂的教學或自己的學習心得亦或個人經驗。但由於產業的快速發展,在學習的同時需要注意這些內容是否過時,留意內容編寫的時間以及辯證的態度看待與學習。
如果是對理論有興趣的夥伴可以更聚焦在局部,從點到面,先把局部學清楚,而後帶著局部的學習經驗再去看其他的學習內容,即深度優先遍歷(DFS:Depth First Search)要優於廣度優先遍歷(BFS:Breadth First Search),對此,像是相對深度的學習資料或論文,如何尋找以及確保是有益的,其實共學就是一種很好的形式,一個人如果閉門造車悶頭學習是非常困難的,透過共學與志同道友一同探索學習並深度討論,可以很大程度上幫助我們可持續並且有效的進行學習與探索。
ZK 學到什麼程度才可以去找工作呢?
郭宇認為現在就是最好的時機,先去找,能力不夠就再補。大部分的工作其具體資訊都是公開的,所以可以嘗試聯繫,幫忙改改代碼或找 Bug 等。況且好的工程師需求缺口是很大的, ZK 技術也發展非常迅速,所以即便可能經驗不足,這也不是什麼問題。相反,隨著科技的快速更迭,新手並不會有太多劣勢。
如果我們是在 ZKVM 上,比如說像 Starknet (STRK) 類似的鏈上是不是就不需要寫電路嗎?
郭宇指出,就目前來看,這些虛擬機(VM)需要提供給到系統調用的特殊指令,或者叫特殊接口,即你如果反复做一個計算,如果你都直接把它編譯成 VM 指令,它就會膨脹的厲害。因此,常用的一些指令,我們通常都會把它電路化,在電路化之後,VM 證明所指定的分散式鏈路追蹤(Trace)就會短很多。同時,當成電路也可以幫助預處理的部分事項並且本身也會比 Trace 更有效率。
而在極個別的證明系統中,計算裡有一些電路,同一個演算法,只是參數不同,循環了十次哈希時,就正常情況來說,如果不進行幹預,它就會產生十倍的哈希電路。但現在有一類的證明技術,可以把這十個電路並行起來,並且在並行起來之後能夠產生額外的優化,且優化相當可觀。對此,其實現在的 VM 設計原則也可以考慮把使用者需要執行的特定函數讓使用者自己寫下電路,並整合在一起,但就目前來看還是主要依靠 VM 提供。
此外,還有一類的技術,如 Folding scheme,它可以把反覆串聯的電路壓縮成一份,這樣證明過程會特別省內存但同時對於寫電路有著更高的要求。總結來說,要不要學或要不要寫,其實與你的收益有很強的關聯,但理論上是可以無腦編譯,透過 ZKVM 直接呼叫。
ZK 除了和區塊鏈結合外,還有其他可能的方向嗎?
郭宇認為隱私保護可能是一個方向,但對於它的需求存疑,因為即便是在 Web3 中,大家的隱私也都沒有非常關注,更不用說傳統行業。在學術圈,其實有很多 ZK 與非 Crypto 結合的方向,比方說零知識機器學習(ZKML)、ZK 資料庫以及也有使用 ZK 做匿名投票等,但這些是否真的能解決實際問題以及到底是不是一個痛點,這有待確認。而當由緊迫/切實的需求進行推進時,其成果會更易顯見,比方說 ZKEVM 的發展其實就來自 EVM,整個以太坊需要在 Layer 2 上去兼容 EVM,儘管 EVM 做的不是很順利,但當整個相關的技術移植到 ZKEVM 上時就取得了相對比較好的成果。
在當下區塊鏈所處的階段,科技與業務場景分別提供了什麼價值?
郭宇回覆道,如果我們討論的是在 Crypto 世界的需求,它的用處就比較多了。比方說身分認證中的去中心化身分(DID:Decentralized Identity)以及社群網路上的隱私權保護等,只不過關鍵點在於需要找到一個場景,實際使用者需求/特點讓它可以爆起來。所以如果是做業務的話可以多去看 ZK 的近況。因為就目前而言,其實現在的技術條件已經達到了或者說已經接近達到一些簡單的場景。
現場觀眾石頭對此回复說,所以由於信任或者共識的建立在當前的運轉模式下,它整個消耗的資源頻寬,或者說存儲非常高,而通過 ZK 的話,就可以把整個的效率提升至指數級,這也就是說至少在技術層面它的價值是非常之高的,而只要它的技術價值體現了,場景價值也就一定會有相應的體現。
郭宇對此補充但現在 ZK 發展其實有一個問題即它沒有明確的方向,無法進行推測或預見。因為 ZK 的發展分叉格外的多,你無法知道哪個叉口會往上走,或者在是否會有一個分叉,這也導致了做應用的人跟做理論的人之間的巨大的鴻溝。比方說做理論的人難以知道應用層面哪些問題痛點,只能靠自己拍一拍腦袋,憑空想像建構應用場景寫論文。但同時 ZK 的門檻又在不斷的變高,以至於做產品、做業務可能更搞不清楚它可以做什麼、能做什麼。對此,其實做應用的可以多去了解一些基礎概念與常用工具,比如說像一些常見的 ZK 的工具和文檔,它到底能證明多大的業務邏輯,計算量又是如何。這並不需要有多了解 ZK,只需要知道 ZK 的基本概念、大概能做什麼事,以及什麼事不善於解決等就可以了。總而言之,兩者之間也是相輔相成,以共同推動區塊鏈的繁榮與發展。
6 . 結語
透過本期 LX 分享會,相信大家對於零知識證明(ZK)的發展及其應用實踐與入門學習等已有了更全面與深入的了解。而隨著產業的持續發展,ZK 技術的不斷創新與突破,我們也相信,ZK 將展現出巨大的發展潛力與廣闊的應用前景。同時,這也將為加密產業乃至整個 Web3 的發展注入新的活力。未來,期待與各位繼續攜手並進,共探 ZK,共築一個更安全、高效與透明的數位世界!
免責聲明:作為區塊鏈資訊平台,本站所發布文章僅代表作者及來賓個人觀點,與 Web3Caff 立場無關。文章內的資訊僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。