Перевод Давайте прекратим использовать выходы Coinbase

Тема в разделе "Статьи", создана пользователем Mr. Pickles, 9 мар 2019.

  1. Mr. Pickles

    Команда форума Модератор Редактор

    Регистрация:
    11 сен 2017
    Сообщения:
    394
    Симпатии:
    150
    Итак, настало время безумных идей.

    Во второй версии исследовательской работы «Эмпирический анализ отслеживаемости блокчейна Monero», написанной Мёзером и др. (Möser, et. al), содержится некоторая интересная информация по публичным пулам. Авторами были рассмотрены данные публичных пулов, используемых майнерами и другими.
    _1.png
    Это первое известное мне исследование, направленное на оценку значения информации публичных майнинговых пулов. Авторами исследования также была оценена пропорция транзакций, связанных с такими майнинговыми пулами. Как можно увидеть на графике ниже, пропорция транзакций, проводимых через пулы, значительно выросла, начиная с 2015 года.
    _2.jpg
    И это проблема. У пулов есть стимул делиться информацией с майнерами. Майнерам хочется знать, когда пул майнит блоки и производит выплаты. Эта информация снижает уровень коррумпированности пулов; если они сообщают о том, что имеют 1/4 хешрейта сети, то люди заподозрят неладное, если пул заявит, что им добывается только 1 из 20 новых блоков, например.

    Я провёл дополнительный поиск информации, которая была раскрыта пулами в 2018. Такая информация бывает двух основных типов: выходами Coinbase и выходами транзакций. Выходами Coinbase являются те выходы, которые майнятся из вознаграждения за блок. Если пулы публикуют список блоков, которые были ими вычислены, наблюдателям становится ясно, что пул заработал выход Coinbase, связанный с этим блоком. Выходы Coinbase содержат вознаграждение за блок и комиссии за проведение транзакции.

    Выходы транзакций в этом контексте относятся к выходам, сгенерированным при проведении других транзакций, контролируемых пулами. Например, предположим, что пул майнит блок A и получает соответствующий выход Coinbase ценностью 1 XMR. Затем он выплачивает 0,5 XMR одному майнеру. Пул создаёт транзакцию с двумя выходами, каждый на 0,5 XMR. Пул получает этот выход сдачи и публикует эту транзакцию выплаты, чтобы её видели другие.

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

    Ниже в эпизоде Breaking Monero и в моём докладе на DEFCON мною рассматриваются стратегии, которые позволят решить эти вопросы. У меня есть материалы по всем известным возможным стратегиям ограничения утечки информации, но это уже тема для другого поста.


    Breaking Monero, Эпизод 10: выходы публичных пулов


    Итак, вернёмся к выходам Coinbase.


    При нормальном состоянии сети Monero (при отсутствии скрытого майнинга с применением ASIC, например) публичные пулы обладают значительной частью мощности всей сети. «Неизвестный» хешрейт, создаваемый приватными пулами и соло-майнерами, на 9 апреля 2018 года буквально составлял погрешность округления.

    3.png

    Nanopool, Miningpoolhub, SupportXMR, MineXMR, DwarfPool и большинство других пулов совместно используют блоки, которые открываются через них. Я не смог найти информацию по f2pool и Minergate, поэтому давайте возьмём консервативное значение и скажем, что 88% выходов Coinbase может быть напрямую связано с данными публичных пулов.

    Если клиенты к этому времени выбирали произвольные выходы Coinbase, это означает, что с вероятностью 88% выход Coinbase мог оказаться эвристически мёртвым. Наблюдатели могли определить, что этот выход Coinbase был потрачен пулом, а не другими пользователями. В данном случае существует множество нюансов, но исключения довольно редки. Особенно, когда это касается этих выходов Coinbase.

    Кроме того, маловероятно, что большинство пользователей вообще станет тратить выходы Coinbase. Следует помнить о том, что люди, которые занимаются майнингом через пулы, никогда не получают эти выходы. Они получают выплаты другими выходами. Фактически и реально тратить выходы Coinbase могут только пулы, соло-майнеры и приватные пулы. Последовательный майнинг блоков требует очень большого хешрейта. Едва ли кто-то сможет заниматься этим в одиночку.

    Я утверждаю, что выбор выходов Coinbase в качестве ложных является очень рискованным. В большинстве случаев мы можем напрямую определить, что средства были потрачены пулом при проведении очередной транзакции. Также в подавляющем большинстве случаев каждый выбранный выход Coinbase сокращает эффективный размер кольца пользователей на 1. Если пользователи создают транзакции с размером кольца равным 11 с 5 выходами Coinbase, эффективный размер кольца фактически будет равен 6. Это делает их более уязвимыми для атак. Ничего хорошего.

    Что делать Monero?

    У Monero есть несколько вариантов. У каждого из них есть свои недостатки.

    Одним из решений является корректировка алгоритма выбора таким образом, чтобы такие выходы в среднем выбирались реже. Этот вариант долго обсуждался Исследовательской лабораторией Monero. Новый алгоритм выбора должен появиться вскоре. Тем не менее пользователи по-прежнему в среднем используют 1 выход Coinbase на транзакцию. Мы по-прежнему будем по существу тратить ложный выход в случае с большинством транзакций.

    Monero может попросить пользователей загрузить и использовать инструмент для траты выходов и втягивать данные майнинговых пулов. Пользователи, которые сделают это, перестанут использовать выходы Coinbase и выходы транзакций в качестве ложных выходов. В настоящее время это частично возможно, но есть множество ограничений, связанных с реализацией. Генерирование этих списков занимает массу времени. API пулов часто имеют ограничения по скорости. Вы не сможете импортировать их в какие-либо мобильные кошельки, только в официальные GUI и CLI. Кроме того, они предрасположены к манипулированию. Пользователи, запрашивающие у пулов информацию, могут получить ложные данные, а пользователи, загружающие списки потраченных выходов, сгенерированные другими пользователями (как в случае с моими на moneroblackball.com), рискуют тем, что и они будут сфальсифицированы. Так что этот вариант не годится в качестве общесетевого решения.

    Я считаю, что наиболее очевидным решением является принятие того факта, что обычные пользователи никак не смогут скрытно тратить выходы Coinbase. Наиболее вероятно, что к ним будут относиться как к ложным. Клиенты кошельков должны стараться полностью избегать их выбора.

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

    В некотором роде.

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

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

    4.png

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

    Тем не менее Monero могла бы задать консенсусное требование, чтобы любые кольцевые подписи с выходами Coinbase содержали только выходы Coinbase. Это несколько повысило бы уровень энтропии в отличие от других приватных майнинговых пулов. Безусловно, в этом случае мы говорим о сценарии, подразумевающем 90% вскрытия, при котором размер кольца Monero должен составлять 45, чтобы скрыть реальный выход Coinbase в 99% случаев. Приватные майнеры снизят свой уровень анонимности, напрямую отправляя другим выходы Coinbase, если сравнивать с существующей системой.

    5.png

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

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

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

    Источник: Let’s Stop Using Coinbase Outputs

    Перевод:
    Mr. Pickles (@v1docq47)
    Редактирование:
    Agent LvM (@LvMi4)
    Коррекция:
    Kukima (@Kukima)
     
    #1 Mr. Pickles, 9 мар 2019
    Последнее редактирование: 9 мар 2019
  • О нас

    Наш сайт является одним из уникальных мест, где русскоязычное сообщество Monero может свободно общаться на темы, связанные с этой криптовалютой. Мы стараемся публиковать полезные мануалы и статьи (как собственные, так и переводы с английского) о криптовалюте Monero. Если вы хорошо владеете английским (или можете писать собственные статьи/мануалы) и хотите помочь в переводах и общем развитии Monero для русскоязычной аудитории - свяжитесь с одним из администраторов.