libsnark庫代碼層次非常清晰。libsnark也給出了SNARK相關算法的全貌,各種Relation,Language,Proof System。為了更好的生成R1CS電路,libsnark抽象出protoboard和gadget,方便開發者快速搭建電路。在閱讀該示例代碼前,請仔細閱讀libsnark的源代碼分析:零知識證明 - libsnark源代碼分析
唯一有點遺憾的,libsnark沒有給個完整的電路構造實例,入門者想搭建自己的電路,剛開始有點摸不著頭腦。
為了方便入門者編寫自己的電路,同事寫了個基于libsnark構造電路,并生成并驗證電路的實例:
https://github.com/StarLI-Trapdoor/libsnark_sample
互操作性協議Rarimo與Polygon ID合作推出首個用于驗證憑證的多鏈零知識證明:金色財經報道,互操作性協議Rarimo宣布與隱私保護ID基礎設施Polygon ID合作,這是鏈上身份向前邁出的革命性一步,每個使用 Polygon ID 的身份提供商都立即實現跨鏈,這不僅是Polygon ID首次成為多鏈,而且由于PolygonID是第一個也是唯一一個允許用戶將鏈外憑證表示為零知識證明 (ZKP) 的解決方案,此次合作標志著數字身份領域的首創。Rarimo表示,既然以太坊已被納入其中,Polygon上頒發的憑證將在未來幾周內在BNB Chain和Avalanche上提供。[2023/7/22 15:51:50]
入門者,可以基于這個示例開發自己的電路。選擇默克爾樹作為電路的示例,因為在零知識證明的應用中,大量的使用默克爾樹數據結構。
基于零知識的隱私協議 Elusiv 已在 Solana 上線主網:3月9日消息,基于零知識且合規的隱私協議 Elusiv 已在 Solana 上線主網,允許用戶發送隱私交易。此外,Elusiv 與 Solana Pay 兼容,并支持 SOL 和 SPL 代幣。基本合規性功能包括所有權證明和創建查看密鑰的能力,使用戶可以根據需要控制他們共享的交易信息。
據悉,Elusiv 旨在為用戶和商家提供隱私保護,同時通過低交易合規解決方案保持安全。此外,Elusiv 可使標準交易隱私化,同時允許用戶選擇要公開的交易。Elusiv 于 2022 年 11 月完成 350 萬美元融資,Big Brain Holdings、Jump Crypto、Solana Ventures 等參投。[2023/3/9 12:52:17]
該示例構造了一條merkle路徑的驗證電路,生成并驗證證明。merkle樹的深度為3,并且merkle樹的計算采用sha256散列函數。代碼結構比較清晰,merkle目錄中的main.cpp是主函數。circuit目錄下的merklecircuit.h是電路的實現。整個項目用cmake進行編譯。
DoraHacks平臺開始支持基于零知識證明的隱私二次方資助:據官方消息,DoraHacks開發者激勵平臺HackerLink已經完成整合Dora Factory隱私投票模塊MACI,并開始支持基于零知識證明的二次方投票和二次方資助輪次。
MACI(最小化抗共謀基礎設施)是Dora Factory以太坊工廠的核心模塊之一,通過對投票進行加密以及對結果提供零知識證明,實現隱私投票,將鏈上和鏈下治理的投票過程轉化為非合作博弈,以達到抗共謀的目的。
DoraHacks對MACI代碼中的安全性和效率問題進行了系統性優化。ETH Denver 2022將于2月20日與DoraHacks共同推出第一個中等規模的MACI二次方資助輪次,超過2,000名開發者和10,000名參會者將通過DoraHacks平臺進行零知識二次方投票,這是MACI和鏈上隱私投票的第一次中等規模應用。[2022/1/28 9:19:46]
電路名為MerkleCircuit,主要依賴兩個gadget:merkle_authentication_path_variable和merkle_tree_check_read_gadget。merkle_authentication_path_variable提供了merkle樹的一條路徑。merkle_tree_check_read_gadget檢查給定一個葉子節點,是否能計算出正確的root。
零知識證明研發機構StarkWare將在幾周內開源ethSTARK:零知識證明研發機構 StarkWare 稱,2018年我們獲得以太坊基金會的資助去探索對 STARK 友好的哈希函數以及開源 ZKP 代碼。我們將在幾周內提前完成我們的工作。ethSTARK代碼的運行速度將比現有的任何 ZKP 代碼快20倍。注,2018年7月份,StarkWare稱獲得了以太坊基金會的資助(現金+代幣),將研發對STARK 友好的哈希函數和技術,并為生態系統提供開源代碼。STARK將允許區塊鏈在兼備隱私和后量子安全的情況下進行大規模擴展(例如分片)。[2020/5/26]
實現一個電路,主要實現兩個接口函數:
generate_r1cs_constraints - 生成R1CS,該電路比較簡單,只要讓依賴的兩個gadget,生成R1CS即可。
公告 | 安永發布第三代零知識證明區塊鏈技術 可通過批量處理降低交易成本:據安永官網今日公告,安永已在以太坊公共區塊鏈上的公共領域發布第三代零知識證明(ZKP)區塊鏈技術。第三代ZKP區塊鏈技術可通過在一次交易中將多個私人轉讓批量處理來顯著降低交易成本,有助于使公共區塊鏈上的私人交易更具可擴展性。[2019/12/19]
generate_r1cs_witness - 給所有的變量進行賦值。該電路,需要賦值的變量有root,leaf(葉子節點),和葉子節點配套的默克爾路徑,以及默克爾路徑對應的地址信息(也就是每一層的節點的位置,左邊還是右邊)。
整個電路最復雜的就是電路的構造函數,申請變量,創建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:ARKMERERKBSPArk Of The UniverseMercorhunterkingtokenBSPT
最近的BCH,可謂是風頭出盡,然而,出的盡是些惹來巨大爭議的風頭。這不,上個月剛剛因為“強捐”而引發了業界熱議,這個月,一個大戶6萬個BCH被盜發帖求助而導致的眼球效應再次讓注意力聚焦BCH,這.
1900/1/1 0:00:00又有人在炒作比特幣要增發突破2100萬枚!2月23日Trustnode報道,比特幣開發者、1M區塊倡導者Peter Todd近日表示“比特幣2100萬枚的供應總量限制實際上是一種宗教.
1900/1/1 0:00:00憑借搜索及廣告業務,谷歌(本文中"谷歌"指稱原搜索巨頭谷歌重組后的母公司Alphabet【1】)在互聯網領域一直處于"霸主"地位,最新數據顯示.
1900/1/1 0:00:002020年是美國大選年。川普尋求連任,他將迎戰其最大對手、真正的億萬富豪、彭博新聞社創始人、前紐約市市長、民主黨總統候選人邁克爾·布隆伯格.
1900/1/1 0:00:00對比特幣減半行情的預期點燃了加密貨幣市場的行情。在2020年,部分隱私幣同樣迎來了減半。零幣Zcoin作為其中重要的一支,不可忽視.
1900/1/1 0:00:00繼Cosmos創始人Jae Kwon離職風波之后,Cosmos二把手、核心開發人員Zaki Manian宣布已于上周辭去Cosmos的所有開發工作職務和董事職務.
1900/1/1 0:00:00