21/01/2019
В этом коротком эпизоде нами обсуждается проблема оптимального выбора при проведении транзакций Monero с необычным размером кольца. Размер кольца некоторых транзакций достигал 1000. После последнего обновления Проект Monero перешёл на использование согласованного обязательного размера кольца вместо минимального. Таким образом, обсуждение вопросов в этом эпизоде носит информативный характер, но они не актуальны.
moneroblocks.info
stoffu.github.io/diff-chart/monero-ring-size.html
Стенограмма эпизода:
Джастин: Привет всем и добро пожаловать на очередной эпизод Breaking Monero. Сегодняшний эпизод будет очень похож на два предшествующих. По крайней мере, будет похожа сама идея необычного размера колец. Сегодняшний эпизод будет довольно коротким. Мы уже говорили о том, что такое кольцевые подписи Monero, поэтому посмотрите соответствующие эпизоды, если вы ещё не сделали этого. А теперь мы просто поговорим о том, как менялся размер кольца Monero, и почему в результате было решено более не использовать кольца необычного размера при проведении транзакций. Итак, для начала проведём небольшой урок истории. И поможет нам в этом контрибьютор по имени stoffu, предоставивший фантастический инструмент, позволяющий увидеть, как со временем менялся размер кольца при проведении транзакций Monero. Вы видите, что в начале истории Monero при отправке большинства транзакций, точнее 98%, размер кольца составлял 1, то есть реальный выход вообще не скрывался. По сути, не было вообще никакой кольцевой подписи. И вот здесь можно увидеть, как минимальный размер кольца был повышен до 3. В результате размер кольца большинства транзакций составил 3, затем увеличился до 5, а потом до 7, а сейчас он составляет 11. Но, как можно видеть, далеко не все использовали один и тот же определённый размер. Например, здесь, 30 июня 2017, большинство транзакций имеют размер кольца равный 3, но были и другие транзакции. Вот, например, 130 транзакций в тот день, примерно 5%, имели размер кольца равный 11. Это была одна из опций GUI, можно сказать, программного обеспечения GUI-кошелька, и кто-то предпочитал использовать размер кольца, равный 11, а не, скажем, 14. Но, если перейти к современной истории, к самым последним дням, мы увидим, что сейчас размер кольца составляет 11, это текущий размер кольца Monero, и это единственный размер, который люди могут использовать при проведении транзакций. Нет, это происходит не случайно, люди неслучайно проводят именно такие транзакции; это стало обязательным, то есть обязательным стал размер кольца. И это справедливо, вы знаете историю, к счастью, у вас есть этот инструмент, который вы можете использовать, stoffu собрал уйму данных, которые вы можете найти на их сайте, вот ссылка. Там куча интересных данных, не только о кольцевых подписях Monero, а вообще, касающихся всего, что только может вас заинтересовать. Но хочу предупредить: вкладка вашего браузера может зависнуть, когда вы воспользуетесь этим ресурсом. Честно предупреждаю всех, кто решит воспользоваться им впервые. Так, теперь запоздалая вводная часть, прошу прощения, с вами, как всегда, я, Джастин, и, как всегда, с нами Саранг. Помаши людям, Саранг. Привет.
Саранг: Привет.
Джастин: Прекрасно. Итак, не хотел бы ты поговорить о некоторых безумных необычных размерах колец Monero, с которыми мы сталкивались в прошлом, а также о людях, которые делали их?
Саранг: Да, как ты уже отметил, до недавнего времени размер кольца не был фиксированным, но были установлены минимальные значения этого размера. Минимум изначально был установлен для того, чтобы вы отправляли что-то, что, по сути, означало, что кольцевые подписи были в той или иной мере опциональными. И, как ты сказал, это минимальное значение росло со временем, но именно как минимальное значение, поэтому программное обеспечение кошелька позволяло теоретически выбрать любой размер кольца, какой заблагорассудится. А затем программное обеспечение выбирало примерно столько же выходов, объединяло их с реальным, вашим реальным выходом, и генерировало транзакцию. К тому же различные кошельки, конечно же, могли по собственному усмотрению указать вам на возможный выбор, то есть имели какие-то фиксированные опции. Как ты отметил, программное обеспечение некоторых кошельков хоть и позволяло выбирать любой размер кольца, тот, который ты хотел, также предлагало некоторые варианты, чтобы сделать всё проще. Но некоторые ребята и вправду использовали нечто совсем нестандартное, когда хотели довести уровень анонимности до максимума. Мы уже обсудили пару интересных примеров до того, как начать запись. Один из них датирован, по-моему, 10 октября 2018, когда размер кольца составил более 100. Но есть и ещё более выдающийся пример, в этом случае я думаю, тебе стоит показать его. Это случилось в апреле 2017, и это был на моей памяти самый большой размер кольца за всё время — 4501. Так что, мда…
Джастин: Я могу продолжить и быстро показать всё зрителям. Вот пример страницы блок-эксплорера, где мы видим 4500 миксинов, так что размер кольца составляет 4501. Это очень большой размер кольца. В то время, в апреле 2017, по умолчанию использовался размер кольца равный 5 или 7, так что это…
Саранг: Да, это просто безумие. И тут стоит вспомнить о том, как работают кольцевые подписи — среди этих 4501 выхода только один является реальным выходом траты. И при отсутствии какой-либо внешней информации мы не узнаем, который из них. Мы, немного покопавшись в подписи, отметили, что многие ложные выходы, предположительно ложные выходы, использованные в той транзакции, имели размер кольца, равный 1, поэтому представляли собой уязвимость для проведения атаки с использованием нулевых миксинов и могли привести к цепной реакции. Таким образом, как и в случае, когда мы говорили об алгоритме выбора выходов, вы знаете, что это больше, чем просто размер кольца, когда речь идет о безопасном построении транзакции. Но это довольно интересные необычные кольца, и, конечно же, они могут стать проблемой, так как подобны отпечаткам пальцев. Идея с отпечатками пальцев состоит в том, что когда программное обеспечение вашего кошелька работает нестандартно или же выделяется некоторым образом при генерировании транзакции, злоумышленник может воспользоваться эвристическими принципами и попытаться выяснить, какое программное обеспечение вы используете. Нарушает ли это непосредственно вашу анонимность? Ну, совсем не обязательно, но в то же самое время цель состоит в том, чтобы всё было более или менее однообразно. Если вы по какой-то причине решаете использовать размер кольца, составляющий 69, просто потому что вам так нравится… предположительно, кто-то, заглянув в блокчейн, скажет: «Вот, транзакция с размером кольца, равным 69. А, должно быть, это тот парень, что использует кольца равные 69». Это говорит ему о том, кто вы такой? Совсем не обязательно, но это выделяет вас, и, возможно, со временем и вы увидите различное программное обеспечение кошельков, предлагающее своим пользователям некие различные опции, как бы обеспечивающие различные уровни анонимности. Возможно, в таких случаях меньший размер кольца будет означать более низкий уровень анонимности, а больший размер кольца — более высокий уровень. Но, безусловно, это не тот случай, так ведь? Мы знаем, что если программное обеспечение предлагает определённые значения с такими опциями, отличающиеся от тех, что предлагает программное обеспечение другого кошелька, то для того, чтобы узнать, какой кошелёк вы используете, можно применить такой метод отпечатков пальцев. И, конечно же, гораздо больше вещей определяют уровень эффективной анонимности кольца, а не только его размер. Сейчас, безусловно, у нас есть фиксированный обязательный размер кольца, составляющий 11, то есть один реальный вход и десять ложных выходов, и это уже не минимум. Независимо от того, что попытается сделать программное обеспечение вашего кошелька, если оно попытается отправить в сеть транзакцию с кольцом, размер которого не будет соответствовать обязательному, сеть отклонит такую транзакцию, и она не будет добавлена в блокчейн. Вот почему на том графике, что мы рассматривали ранее, 100% транзакций после форка или даты обновления имеют точный размер кольца. И это хорошо. Станем ли мы увеличивать размер кольца в будущем? Если мы увидим в этом определённые преимущества, которые получат пользователи, то да, мы рассмотрим этот вопрос. Но тут есть свои компромиссы: при отсутствии какой-либо другой информации или большего размера кольца, уровень анонимности улучшится. Почему? Потому что кольцевая подпись гарантирует, что вам известно, что один из какого угодно количества выходов в вашем кольце принадлежит подписанту. Но опять же — при отсутствии внешней информации, что довольно непросто реализовать на практике. Например, в предыдущем эпизоде, посвящённом алгоритму выбора выходов, мы видели, что всё может быть несколько сложнее; если вы выбираете ложные выходы неаккуратно, то некоторая эвристическая информация может быть получена злоумышленником. И существуют другие формы анализа, которые чуть менее чувствительны в этом смысле, в случае с которыми простое увеличение размера кольца не даст таких преимуществ, как вам хотелось бы. Но есть и оборотная сторона, так? Если мы станем использовать больший размер кольца, транзакции станут больше, а блокчейн станет раздуваться быстрее, в зависимости от модели снятия комиссий, комиссии могут стать выше, а всё это означает, что со временем блокчейн станет синхронизироваться медленнее, а это может отвратить людей от создания полных узлов. Так что если мы сделаем это, то получим такой большой, широкомасштабный эффект. Повысим ли мы уровень анонимности? Согласно некоторым моделям — да, но в соответствии с другими моделями — совсем не обязательно. Учитывая глобальную модель, стоящую за всем этим, я думаю, что мы должны сделать так, чтобы каждая транзакция в максимально возможной мере «сливалась» с другой транзакций. Если существует вероятность того, что в случае необычного вида транзакции можно будет «снять отпечатки пальцев» или заполучить какую-либо информацию, то мы должны сделать всё, чтобы избежать этого. Исследователи и разработчики сообщества Monero решили, что возможность использования больших размеров колец ради каких-то мнимых преимуществ перевешивает факт возможности использования метода дактилоскопии, а также выделения среди других транзакций в целом. И поэтому мы решили сделать размер кольца фиксированным. Таким образом, мы всячески стараемся огородить людей от неправильного выбора, который будет небезопасен для них и других людей, и я считаю, что это один из способов, который мы могли использовать, чтобы помочь им.
Джастин: В качестве короткого примера. Допустим, я плачу Сарангу за что-то, так? Скажем, я хочу купить у Саранга чашку его восхитительного кофе, так? Он продаёт кофе. Предположим, Саранга очень волнуют вопросы собственной анонимности, и он говорит мне: «OK, но все платежи, которые ты переводишь мне, должны иметь такой размер кольца или больше, потому что мне нужен максимальный уровень анонимности, когда я получаю платежи». Предположим даже, что Саранг прямо мне говорит, что размер кольца при проведении транзакции должен быть равен 100 или больше. Не так много людей используют подобный размер кольца, так что, взглянув в блокчейн, вы можете прийти к выводу, что эта транзакция соответствует тем, что проводятся при проведении платежей в магазине Саранга, так как его минимальным требованием является размер кольца, равный 100. То есть я хочу сказать, что, вероятнее всего, именно эта, а не другая транзакция с меньшим размером кольца предназначалась именно ему. Вот такой баланс вещей. Это кажется странным, поскольку, с одной стороны, вы переходите к какому-то строгому экстремуму, утверждая, что чем больше кольцо, тем лучше. Как бы я могу установить размер кольца равный пяти, создать транзакцию с размером кольца, составляющим 10 или 100. Так почему бы не взять 100? Это ведь больше. А с другой стороны, имеется другой экстремум, который сводится к тому, что вы дадите больше информации. И в реальности оптимальное решение находится где-то между, и нам нужно бороться с возможностью «снятия отпечатков пальцев» на основе фактического размера кольца и других подобных примеров.
Саранг: Да, увеличение размера кольца с точки зрения некоторых видов анализа даёт множество преимуществ, но за это приходится расплачиваться другими путями. Так что всегда должен быть баланс, и мы постоянно пытаемся его достичь, и лучшее, что мы можем сделать, это именно то, чем мы занимаемся.
Джастин: Отлично, Саранг. Есть ли какие-то заключительные мысли по этой короткой теме?
Саранг: Мы довели размер до 11, дружище.
Джастин: Хорошо. Спасибо, спасибо ещё раз за то, что присоединился ко мне, Саранг, и спасибо зрителям, за просмотр этого короткого эпизода. Скоро выйдут новые. Берегите себя, и хорошего вам дня.
Саранг: Увидимся.
Перевод: Mr. Pickles
Редактирование: Agent LvM
Коррекция: Kukima