Одна из главных отличительных черт любой сети блокчейн – прозрачность. А это означает, что каждый узел может хранить у себя копию абсолютно всех транзакций в сети. А другие пользователи могут, при необходимости, сверяться с этим списком и проверять его на достоверность - это называется «обозреватель блоков». Оба этих процесса отвечают за высокую устойчивость всей сети к ошибкам и преднамеренному внесению различных несогласованных изменений.
Однако с точки зрения конфиденциальности информации – это большой минус. Дело в том, что в большинстве сетей блокчейн можно проследить историю перемещения каждого отдельно взятого токена. То есть монеты являются невзаимозаменяемыми. И если какая-то из них попала в так называемый «чёрный список» - список нелегальных транзакций – сеть может отказаться от её использования. Проще говоря, если с вами рассчитались монетами, когда-то оказавшимися в этом списке, с огромной долей вероятности вы не сможете использовать их в будущем.
И это не единственная слабая сторона системы обеспечения конфиденциальности блокчейна. Так, например, можно отследить не только отдельные монеты, но и пользователей. А всё потому, что система псевдонимов (публичных адресов) далека от идеала. Есть способы, позволяющие получать кластера таких псевдонимов, которые намного проще привязать к конкретному сетевому объекту.
Однако есть способ сделать переводы действительно приватными – конфиденциальные транзакции.
Что это такое?
Впервые об этом новом принципе осуществления переводов зашла речь в 2013 году, когда Адам Бэк – генеральный директор Blockstream, впервые высказался о необходимости как-то улучшить текущий уровень конфиденциальности сети блокчейн. Его идею подхватил биткоин-разработчик Грегори Максвел. Основной целью было решить проблемы, связанные со взаимозаменяемостью и псевдонимностью. Решением стал алгоритм, скрывающий суммы переводов от всех участников сети, кроме тех, кто непосредственно осуществляет данную транзакцию.
При этом, однако, сохранилась возможность проверять достоверность осуществлённых переводов. Правда, в несколько упрощённом виде - полученная сумма не должна была превышать отправленную.
Конкретный пример. Если пользователю сети Биткоин Семёну необходимо, например, отправить своему товарищу Николаю 0,3 Биткоина, то он поступает следующим образом. Берёт свой 1 BTC, переводит его на некоторый промежуточный кошелёк, а затем – разбивает на 2 части. Одна – 0,3 биткоина для Николая, вторая – 0,69 возвращается на собственный счёт (учитывается ещё и цена транзакции). Сторонние пользователи могут увидеть, что сумма внесённых средств равна сумме выведенных средств, но это всё, что им доступно.
Используемые методы шифрования
Главная проблема большинства современных методов шифрования – невозможность напрямую работать с зашифрованной информацией. Словно бы её поместили в сейф, а дверцу – закрыли. Сейф можно перемещать, передавать. Но менять или использовать – невозможно. Поэтому задача программистов заключалась в том, чтобы создать «цифровой сейф», содержимое которого оставалось бы скрытым, но доступным для проверки разными методами.
Решением стало использование гомоморфного шифрования, называемого «Обязательство Педерсена». Рассмотрим его работу на конкретном примере.
Допустим, вы решили провести конкурс среди своих подписчиков – кто угадает вашу любимую криптовалютную биржу – получит 0,1 BTC. Однако что мешает вам выслушать предложенные варианты, а затем – озвучить тот, который не был предложен? Технически – ничего. Поэтому чтобы развеять сомнения участников викторины в своей честности, вы опубликовать ответ, пропущенный через хэш-функию. Например – SHA-256. Получится следующая комбинация:
fce23bf9070ab01bf8f8297d2c151db8373beve4345c3b55bd1fce2059adfd18
Расшифровать обратно полученный хэш они не смогут, но проверить, совпадает ли ответ викторины, пропущенный через ту же хэш-функцию с озвученным – очень даже.
Однако никто не мешает сильно заинтересованным лицам составить список большинства используемых бирж и пропустить их через алгоритм хэширования. Так методом простого перебора можно получить правильный ответ.
Но если вводить более сложный текст, типа «моя любимая криптобиржа», то взломать подбором хэш уже не получится.
Собственно, обязательство Педерсена и заключается в добавлении перед конкретным адресом пользователя дополнительной информации. А при осуществлении транзакции, создаётся два дополнительных обязательства – для адреса получателя и для адреса возвращения.
А автоматические алгоритмы могут определить, совпадают ли данные на входе с данными на выходе, без понимания сути закодированной информации.
Потенциальная польза
Используя конфиденциальные транзакции, можно добиться одновременно и высокой прозрачности, и высокой приватности. Любой может проверить правдивость данных, но с их содержанием может ознакомиться только тот, у кого есть возможность дешифровки.
Проблема в том, что это дополнительное кодирование серьёзно увеличивает величину файла. А поскольку Биткоин и так не справляется с проблемой масштабирования, внедрение протокола конфиденциальных транзакций ещё сильнее загрузит систему. Так что этот сценарий крайне маловероятен.
Что не мешает другим блокчейнам, более приспособленным для передачи больших объемов информации, активно внедрять конфиденциальные транзакции. Например, блокчейн Monero использует для достижения высокой анонимности и взаимозаменяемости именно их, а также – так называемые «кольцевые сигнатуры». Примерно то же самое делают и сайдчейны (блокчейн-надстройка на крупную сеть) Liquid и MimbleWimble.
Вывод
Конфиденциальные транзакции – не единственный способ повышения безопасности и анонимности сетей блокчейн. Но один из наиболее простых и эффективных на деле. Так что те сети, которые успешно решили или решают для себя проблемы масштабируемости, либо активно его используют, либо планируют это осуществить. Потому как именно высокая конфиденциальность информации – основное преимущество криптовалют по сравнению с традиционными финансами.