Команда разработчиков протокола AZTEC представила смарт-контракт, использующий принцип «доказательства с нулевым разглашением» для того, чтобы скрыть личности отправителя и получателя, а также сумму транзакции. Как сообщает Trustnodes, решение доступно для любого Ethereum-актива.

«Протокол AZTEC может обеспечить проведение конфиденциальных транзакций для любого типового цифрового актива на Ethereum, включая существующие активы. Для нашей имплементации на этапе проверки концепции (англ. proof-of-concept) мы использовали токен AZTEC и токен DAI проекта MakerDAO. Этот смарт-контракт может применяться для конвертации DAI из его публичной формы стандарта ERC-20 в конфиденциальную форму AZTEC», — говорится в заявлении программистов.

Напомним, принцип «доказательства с нулевым разглашением» — это криптографический метод, посредством которого возможно продемонстрировать наличие прав на что-либо, не показывая, что это, и, что ещё важнее, — какова цена вопроса. Наиболее известен как элемент блокчейна Zcash, где не видно, кто отправитель и получатель транзакции, а также — на какую она сумму.

Таким образом, судя по заявлению разработчиков, Zcash фактически был превращён в смарт-контракт.

На форуме Reddit представитель заявляет, что он провёл транзакцию 14 дней назад, отправив 40 стейблкойнов DAI на 0x6 — смарт-контракт, использующий «доказательство нулевого разглашения».

Как мы можем видеть, он отправил DAI на смарт-контракт, проведя транзакцию с кем-то на некую сумму, известно лишь то, что она не может превышать $40, но может быть меньше. Тем не менее, глядя на смарт-контракт, видим транзакцию, проведённую 14 дней назад, но она кажется не имеющей отношение к той, о которой заявил разработчик: 10 DAI были выведены на адрес (он выделен на рисунке), в то время как разработчик заявляет, что он провёл транзакцию через смарт-контракт на совершенно другой адрес.

Он заявляет, что отправил неизвестную сумму на 0xD, что, если это в самом деле так, интересно, поскольку так выглядит адрес, о котором идёт речь:

Мы можем видеть, что получатель этой предполагаемой первой транзакции через смарт-контракт с доказательством нулевого разглашения ранее получил и отправил ETH, однако, в недавней транзакции нет вкладки ERC20, хотя, если пользователь в действительности получил DAI, она должна была быть.

В итоге блокчейн говорит, что на этом счёте нет DAI, в то время как человек говорит, что на этот счёт были отправлены DAI. Trustnodes отмечает, что проверить это не представляется возможным, но предлагает учесть: разработчики пообещали интеграцию MetaMask, и, кроме того, проект пользуется поддержкой Ethereum-стартапа ConsenSys, — оснований сомневаться в правдивости заявления, казалось бы, нет.

Блокчейны, как известно, не обманывают, люди — другое дело, но если представитель разработчиков говорит правду, это означает, что блокчейны, и конкретно — блокчейн Ethereum — получит возможность «обмануть», скрывая DAI или какой-либо другой токен.

Способ, на основе которого решение работает, следующий: пользователь отправляет ту сумму, которую хочет использовать для смарт-контракта, в то время как она превращается в определённую запись — note.

В итоге действительно невозможно увидеть DAI на счёте получателя, потому что он на самом деле не имеет DAI. Вместо этого у него есть записи note, являющиеся своего рода обещанием или видом претензии на сумму DAI, которую ему отправили.

Чтобы иметь какой-либо фактический DAI, ему придется конвертировать записи note в DAI. Пока для этого приходится пользоваться командной строкой, но, как отмечают разработчики, впоследствии нужно будет просто нажать на кнопку.

Чтобы понять суть предложения разработчиков, Trustnodes предлагает взглянуть на смарт-контракт как на базу данных, где информация о том, кто владеет, чем и о какой сумме идёт речь, содержится в «чёрной дыре», которая не доступна блокчейну.

При желании из неё можно выбраться, и тогда блокчейн, вероятно, сможет увидеть, сколько токенов было получено, но — не от кого. Можно остаться в «чёрной дыре», что приведёт к возможности обмениваться транзакциями только с людьми, так же находящимися в ней, потому что только там база данных знает о правах участников. Вне её никто не имеет ключа, поэтому нужно будет заявить о своём праве, конвертируя записи note.

Что делает решение любопытным, так это то, что участники могут просто «испариться», а также делать что-то за пределами возможности блокчейна отследить это. И это — просто проводя транзакцию посредством смарт-контракта.

«Последствия этого — гораздо шире, чем отправка конфиденциальных токенов ERC20 — в течение ближайших месяцев мы собираемся представить нашу полную имплементацию протокола AZTEC с открытым кодом, которая включает криптографические протоколы, требуемые для управления финансовыми инструментами в полном нулевом разглашении. Это включает анонимное голосование по механизмам управления, анонимные системы ведения персональных данных (например, доказательство, что вы — член аккредитованной группы без предоставления данных о том, кем вы являетесь из этой группы) и децентрализованную биржу нулевого разглашения, которая позволит людям торговать активами AZTEC без публичного представления стоимости сделок», — говорится в заявлении команды разработчиков.

Как отмечает издание, пространство блокчейна — это отчасти пространство громких обещаний, и децентрализованную биржу нулевого доказательства не так легко себе представить: достичь такого уровня конфиденциальности без утечек будет сложно, поскольку где-то должна быть ордерная книга, которой кто-то должен управлять, и, пока такая ордерная книга существует в блокчейне, что само по себе очень затратно, кто-то всё равно будет в курсе, кто есть кто, и что за транзакции проводятся: трейдеры должны знать, каковы ставки и какова цена.

Но, вероятно, можно увидеть более простой обмен в частной форме с людьми, которых пользователь не знает — с тем, кто является оферентом контракта с доказательством нулевого разглашения.

Концепция интересна уже даже тем, что не нужно интегрировать zkSNARK или другие функции в сам протокол Ethereum: можно попросту опубликовать смарт-контракт, позволяя людям выбирать степень конфиденциальности (включая полную) самим.