(Эта статья содержит некоторые материалы, первоначально опубликованные в 2019 году в журнале Блог IOV Labs RSK)
Безопасность Биткойна зависит от экономических стимулов для майнеров расширять «самую тяжелую цепочку», то есть цепочку с наибольшей накопленной сложностью (обычно самую длинную). В настоящее время эти стимулы предоставляются вознаграждением за блок, которое состоит из субсидии за блок и комиссии за транзакцию. Но субсидия (в настоящее время 6.25 BTC) существенно превышает среднюю комиссию за транзакцию за блок (в настоящее время 0.25 BTC). Субсидирование биткойнов сокращается вдвое каждые 4 года, и без обратно пропорционального повышения цены BTC основной стимул для майнинга сместится с субсидий за блок на комиссию за блокировку транзакций. Для поддержания текущего бюджета безопасности транзакционные издержки должны увеличиться в 25 раз. Пока слишком рано говорить о том, станет ли это когда-нибудь проблемой для Биткойна. Вполне возможно, что Биткойну потребуется софт-форк или хард-форк, чтобы адаптироваться к новой эпохе низких субсидий. В 2014 году я показал, как Биткойн может стать нестабильным, когда представил (в основном теоретические) ФРОНТАЛЬНАЯ АТАКА. Карлстен и др. (2016) проанализированы эта проблема глубока, но они не смогли найти удовлетворительного решения. Это не только проблема Биткойна, но и проблема каждой криптовалюты, чья денежная эмиссия со временем уменьшается.
Но нам пока не нужно беспокоиться о Биткойне. Биткойн-сообществу, возможно, придется решить эту проблему через 10 или 20 лет, а может быть, и никогда. Время от времени возникает проблема пересмотренный, с анализами оба выделив и минимизация проблема. Но когда мы анализируем сайдчейны Биткойна, такие как RSK, проблема вполне реальна.
В 2019 году генеральный директор Blockstream Адам Бэк упомянул сглаживающий при обсуждении долгосрочного бюджета безопасности Биткойна: «Другие долгосрочные идеи эпохи низких субсидий включают усреднение комиссий по интервалам блоков для сглаживания доходов от комиссий».
https://twitter.com/adam3us/status/1097031151921713152
RSK реализует именно эту идею — сглаживание комиссионных доходов — с 2016 года. Но прежде чем мы объясним, как RSK обрабатывает транзакции с высокими комиссиями, мы более подробно покажем три основные атаки с реверсированием блоков, которые могут быть вызваны комиссией за транзакцию: , транзакции с китами и атомизация майнинга.
Если субсидия блока невелика, а комиссии за транзакции в последнем добытом блоке намного выше, чем комиссии, которые можно получить от транзакций в мемпуле, у краткосрочных рациональных майнеров появляется стимул захватывать транзакции из последнего добытого блока и добывать конкурирующий блок. блокировать, а не расширять его. Это отклонение от Консенсуса Накамото, и оно называется Снайперская плата. По определению такое отклонение является атакой на протокол, а майнер считается злоумышленником. Чтобы обналичить украденную комиссию за транзакцию, злоумышленнику также необходимо добыть один дополнительный блок подтверждения быстрее, чем честная цепочка, чтобы остальные майнеры переключились на его цепочку. Поэтому снятие комиссий не всегда выгодно, поскольку злонамеренный майнер рискует зря потратить свой хэшрейт, если его эгоистичный форк не опередит честную цепочку. Редкое снятие комиссий может и не быть проблемой, но если майнеры изменят свой консенсусный код, чтобы получить выгоду от потенциальных возможностей снимания комиссий на всех существующих форках, то сеть может подвергнуться более опасным атакам.
Как только узлы-майнеры выполняют автоматическое снижение комиссий, злоумышленник может воспользоваться этой ситуацией для проведения атаки двойного расходования. Злонамеренный майнер может потратить монеты в честной цепочке и получить взамен другой внешний актив, а затем разветвить честную цепочку на блок перед первым. В вредоносном форке злоумышленник дважды тратит монеты, но также вводит отличительную особенность (т. е. уникальный UTXO), которая не должна существовать в честном форке. Сразу после этого злоумышленник передает сообщение «китовая» сделка который использует эту функцию (т.е. потребляет этот UTXO) и предлагает необычно высокую комиссию за транзакцию в качестве приманки (или взятки) для майнеров, использующих код для снятия комиссий. Хотя термин «китовая транзакция» можно понимать как транзакцию, по которой передается большая стоимость, здесь мы используем определение из упомянутой статьи как транзакцию, за которую выплачиваются высокие комиссии, независимо от суммы передаваемой стоимости. В Биткойне китовая транзакция и вредоносные блоки форков должны быть отправлены непосредственно на узлы майнеров, поскольку нелучшие форки не пересылаются полными узлами в одноранговой сети. Однако на многих платформах смарт-контрактов атака намного проще, поскольку они транслируют не лучшие форки. Кроме того, на платформах смарт-контрактов создание китовой транзакции проще: злоумышленник может повторно использовать одноразовый номер, уже использованный в честной цепочке, тем самым предотвращая включение китовой транзакции в честную цепочку. Альтернативно, китовая транзакция может выполнить контракт, который проверяет, соответствует ли предыдущий хэш блока хешу блока, который существует только в эгоистичном форке (т. е. с использованием кода операции BLOCKHASH), и выплачивает взятку только на эгоистичном форке.
Как только майнеры обнаруживают «китовую» транзакцию, они могут рассмотреть возможность расширения вредоносного форка, даже если он отстает, если взятка достаточно высока, делая ставку на то, что он обгонит более длинную честную цепочку. Без смарт-контрактов лучшая стратегия атаки — это одновременная трансляция серии «китовых» транзакций, подкупающих следующих майнеров, чтобы они продолжали расширять вредоносный форк. В Биткойне транзакции могут быть связаны с ПРОВЕРИТЬ or ПОСЛЕДОВАТЕЛЬНОСТЬ ПРОВЕРКИ. На платформах смарт-контрактов это можно сделать либо путем повторного использования одноразовых номеров, либо с помощью вызовов контракта. Даже если это не автоматизировано, злоумышленник может продолжать генерировать «китовые» транзакции на вредоносном форке, пока он не перехватит честную цепочку.
При атаке Whale Transaction мы считали, что майнерам необходимо динамически переключаться на сложную стратегию майнинга, чтобы принимать взятки, основанные на вероятности выигрыша форка. Мы можем более реалистично предположить, что майнеры применяют более простую стратегию, которая не учитывает будущие взятки, а только эгоистичное снижение комиссий. Если такая стратегия принята большинством майнеров, то возможна новая атака. Атака Miner Atomization — это общесетевая атака типа «отказ в обслуживании», которая пытается побудить всех майнеров одновременно работать над эгоистичными форками, тем самым снижая скорость и конвергенцию честной цепочки. Атака начинается с трансляции транзакции с очень высокими комиссиями, аналогичной атаке со снятием комиссии или атаке китовой транзакции. Эта транзакция не предназначена для двойного расходования, а является приманкой, целью которой является распыление сети майнинга. Мы покажем атаку на примере. Предположим, что за транзакцию T в блоке высотой N выплачивается комиссия в размере 100 монет, но среднее вознаграждение за блок составляет всего 10 монет. Мы предполагаем, что все узлы майнеров запрограммированы на следование этой рациональной стратегии:
- Если T включен в любой из последних K блоков честной цепочки, захватите транзакцию T и попытайтесь добыть конкурирующий блок на высоте N, а затем продолжайте добычу дочерних блоков этого эгоистичного форка, пока он не обгонит честную цепочку.
- Если честная цепочка опережает эгоистическую вилку более чем на K блоков, сдавайтесь.
Вредоносная транзакция с высокой комиссией распыляет майнинг в пользу более крупного майнингового пула, который имеет самые высокие шансы на майнинг транзакции T плюс достаточное количество дополнительных эгоистичных блоков подтверждения, чтобы оставшиеся майнеры сдались. Любопытно, что чем более децентрализована сеть майнинга, тем сильнее сбои, вызванные транзакцией T. Например, для блокчейна со средним интервалом блоков 10 минут, если бы было 100 майнеров, каждый из которых имел бы 1% от общего хешрейта, сеть будет испытывать 100-кратное замедление на протяжении нескольких блоков, пока она наконец не сойдётся. Сеть будет неработоспособна в течение 2 дней!
РСК - это чистый биткойн-сайдчейн, поэтому ему пришлось столкнуться с проблемой обеспечения безопасности блокчейна с помощью бюджета безопасности, состоящего только из комиссий за транзакции с момента его создания. Поэтому RSK пришлось быть готовым к аномально высоким или низким комиссиям. RSK был первым готовым к использованию сайдчейном, который использует слитный майнинг для достижения консенсуса. В настоящее время более 40% майнеров биткойнов объединение РСК.
Майнеры RSK ожидают экономической компенсации за эксплуатацию полных узлов RSK. Большинство блокчейнов выпускают новые монеты в качестве компенсации. Некоторые другие распределенные реестры, такие как Ripple, не выпускают монеты для оплаты производителям блоков, но производители блоков могут субсидироваться извне. У Ripple Labs, которая предварительно майнила XRP, их так много, что они могут предоставить компенсацию в XRP третьим лицам, которые станут производителями блоков. RSK, с другой стороны, сталкивается с самыми жесткими условиями: у него нет выпуска монет (как у Биткойна) и нет премайна монет (как у XRP). RSK представляет собой успешный пример боковой цепи Биткойна, проблеск будущего консенсуса в дефляционных блокчейнах и того, как блокчейн без субсидий может быть устойчивым. Однако отсутствие субсидий означает, что сайдчейн должен быть тщательно спроектирован против атак, представленных здесь. RSK реализует несколько уникальных функций для большей защиты от реорганизаций блокчейна, основанных на транзакциях с высокой комиссией:
- Сглаживание вознаграждения за блок (также называемое сглаживанием комиссий).
- Блокировать распределение вознаграждений
- Объединенный майнинг с поддержкой форков
В следующих разделах мы кратко представим каждую технику.
Сглаживание комиссий — это консенсусное правило, которое распределяет комиссии за транзакции между майнерами более эгалитарным образом. Он выплачивает каждому майнеру сумму вознаграждения за прошлый блок. Функция может быть линейной или нелинейной, основанной на небольшом количестве вознаграждений за предыдущие блоки или на состоянии, которое зависит от всех предыдущих блоков. Самый простой вариант — использовать какой-нибудь фильтр нижних частот для накопленных комиссий. RSK использует очень простую функцию сглаживания. IIR α = 0.1. Если майнер RSK решит блок на высоте N, он получит компенсацию в виде 10% комиссий за транзакции блока N и 10% всех невыплаченных ранее накопленных комиссий майнеров. Другими словами, существует «общий» аккаунт майнеров, где за каждый блок майнер-победитель вносит комиссию за транзакцию и забирает 10% себе.
Сглаживание вознаграждения увеличивает стимул расширять блокчейн по сравнению со стимулом повторно добывать прошлый блок, чтобы получить оплаченные комиссии, поскольку майнер может получить только 10% комиссий за транзакции с китами. Мы вернемся к предыдущему примеру. Мы предполагаем, что среднее вознаграждение за блок составляет 10 монет и блок содержит взятку в 100 монет на высоте N. В RSK блок на высоте N будет выплачивать вознаграждение в размере 19 монет, а следующий блок будет выплачивать 18.1 монет. Эгоистичному майнеру теперь требуется в 10 раз больше мощности хеширования, чем любому другому майнеру, чтобы атака была прибыльной.
Теперь мы демонстрируем другие дополнительные меры защиты.
RSK реализует консенсусный протокол распределения вознаграждений под названием DECOR. DECOR равномерно распределяет вознаграждение между одноуровневыми блоками, если на заголовки этих блоков ссылается честная цепочка. DECOR снижает стимул для атомизации атаки, поскольку победитель транзакции с высокой комиссией должен разделить вознаграждение с еще 10 майнерами, которые произвели однородные блоки. Это связано с тем, что блок блокчейна может иметь до 10 ссылок на одноуровневые блоки, а протокол DECOR распределяет вознаграждение за блок между ними всеми. Чтобы избежать обмена, майнеру придется добыть еще 10 эгоистичных блоков, предотвращая ссылки на дядей, что значительно снижает его шансы на успех. Учитывая распределение вознаграждений вместе со сглаживанием комиссий, для того, чтобы попытка взлома сети RSK была успешной, взятка должна быть как минимум в 110 раз выше, чем среднее вознаграждение за блок.
Объединенный майнинг с поддержкой форков — это вариант объединенного майнинга, который позволяет пользователям отслеживать сеть основной цепи (например, Биткойн) на предмет вредоносных форков в сети боковой цепи (например, RSK). Чтобы получить прибыль от атаки «китовых транзакций», злоумышленник должен найти жертву, которую можно будет потратить дважды. Этой жертвой, вероятно, станет онлайн-биржа криптовалют. Криптобиржи ждут несколько сотен подтверждений блока, прежде чем принять депозит, чего достаточно для Система РСК Армадилло чтобы заранее обнаружить вредоносный форк и предупредить биржу. В случае атак со снятием комиссий и атомизацией майнеров вредоносные форки короткие, поэтому Armadillo можно использовать только как инструмент для диагностики ситуации и выявления пулов, отклоняющихся от честного протокола, но он не может предотвратить атаку.
Еще одной дополнительной защитной мерой, которую RSK в настоящее время не реализует, является ограничение цены газа для транзакции кратной минимальной цене на газ (т.е. спред 10x). Я предложил аналогичную меру для Биткойна в 2013. RSK может легко реализовать это, поскольку каждый блок объявляет минимальную принятую цену газа для транзакции. Однако установка максимальной цены на газ не решает проблему полностью, если сеть находится в состоянии, когда блоки не потребляют весь лимит газа, доступный в блоке. Высокая комиссия за транзакцию в T может быть результатом большего количества потребляемого газа вместо более высокой цены на газ (выплачиваемая комиссия является произведением этих двух сумм).
Сглаживание вознаграждений не является окончательным решением, поскольку злоумышленники могут использовать платформу смарт-контрактов для взятка Шахтеры делать что угодно. Теоретический «Вечный выбор для атаки тёмной стороны» (или ECDSA :) ) я представил в 2014, как способ показать, как майнеров можно подкупить за отклонение от честного поведения. МакКорри эл. (2018) представил широкий спектр теоретических атак на подкуп. Однако уровень понимания и подготовки, необходимый для принятия взяток на основе смарт-контрактов, значителен. Это значительно усложняет осуществление атак с целью подкупа на основе смарт-контрактов. Майнер должен знать о договоре взятки и понимать, как с ним взаимодействовать. Однако этот тип атаки неизбежен: если платформа может выполнить платеж текущему майнеру блока, то она также может выполнить смарт-контракт, который платит тому же майнеру. Это связано с тем, что язык программирования, описывающий консенсус протокола, и язык, используемый смарт-контрактами, являются «полными по Тьюрингу». Это интересная теоретическая проблема.
Можно придумать хитрые уловки, чтобы затруднить выплату взяток, например, заставить адреса майнеров быть специальными (т.е. только одноразовыми), чтобы майнеру нельзя было платить по контракту о взятке. Однако полная платформа смарт-контрактов Тьюринга не может предотвратить платеж от стороны, которая желает заплатить, другой стороне, желающей получить оплату. Мы всегда конструируем успешный смарт-контракт для подкупа, который обходит защиту. Например, злонамеренный майнер может создать доказательство с нулевым разглашением, подтверждающее контроль над конкретным адресом майнера в контракте, не раскрывая приватный ключ. Майнер отправит это доказательство в договор о взятке вместе с альтернативным адресом получения взятки.
Недостаточно ограничить возможности языка смарт-контрактов блокчейна, майнеры которого должны быть подкуплены, поскольку любая другая платформа смарт-контрактов, полная по Тьюрингу, может использоваться для дачи взяток майнерам. Платформе необходимо только запустить реле заголовка блока (т. е. btcrelay). Например, RSK и Ethereum могут использоваться для дачи взяток майнерам биткойнов. Однако координировать атаку на мостовой блокчейн сложнее.
Одной из потенциальных мер защиты от атак с подкупом является использование варианта консенсусного протокола PoS, который требует, чтобы большинство производителей блоков подписывали блоки, а также требует от них наличия гарантийного депозита (доли) монет на период в несколько месяцев. Доли майнеров, которые допускают двусмысленность (создают два противоречивых блока или расширения противоречивых форков), будут конфискованы сообществом, запустившим хардфорк. Хотя эта защита не устраняет уязвимость, она может увеличить стоимость атаки, поскольку взятка должна быть выше, чем потерянная ставка. В настоящее время включение ставок майнеров в Биткойне невозможно. Хотя RSK могла бы принять консенсус PoS, предложений о переходе на PoS или смешивании PoW с PoS в RSK нет.
Мы представили несколько известных атак на консенсус Накамото, основанных на вредоносных транзакциях с выплатой аномально высоких комиссий. Некоторые атаки допускают двойное расходование средств, а другие вызывают нестабильность сети. Эти атаки особенно актуальны для всех сайдчейнов Биткойна, включая RSK. RSK реализует сглаживание вознаграждения за блок, разделение вознаграждения за блок и объединенный майнинг с поддержкой форков в качестве сдерживающих факторов. Хотя сглаживание вознаграждений работает для явных комиссий, нельзя избежать общего случая взяток, выплачиваемых с использованием смарт-контрактов. Защита от этих атак требует активного мониторинга сети. Наконец, необходимы дальнейшие исследования потенциальных решений для этих атак.
- 100
- 2016
- 2019
- Учетная запись
- активный
- Адам Назад
- дополнительный
- плюс
- Все
- гайд
- активы
- Автоматизированный
- ЛУЧШЕЕ
- Ставки
- к
- Bitcoin
- блокчейн
- BTC
- цена btc
- Наличный расчёт
- Вызывать
- вызванный
- Генеральный директор
- вызов
- шансы
- изменение
- Проверки
- ребенок
- код
- Монета
- Coins
- сообщество
- Компенсация
- Консенсус
- потреблять
- продолжать
- контракт
- контрактов
- Создающий
- крипто-
- криптообмен
- Crypto Exchanges
- криптовалюта
- Текущий
- децентрализованная
- Защита
- Отказ в обслуживании
- Проект
- подробность
- срывать
- Нарушение
- распределенные книги
- Рано
- Экономические
- Эфириума
- обмена
- Биржи
- расширения
- Face
- лица
- Особенность
- Особенности
- Сборы
- в заключение
- Во-первых,
- следовать
- вилка
- полный
- функция
- будущее
- ГАЗ
- ge
- Общие
- GM
- GP
- захват
- GV
- жесткая вилка
- хэш
- Хеширования
- хэшрейт
- здесь
- High
- Как
- How To
- HTTPS
- идея
- определения
- В том числе
- Увеличение
- IP
- IT
- Основные
- знания
- Labs
- язык
- уровень
- Длинное
- основной
- Большинство
- проводить измерение
- средний
- Mempool
- Шахтеры
- Горнодобывающая промышленность
- деньги
- Мониторинг
- месяцев
- сеть
- узлы
- Предложения
- онлайн
- Другое
- бумага & картон
- ОПЛАТИТЬ
- оплата
- платежи
- пиринговых
- Платформа
- Платформы
- бассейн
- Пулы
- PoS
- PoW
- мощностью
- представить
- предупреждение
- цена
- частная
- Секретный ключ
- Произведенный
- Производители
- Продукт
- Прибыль
- Программирование
- доказательство
- рассматривается
- защиту
- защитный
- исследованиям
- ОТДЫХ
- доходы
- Награды
- Ripple
- рядовые лаборатории
- Run
- Бег
- безопасность
- Серии
- установка
- Поделиться
- Акции
- сдвиг
- Короткое
- боковая цепь
- просто
- небольшой
- умный
- умный контракт
- Смарт-контракты
- So
- Решения
- РЕШАТЬ
- тратить
- распространение
- доля
- Стейкинг
- Область
- Стратегия
- субсидия
- успех
- успешный
- комфортного
- Коммутатор
- третье лицо
- время
- сделка
- Сделки
- Тьюринга
- пользователей
- ценностное
- уязвимость
- ждать
- Википедия.
- слова
- Работа
- работает
- XRP
- лет
- нуль