ZK賽道深度探討,Manta創始人對話清華密碼學博士
MantaNetwork
2022-07-28 03:29
本文约8985字,阅读全文需要约36分钟
Manta cofounder Shumo 和清華密碼學博士對話文字實錄:關於什麼是ZK,如何學習ZK以及ZK賽道的現狀和未來做出探討。

Yiki(主持人):

Yiki(主持人):

大家好我是清華區塊鏈協會(THUBA)的vice president , Yiki。從2017 年成立至今,我們已經有了5 年的歷史,舉辦過近200 場的活動。在即將到來的8 月還會舉辦首次的黑客松,歡迎大家關注和報名參加。那麼下面可不可以請Shumo 來簡單地介紹一下Manta 是做什麼的以及您的一個自我介紹。

Shumo:

大家好,非常榮幸參加這個活動,我是Shumo,Manta Network cofounder 。首先介紹一下Manta ,我們大概是2020 年10 月份成立。當時我們成立Manta 的原因是覺得區塊鏈(Web3)有很大的一個問題,就是隱私。我們當時就非常看好Web 3這個行業的前景,但是如果這個行業走向主流的話,所有的鏈上的交易都是明文,這是非常不好的。我們覺得隱私是人們最基本的權利。如果大家稍微看所有現在公鏈的架構的話,可以發現所有的公鏈都基本上是沒有隱私的,除了極少數的像Monero 或者Zcash。

所以我們的初衷就是解決這個隱私問題,那具體怎麼解決呢?我們首先做了鏈上的隱私支付產品—— MantaPay,目前已經上線了兩版測試網。然後你可以把它想像成是一個bring-your-token 版本的Zcash ,這個產品是在Polkadot 生態上線的,但是我們之後也會走向多鏈。我們即將開始的第二步是做隱私資產上的智能合約,已經研發了差不多半年左右,但是還沒有正式發布。我覺得Manta 用一句話概括就是我們是做整個Web3的隱私層。我們希望未來在所有Web3 的傳統操作裡面,你可以有一個選項——privatize by Manta ,然後你的交易就會自動變成隱私的交易。

關於我自己,我之前在華盛頓大學讀PhD,做數據庫系統和形式化驗證。畢業之後在Algorand 做了一年的research scientist,之後在加州大學聖巴巴拉分校做助理教授,現在全職做Manta Network。

Yiki:

一級標題

Sputnik:

一級標題

🎙️ ZK 是什麼

Yiki:

首先請Shumo 來簡單地介紹一下什麼是ZK ,它的原理和應用,用一個小白的話來概述一下。

Shumo: 

ZK 的全稱是zero knowledge proof(零知識證明)。它最初被理論上研究很多年,最早的研究至少是在二三十年前,是GMR (Goldwasser Micali Rackoff)那篇論文。然後大家覺得理論上這個東西是可行的。一個很重要的里程碑是Zcash ,當時好幾個學校教授合作做了第一版。大家以前都覺得這是一個理論上的東西,是不太可能實踐的。然後他們做了一個比較實際construction 叫libsnark,當時支持了第一版的Zcash,大家才意識到這個東西是可以實踐的。

我借用Micali 講的,什麼是ZK,你可以想像成是一個encryption on computation 。 Encryption 一般是指數據加密,就是可以把data 從明文變成密文,但是ZK 它其實是一個相對更強大的東西。它是說encryption on computation 就是把計算給加密了。具體來說,比如說假設你想證明你知道一件事情,比如3 加5 等於8。然後希望證明你知道這個事情,但是你並不告訴具體的這個3 加5和這個8 的input 是什麼。然後你有這個3 的commitment 5 的commitment 和8 的commitment,你需要說服某人這是正確的。具體到區塊鏈裡,你需要用這樣的方式向所有的validators 或者node runners 證明就是非常非常high level 的ZK。

Yiki: 

謝謝Shumo。 Sputnik,從你的角度,你覺得ZK 的發展是怎麼樣的以及你會怎麼去定義ZK 呢?

