日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在 BSV 上创建你的第一个零知识证明程序

發布時間:2024/3/26 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在 BSV 上创建你的第一个零知识证明程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ZoKrates 是 zkSNARKs 的工具箱,隱藏了零知識證明 (ZKP) 固有的顯著復雜性。它為開發人員提供了一種類似于 python 的高級語言來編寫他們想要證明的計算問題。

我們擴展了它,使其支持在 BSV 上生成和驗證的證明。

安裝Zokrates

二進制包安裝

下載并使用我們發布的二進制包:

二進制文件可以從我們的 發布頁面 下載。

編譯源碼安裝

git clone -b main https://github.com/sCrypt-Inc/ZoKrates ./build_release.sh cd target/release

Zokrates 工作流程

整個工作流程與原始 ZoKrates 相同,只是驗證步驟是在 BSV 上完成的。

1. 編寫電路

創建一個名為 factor.zok 的新 Zokrates 文件,其內容如下:

// p and q are factorization of n def main(private field p, private field q, field n) {assert(p * q == n);assert(p > 1);assert(q > 1);return; }

這個簡單的電路/程序證明了某人知道將整數 n 分解為兩個整數,而無需透露整數。該電路有兩個名為 p 和 q 的私有輸入和一個名為 n 的公共輸入。

2. 編譯電路

使用以下命令編譯電路:

zokrates compile -i factor.zok

這會生成兩個對電路進行編碼的文件,一個是二進制格式和一個人類可讀的格式。

3. 設置

這將為該電路生成一個證明密鑰和一個驗證密鑰。

zokrates setup

4. 計算見證人

一份證明可以證明證明者知道滿足電路的隱私信息。這個秘密信息被稱為見證人。在以下示例中,7 和 13 是見證,因為它們是 91 的因數。

zokrates compute-witness -a 7 13 91

生成一個名為 witness 的文件。

5. 生成證明

它使用證明密鑰和見證人生成證明。

zokrates generate-proof

證明文件 proof.json 如下所示:

{"scheme": "g16","curve": "bn128","proof": {"a": ["0x0a7ea3ca37865347396645d017c7623431d13103e9107c937d722e5da15f352b","0x040c202ba8fa153f84af8dabc2ca40ff534f54efeb3271acc04a70c41afd079b"],"b": [["0x0ec1e4faea792762de35dcfd0da0e6859ce491cafad455c334d2c72cb8b24550","0x0985ef1d036b41d44376c1d42ff803b7cab9f9d4cf5bd75298e0fab2d109f096"],["0x265151afd8626b4c72dfefb86bac2b63489423d6cf895ed9fa186548b0b9e3f3","0x301f2b356621408e037649d0f5b4ad5f4b2333f58453791cc24f07d5673349bf"]],"c": ["0x2b75a257d68763100ca11afb3beae511732c1cd1d3f1ce1804cbc0c26043cb6b","0x2f80c706b58482eec9e759fce805585595a76c27e37b67af3463414246fbabbd"]},"inputs": ["0x000000000000000000000000000000000000000000000000000000000000005b"] }

6. 導出 sCrypt 驗證程序

這會輸出一個智能合約文件 verifier.scrypt,其中包含驗證證明所需的所有代碼。

zokrates export-verifier-scrypt

7. 部署驗證程序

您現在可以將 verifier.scrypt 部署到 BSV 。最簡單的方法是使用 sCrypt IDE。

右鍵單擊并選擇 Deploy Contract: Debug

合約將在幾分鐘內編譯完成,之后應彈出以下面板。單擊部署按鈕。

如果一切順利,應該已經部署了驗證者合約。

8. 驗證證明

接下來,您需要從 proof.json 復制并粘貼到 Call 面板中,然后單擊 Call unlock()


如果一切正常,通過支出交易可以看到證明通過驗證。

總結

恭喜!你剛剛在 BSV 上創建了你的第一個零知識證明程序。接下來,您可以擴展模板 verifier.scrypt 并添加您自己的業務邏輯。

總結

以上是生活随笔為你收集整理的在 BSV 上创建你的第一个零知识证明程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。