比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads
首頁 > 屎幣 > Info

ERK:零知識證明——基于libsnark的電路構造及證明示例

Author:

Time:1900/1/1 0:00:00

libsnark庫代碼層次非常清晰。libsnark也給出了SNARK相關算法的全貌,各種Relation,Language,Proof System。為了更好的生成R1CS電路,libsnark抽象出protoboard和gadget,方便開發者快速搭建電路。在閱讀該示例代碼前,請仔細閱讀libsnark的源代碼分析:零知識證明 - libsnark源代碼分析

唯一有點遺憾的,libsnark沒有給個完整的電路構造實例,入門者想搭建自己的電路,剛開始有點摸不著頭腦。

為了方便入門者編寫自己的電路,同事寫了個基于libsnark構造電路,并生成并驗證電路的實例:

https://github.com/StarLI-Trapdoor/libsnark_sample

零知識證明初創公司RISC Zero完成1200萬美元種子輪融資:8月9日消息,零知識證明初創公司 RISC Zero 宣布完成 1200 萬美元種子輪融資,Bain Capital Crypto 領投,Geometry 、D1 Ventures 和 Cota Capital 等參投。本輪所融資金將用于構建對開發人員友好的可擴展區塊鏈。今年 3 月,RISC Zero 推出了零知識證明虛擬機,該虛擬機使開發人員能夠構建零知識證明,并使用各種編程語言在任何計算機上執行。(The Block)[2022/8/9 12:13:26]

入門者,可以基于這個示例開發自己的電路。選擇默克爾樹作為電路的示例,因為在零知識證明的應用中,大量的使用默克爾樹數據結構。

該示例構造了一條merkle路徑的驗證電路,生成并驗證證明。merkle樹的深度為3,并且merkle樹的計算采用sha256散列函數。代碼結構比較清晰,merkle目錄中的main.cpp是主函數。circuit目錄下的merklecircuit.h是電路的實現。整個項目用cmake進行編譯。

以太坊生態零知識協議Semaphore發布V2版本:7月7日消息,以太坊生態針對開發者的零知識協議 Semaphore 推出 V2 版本,更新內容包括不再需要擁有 EdDSA 私鑰,從而實現更簡單的電路(circuit)和更高效的零知識證明生成;用于身份承諾和 Merkle 樹的哈希函數從 MiMC 遷移到 Poseidon,將證明時間減半并提高了 Gas 效率;合約模塊化、三個新的 JavaScript 庫等。

Semaphore 最早由以太坊社區成員 Kobi Gurkan、Koh Wei Jie 和 Barry Whitehat 提出,在 2019 年發布 V1 版,可以讓以太坊用戶可以證明他們的群組成員身份,并在不透露原始身份的情況下發送諸如投票或支持的信號。Semaphore 不是面向用戶的應用程序,旨在為以太坊開發人員提供強大而簡單的工具,以使用私有憑據構建 DApp。[2022/7/7 1:57:35]

電路名為MerkleCircuit,主要依賴兩個gadget:merkle_authentication_path_variable和merkle_tree_check_read_gadget。merkle_authentication_path_variable提供了merkle樹的一條路徑。merkle_tree_check_read_gadget檢查給定一個葉子節點,是否能計算出正確的root。

QitChain network通過零知識證明(ZKPs)實現網絡的隱私性升級:據官方消息,在2022年12月底前,QitChain底層網絡將完成“零知識證明(ZKPs)實現QitChain network網絡的隱私性”升級。據悉,此次升級能夠在目前QTC網絡系統中利用隱私保護數據集。允許用戶和企業在執行智能合約時保護私有數據集,而不會泄露底層數據。[2022/6/15 4:28:44]

實現一個電路,主要實現兩個接口函數:

generate_r1cs_constraints - 生成R1CS,該電路比較簡單,只要讓依賴的兩個gadget,生成R1CS即可。

generate_r1cs_witness - 給所有的變量進行賦值。該電路,需要賦值的變量有root,leaf(葉子節點),和葉子節點配套的默克爾路徑,以及默克爾路徑對應的地址信息(也就是每一層的節點的位置,左邊還是右邊)。

孫宇晨:波場將于周日推出實現零知識證明的DApp“justwrapper”:孫宇晨昨日在微信群透露,波場將于周日下午兩點推出實現零知識證明技術的智能合約DApp“justwrapper”。第一版僅支持USDT,第二版開始支持TRX、BTT、USDJ、 JST、WIN等所有波場系token,未來還會支持BTC。孫宇晨稱,justwrapper轉賬享有零知識證明級別的隱私,只有轉賬的人和收到的人知道這筆轉賬的發生。[2020/9/26]

整個電路最復雜的就是電路的構造函數,申請變量,創建gadget。其中重點講一講,set_input_sizes函數。libsnark的框架中,使用簡單的區分public和private變量的模型。通過set_input_sizes函數,設置前幾個變量為public變量。