Sputnik: 

從密碼學的角度來說,ZK 的這個協議的話其實非常簡單,一句話可以概括:它是一個兩方的密碼協議,然後有一個prover 和一個verifier 就是我們說的證明者和一個驗證者。他要完成的事是證明者需要零知識的向驗證者證明他知道一個秘密。

然後什麼是零知識的呢?就是我們從密碼學的角度,它可能需要用到一些信息論的知識,去嚴格地定義,就是verifier 在和prover 進行交互的過程之中不能獲知也不能獲得自己原本沒有的能力,或者說知識,就像剛才Shumo 舉的一些例子,比如說要證明3 加5 等於8,他知道這個式子,但是他不能夠公佈。所以說可能需要用一個commitment 。 commitment 就是我們講的一個密碼學的承諾,然後它具有一個綁定性和一個掩藏性,就是你可以看到我的commitment 然後其內在的值就被它綁定住了,有點像哈希函數。如果被綁定的值改變,commitment 也會改變,就是綁定性。掩藏性是說,看到commitment 又不能確知裡邊是什麼,我將來可以打開,現在可以給你提供一個零知識證明,然後讓你相信我承諾的就是我的這個值。這就是從密碼學角度看待ZK。

Yiki: 

那正好你剛剛也從科研的角度來講ZK 的一個定義和發展,那可不可以再簡單介紹一下現在科研領域是怎麼去研究ZK 的,你們都會關注什麼?

Sputnik: 

其實在科研領域,也有不同的方向,有很理論的,那就是可證明安全,那是非常密碼學理論的一套內容,它需要用一些形式化的方法,這個我們就不去詳細地展開,此外就是一些應用。應用的話也有在算法層面做的,就是提出一些新的優化的算法,可能性能會比之前的算法更好。然後就是像Zcash 這樣, Zcash 也是剛才Shumo 提到幾個教授設計的,協議是在14 年提出的,然後系統是在16 年上的。這種它其實就是相當於用算法來實現一個應用。大概就是這些方向。

Yiki: 

那就是其實你在THUBA 也關注crypto 很長時間了,你覺得現在ZK 的科研和crypto 產業之間的關聯是怎麼樣呢?銜接地好不好?

Sputnik: 

我覺得可能ZK 要在科研方面可能已經有一些成果,有很多不同的算法,但是我覺得和產業結合的話,還需要再提高它的性能等等的一些優化。我的意思是現在可能有些算法我們在理論上可能有一些好的結果,但是在實現上可能不確定有沒有那麼好。我們請Shumo 來跟我們具體講一講在產業應用方面, ZK 的應用具體達到一個什麼程度。

Shumo: 

科研當然非常重要,我覺得科研和實際應用的鴻溝在於科研主要從復雜度角度研究,實際應用更關注實際性能。密碼學比較好的點是理論的性能和實際實現差別不大,不會有大的隱藏常數,另外是實現一個算法可能需要大型的工程和人員。

第二個就是說ZK 底層協議實現的工程量是非常複雜的,例如R1CS 和plonk 的電路。然後所以說包括我們Manta 在build 一個叫OpenZL(開源零知識證明庫),相當於是middle layer 能夠提高開發效率,我認為科研和產業之間的gap 就是這個middle layer abstraction,當然,對密碼學底層的了解非常好,也有益於工程的。

Yiki:

好的,好的感謝。那麼剛剛也提到了一些ZK 的應用,我想請Sputnik 再詳細的梳理一下ZK 在區塊鏈領域以及非區塊鏈領域都有怎樣的應用場景。

Sputnik:

在區塊鏈方面的應用,ZK 主要分為兩個部分,我認為一個是隱私,然後另一個是擴容。隱私的話包括剛才我們多次提到的Zcash 項目,可能大家也大多都聽過大零幣這個名字。它主要實現的是在一個交易層面的隱藏,就是它通過零知識證明實現了交易三要素,也就是轉賬方、收款方還有交易內容三項方面的隱藏,比它之前Zcoin 實現了改進。

