Как работают конфиденциальные транзакции (Confidential Transactions)?

Как работают конфиденциальные транзакции (Confidential Transactions)?

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

  • Конфиденциальные транзакции (Confidential Transactions, CT) — это криптографический протокол, позволяющий скрывать адрес получателя и фактические суммы на входах и выходах транзакций от третьих сторон.
  • При этом он дает возможность всем проверить, что сумма всех выходов не превышает сумму всех входов, чего достаточно для валидации транзакции.

Кто и когда изобрел технологию конфиденциальных транзакций?

  • Первую версию концепции под названием «биткоины с гомоморфической ценностью» в 2013 году предложил изобретатель Hashcash и сооснователь компании Blockstream Адам Бэк.
  • В 2015 году технологию впервые имплементировали в разработанный Blockstream сайдчейн Elements .
  • В дальнейшем концепцию развил разработчик Bitcoin Core Грегори Максвелл.

Зачем нужны конфиденциальные транзакции?

Как известно, полной конфиденциальности биткоин не обеспечивает.

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

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

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

Как работает технология конфиденциальных транзакций?

Технология реализует новые форматы адреса и транзакции.

  • Формат транзакции состоит из scriptPubKey, схемы обязательства Педерсена и случайного кода ECDH (эллиптической кривой Диффи-Хелмана).

ScriptPubKey содержит адрес конфиденциальной транзакции ( Confidential Transaction Address — CTA ) и математическое условие, согласно которому биткоин можно потратить только в том случае, если право собственности закрытого ключа адреса подтверждено подписью.

Адрес конфиденциальной транзакции – это хеш ослепляющего ключа плюс обычный биткоин-адрес.

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

Схема обязательства Педерсена – это хеш всего выхода биткоина плюс ослепляющий ключ.

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

Пример работы конфиденциальных транзакций.

На кошельке Алисы два биткоина, один из которых она хочет отправить Бобу.

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

Пример конфиденциального адреса:

CTEwQjyErENrxo8dSQ6pq5atss7Ym9S7P6GGK4PiGAgQRgoh1iPUkLQ168Kqptfnwmpxr2Bf7ipQsagi

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

Что делает Алиса с биткоинами?

Алиса создает scriptPubKey с адресом конфиденциальной транзакции, который она создала с биткоин-адресом Боба, с математическим условием, согласно которому можно потратить один биткоин, если Боб сумеет подтвердить подписью владение закрытым ключом адреса.

Затем транзакция записывается в публичном реестре.

Как технология решает проблему сохранения нулевого баланса?

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

Но поскольку конфиденциальные транзакции маскируют суммы, возникают две проблемы:

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

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

Решением второй проблемы служит схема обязательств Педерсона.

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

Пример:

Берем простую алгебраическую структуру и «хешируем» значения, умножая на 2.

(a + b)2 = a*2 + b*2

Предположим, что a=1, а b=3.

  • (1+3)2 = 1*2 + 3*2
  • (4)2 = 2+6
  • Если заменить значение «а» на левой стороне уравнения другим числом, например 4, алгебраическая структура уже не будет истинной:

  • (a + b)2 = a*2 + b*2
  • (4 + 3)2 ≠ 1*2 + 3*2
  • Посредством гомоморфического свойства обязательств Педерсона конфиденциальные транзакции обеспечивают сохранение нулевого баланса биткоин-адресов.

  • Теперь применим этот концепт к Алисе, отправляющей Бобу один биткоин. Для простоты фактор транзакционных комиссий не учитывается.

  • У Алисы есть обязательство Педерсона в два биткоина для ее конфиденциальной транзакции. Когда Алиса посылает Бобу один биткоин, для создания хеша она использует определенную математическую формулу. Затем она использует ту же математическую формулу, чтобы послать один биткоин на адрес размена. Мы складываем два хеша, чтобы посмотреть, равен ли результат обязательству Педерсена адреса Алисы в отношении двух биткоинов. Если результат равен, хеш становится действительной конфиденциальной транзакцией.

Какие преимущества у конфиденциальных транзакций?

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

  • Также ослепляющие ключи можно использовать для аудита: отправитель или получатель платежа может передать ослепляющий ключ третьей стороне с целью аудита.

Какие недостатки конфиденциальных транзакций?

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

Есть решение данной проблемы — отправлять нулевые суммы на несколько адресов, чтобы скрыть настоящий адрес получателя.

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

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

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

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

Где применяется технология конфиденциальных транзакций?

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

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

Модификация конфиденциальных транзакций, называемая Ring CT, используется в криптовалюте Monero .

  • Применение модификаций технологии в криптовалюте Bitshares и в протоколе MimbleWimble.
    • Криптовалюты Grin и Beam работают на протоколе MimbleWimble.
  • Конфиденциальные транзакции можно имплементировать в основной протокол биткоина.
    • Апгрейды могут оказывать негативный эффект на масштабируемость и, скорее всего, далеки от реальности.

Что такое технология конфиденциальных активов (Confidential Assets)?

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

Кто и когда изобрел технологию конфиденциальных активов?

  • Технологию конфиденциальных активов изобрели разработчики Blockstream Эндрю Поэлстра, Адам Бэк, Марк Фриденбах, Грегори Максвелл и Питер Велле.
  • White paper Confidential Assets опубликовали на сайте Blockstream 3 апреля 2017 года.
  • Компания анонсировала разработку технологии.

Недостатки технологии конфиденциальных активов

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

Как работает технология конфиденциальных активов?

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

commitment = xG + a(H + rG)

Где a – это сумма транзакции, G и H – генераторы эллиптической кривой. G – константа. H представляет тип актива и принимает различные значения для различных конфиденциальных активов. X и r – это ослепляющий фактор.

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

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

Данные о сумме транзакции и типе актива отправитель пересылает получателю в зашифрованном виде ончейн или офчейн в p2p-формате таким образом, что данные известны только двум сторонам транзакции.

В процессе эмиссии активов, их пересылки и уничтожения также необходимо задействовать процессы ZKP (Zero-Knowledge Proof) для доказательства того, что сумма транзакции и тип актива имеют приемлемое значение, не раскрывая при этом само значение. Доказательство для типа актива называется Surjection Proof.

Confidential Assets в качестве новой опции для технологии сайдчейнов Sidechain Elements

Sidechain Elements представила новую опцию — Confidential Assets. Технология использует обязательство Педерсена для скрытия суммы транзакции и типа актива. Для подтверждения корректности транзакций используются процессы ZKP.

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

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

Эту проблему решают технологии AZTEC , Zether , Anonymous Zether, PGC, Nightfall и другие. Во всех этих протоколах существующие блокчейн-решения конфиденциальных транзакций ( zk-SNARK , MimbleWimble и др.) имплементированы с применением смарт-контрактов. Такая модель обеспечивает следующие свойства:

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

Где применяется технология конфиденциальных активов?

В проекте Elements технология конфиденциальных активов применяется к сети биткоина.

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

В имплементациях конфиденциальных активов в системах на основе биткоина адреса обеих сторон не скрыты, в отличие от имплементаций в системах на основе MimbleWimble.

Технология также может быть имплементирована в системы на основе протокола MimbleWimble – Grin и Beam. Разработчики Beam такую возможность реализовали в рамках хардфорка Eager Electron 5.0 в июне 2020 года.

CryptoIt