Содержание

  • Введение

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

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

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

  • Заключение


Введение

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

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

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

В Биткойне конфиденциальность часто переоценивают. Отслеживать можно не только монеты, но и пользователей. Они пользуются «псевдонимностью» (вместо имен видны публичные адреса), что не лишено недостатков. Сложные методы анализа могут с возрастающей степенью точности агрегировать адреса в попытке деанонимизировать сетевые объекты.

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


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

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

В обычных обстоятельствах (с общедоступными транзакциями) узлу легко проверить, что полученная сумма не превышает отправленную сумму. Если Алиса хочет отправить Бобу 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 уж точно вряд ли кто-то попытается).

Обязательства Педерсена позволяют нам добавлять вклады, лежащие в основе обязательств. Как показывает Максвелл:


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

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


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

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


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

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

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


В заключение

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

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