此外的話是擴容。其實所謂說擴容,我們往往聽到區塊鏈擴容這個詞,它可能主要反映的是一個TPS 的提高。然後像layer1 的公鏈,怎麼進行擴容和ZK 有什麼關係呢?剛才我們提到,一個零知識證明,那它首先是一個證明系統。然後所以如果說剛才保護隱私,用到是它零知識的性質。那麼在擴容這邊,我們用到其實是它證明的一個性質。像現在往往大家聽到很熟悉的一個詞叫做ZK roll-up,以太坊現在也在進行這個ZK roll-up 擴容的探索。它的邏輯就是我們希望讓這個公鏈回歸它本身,因為公鏈其實成本是很高的,大家要進行共識,所有人都要維護一套賬本,都要去重新跑一個計算,這個成本很高。所以說我們希望把這個計算成本拿到鏈下,然後鏈上只對最終的結果進行共識。就是說我們這個區塊鏈其實是一個狀態,就是由大家的賬戶的balance 來構成,然後每有一筆交易, balance 就會更新一下。那這其實就是一個計算的過程,我們就希望在鏈下進行這樣的計算,然後向鏈上提交經過計算之後的新的結果以及我計算是正確的這個證明值。鏈上只需要驗證這個證明值,就可以直接把狀態更新,相比於直接計算,驗證證明值,它其實非常快的。所以這就是我們說的ZK roll-up 它進行一個擴容。這就是ZK 目前在區塊鏈方向的應用。

然後在非區塊鏈領域,其實我們說的往往是一些隱私計算。當然現在隱私計算也都在和區塊鏈進行結合。像隱私計算的話,比如說我們希望做到的多方安全計算,多方需要共同計算出一個結果。那在這個之中就有可能會用到一些ZK 的協議,它往往是作為一個組件來進行出現。然後基本的應用情況就是這樣。

Yiki: 

一級標題

Shumo: 

一級標題

🎙️ 怎麼學習ZK

Yiki: 

了解,那就順著這個話題可以再問一下。 Shumo 就是您可以結合你自己學習ZK 的一個經歷。給大家一些小白怎麼從0 開始學ZK 的一些建議嗎?

Shumo:

我覺得首先是大家需要就是明確一個觀點,就是看第一個是說大家學習ZK 的目的是什麼? ZK 的技術棧很深,明確目的更有效率。第二點是如果大家想做ZK 的master 那麼需要從基礎的密碼學內容學起。然後年輕一代的密碼學家大家都是看一些比如說斯坦福大學教授Dan Boneh 的公開課開始學的,因為那就是密碼學最基礎的一些東西。

第二個就是可以去看Github 上開源的庫,實際用起來我覺得基本上就是這兩個方面。一個是說你能讓學習就從密碼學最基礎的這些直接開始學習。第二個實踐上就是把這個程序開始寫起來。

Yiki:

明白,我覺得非常有借鑒意義,不僅要從理論上來學,然後寫代碼也非常必不可少。那麼Sputnik 你對這個問題有什麼看法嗎?因為據我了解的話,你是從大學就是學數學上來的,你會對一些同學學習ZK 有什麼建議嗎?

Sputnik: 

一級標題

一級標題

🎙️ ZK 賽道現狀與未來

Sputnik:

那麼我們接下來的一個主題就是說聊了這麼多關於ZK ,以及ZK 的學習,然後也希望聽一聽Shumo 從產業的角度來看,為什麼我們說現在ZK 應用的賽道它非常的捲,就是好像現在有很多ZK 應用的項目,包括說zkSync 等等,還有也包括剛才提到的Zcash 等等,甚至以太坊基金會自己也在做。然後他們背後都有一個強大的密碼學團隊,然後包括像Starkware 它的這個cofounder Eli Ben-Sasson他本身是這個以色列的教授,然後他也是Zcash 的一個創始人,然後想問問Shumo 對這個現像有什麼看法?

Shumo: 

