當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > 區(qū)塊鏈
[導(dǎo)讀] 前幾天在魔笛社區(qū)分享了三個zk-SNARK技術(shù)應(yīng)用的場景,可以讓大家zk-SNARK(Groth16)技術(shù)和場景的結(jié)合有初步的認(rèn)識。 1. 隱私:ZCash項目 Zcash項目,

前幾天在魔笛社區(qū)分享了三個zk-SNARK技術(shù)應(yīng)用的場景,可以讓大家zk-SNARK(Groth16)技術(shù)和場景的結(jié)合有初步的認(rèn)識。

1. 隱私:ZCash項目

Zcash項目,大家都知道是“隱私交易”。Zcash代表了zk-SNARK的一個應(yīng)用方向:隱私。隱私有不同的程度,ZCash的隱私交易指的是隱藏交易的發(fā)送方,接收方以及交易金額。Zcash已經(jīng)經(jīng)歷過三個版本:Sprout, Overwinter,Sapling。這三個版本本質(zhì)上都沒有太大的變化,只是支持的功能更多,生成證明更快,體驗更好。

一筆轉(zhuǎn)賬用Note來表示,包括轉(zhuǎn)賬的金額v和一個隨機數(shù)。Note有兩個外在的表現(xiàn)形式:一個是Commitment,一個是Nullifier。Commitment和Nullifier都是通過不同的Hash函數(shù)生成。Commitment代表一次金額轉(zhuǎn)入,Nullifier代表一次消費。注意,對于一個Note,Commitment和Nullifier都是唯一的。因為Commitment和Nullifier是Hash的結(jié)果,即使這兩個數(shù)據(jù)公開,其他人也無法推斷出Commitment和Nullifier之間存在聯(lián)系。也就是說,提供一個Commitment,能說明進(jìn)行了一筆轉(zhuǎn)賬(具體信息其他人未知)。能提供對應(yīng)的Nullifier,就能消費。

區(qū)塊鏈,作為一個隱私轉(zhuǎn)賬平臺,將所有的Commitment(cm),組成一個Merkle樹:

某個用戶需要消費某個cm,必須向區(qū)塊鏈提供零知識證明:

1/ 他知道一個Note,并能生成一個cm,而且這個cm在以rt為樹根的Merkle樹上

2/ 用同樣的Note信息,能生成一個nullfier,而且這個nullfier之前沒有生成過。

以上只是最簡單的概括Zcash零知識證明的大體思路,ZCash的設(shè)計非常復(fù)雜和嚴(yán)謹(jǐn),有很多細(xì)節(jié)。順便說一句,理解ZCash,只需要看ZCash的白皮書protocol.pdf。理解了白皮書的設(shè)計,看源代碼非常直接。

這就是零知識證明的一個重要的運用方向 - 隱私,現(xiàn)實中還有很多應(yīng)用類似技術(shù)的項目:EYBlockchain(EY,安永),Quorum(JPMorgan)。

2. 鏈上數(shù)據(jù)壓縮:Filecoin項目

Filecoin是存儲行業(yè)比較熱門的項目。Filecoin想搭建一個去中心化的存儲交易平臺。去中心化的存儲,有個核心問題,怎么證明存儲提供方,真實有效的存儲了指定的數(shù)據(jù)。Filecoin是通過PoREP以及PoST算法實現(xiàn)(其中就包括零知識證明)。

PoREP是數(shù)據(jù)存儲證明算法(證明用戶數(shù)據(jù)被正確的處理)。PoRep算法的全稱是ZigZag-DRG-PoRep。

Sector中未Seal的原始數(shù)據(jù)首先依次分成一個個小數(shù)據(jù),每個小數(shù)據(jù)32個字節(jié)。這些小數(shù)據(jù)之間按照DRG(Depth Robust Graph)建立連接關(guān)系。按照每個小數(shù)據(jù)的依賴關(guān)系,通過VDE(Verifiable Delay Encode)函數(shù),計算出下一層的所有小數(shù)據(jù)。整個PoRep的計算過程分為若干層(目前代碼設(shè)置為4層),仔細(xì)觀察每一層的DRG關(guān)系的箭頭方向,上一層向右,下一層就向左,因此得名ZigZag(Z字型)。

每一層的輸入稱為d(data),每一層的VDE的結(jié)果稱為r(replica)。對每一層的輸入,建構(gòu)默克爾樹,樹根為comm_d, 整個樹的數(shù)據(jù)結(jié)構(gòu)稱為tree_d。對每一層的輸出,建構(gòu)默克爾樹,樹根為comm_r,整個樹的數(shù)據(jù)結(jié)構(gòu)稱為tree_r。

