Ether

如何使用乙太坊的 zksnarks 能力?

  • October 11, 2019

簡單的問題,但我在任何地方都找不到答案……

如何使用乙太坊的 zksnarks 功能來執行完全匿名的 Eter 從一個錢包到另一個錢包的發送?

一個完整的答案需要花費大量的時間和空間,而目前的一般情況是沒有簡單的方法來使用 zkSNARK 預編譯。

總綱如下:

  1. 使用libsnark 小工具庫建構電路
  2. 生成證明和驗證密鑰,並將驗證密鑰導出到合約,如Christian Reitwiessner 的範例
  3. 使用 libsnark 生成證明
  4. 向契約發送證明

這遺漏了很多細節,但很難找到一個貫穿所有步驟的好例子。


或者,您可以嘗試使用ZoKrates,它提供了一種高級語言,可以編譯為乙太坊的 zkSNARKs。這使它非常易於使用,但最大的問題是該語言不像 libsnark 中使用的 C++ 那樣具有表現力,因此建構諸如 SHA3 或 EC 操作之類的東西是不切實際的。

我建議先嘗試 ZoKrates,然後如果您需要更高級的功能,請繼續使用 libsnark。

引用自:https://ethereum.stackexchange.com/questions/53174