Ether
如何使用乙太坊的 zksnarks 能力?
簡單的問題,但我在任何地方都找不到答案……
如何使用乙太坊的 zksnarks 功能來執行完全匿名的 Eter 從一個錢包到另一個錢包的發送?
一個完整的答案需要花費大量的時間和空間,而目前的一般情況是沒有簡單的方法來使用 zkSNARK 預編譯。
總綱如下:
- 使用libsnark 小工具庫建構電路
- 生成證明和驗證密鑰,並將驗證密鑰導出到合約,如Christian Reitwiessner 的範例
- 使用 libsnark 生成證明
- 向契約發送證明
這遺漏了很多細節,但很難找到一個貫穿所有步驟的好例子。
或者,您可以嘗試使用ZoKrates,它提供了一種高級語言,可以編譯為乙太坊的 zkSNARKs。這使它非常易於使用,但最大的問題是該語言不像 libsnark 中使用的 C++ 那樣具有表現力,因此建構諸如 SHA3 或 EC 操作之類的東西是不切實際的。
我建議先嘗試 ZoKrates,然後如果您需要更高級的功能,請繼續使用 libsnark。