簡單的說,PoREP通過零知識證明,證明每一層的數(shù)據(jù)都經(jīng)過VDE計算生成,并提供最后結(jié)果的Merkle樹的樹根。

在數(shù)據(jù)處理并存儲后,每隔一段時間,需要提交存在性證明,也就是PoST算法。PoST算法的基本思想,隨機挑選一個Merkle樹的葉子節(jié)點位置,需要提供出一條Merkle路徑的零知識證明。

這個零知識證明的第二個應(yīng)用方向:鏈上數(shù)據(jù)壓縮。PoREP算法,通過零知識證明證明數(shù)據(jù)已經(jīng)正確處理,并提供了處理后數(shù)據(jù)形成的Merkle樹的樹根。PoST,每隔一段時間,隨機抽選一個葉子數(shù)據(jù),需要存儲提供者在一定的時間內(nèi)提供從該葉子數(shù)據(jù)到Merkle樹根的路徑證明。如果,處理完的數(shù)據(jù)沒有保存在一個可靠的存儲上,無法在合理的時間內(nèi)重建整個Merkle樹,也就無法提供證明。

3. 擴展性:Loopring DEX 3.0項目

從2017年,路印從“環(huán)路撮合”的最初設(shè)計,經(jīng)過了1.0,2.0以及3.0的三個大的版本的協(xié)議升級。1.0/2.0,相對來說,受限以太坊本身性能的限制,交易流程復(fù)雜,體驗和中心化交易所相比,有較大的差距。路印協(xié)議3.0,通過zk-SNARK技術(shù),在zk Rollup的基礎(chǔ)上,結(jié)合DEX的業(yè)務(wù)場景開發(fā)設(shè)計,兼顧去中心化和交易性能。

相對1.0,2.0來說,路印協(xié)議3.0將所有的撮合邏輯都在鏈下完成。每一筆撮合(Settlement)都會生成證明并提交到鏈上,證明鏈下的撮合正確無誤。

路印協(xié)議采用和以太一致的“賬戶”模型,所有的賬戶的“狀態(tài)”(余額)都記錄在鏈下。

所有和狀態(tài)相關(guān)的操作,都是在鏈下更改,提交Proof到鏈上記錄。因為存在鏈上鏈下的狀態(tài)同步,賬戶的任何操作有三個狀態(tài):

1/ Committed (操作已經(jīng)提交)2/ Verified (該操作已經(jīng)提供了相應(yīng)的Proof)3/ Finalized(之前的所有的操作都已經(jīng)提交正確的Proof)

以用戶Deposit“充值”的操作為例:

用戶轉(zhuǎn)賬到路印協(xié)議的智能合約,轉(zhuǎn)賬在鏈上確認(rèn)(鏈上完成充值)。該操作的狀態(tài)就是“Committed”。鏈下的Relay,監(jiān)測到“Committed”的狀態(tài)后,更改鏈下的狀態(tài),生成Proof,并將證明提交到鏈上,此時該“充值”操作的狀態(tài)為“Verified” - 鏈下也已經(jīng)完成充值。如果之前的所有操作都是Verified,那該操作的狀態(tài)就是Finalized(也就是這個狀態(tài)是確定的,不會被篡改的)。

鏈下的狀態(tài)用三層的四叉Merkle樹來表示:

路印3.0,采用的是zk-SNARK的Groth16算法提供零知識證明。針對每種操作,Relay都會提供對應(yīng)的ZKP證明電路。以鏈下撮合為例,相應(yīng)的電路證明的邏輯如下:

假設(shè)Account X鏈下轉(zhuǎn)賬給Account Y。ZKP證明電路,包括:

1/ TradeHistory中Order Ox的變化導(dǎo)致TraderHistory的樹根的變化

2/ TradeHistory中Order Oy的變化導(dǎo)致TraderHistory的樹根的變化

3/ Balance Bx變化導(dǎo)致Balance的樹根的變化

4/ Balance By變化導(dǎo)致Balance的樹根的變化

5/ 兩個賬戶的Balance的變化一致

6/ Account X和Account Y賬戶的變化導(dǎo)致的Account樹根的變化

這個是零知識證明的第三個方向:擴展性。在足夠多的交易的情況下,路印3.0的TPS在目前的以太坊上達(dá)到了350。在君士坦丁堡升級后,TPS能達(dá)到1400。每筆交易平均下來的費用大約在1美分。

其他還有一些有意思的項目:其他還有 Coda(零知識遞歸證明),Mixer(混幣),zkPOD(通用數(shù)據(jù)的交易)等等有意思的場景和應(yīng)用。

總的來說,零知識證明的技術(shù)非常有意思,零知識證明就像一座橋梁,實現(xiàn)現(xiàn)實世界到數(shù)字世界的映射。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