Как использовать возможности zksnarks Ethereum?

Простой вопрос, но ответа нигде не нашел...

Как использовать возможности zksnarks Ethereum для выполнения полностью анонимной отправки Eter из одного кошелька в другой?

Ответы (1)

Полный ответ занял бы много времени и места, и общая ситуация сейчас такова, что нет простого способа использовать прекомпиляции zkSNARK.

Общая схема выглядит следующим образом:

  1. Создайте схему, используя библиотеку гаджетов libsnark.
  2. Создайте ключ проверки и проверки и экспортируйте ключ проверки в контракт, как в примере Кристиана Рейтвиснера.
  3. Создание доказательств с помощью libsnark
  4. Отправить доказательства к контракту

Это оставляет много деталей, но трудно найти хороший пример, который проходит через все шаги.


В качестве альтернативы вы можете попробовать использовать ZoKrates , который предоставляет язык высокого уровня, который компилируется в zkSNARK для Ethereum. Это делает его довольно простым в использовании, но большая проблема заключается в том, что язык далеко не так выразителен, как C++, используемый в libsnark, поэтому создание таких вещей, как операции SHA3 или EC, нецелесообразно.

Я бы рекомендовал сначала попробовать ZoKrates, а затем перейти к libsnark, если вам нужны более продвинутые функции.

Разве ZoKrates не только для смарт-контрактов? Меня не волнует выполнение смарт-контракта. Мне нужно отправить Эфир из А в Б так, чтобы Б не мог знать, что Эфир исходит от А.
Практически все в Ethereum — это смарт-контракты. Девиз: «Эфириум не имеет функций», если вам нужна функция, создайте смарт-контракт.
Да, но на самом деле Эфир — это родная криптовалюта Эфириума. Вы можете отправить эфир без исполнения смарт-контракта. Насколько я понимаю, ZoKrates предназначен только для анонимного исполнения смарт-контракта: его нельзя использовать для анонимной отправки эфира.
Я хочу сказать, что нет возможности отправлять эфир анонимно. Если вы хотите отправить ETH анонимно, вам нужно создать смарт-контракт, который действует как прокси и обрабатывает все операции сопряжения EC.
Затем вы должны объяснить в своем ответе, что zksnarks предназначен только для смарт-контрактов и может использоваться для анонимной отправки эфира только через смарт-контракты… Не напрямую.
И даже в этом случае количество эфира, переданного в рамках транзакции, будет общедоступным?