Введение в конфиденциальные транзакции

Поделиться
Copied to clipboard!
Введение в конфиденциальные транзакции
Прослушать статью
00:00 / 00:00

Содержание


Введение

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

В плане конфиденциальности данная структура далеко не идеальна. В такой системе, как биткоин, каждая транзакция должна быть связана с предыдущей. Монеты технически не взаимозаменяемы, т.e. каждая отдельно взятая монета имеет привязку к конкретным транзакциям. Никто не может вам запретить отправлять биткоины, но сеть может отказаться от вашей транзакции, если получит информацию о том, что эти монеты ранее были отмечены в черном списке.

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

Конфиденциальность биткоина зачастую преувеличивают. Отслеживаются не только монеты, но и пользователи. Механизм этой монеты предполагает псевдонимность (публичные адреса видны вместо имен), но это не лишено недостатков. Сложные методы анализа могут с повышенной точностью объединять адреса в виде кластеров, в попытке деанонимизировать сетевые объекты.

Одним из предложенных улучшений было сделать транзакции действительно приватными, и это конфиденциальные транзакции.


Что такое конфиденциальные транзакции?

Конфиденциальные транзакции (CT) впервые стал рассматривать генеральный директор Blockstream Адам Бэк в 2013 году, затем эти идеи были расширены биткоин-разработчиком Грегори Максвеллом. Максвелл в общих чертах представил проблемы, упомянутые в первом концепте (взаимозаменяемость и слабая псевдонимность), и предложил свое решение. Обзор суммы переводов может быть скрыт от участников сети, и только две стороны будут знать, сколько монет было отправлено.

В обычных условиях (с общедоступными - публичными транзакциями) ноде легко проверить, что полученная сумма не превышает отправленную. Если Алиса хочет отправить 0.3 BTC Бобу, она берет неизрасходованный вывод (к примеру 1 BTC) и разбивает его на две части: 0.3 для отправки Бобу и 0.69 для отправки обратно (часть средств была израсходована на плату комиссии за майнинг).

Это простое вычисления для других нод: 1 больше чем 0.3 + 0.69, все подписи правильные и входные данные Алисы до этого не отправлялись в другое место, поэтому транзакция должна быть действительной. Однако, когда сумма средств не доступна для других участников сети, все не так просто. Поскольку задача состоит в том, чтобы узнать, одна неизвестная сумма равна или превышает сумму двух других неизвестных сумм?


Обзор используемой криптографии

Чтобы скрыть данные, необходимо шифрование. Однако традиционные методы аналогичны помещению документов в сейф; будучи запертым внутри, документ становится непригодным для использования, пока не будет удален. Для работы конфиденциальных транзакций нам необходим цифровой сейф, содержимое которого не разглашается, но его может проверить постороннее лицо.

Ответ заключается именно в гомоморфическом шифровании, в схеме, под названием обязательство Педерсена. Такой тип шифрования позволяет посторонним лицам проводить различные операции с зашифрованными данными (с которыми они не могут ознакомится) для ряда целей. 

Обычный хеш может использоваться для фиксации данных, которые вы хотите раскрыть позже. Предположим, вы хотите объявить конкурс в социальных сетях, где тот, кто угадает вашу любимую биржу, получит приз в 0.01 BTC. Участники могут быть скептичными, поскольку предполагают, что вы можете просто посмотреть ответы после окончания конкурса и выбрать биржу, которая не была упомянута.

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


f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191


Глядя на данную строку, вы не имеете понятия, что она значит. Вы также не можете изменить функцию, чтобы получить указанные в ней данные. Но, если вы знаете, что за этим кодом скрывается слово “Binance”, вы можете легко проверить, соответствует ли его хэш с указанным выше. Таким образом, ваши подписчики имеют некоторую уверенность в том, что вы не измените свой ответ в конце мероприятия, и скорее всего это приведет к совершенно другому результату.

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

Если наш вход будет: “Binance - моя любимая биржа, мне она нравится больше, чем любой другой обменник 2# 43Wr”, участнику будет значительно сложнее угадать это (и за 0.01 BTC вряд ли кто-нибудь попытается это сделать).

Обязательство Педерсена позволяет нам добавлять входные данные избегая различных обязательств. Как это иллюстрирует Максвелл:


C(BF1 + D1) + C(BF2 + D2) = C(BF1 + BF2, D1 + D2)

Где BF - это коэффициент ослепления, а D - это данные


Здесь также есть еще несколько шагов, включающих криптографию на эллиптических кривых и проверку диапазона, но основная идея заключается в том, что перед каждым адресом пользователя стоит обязательство Педерсена. При отправке средств создаются два дополнительных обязательства (одно для изменения адреса, который должен быть возвращен пользователю, и одно для адреса назначения). 

Никто не знает, сколько монет было отправлено, но можно проверить, что обязательства по изменению и назначению (левая часть уравнения Максвелла) складываются с исходным адресом (правая часть уравнения). Если все правильно складывается, то транзакция пользователя действительна, поскольку можно доказать, что входные данные совпадают с данными на выходе.


На что способны конфиденциальные транзакции?

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

Относительно того, будут ли конфиденциальные транзакции интегрированы в протокол, в настоящее время, очень маловероятно, что это произойдет. С такой дополнительной функциональностью, транзакции намного больше стандартных, учитывая ограниченное пространство блоков это только увеличит нагрузку на сеть. Для этого также потребуется, чтобы большинство участников согласилось внести изменения в код, что является крайне трудоемкой и сложной задачей.


Заключение

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

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

Loading