Triptych: новый алгоритм, который защитит пользователей Monero

TheFuzzStone
XMR.RU
Published in
5 min readSep 24, 2020
Monero позволяет скрыть данные отправителя, получателя и сумму транзакции. Алгоритм Triptych (произносится как «трип-тич») является усовершенствованием, которое делает Monero более быстрой, легкой и приватной криптовалютой.

Monero позволяет скрыть данные отправителя, получателя и сумму транзакции, а также подробности поведения пользователя, которые могут оказаться довольно информативными. В этой статье речь пойдёт о Triptych (произносится как «трип-тич»), новой технологии Monero, которая даст возможность ещё лучше скрывать данные отправителей, позволит сократить место, занимаемое транзакциями в блокчейне Monero, а также ускорить их обработку.

Кольцевые подписи

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

Перемещение публичных ключей Monero сегодня скрывается при помощи схемы, называемой криптографическими кольцевыми подписями. При использовании этого подхода публичный ключ фактического TXO скрывается среди группы ложных выходов (также называемых миксинами). Глядя на транзакцию, невозможно определить, какой из TXO является реальным и действительно используется, а какой из них является ложным. Пример входящих и исходящих TXO можно найти, просмотрев транзакции Monero при помощи блокчейн-обозревателя, такого как moneroblocks.info или xmrchain.net.

Способ выбора ложных TXO из блокчейна совершенствовался с годами. Изначально в рамках протокола использование ложных выходов было опциональным. Со временем их обязательное количество росло и на сегодняшний день составляет 10 миксинов. Кроме того, изначально стандартный кошелёк случайным образом и одинаково во всех случаях выбирал ложные выходы для всех транзакций. Процесс отбора также улучшался с течением времени, и сегодня мы имеем дело с адаптивным случайным процессом, где всё зависит от времени выборки и специального гамма-распределения.

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

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

Сложности

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

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

Ну, в случае с алгоритмом MLSAG/CLSAG, используемым Monero, размер транзакции и время её обработки растут линейно (в плане вычислительной сложности Big O) вместе с увеличением количества ложных выходов. Использование десяти выходов обеспечивает сбалансированность необходимого уровня приватности, меньшего размера блокчейна и более высокой скорости обработки. Увеличение количества ложных выходов поспособствует повышению уровня приватности, но также приведёт и к раздуванию размера транзакций, который уже в несколько раз больше, чем у Bitcoin, а также увеличит время валидации транзакций кошельками.

Triptych

Решением этой проблемы является Triptych, новый алгоритм формирования кольцевой подписи, разработанный Сарангом Ноезером и Брэндоном Гуделлом из Исследовательской лаборатории Monero в сотрудничестве с внешним партнёром Артуром Блю (RandomRun). При использовании Triptych размер кольцевой подписи увеличивается логарифмически, а не линейно. Логарифмический рост происходит очень медленно, и это самый известный образец роста, не требующий привлечения какого-либо стороннего лица вместо устранения случайности на этапе настройки (как это делалось в случае с ZCash). При использовании Triptych время верификации по-прежнему растёт линейно с увеличением количества ложных выходов. Тем не менее имеется возможность групповой верификации и оценки при помощи специальных алгоритмов, и это обеспечивает некоторое ускорение.

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

Тестирование и альтернативные решения

На практике Triptych работает быстро. Один из его создателей, Саранг Ноезер, сообщил о значительных улучшениях при проверке тестовой версии кода. Грубо говоря, при использовании 63 ложных выходов Triptych работает быстрее, чем CLSAG с 10 выходами. Эти результаты свидетельствуют о фундаментальном улучшении Monero, которое будет очень полезно с точки зрения практического использования.

Впереди ещё остаётся немало работы. Новый алгоритм требует тщательной валидации, прежде чем попадёт в кодовую базу Monero. Несмотря на то, что официальный документ Triptych уже прошёл независимый анализ (и принят к публикации ESORICS CBT 2020 Workshop), алгоритм всё ещё может быть улучшен путём внесения некоторых изменений, равно как и программное обеспечение, реализующее его, а существующий вариант реализации алгоритма можно оптимизировать, чтобы сократить время реализации. Такая работа над улучшением Triptych заменяет работу по поиску альтернативных решений.

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

Заключение

Алгоритм Triptych и его расширение Arcturus представляют собой великолепную новую технологию Monero, которая потенциально позволит сократить объём данных кольцевых подписей, который теперь будет расти не линейно (вместе с количеством ложных выходов, используемых для сокрытия отправителя), а логарифмически. В случае принятия алгоритм позволит увеличить количество ложных выходов без последующего увеличения размера блокчейна или объёма используемого ресурса CPU при валидации. Технология Triptych является свидетельством неумолимого прогресса криптовалюты, а также её приверженности принципам защиты приватности и свободы её пользователей.

Источник

--

--

TheFuzzStone
XMR.RU

Privacy, crypto, Linux and FOSS enthusiast. Co-founder of: XMR.RU