這個首先我覺得就看大家對卷這個詞怎麼理解。的確是我覺得是這樣的,無論是已有的項目,還是在創業階段的項目,我可以告訴大家的是只會更卷,不會變得不捲,就是肯定是越來越卷的。但我覺得卷這個事情對於包括ZK 這個領域和包括我整個web 3是一個好的事情。 Web3是可以自由進出的領域。大家覺得自己都有機會,所以卷就開始了。其實卷之中,各個項目做的事情不完全相同,Starkware 就很有特色,有自己的編程語言。

然後還有一個問題就是,怎麼切入這個卷的過程中,就是可能並不要看現在正在火的這些項目在做什麼,而是想說在這個領域還有哪些需求,我們怎麼來解決一些實際的問題。總而言之,我覺得卷是不可避免的一個現象。然後我覺得如果大家想在ZK 這裡做事情,還是找到自己的切入點而不是模仿其他項目。

Sputnik: 

關於這個ZK 賽道的一個問題,還想請你談一談,ZK rollup 領域的幾家頭部公司包括zkSync, Starkware, Scroll 等,他們都有一些什麼樣的區別呢?這可以談一談嗎?

Shumo:

就是首先我並不是自己做ZK rollup 的,關於這個問題,我認為首先是EVM 等效性,就是項目是不是能完全兼容EVM。

第一種叫evm compatible 這個是zkSync 做的。他的做法是並不會把整個的evm 放到電路里面,而是自己做了一個VM。因為把EVM 放到電路里這個技術難度太大了,然後會產生一些問題。這是zkSync 的approach, 它的好處是可能上線會比較早,也就是說,在實際的主網裡面, zkSync 有可能是這幾家裡面主網上線最早的。但如果只在Solidity 層面兼容,以太坊很多工具包括調試器是用不了的。

Scroll 和Hermez 都是號稱有EVM 等效性,這個我認為更好,能夠利用工具鏈。

Starkware 到目前為止prover ,就是證明器還是閉源的。然後您剛才說那個以太坊基金會在做的其實是一個純技術探索,應該大概率不會實際上線。

Sputnik:

然後那接下來就是關於這塊ZK 賽道,我們還有最後一個問題就是說我們剛才講了他在ZK 在隱私方面還有包括rollup 方面的這樣一些應用。但是其實對於開發者而言,可能剛才說都是需要有專業的密碼團隊。然後應用的話其實像包括rollup 這種,我們希望其實也做到一個,這個使用者透明,就是他可能感覺不到這個中間層的存在。我的問題是我們有沒有可能做出一些更接地氣的產品呢?就是讓普通人都能感受到的都能去用的,有沒有這種呢?

Shumo:

我覺得這問題非常好,我覺得當然是有的。就第一點關於ZK rollup,它是沒有隱私的,可以直接在中間層上部署,比如zkSync,不需要自己懂ZK。但是如果是偏隱私的角度的應用,就需要自己懂ZK。比如說舉個例子,比如Manta 的隱私資產的平台,那你和這個隱私資產交互,那你就可能需要自己做這個ZK 的編程。我覺得這是對於開發者來說非常有意思的一件事情。

第二點,我覺得在這個領域雖然有密碼學的背景非常好,但是高階語言和工具的發展使得開發者不再需要手寫底層的電路,就像高級程序語言的出現使得不用手寫彙編。所以我們可以看到用ZK 編程門檻其實是越來越低的。我覺得這個事情肯定是需要時間的,將來不需要開發者懂得每一個密碼學細節,ZK編程的語言和庫也在不斷地出現。

Sputnik:

好的。謝謝Shumo。我大概明白你關於ZK 的一個展望。然後那接下來一塊我們可能想聊回關於Manta 。接下來可能想問的一個問題就是說我知道我們Manta 正在做這個MantaPay 就是也是一個支付系統,也是具有隱私的性質,然後可不可以請Shumo 介紹一下這個MantaPay 然後同時講一講MantaPay 和Zcash 的區別?

Shumo: 

