Введение

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

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

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

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

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


Что такое конфиденциальная сделка?

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


常规交易与保密交易对比


В обычных обстоятельствах (транзакции можно просматривать публично) узлы могут легко проверить, что количество полученных монет превышает отправленное количество. Например, Алиса хочет отправить 0,3 BTC Бобу, она использует неизрасходованный выход (назовем его «1 BTC») и делит его на две части: 0,3 BTC Бобу и 0,69 BTC для отправки обратно в личный кошелек (оставшиеся средства добываются по мере уплаты комиссий за майнинг).

Для других узлов это вопрос простой алгебры: 1 > 0,3+0,69, все подписи верны, и ввод Алисы нигде не используется, поэтому транзакция должна быть действительна. После того, как сумма была спрятана, все усложнилось. Как определить, больше или равна неизвестная сумма сумме двух других неизвестных сумм?


Обзор задействованных криптографических принципов

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

Ответ кроется в «гомоморфном шифровании», механизме, названном обещанием Педерсена. Этот тип шифрования позволяет посторонним выполнять операции с зашифрованными данными для различных целей, не имея возможности просматривать конкретный контент.

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

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


f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191


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

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

Если мы введем «Binance — моя любимая биржа по сравнению с любой другой биржей 2#43Wr», конкурентам будет сложно угадать результат (ведь они не смогут бесчисленное количество раз пробовать всего за 0,01 BTC).

С помощью обещаний Педерсена мы можем добавлять данные после обещания. Максвелл объяснил это так:


confidential transaction equation


С(БФ1 + Д1) + С(БФ2 + Д2) = С(БФ1 + БФ2, Д1 + Д2)

где BF относится к коэффициенту маскировки, а D относится к данным


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

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


Чего можно достичь конфиденциальными транзакциями

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

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


Подведем итог

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

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