Как кольцевые подписи скрывают выходы Monero

Опубликовано:
By Diego Salazar

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

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

Данный тройственный подход означает, что если одна из технологий не сработает, то совсем не обязательно остальные две разделят её судьбу. Кольцевые подписи являются самым слабым звеном в схеме обеспечения приватности; и в данном случае слово «слабое» означает, что они наиболее уязвимы для атак с применением эвристического анализа. Почему бы нам не рассмотреть их подробнее?

Как уже говорилось выше, целью кольцевых подписей является сокрытие выхода, используемого в транзакции. Если вас смущают термины «вход» и «выход», используемые в криптовалютном мире, не стоит беспокоиться. На самом деле, всё не так сложно. Когда вы слышите слово «выход», просто представьте себе чек. Сейчас они уже не так широко используются для оплаты чего бы то ни было. Тем не менее, выход, как и чек, может быть на любую сумму: 10 долларов, 32,50 доллара и так далее, и он точно так же передаётся между сторонами, совершающими сделку. В случае с криптовалютами именно выход выполняет эти функции.

Когда кто-то переводит вам 10 Monero, вы получаете выход достоинством 10 XMR, и он передаётся вам из кошелька отправителя точно так же, как это происходит с чеками, которые вы достаёте из своего физического кошелька, чтобы оплатить услугу, передавая их продавцу.

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

Так почему бы просто не увеличить это число до 100 или даже до 1000? ведь, чем больше, тем лучше, правильно? Ну, с точки зрения приватности, да, но есть и другие моменты, которые следует учитывать. Чтобы понять, что я имею в виду, давайте вернёмся к физическому примеру. Если бы вы захотели скрыть долларовую банкноту среди десяти ложных банкнот, вам пришлось бы носить с собой в кошельке примерно одиннадцать долларов на каждый доллар, который вы бы собирались потратить. Один реальный доллар и десять фальшивых. Это уже будет несколько затруднительно, даже если вы решите потратить несколько долларов. А теперь представьте, что сумма фальшивок возрастает до 1000. То есть, на каждый доллар, который вы собираетесь потратить, вам придётся носить примерно 1001 доллар. Вам пришлось бы таскать за собой целый чемодан, просто чтобы купить шоколадный батончик! Важно отметить, что кольцевые подписи работают не совсем так. Например, ложные выходы сами по себе не являются частью подписи — имеются только ссылки на них, но, надеюсь, эта аналогия поможет вам понять общую концепцию.

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

И последнее: в некоторых работах, посвящённых Monero, всё упрощается и говорится о том, что кольцевые подписи позволяют скрыть отправителя, но это не совсем так, и отличие отнюдь не из разряда педантичных придирок. Разница между отправителем (человеком) и выходом (счётом) является грандиозной, когда речь заходит о защите приватности. Несмотря на то, что выход может быть как-то связан с отправителем, сам по себе он не равен отправителю. Таким образом, даже если кольцевая подпись будет взломана, то это никак не поможет связать транзакцию с какой-то конкретной личности, а сумма и отправитель останутся скрытыми, что сведёт к минимуму ущерб приватности всех сторон.

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

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

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


Читайте также