買比特幣 買比特幣
Ctrl+D 買比特幣
ads
首頁 > FTX > Info

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

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

螞蟻鏈隱私協作平臺AntChain FAIR引入基于零知識證明的可驗證計算技術:7月8日消息,在2023世界人工智能大會全球區塊鏈產業高峰論壇上,螞蟻鏈宣布隱私協作平臺AntChain FAIR進行全新架構升級,引入零知識證明(ZKP)為核心的可驗證計算技術,從可信數據流轉拓展到計算過程、數據屬性以及身份的可驗證。此外螞蟻鏈FAIR在可信計算架構中加入新型零知識證明虛擬機zkWASM,實現指令級別的可證明特性,可以依托 WASM 多語言生態將多種前端語言編寫的算法程序進行證明轉化,而無需關心底層復雜的算法細節,提升開發應用的友好性。

FAIR 是螞蟻鏈面向數據流轉推出的隱私協作平臺,綜合了區塊鏈和隱私計算的優勢,協作流程由智能合約驅動,數據流轉由隱私計算引擎來解決,并通過區塊鏈技術確權,登記和交易共識,可以解決數據流通過程中,數據共享與隱私保護之間的天然矛盾。目前 FAIR 已經在杭數交、貴數所等多家數據交易所得到應用。[2023/7/8 22:25:31]

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

門羅幣完成零知識證明系統Bulletproofs+代碼審計:2月15日,門羅幣官方發推稱,完成零知識證明系統Bulletproofs+代碼審計。此前消息,零知識證明系統Bulletproofs+代碼獲準可在門羅幣協議中使用。隨后官方計劃籌集90.3 XMR以進行零知識證明系統Bulletproofs+審計。[2021/2/15 19:49:05]

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

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

零知識證明研發機構StarkWare啟動基于STARK的可驗證延遲函數服務:零知識證明研發機構StarkWare在以太坊主網上啟動了基于STARK的可驗證延遲函數(VDF)服務VeeDo。VDF是一種可通過計算提供延遲和時間滯后的函數。StarkWare打算用VeeDo解決的第一個應用是以太坊上的無需信任的、不可支配的隨機性概念驗證(PoC)。目前,該PoC已在主網激活。另外,StarkWare還在研究時間鎖(TimeLock)以及下一代PoW機制。

注:2018年7月份,StarkWare獲得了以太坊基金會提供的400萬美元資助,將研發對STARK友好的哈希函數和技術,并為生態系統提供開源代碼。STARK將允許區塊鏈在兼備隱私和后量子安全的情況下進行大規模擴展(例如分片)。(Medium)[2020/6/24]

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

西班牙跨國銀行BBVA探索零知識證明及加密技術:5月4日消息,總部位于西班牙的跨國銀行Bilbao Vizcaya Argentaria銀行(BBVA)宣布與馬德里研究中心IMDEA Software Institution合作,以探索零知識證明(ZKP)以及其他“先進的加密技術”。(Cointelegraph)[2020/5/5]

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

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

動態 | 0x 協議推出基于零知識證明技術的 StarkDEX 測試版,每秒可處理逾 550 筆交易:去中心化交易協議 0x 宣布推出去中心化交易基礎設施 StarkDEX,并提供了 Alpha 測試版供模擬交易。StarkDEX 由 0x 與零知識證明技術開發公司 StarkWare 合作開發,目的是使用 STARKs 技術突破非監管交易的無形限制,使加密貨幣交易所為用戶提供大規模而無對手風險的交易。0x 表示目前 StarkDEX 每區塊最多可批量處理 8000 筆交易,每秒可處理逾 550 筆交易,手續費成本則降低 200 倍。[2019/6/4]

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

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:ARKERKMERNBSNeumarkBullPerksNumerairenbs幣未來價格

FTX
CBD:越發達的經濟體 其央行對數字貨幣態度越謹慎_bdc幣上交易所了嗎

自從央行數字貨幣的概念興起以來,有近80%的中央銀行都正在以某種形式開發中央銀行數字貨幣(CBDC).

1900/1/1 0:00:00
EOS:歷史性投票后 EOS網絡通貨膨脹率大幅下降_ING

EOS社區最近提出并批準了對協議的更改,該提案可顯著降低網絡的通貨膨脹率。2月25日,EOS Nation發起多簽提案setinflation,提議將EOS總通脹率設置為1%,且不再注入eosi.

1900/1/1 0:00:00
MIN:助力全面建設小康關鍵年:開年兩個月內5份“區塊鏈+農業”文件出爐_coinex交易所怎么把錢弄出來

近日,農業農村部接連印發了兩份工作文件,其中均有提到區塊鏈技術。此前,互鏈脈搏就曾觀察到,2020年中央一號文件仍是聚焦“三農”領域,不同的是,此文件將區塊鏈排在了人工智能和5G之前,可見中央對.

1900/1/1 0:00:00
DNA:對話谷燕西:區塊鏈技術會如何影響證券行業?_LIB

摘要 時間:2020年2月17日10:00主持人:國盛區塊鏈研究院院長 宋嘉吉主講人:谷燕西(曾任華泰聯合證券信息技術副總監.

1900/1/1 0:00:00
MAT:美媒:美國政府或將禁止所有中國企業采購美國半導體芯片_加密貨幣市場總市值排名

據報道,美國商務部正在起草修改所謂的“外國直接產品規則”(foreign direct product rule),該規則限制外國公司將美國技術用于軍事或國家安全產品.

1900/1/1 0:00:00
區塊鏈:浙江移動云基于BSN的BaaS服務進入公測期_BAA

  近日,浙江移動政企云(zjcloud.com)的區塊鏈BaaS產品“移動云鏈”正式進入公測期,這標志著浙江移動政企云已具備面向企業及開發者,提供低成本的區塊鏈云BaaS解決方案.

1900/1/1 0:00:00
ads