比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > Filecoin > Info

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

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

Mina開發團隊O(1)Labs擬將零知識證明技術應用于OP Stack欺詐證明:6月29日消息,輕量級區塊鏈協議Mina開發團隊O(1)Labs已向Optimism提交提案,建議將旗下基于MIP SzkVM構建的零知識證明技術應用于OP Stack欺詐證明,其中MIPS功能除了除了本地高性能的snarky JS外,還允許使用通用語言編寫應用程序。[2023/6/29 22:07:25]

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

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

零知識證明公司RISC Zero與L2協議Layer N聯合推出零知識欺詐證明系統:5月24日消息,零知識證明初創公司RISC Zero宣布與模塊化L2協議Layer N聯合推出零知識欺詐證明系統。該系統通過將Layer N的執行環境移植到RISC Zero的zk虛擬機上,以實現提升區塊鏈性能的同時,保證區塊鏈的可靠性和安全性。未來,zkVM還將實現與其他執行層的兼容,如EVM、SVM和WASM等。

此前報道,去年8月,零知識證明初創公司RISC Zero宣布完成1200萬美元種子輪融資,Bain Capital Crypto領投。[2023/5/24 22:15:02]

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

Polygon聯合創始人:承諾為零知識技術投資10億美元:12月25日消息,Polygon聯合創始人Sandeep Nailwal在接受采訪時表示,根據PolygonScan瀏覽器,Polygon平均出塊時間約為2.3秒,以太坊平均出塊時間則是15秒。然后Gas費大概是0.001 MATIC。

關于投資零知識技術的目標,Nailwal回答稱,“我們承諾為零知識技術投資10億美元,我們認為這是區塊鏈擴展的圣杯。隱私是第二個因素——這是每個人都會感到困惑的一個因素。因此,您可以使用ZK在以太坊上驗證計算,而無需發回全部數據。相反,您只需證明在第二層上所有計算都是正確的,并將一個簡潔的證明放回到以太坊。”

Nailwal還表示,“即使ETH 2.0升級已經實現,也不會提供足夠的可擴展性。明年,PoS升級將保持一切不變;就像以太坊現在每秒有13筆交易(TPS),在PoS之后也許會達到20 TPS,但不會超過這個數字。所以這不會增加任何可擴展性。假設在三到五年內,即使實現分片,我們預測會有64個分片,每個分片每秒處理20筆交易,但總的來說還是每秒1280筆交易,對嗎?這對整個世界來說還是不夠的。”(Cointelegraph)[2021/12/25 8:03:07]

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

StarkWare零知識證明驗證程序ethSTARK已通過PeckShield安全審計:8月11日消息,區塊鏈安全公司PeckShield官方宣布,StarkWare公司零知識證明驗證程序ethSTARK已通過其全面安全審計服務。

ethSTARK是一個以太坊基金會支持的,由StarkWare公司開發的零知識證明(ZKP,Zero Knowledge Proof) 驗證程序,它實現了比現有ZKP算法更快的驗證速度,進一步提升了StarkWare在零知識證明領域的技術影響力。[2020/8/11]

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

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

聲音 | V神:零知識證明技術對Layer 2更有幫助:在萬向區塊鏈實驗室主辦的第五屆區塊鏈全球峰會上,當被問及最新進展時,V神表示目前正在關注零知識證明,該技術經過十幾年的發展仍然有創新,Zk-SNARKs就取得了一些進步。V神還表示,零知識證明對Layer 2 也許并沒有太大幫助,但對Layer 2也許會有幫助。[2019/9/18]

整個電路最復雜的就是電路的構造函數,申請變量,創建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:ARKERKMERBSPPark StarTERK幣Meta MergeBSPT

Filecoin
閃電貸:DeFi項目新玩法 如何攻擊MakerDao獲取7億美金_ETH

來源:medium.com作者:Dominik Harz 編譯:頭等倉 如果不引入新治理合約的延遲,您有可能竊取Maker的所有抵押品(7億美元)并使用閃電貸發行任意數量的Dai.

1900/1/1 0:00:00
FSB主席:呼吁世界各國領導人監管加密貨幣_穩定幣

金融穩定委員會(Financial Stability Board,后文簡稱FSB)主要負責在國際層面協調國家金融當局和國際標準制定機構的工作,并為金融穩定而制定和促進有效監管政策的實施.

1900/1/1 0:00:00
到2023年 加密貨幣總市值可以達到10萬億美元嗎?_比特幣

最受歡迎的YouTube加密貨幣分析師Benjamin Cowen 在他的最新視頻中一直在討論加密貨幣總市值的對數回歸,根據他的分析認為,在下一次牛市中.

1900/1/1 0:00:00
絕對通縮的HT成為火幣公鏈唯一底層通證 這對“王炸”組合威力有多大?_ONG

2月29日,火幣全球站先后發布公告宣布,火幣公鏈測試網正式上線和火幣將再銷毀1.5億枚HT。這意味著,再銷毀1.5億枚的HT正式進入“絕對通縮”新階段.

1900/1/1 0:00:00
守的云開見月明 BTC1小時級別做多機會將近_EMI

作者:琛實&東哥,更多文章關注微信公眾號“琛和量化”。 韭菜抄底,尸橫遍野! 琛實--禪解幣市 BTC現貨周一我們發文章判斷1小時盤整背馳高點后進入回調走勢,從最高點9988跌至目前最低.

1900/1/1 0:00:00
科普:以太坊 2.0 網絡的四項健康指標_以太坊

有很多文章都介紹了該如何衡量以太坊 2.0 驗證者的表現,卻很少有文章提及該如何評估整個以太坊網絡的健康狀況.

1900/1/1 0:00:00
ads