首先是說從解決問題的角度。首先我們確實借鑒了Zcash 很多成功之處,但是我協議很大的一個不同,就是Zcash 只支持單個幣種,我們支持多個。我們在整體概念上也有區別,Zcash 是要從0 build 一個東西。我們是想要把隱私作為一個可以賦能整個產業鏈的基礎設施,而不是只做自己的支付系統。

第二點從技術角度,我們比Zcash 起步晚所以用到了更新的密碼學技術,包括ZK 友好的哈希函數。我們的電路大小是Zcash 的1/10。性能更好,用戶體驗更好,這個是我們我們和Zcash 的相同點和不同點,我們當然也是站在巨人的肩膀上,學習了Zcash 的很多東西。

Sputnik: 

好的,謝謝Shumo 關於MantaPay 的介紹。然後另外的話我還有一個細節問題,我個人比較好奇,在此之前我可能先向大家介紹一下這個概念,就是trusted setup 這個叫做可信設置。就是說我們在一些算法當中,有的時候我們需要先通過一個trusted setup 來生成一個算法需要用的一個參數,然後像在Zcash 之中它最開始的設計,然後它的算法就是需要這麼一個設計的。像那個之前Shumo介紹,我了解到是不是我們Manta pay 也需要有這樣的一個trusted setup ,我想听一聽,因為現在可能也會有一些不需要的trusted setup 的一些算法,然後但是我們依然採用了這點,是不是也有什麼好處呢?

Shumo: 

對,就是這個肯定是有好處的,也是目前使用比較廣泛的。零知識證明系統有兩種,一種是我們現在用的叫Groth16,另一種是Plonk,各有優劣。前者需要trusted setup 後者不需要(application-specific trusted setup),我們通過測試發現前者性能好。

從很多密碼學的細節上來看,二者電路有差別,證明系統不同,概括起來,我們現在用到trusted setup 純粹是性能的考量。用戶設備不同,產生證明時間也不同,我們不能“歧視”慢的用戶。具體就是,證明生成的時間是2秒鐘還是20秒,這個其實是會對用戶的體驗產生本質影響的。這個是我們在性能上的考量。

二級標題

Yiki:

二級標題

Twitter中文:

Manta 的創始團隊由多位加密貨幣資深人士,教授和學者組成,他們的經驗包括哈佛大學,麻省理工學院和Algorand。 Manta 的投資機構包括Polychain、ParaFi、Binance Labs、Multicoin、CoinFund、 Alameda、DeFiance 以及Hypersphere 等。 Manta 也是波卡官方Web3 基金會資助獲得者,Substrate Builder Program 成員,伯克利大學區塊鏈加速器成員。

關於Manta Network

Manta Network 致力於通過隱私保護構建一個更好的Web3 世界。 Manta 的產品設計從第一性原理出發,通過zkSNARK 等領先的密碼學架構為區塊鏈用戶提供端對端的隱私保護。在保障隱私的同時,Manta 兼具互操作性、便捷性、高性能以及可審計性,允許用戶進行任意平行鏈資產間的隱私轉賬和交易。 Manta 的願景是為整個區塊鏈世界提供更便捷的隱私保護服務。

Manta 的創始團隊由多位加密貨幣資深人士,教授和學者組成,他們的經驗包括哈佛大學,麻省理工學院和Algorand。 Manta 的投資機構包括Polychain、ParaFi、Binance Labs、Multicoin、CoinFund、 Alameda、DeFiance 以及Hypersphere 等。 Manta 也是波卡官方Web3 基金會資助獲得者,Substrate Builder Program 成員,伯克利大學區塊鏈加速器成員。

We're Hiring!

Twitter中文:

Twitter中文:

Website:https://manta.network/

Github:https://github.com/Manta-Network

Twitter:https://twitter.com/MantaNetwork

Medium:https://mantanetwork.medium.co

Telegram:https://t.me/mantanetwork

Discord:https://discord.gg/ZtSuSKRy8X

Telegram中文:https://t.me/mantanetwork_zh

Twitter中文:https://twitter.com/manta_china

MantaNetwork
作者文库