Одна из главных задач статьи – детализация первого материала с помощью как конкретных примеров, так и теоретически синтезированных векторов атак.
Еще одна задача: доказательство на основе простого неравенства Profit(Attack) >> Costs(Attack) того факта, что современное PoS-семейство построено на посыле работы в 1) доверенной среде, где 2) стоимость взлома всегда меньше полученной от взлома прибыли, тогда как Web 3.0 – сплошь среда не доверенная, а взлом может иметь деструктивные начала.
На Bits.media есть сразу несколько материалов по теме, поэтому – вот список. Я пытался не повторять тезисы, которые сформулированы ранее:
Из важных описаний на английском отмечу следующие:
В частности, в данной работе не рассмотрены следующие атаки:
Но «не рассмотрены» означает, что я не уделяю им много внимания. Но не проговариваю вообще: все атаки в любой системе связаны и игнорировать любой вектор невозможно.
Еще хорошо знать следующие вещи:
Не то чтобы ничего не поймете, не зная обозначенных тезисов, но не все выводы покажутся очевидными: что, впрочем, не мешает общему восприятию.
Чем вступление отличается от введения? Тем, что введение процесс куда более динамичный и длительный. Собственно, для этого была написана первая часть. И передо мной встал вопрос: «а нужно ли теперь, когда все понятно, дописывать вторую часть?». «Что же именно понятно?» — спросит пытливый и опытный читатель? Что ж, отвечу конкретными тезисами.
Цензурированность блоков, централизация валидаторов, обманутые ожидания от TPS-фанатов – это и многое другое понятно в эпоху ETH2 и очередного краха Solana, в период крипто-зимы 2022, когда стейкхолдеры обновленного Эфира не знают, когда смогут получить средства, а такие же участники в Солана ждут очереди на выход, осознавая немыслимые потери.
Но все это экономический эффект от неумелого управления или же архитектурная проблема? Попробуем разобраться.
Если вспомнить, что задолго до ETH2 были: Peercoin, Nxt, BlackCoin, Novacoin, то станут очевидными следующие факты:
Если для вас ничего очевидного в подобных выводах нет – продолжайте читать далее. Если есть – переходите в раздел «Синтетические PoS-атаки».
Все перечисленные на абзац выше PoS-системы, равно как и родоначальник DPoS – Bitshares (Graphene), родились в период с 2012 по 2015 годы. И уже тогда была опубликована известная статья «Криптовалюты без Proof of Work», 16 увесистых страниц на одном из самых компактных из международных языков. То есть, что сказать и как по этому поводу было у любого исследователя с самого начала. И да, это не просто текст: это обобщение через формулы и родовые понятия, то есть даже простая детализация спокойно увеличит объем в 10 раз. Запомним это и пока – двинемся дальше.
Отмечу лишь, что в третьей части представлю вашему вниманию ряд выводов из тестов, которые проводил, изучив исследования тех лет (2012-2015/2016).
Фактически вся история PoS до дня сегодняшнего – попытка или ускорить системы, или достичь нужных цифр в финализации, но при этом ни DPoS, ни LPoS, ни PoS2, никакой другой PoS до сих пор не решает главного:
«Большинство проблем с PoS-протоколами возникают из-за того, что протоколу не известно ничего, кроме соответствующего блокчейна. В системах доказательства работы присутствует внешний фактор, а именно количество вычислительной работы, которое требуется, чтобы найти решение. В системах с подтверждением доли отсутствуют факторы, закрепляющие блокчейн в физическом мире; поэтому интуитивно видно, что согласование на основе PoS допускает больше видов атак».
Почему? Да потому как архитектура для этого не предназначена: есть робкие попытки синтеза: навроде PoH + PoS, PoW + PoS и так далее. Но, как убедились ранее и подтвердим опасения ниже – это работает обычно еще хуже.
Отчего же? Оттого, что если скрестить лошадь и автомобиль, то нечто красивое, удобное и надежное получится лишь в мультфильме, но не в реальной жизни.
Тогда возникает самый главный вопрос: «Почему же до сих пор так мало атак на PoS-семейство?» Ответ очевиден и дан мной не раз: пока они не были массовы (по LTV, количеству HODL-владельцев и так далее) – они не были интересны.
Если коротко, то:
Первый тип атак касается всего PoS-семейства, вторые – подсемейств, а последние – только отдельных блокчейнов (не обязательно даже связанных).
Прежде всего надо принять во внимание два тезиса.
Во-первых, цель алгоритма консенсуса, в общем случае, состоит в том, чтобы позволить безопасное обновление состояния в соответствии с некоторыми определенными правилами перехода состояния, где право на выполнение переходов состояния распределено между некоторым экономическим множеством.
Во-вторых, экономическое множество – набор пользователей, которым может быть предоставлено право коллективно выполнять переходы через некоторый алгоритм. И важное свойство, которым должно обладать экономическое множество, используемое для консенсуса, заключается в том, что оно обязано быть безопасно децентрализованным. А это в свою очередь означает, что ни один субъект или сговор набора субъектов не может занять большинство в этом множестве, даже если этот субъект(ы) имеет достаточно большой капитал и финансовые стимулы.
Зная это – попробуем расширить спектр описываемых ранее атак.
Если когда-нибудь пробовали классифицировать и как-то иначе препарировать атаки внутри ДРС (децентрализованных и/или распределенных систем), то наверняка заметили, что многие атаки – атаки на опережение:
В этом смысле PoS-семейство – не исключение: если хотите атаковать конкурента, то все, что нужно сделать – получить при начальной эмиссии нужное большинство голосов/монет/etc.
Если вдруг кажется, что это долго, муторно и никому не нужно, то скажу, что в 2018-2022 годах именно это было проделано с такими системами, как Solana, Ethereum 2.0 и многими другими, где валидаторами/делегатами/иными суперузлами стали или ранние инвесторы, или крупные CEXs, или кто-то еще из мира Web 2.0.
Отсюда первое очевидное следствие, о котором говорили: цензурирование, выросшее по экспоненте буквально за квартал:
Но это еще не атака, хотя как посмотреть: атаки начнутся в тот момент, когда системы, пораженные вирусом начальной централизации (ВНЦ) начнут действовать именно как компьютерные вирусы: деструктивно, то есть полностью уничтожая, дискредитируя систему.
Попробуйте посчитать простой пример: вы вложили, скажем, $1 000 000 на начальной стадии, получив 10% токенов, а совместно с партнерами по коалиции за $3.3M имеете, допустим, 25% от общей эмиссии. При этом, учитывая вестинг и клифф-периоды, ваша относительная доля в какой-то момент времени будет близка к 50% и более (от задействованной ликвидности). Никто не мешает покупать еще. Отсюда: легко воспитать систему до массового сегмента, скажем, за три-четыре года, когда еще не все разблокировки прошли, и увести ее в полный ноль, дискредитировав разработчиков и core-команду в целом.
Не верите, что такое может быть? Тогда еще раз внимательно присмотритесь к Solana: да, сценарий там отличается, но кто мешает довести его до вышеописанного логического окончания? Верно, никто.
Почему же возникает эта синтетическая атака? Из логической посылки, которая изначально является неверной. Цитирую:
«Безопасность криптовалют с чистым Proof of Stake ухудшается, когда достаточное количество заинтересованных сторон желает сговориться в атаке. Если большинство участников желает участвовать в атаках на чистую систему Proof of Stake, можно утверждать, что больше нет достаточной заинтересованности в том, чтобы эта система продолжала существовать, поэтому предположение, что большинство участников не будет участвовать в (открытой) атаке, является разумным».
Но оно является лишь одним из возможных.
Примитив: приход CBDC – дискредитация PoS-блокчейн-решений.
Для лучшего понимания (скорее – осознания) проблемы, задайте себе простой вопрос: «А есть ли в любой момент времени те, кто заинтересован в падении стоимости застейканных и прочих активов любого произвольного блокчейна?» И краткий ответ, как не удивительно, будет «Да». Более же длинный может включать следующих акторов:
Отсюда и возникает простой вопрос: «Почему архитекторы и инженеры блокчейн-систем так упорно игнорируют эти целевые группы?»
Ответ прост и очевиден: PoS был слишком выгодной VC-историей на протяжении 2018-2021 годов, чтобы отказаться от нее из-за ряда теоретических противоречий. Да, возможно, некоторые из них даже не разрешимы, но зато понятно, куда и как идти. Это примерно как добыча нефти: каждое десятилетие кто-то заявляет, что это не экологично, ограниченно по запасам и так далее, но каждое десятилетие никто толком не ищет комплексного решения, где бы энергетика была основана на ином топливе, равно как и синтетическая одежда и масса полезных штук из нашего обихода.
Отсюда получаем еще один важный вывод: «Адепты PoS будут утверждать, что, поскольку эти стимулы равны или превосходят стимулы системы PoW (что правда), эта система также является такой же надежной или даже превосходящей систему PoW (что ложь)». Хотя на самом деле очевидно, что ASICs/GPUs могут терять в фиатной цене много (на своем опыте скажу: в 10х раз – легко), но вот потерять в относительном параметре Hasrate/Profit без создания нового поколения и подключения его поэтапного, с регулируемой автоматически сложностью, крайне непросто. Отсюда, к слову (вкупе с отличной инженерной проработанностью), такая живучесть S9 в разных регионах мира с дешевым и стабильным электричеством.
В этом главный секрет расхождения: PoS не создают алгоритмически прогнозируемую модель зависимости от внешней среды, кроме фиатной цены, которая является нестабильным параметром на рынке крипто-активов. И, если поняли тезис, то уловите суть: именно двойное равенство (LUNA => UST: UST => USD) и приводит к краху в случае нарушение хрупкого баланса. Просто пока это были сугубо экономические атаки, но никто не мешает проводить их на уровень-два ниже.
Фактически это синтезированная атака «ничего на кону», которая включает еще и допустимость создания доверенной среды за счет картельного сговора и/или иным подобным путем. Если не верится, что такое возможно, то посмотрите на залоговые аукционы времен распада СССР: покупка акций у множества рабочих-аукционов и передел впоследствии – вполне себе рабочая схема. Ровно это происходит на уровне супер-узлов в Топ-10 PoS-блокчейнов сегодня. Произошло.
Скажу больше: есть условно-универсальный эмпирический закон, некогда сформулированный А. Эйнштейном так:
«Невозможно решить проблему на том же уровне, на котором она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень».
Единственное, что ученый упустил: можно не только подниматься, но опускаться по уровням. В позитивном русле этот тезис наследуем сейчас на масштабировании L1 через L2 или L0, а вот в негативном – именно в целой плеяде еще плохо задействованных атак, в которых и пробуем разобраться.
Итак, получается, что подобная атака возможна, поскольку:
Поскольку вольны мне не доверять, просто пройдемся по связкам, которые существуют на сегодняшний день к PoS-семейству:
Поэтому формула следующая: Q(i) -> ∞, Sec(PoS) -> 0, где Q(i) – количество взаимодействий с внешней средой, а Sec(PoS) – безопасность PoS-системы.
И все это возможно при одном простом допущении (aka объяснении): PoS в узком смысле – это не механизм консенсуса. В широком – да, но в широком его никто толком не исследует.
Отсюда следует вывод: данная атака берет все слабые стороны псевдо-консенсуса PoS и умножает их через векторы иных атак, таких как:
Фактически получаем: t = 0 or t -> 0, где t – это локальное время PoS-блокчейна. Нечто похожее есть в связке стандартного DDoS и одновременной атаки закрытого им сервера.
При этом связка п. 2 и п. 3 вытекает по тем же причинам, что и атака 51% в PoW: или она есть и система стремиться к децентрализации, или ее нет и это не децентрализованная система. Речь конечно же про ДРС уровня блокчейн, DAG, а не p2p вообще: старые системы не умеют передавать ценность децентрализованно, поэтому там эти атаки интересны сугубо в академических и прочих исследовательских целях.
По этой же причине в статье об Ouroboros Genesis авторы еще в 2018 году пришли к выводу, «что ни одна из существующих в настоящее время систем PoS не может реализовать полную функциональность распределенного реестра так же, как Биткоин в подобных условиях».
Как уже понимаете, есть и другие проблемные места. Попробуем описать и их.
Помните, наверное, что в каждом эволюционном есть: новаторы, ранние последователи, раннее большинство, позднее большинство, отстающие? К чему это здесь?
Во-первых, к тому, что всегда есть тот, кто приходит позже других. И у него возникает вопрос: «А какой блокчейн правильный?» Или так: «Какое время локально верное?» Или еще: «Какому форку верить?» Сейчас даже не будем брать шардинг, а возьмем стандартный PoS-блокчейн с одной цепочкой.
На помощь приходит как раз понятие финализации.
Давайте, скажем, возьмем Solana (да, скоро будут и другие примеры, а пока – придется потерпеть): пусть есть N-валидатор, который в X-момент голосует за некий форк в системе. Как известно голосование в этом случае ограничено слотом, то есть некоторым фиксированным периодом, продолжительность (временная долгота, сказал бы даже) равна изначально 400 мс.
Отсюда возникает следствие: фактически каждые 400 мс от точки отсчета рождается точка перезапуска. Похоже на флуктуации внутри континуума? Как по мне – да. Поэтому, когда происходит любое иное голосование, отличное от первого, происходит и удвоение интервала времени, которое должно пройти перед тем, как сеть сможет заблокировать это голосование.
Далее: блок с несколькими голосами имеет большие шансы оставаться валидной частью заданной сети (Solana). В Интернете гуляет вот такой пример: «Каждый валидатор проголосовал 32 раза за последние 12 секунд. У состоявшегося 12 секунд назад голосования таймаут в 2³² слота — приблизительно 54 года». Это общее описание, но его вполне хватит, чтобы разобрать суть.
Казалось бы, отлично: защитный механизм найден!
Беда в том, что это гладко только на бумаге: вспомните, скажем, слот 53 180 900, или любой другой, где Solana закрывалась на обед. Как быть при возобновлении работы сети? Очевидный ответ – достигнуть ручного консенсуса между валидаторами: так и поступают BSC, Solana и другие сегодня. Вот только это не решает ничего из проблем вытекающих.
Каких? Представьте себе, что используете оракул, который ориентируется на ончейн данные. И вот одна из сетей – остановилась, то есть время ее в каком-то темпоральном слоте самого оракула будет равно нулю. Как быть после перезапуска? Локальное время оракула и сети будет разным. Одно из решений – обратиться к PoW-оракулам (и да, это может быть даже сеть Bitcoin). На уровне собственного консенсуса PoS это решить не могут: когда-то это называлось «атака издалека», но правильней назвать подобную атаку как «атака по времени стороннего наблюдателя». И не поверите, какое колоссальное количество подобных манипуляций нас ожидает в 2023-2025 годах. Почему не дальше? Возможно, дальше тоже, но этот период, как и прошедшие 2018-2022 годы, точно подвержен воздействию подобному. И да, если сюда добавить атаку белого слона, то достижение позитивных результатов для атакующего и, соответственно, негативных для системы можно ожидать с большей вероятностью.
Чтобы вы уловили, что атака эта низкого уровня, а значит – крайне опасна, процитирую Виталика Бутерина: «К счастью, для них решение простое: при первой регистрации и каждый раз, когда они остаются в сети очень долгое время, им достаточно получить хэш последнего блока от друга, исследователя блокчейна или просто поставщика программного обеспечения и вставить его в свой клиент блокчейна в качестве "контрольной точки". После этого они смогут безопасно обновить свое представление о текущем состоянии». Понимаете? Начинаете работать в строго недоверенной среде через доверенное лицо, а это банальная MITM-атака: и если для человека это еще может быть не критично, то для скриптов, IoT-устройств, нейронных сетей и прочих акторов – еще как.
Собственно, там же Виталик сам косвенно это и подтвердил:
«Консенсус – это социальный процесс, и человеческие существа довольно хорошо справляются с достижением консенсуса самостоятельно, без какой-либо помощи алгоритмов».
А без новых акторов Web 3.0 мало кому нужен – открою вам вот такой секрет Полишинеля.
Отсюда получаем еще одно следствие: с децентрализацией будут большие проблемы. Архитектура разрешает несколько валидаторов на одной ноде, что в конечном счете приведет к сокращению количества нод, что может негативно сказаться на связности сети — во времена PoW акторы были заинтересованы в максимально быстром коннекте, сейчас же это будет не столь важно.
Проще говоря: делая ставку на финализацию как инструмент защиты, упускаем из вида сразу четыре очевидных тезиса:
Последний вопрос в связи с материалом Бутерина и развитием геторогенных блокчейнов (Polkadot, Avalanche, Cosmos), а особенно – в связи с возможными связками DAG+blockchain вызывает наибольшие сомнения в позитивности подхода.
Отсюда: если взять любой эмпирический показатель для любого уровня сетей, начиная с числа Данбара, заканчивая закон Меткалфа, получим, что с увеличением элементов системы взаимодействие между ними усложняется. Проще говоря, если взять два описанных негативных эффекта (напомню – синтезированных из основных атак), то получим сразу же коэффициент 2х на входе: и это без учета «общеблокчейновых атак», навроде сибиллоподобных атак и прочих.
Здесь, необходимо и почти мгновенно, появляется еще один неучтенный элемент.
Посмотрите на Near, Solana, Tron, Cardano или даже Bitshares, что родились в одно время с творением Виталика, и на других палачей Ethereum тоже может посмотреть: многие из них начинали с рассказа о том, как они достигнут 1 000, 10 000, 100 000, 1 000 000 TPS. Но в итоге это заканчивалось каждый раз одинаково.
И дело даже не в том, что скоростные системы нужны в очень ограниченном числе сфер, таких как высокочастотный трейдинг, о чем говорил и не раз, но еще и в том, что все это влияет на один параметр, который мог быть учтен в PoW & PoC, даже PoI алгоритмах, но не в PoS: SSD-хранилища & RAM.
Казалось бы: причем тут это?
Возьмите тот же Ethereum 2.0: более 50% нод, а это уже не PoW-ноды, находится на AWS – на централизованном ресурсе. При цензуре в 62%-65% такой показатель дает достаточную высокий показатель спутанности и зависимости от единоначальных решений.
Допустим, что и это будет преодолено на уровне «социального консенсуса».
Все равно возникает очевидная проблема: чем выше показатель TPS – тем больше места для архивных данных нужно. А полные ноды без архивных данных не имеют смысла. А блокчейн – без полных нод. И возникает целая вереница мало различимых, пока, связей, которые в итоге могут считаться простой формулой: St(bl.dg)*k = С, где St – хранилище (storage) блокчейна (bl) и/или dag-системы (dg), k – коэффициент прироста, а С – связность (connectivity), которая в свою очередь может быть рассчитана так: C = Q(n)*1/c, где Q(n) – количество условных нод хранения, а с – уровень централизации (связанности) этих нод между собой. Допустим, пример:
● у нас есть 10 000 нод;
● из которых 1 000 принадлежат 1 актору;
● отсюда 10 000 * 1000 = 10 000 000.
Что означает, что для достижения нормальной децентрализации потребуется экспоненциальный рост подобных нод до 10М. Конечно, это весьма упрощенный расчет, но суть он отражает верно.
При этом можем подсчитать дальше: пусть нода хранит 100 Гб, тогда 100*k = 10 000 000, а значит k= 100 000, что означает, что для связанности (С) в 10М и со средним размером хранилища в 100 Гб нужен коэффициент прироста в целых 100 000, что явно расходится с существующей практикой.
Но теперь пойдем дальше: а сколько стоит содержание ноды со 100 Гб постоянной памяти (SSD или пусть даже HDD старого образца) и нормальным показателем RAM?
Путь $100-$200: хотя можете на примере Эфира убедиться, что это будет не 100 ГБ, а терабайты и показатели RAM будут в 16-32 GB спокойно, поэтому посчитаем 100 000 * $200 = $20 000 000 – таковы начальные вложения для достижения указанного прироста на 1 шаг.
Естественно, что никто не будет таких показателей достигать. Но в этом-то и проблема: каким иным способом будет рассчитана стоимость хранения данных, которые как никакие иные требуют децентрализации?
Еще раз: финализация дает нам уверенность при достижении ⅔ и принятии нужного блока в нужной эпохе (или схожим механизмом); социальный консенсус решает вопросы при полной остановке (Local(time)=0), но как быть, если нужно разрешение спора в периоде, где данные были затерты из-за отсутствия полных нод по периоду?
Думаете, таких споров будет мало, когда весь мир перейдет на суррогат блокчейнов – DLT? Все эти реестры недвижимости, установленных границ; аренда авто и всего прочего будут на этом базироваться, а расчеты – исключительно в CDBC вестись. Я вот уверен в обратном: споров будет предостаточно.
И фактически, все, что нужно, чтобы совершить подобную атаку – воспользоваться механизмом отсутствия расчета стоимости конечного хранения, что было в PoW & PoC, но напрочь отсутствует в PoS.
Отсюда же и все проблемы с экологичностью и ей подобные, описанные в первой части.
Спасти, конечно, могут низкоуровневые хранилища, навроде Swarm & IPFS, или надстройки, как Filecoin, Sia, Storj, etc, а равно и перестройка алгоритмов, таких как у Chia. Но это уже связка, если не кроссчейн, то кросс-сервисная, а ее еще никто не делал, да и консенсусы опять будут разные, а как PoS влияет на кроссчейн и подобные взаимодействия – описал чуть выше: крайне негативно.
Тем более что здесь рождается еще одна связка: дешевые транзакции. Дешевые и быстрые транзакции – кладезь для СПАМа, который, как известно, более 80% или еще пример) иногда в трафике занимал. Поэтому атакующему надо проделать не так много действий:
Попробуйте взять формулу сложности: difficulty = difficulty_1_target / current_target и применить ее к приросту хранилищ и все встанет на свои места.
Для малых решений это может стать фатальным. А теперь представьте, что эта система обслуживает энергетику региона? Настоящие прокаченные AI? Космические спутники?
Мне кажется, что проблема кроется в этом существенная: мы не верим, что полностью оцифрованное будущее наступило. Мы просто будем его масштабировать еще какое-то время.
Подумайте об этом до следующей статьи, где расскажу о перспективах PoS подробней, через цифры и сводные графики, а пока все и
До!
BTC | 98435.99 |
ETH | 3360.37 |
EOS | 0.7755 |
XRP | 1.5466 |
LTC | 102.8 |
Актуальность 2024-11-23 12:30:08
Динамика курсов валют