Может ли многоуровневая консенсусная система обеспечить устойчивость сети к атакам от 51% до 90%?

Гостевой пост HodlX  Отправьте свой пост

В последнее время мы наблюдаем, как все больше и больше сетей блокчейнов становятся жертвами 51-процентной атака. Эта атака возможна, потому что пороги могут быть довольно низкими, составляя чуть более 50 процентов хешрейта. Когда злоумышленник захватывает сеть, есть много способов злоупотребления ею. Например, злоумышленник может совершить двойную трату. Однако важнее то, что, хотя сеть контролируется злоумышленниками, ее работу нельзя считать нормальной. По сути, такие атаки выводят блокчейн из строя..

Это объясняет, почему разработка нового консенсуса с высокой устойчивостью к атакам 51% является очень своевременной задачей. В своей недавней статье, Руководство к 99% отказоустойчивому консенсусу, Виталик Бутерин предлагает способ повысить порог 51-процентной атаки с 51 процента доли или хешрейта до 99 процентов. Ключевым моментом является введение дополнительных валидаторов, называемых наблюдателями, которые не участвуют в генерации блоков. Наблюдатели выполняют пост-валидацию блокчейна и могут предупредить сеть, если будут обнаружены скомпрометированные блоки. Для пост-валидации Виталик предлагает случайным образом выбирать 512 узлов каждые 4096 секунд алгоритмом, зависящим от задержки..

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

Здесь минимальный временной интервал D – это эмпирическое значение, с помощью которого наблюдатели могут правильно обмениваться данными. При расчете D учитывается плохое подключение к Интернету и вычислительная мощность наблюдателей. Блоки считаются действительными, только если интервал времени подтверждения, деленный на D, не меньше количества наблюдателей, подписавших этот блок..

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

В случае ограниченного числа наблюдателей (Бутерин предлагает использовать только 512 наблюдателей) валидация будет только псевдодецентрализованной. Значительное или неограниченное увеличение количества наблюдателей может привести к значительно более высокому требуемому времени D. В этом случае проверка займет намного больше времени или даже станет бессмысленной..

Пропускная способность современного канала связи все еще ограничена, что затрудняет пост-валидацию больших блоков. Предполагая, что размер транзакции составляет 200 байт, что на самом деле довольно мало и возможно только в финансовых транзакциях без смарт-контрактов, и что в блоке 50 000 транзакций (современные цепочки блоков активно пытаются достичь этого уровня), размер блока составляет 10 МБ. Для передачи такого количества данных за секунду требуется канал со скоростью 100 Мбит / с. Магистральные каналы определенно могут гарантировать такой уровень пропускной способности, но региональные соединения будут намного медленнее. Это сделает проверку либо невозможной из-за требования получения подписей в течение установленного периода времени, либо псевдодецентрализованной, когда выбираются только наблюдатели с лучшими магистральными каналами..

Еще одна слабость – обязательная синхронизация времени между наблюдателями, которая увеличивает уязвимость сети для потенциальных атак, поскольку ни в одной сети с блокчейном не используются безопасные протоколы синхронизации времени (например, SNTP). Работа с незащищенным NTP создает множество возможностей для рассинхронизации пулов наблюдателей, что впоследствии может полностью саботировать проверку..

В попытке устранить проблемы, описанные выше, и повысить устойчивость сети с 51% атак до 90%, подход с использованием дополнительных ролей может обеспечить решение для достижения консенсуса в сети. В качестве альтернативы решению, описанному Виталиком Бутериным, в этом случае для сети потребуется пять ролей, которые динамически назначаются узлам..

Из-за такой настройки решение проблемы византийской отказоустойчивости (BFT) по получению 67-процентной доли одновременно на нескольких уровнях требует контроля над более чем 90-процентной долей. Более того, устойчивость настолько высока, что для того, чтобы вредоносные транзакции даже появились, требуется более 53 процентов доли участия..

Даже при маловероятном появлении сети с 90 процентами единоличной собственности клиенты начнут задним числом отклонять блоки и перестанут доверять скомпрометированной сети, фактически разделив сеть на две части. Поскольку клиенты, использующие сеть, являются ее наиболее ценной частью, 90 процентов контроля над долей дает контроль только над мертвой сетью без клиентов, а оставшиеся 10 процентов станут 100 процентами держателей монет в новой сети..

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

Проблема потенциально плохого интернет-соединения решается с помощью технологии, подобной BitTorrent. Данные передаются по сети фрагментами, что обеспечивает более высокую скорость обмена в регионах с низкой пропускной способностью. Это позволяет доставлять данные даже в искусственно изолированные регионы..

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

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

Глеб Никитин

Глеб Никитин, техлид и соучредитель компании #MetaHash

About the author