金色沙龍 | 燕麗:零知識證明對于協調區塊鏈底層擴容也有很大幫助:在今日舉行的《隱私計算——區塊鏈信息安全守護者》為主題的金色沙龍中,算力智庫創始人燕麗表示,2020年1月1日,中國首部《中華人民共和國密碼法》將正式開始實施,而在這之前一直只有一部 2007年4月23日公布的《商用密碼產品使用管理規定》和《境外組織和個人在華使用密碼產品管理辦法》。很多人把這次《密碼法》和2019年“1024”中央把區塊鏈技術作為國家戰略聯系在一起。區塊鏈技術是完全基于密碼學技術,所以按照這個邏輯,如果政府要完全掌控未來區塊鏈技術的發展,首先就要完全掌控密碼學技術,而這個其中的核心是國家主權范圍之間在所有的通信安全和商業行為之間軍備競賽的升級。區塊鏈有大量擴容壓力,而為了達到這個操作,必然要犧牲系統處理效能和部分隱私。但矛盾的是,區塊鏈前期的應用場景如虛擬貨幣,數字金融等,都需要有更好的隱私保護和不容易被惡意攻擊的防護。所以若想讓區塊鏈技術落地生根,那么提高區塊鏈底層技術來滿足對于高安全性(含高完整性和高保密性)、高性能、高廣義效率的要求,也許是個穩妥做法。所以隱私計算中的零知識證明等對于協調區塊鏈底層擴容也有很大幫助。[2020/4/15]

pb.set_input_sizes(root_digest->digest_size);也就是說,該電路的公開變量為root的bit個數。

確定了電路的實現,看看main函數,如何生成和驗證證明。

在main函數中定義了merkle樹計算需要的一些類型:

FieldT默認是bn256橢圓曲線的的Fr,默克爾樹計算采用是sha256算法。

3.1 setup

實現了generate_read_keypair函數,生成pk/vk。仔細看一下generate_read_keypair函數,邏輯簡單清晰:構造MerkleCircuit,在生成R1CS后,調用r1cs_gg_ppzksnark_generator生成pk/vk。

pk存放在merkle_pk.raw文件中,vk存放在merkle_vk.raw中。

3.2 prove

prove邏輯,首先從輸入參數構造一個完整的merkle樹,并根據輸入選定了默克爾路徑。通過generate_read_proof函數生成證明。該函數邏輯也比較清晰:

構造MerkleCircuit,在生成R1CS后,設置各個變量的值。接著通過r1cs_gg_ppzksnark_prover生成證明。

3.3 verify

在獲知vk,證明以及公開信息(root)的基礎上,調用r1cs_gg_ppzksnark_verifier_strong_IC的接口完成驗證。這也就是verify_read_proof函數的邏輯。

在編譯之前,同步該項目依賴的libsnark庫:

git submodule update --init --recursive4.1 編譯

mkdir build; cd build; cmake ..編譯完成,merkle目錄下會生成merkle的可執行文件。

4.2 可信設置(trusted setup)

./merkle setup4.3 生成證明

./merkle prove [data1] [data2] [data3] [data4] [data5] [data6] [data7] [data8] [index]prove命令,需要提供原始的3層merkle樹的8個葉子節點,并指定需要證明的第幾個葉子節點對應的路徑(index指明)。

4.4 驗證

./merkle verify [root]其中,root信息是在prove中生成過程中打印出來的root信息(也是公開信息)。如果驗證通過,就說明存在一條能生成root的merkle路徑,雖然沒有公開路徑的具體信息。

總結:

libsnark庫代碼層次非常清晰,并抽象出protoboard和gadget,方便開發者快速搭建電路。本文給出了一個基于libsnark庫開發的完整電路示例。示例實現了3層默克爾樹的一條默克爾路徑的驗證。其中默克爾樹采用sha256的散列函數。

Tags:ERKMERNBSBSPPowerKeeSTREAMERINU價格nbs幣發行量BSP幣

屎幣
BTC:金色趨勢丨BTC長期趨勢依舊向好 回落是機會

從BTC 2014-2020年長期走勢能看出,大方向上整體是向上攀升的,BTC大部分時間運行在一個上升通道內,每次觸及通道下邊線都是階段性底部蓄勢階段,隨后一段時間便出現一波趨勢性拉升行情.

1900/1/1 0:00:00
OKB:行業研報:平臺幣估值分析

平臺幣的價值體現在供求關系,平臺通過構造通縮模型和應用場景影響供求關系導致平臺幣價格變化。近期 OKB 的回購銷毀動作引發了平臺幣市場的波動,其他兩家頭部交易所平臺幣 BNB、HT 也因此受到影.

1900/1/1 0:00:00
DAO:DAO不完全近況報告:失敗的實驗與技術的復興

過去幾周,DAO 和分布式治理領域出現了一些重大失敗,但同時它們也標志著 DAO 技術的復興,一些新的積極因素似乎正在從失敗的夾縫中重振旗鼓.

1900/1/1 0:00:00
BAT:2.27早間行情:BTC破位9000 減半行情需要修正

自從前幾天破位趨勢線支撐后,BTC大盤跌跌不休,市場完全被空頭勢力主導,多頭的反彈量能極弱。昨晚到今天,大盤破位9000美金,更是殺出了天量的恐慌盤,市場情緒極度悲觀.

1900/1/1 0:00:00
SUB:Substrate 極簡概括:功能、特性與共識

今天我們將討論 Substrate,一個可以幫助你構建自己的自定義區塊鏈的庫。Substrate 是由 ParityTech 研發出來的,也為 Polkadot 提供了基礎.

1900/1/1 0:00:00
APP:首發 | 增量放權:去中心化的漸進之路

這是一篇對如何實現去中心化的深度思考和解決方案,本文的討論對象是 dapp 產品,但它所提出的四大核心思想同樣適用于 DAO.

1900/1/1 0:00:00
ads