libsnark庫代碼層次非常清晰。libsnark也給出了SNARK相關算法的全貌,各種Relation,Language,Proof System。為了更好的生成R1CS電路,libsnark抽象出protoboard和gadget,方便開發者快速搭建電路。在閱讀該示例代碼前,請仔細閱讀libsnark的源代碼分析:零知識證明 - libsnark源代碼分析
唯一有點遺憾的,libsnark沒有給個完整的電路構造實例,入門者想搭建自己的電路,剛開始有點摸不著頭腦。
為了方便入門者編寫自己的電路,同事寫了個基于libsnark構造電路,并生成并驗證電路的實例:
https://github.com/StarLI-Trapdoor/libsnark_sample
歐易OKX宣布將基于全覽默克爾樹、零知識證明升級儲備金證明:3月2日消息,據歐易 OKX 官方消息,平臺宣布在未來幾個月內升級儲備金證明,將基于全覽默克爾樹、零知識證明的技術來證明償付能力。后續將允許任何人查閱默克爾樹中的所有資產情況,但也會通過拆分和洗牌的方式保障用戶隱私。
據了解,除儲備金干凈度為 100% 外,歐易 OKX 是目前唯一一家同時實現默克爾樹開源驗證、錢包地址所有權開源驗證、鏈上資產開源驗證的交易平臺。自去年 11 月份以來,歐易按月定期發布 PoR 報告,持續引領行業提升透明度。[2023/3/2 12:38:51]
入門者,可以基于這個示例開發自己的電路。選擇默克爾樹作為電路的示例,因為在零知識證明的應用中,大量的使用默克爾樹數據結構。
研究機構Geometry將正式啟動并支持采用零知識系統和應用數學的Web3項目:6月28日消息,專注于零知識隱私技術的研究和投資公司Geometry已運營幾個月時間,負責人為Aztec Network前首席執行官Tom Walton-Pocock,團隊成員還包括Celo密碼學負責人Kobi Gurkan和Oiler Network前增長主管Gregoire Le Jeune。Geometry表示,其還獲得了由對沖基金經理Alan Howard支持的孵化器WebN Group的孵化。
Geometry已領投以色列零知識半導體公司Ingonyama的400萬美元種子輪融資,并領投了對NFT市場流動性項目Soap Labs的200萬美元種子輪融資,以及參投了跨鏈基礎設施Socket的種子輪融資。[2022/6/28 1:36:24]
該示例構造了一條merkle路徑的驗證電路,生成并驗證證明。merkle樹的深度為3,并且merkle樹的計算采用sha256散列函數。代碼結構比較清晰,merkle目錄中的main.cpp是主函數。circuit目錄下的merklecircuit.h是電路的實現。整個項目用cmake進行編譯。
波卡聯合創始人:財政部很快將為零知識擴展和網絡基礎設施發展提供巨額資金:1月23日消息,波卡聯合創始人Robert Habermeier發推表示,Polkadot財政部可能很快就會為進一步發展零知識擴展和網絡基礎設施提供巨額資金。Exit-to-DAO作為一種商業模式將是2022年及以后的決定性變化。[2022/1/23 9:08:17]
電路名為MerkleCircuit,主要依賴兩個gadget:merkle_authentication_path_variable和merkle_tree_check_read_gadget。merkle_authentication_path_variable提供了merkle樹的一條路徑。merkle_tree_check_read_gadget檢查給定一個葉子節點,是否能計算出正確的root。
Polygon 推出基于STARK零知識證明的擴容方案 Miden,采用Facebook開源技術且兼容EVM:11月16日消息,Polygon宣布推出基于零知識的、與 EVM 兼容的擴容解決方案Miden,同時也將開源其核心組件的早期原型版本Polygon Miden 虛擬機 (VM) 。Polygon Miden 是一個基于 STARK 的 ZK Rollup,Polygon Miden VM 是完全開源的基于 STARK 的虛擬機,它的作用是驗證程序執行并為DApp 部署提供增強的盡職調查。Miden VM 通過利用Facebook的Novi開發的STARK證明器/驗證器Winterfell 對基于Rust語言編寫的零知識虛擬機 Distaff VM進行了擴展。Distaff VM和Winterfell的核心開發人員Bobbin Threadbare將加入 Polygon 作為 Miden Lead,致力于重新整合 Distaff,將 Distaff 和 Winterfell 結合起來,并繼續開發 Miden VM 及其周圍的生態系統。
除Polygon Miden外,Polygon價值10億美元的ZK策略資金還孵化Polygon Hermez和Polygon Nightfall。Polygon Hermez是此前收購的Hermez Network,Polygon Nightfall是與安永共同開發構建的以隱私為重點保護的Rollup。[2021/11/17 21:56:06]
實現一個電路,主要實現兩個接口函數:
動態 | 以色列理工學院教授違反知識產權規定建立零知識證明技術公司:據Bitcoin.com報道,以色列理工學院教授Eli Ben-Sasson因違反了該學校知識產權規定而被起訴。據報道,Ben-Sasson利用在為該機構工作時開發的知識產權建立了一家零知識證明技術公司。Ben-Sasson是區塊鏈技術初創公司Starkware的聯合創始人兼首席科學家,以色列理工學院在法庭提出要求Ben-Sasson轉讓其在該公司的50%股份。[2019/4/23]
generate_r1cs_constraints - 生成R1CS,該電路比較簡單,只要讓依賴的兩個gadget,生成R1CS即可。
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的散列函數。
作者:Samuel Haig | 編譯者:Maya根據2月20日發布的新聞稿,由BCB許可的所有金融和支付機構必須向其500.
1900/1/1 0:00:00近期,Fcoin暴雷,創始人張建稱:預計無法兌付規模介于7000-13000BTC。而安全公司稱Fcoin比特幣冷錢包已清空,峰值曾達11509BTC,將幣放在其中的用戶可謂損失慘重.
1900/1/1 0:00:00近日看到海外一篇文章中有一組非常有趣的比特幣持幣的數據,如下圖所示: 為了讓大家更清楚的看懂表格中的數據,我把這個表格每一列所代表的意思翻譯了用紅筆標注在原文上.
1900/1/1 0:00:00一位備受矚目的比特幣鯨魚表示,他已停止做空比特幣。 圖片來源:Pixabay這條鯨名為Joe007,從2019年12月到2020年1月在加密貨幣交易所Bitfinex上實現了2000萬美元的實現.
1900/1/1 0:00:00“一位好的稅務官應該把征徼稅款當做拔鵝毛,登峰造極的手法是既能揪下最多的鵝毛,又能把鵝的痛苦叫聲壓到最低。” ——法國財務大臣讓·巴蒂斯特·科爾貝特.
1900/1/1 0:00:00隨著地方兩會接近尾聲,政府工作報告將成為地方部署工作的重要指南。作為新一代信息技術的代表,區塊鏈成為2020年政府工作報告的高頻詞匯,全國大多數省區市均重點提及到區塊鏈.
1900/1/1 0:00:00