Гостевой пост HodlX Отправьте свой пост
Безопасность транзакций в блокчейне часто взаимосвязаны с проблемой блок-финальности.
Получатель транзакции должен быть уверен, что транзакция не будет отменена, а отправитель не сможет выполнить двойную трату. В случае фиатных валют окончательность сделки ограничена законом, и эта валюта является законным платежным средством. В проектах, основанных на PoW (proof of work), блок никогда не бывает окончательным..
Сатоши Накамото показал, что вероятность спонтанного короткого вилка длиной N>6 блоков – это ничтожно мало, так что можно утверждать, что Биткойн имеет вероятностную окончательность. Однако исследователи показано эта завершенность блока на самом деле является экономической: транзакция является окончательной, если стоимость, необходимая для ее возврата, превышает потенциальную прибыль от атаки с двойным расходом..
Иногда эксперты по блокчейнам заявляют, что некоторые блокчейны, основанные на PoS (доказательство доли), не имеют проблемы с окончательностью блока, поскольку блоки в них являются «мгновенно окончательными». Это утверждение неверно. Форкинг – неизбежная проблема любого блокчейна, независимо от того, какие правила консенсуса выбраны..
Хороший пример – недавний история С блокчейном Steem сетевое сообщество раскололось на два враждебных друг другу лагеря. Несмотря на правила консенсуса, блокчейн был разветвлен. Каждая группа поддерживала свой форк и блокировала остатки на кошельках своих оппонентов. Судя по всему, форк, следовавший правилам первоначального протокола, проиграл дуэль, поскольку его рыночная капитализация стала меньше рыночной капитализации форка. Таким образом, мы можем сделать вывод, что окончательность в цепочке блоков PoS имеет экономическую основу, аналогичную таковой в цепочке блоков PoW. Разработчики Ethereum 2.0 Поделиться то же видение.
Тем не менее, они утверждают, что режущий механизм протокола Casper не только предотвращает атаки «ничего не поставлено», но и удорожает атаки с двойным расходом. Тем не менее, сложная логика протокола открывает двери для более изощренных атак с двойным расходом..
Упрощенная атака с двойным расходом
Простейшая форма атаки двойного расходования на блокчейн PoS для злоумышленника – это заблокировать на ставках вдвое больше средств, чем есть у честных участников. Если злонамеренный субъект B преуспеет в этом в сети, подобной Ethereum 2.0, то вполне вероятно, что в рамках этого конкретного комитета шардов он получит вдвое больше долей, чем честные валидаторы. Таким образом, злоумышленник контролирует ⅔ голосов в комитете осколков. В Ethereum 2.0 этого количества голосов достаточно для «доработки» блока. Предположим, он хочет вдвое потратить некоторое количество монет в этом осколке. Он объявляет транзакцию, в которой B отправляет монеты пользователю A. Эта транзакция попадает в блок, подписанный честными валидаторами. B добавляет часть своих голосов, чтобы блок был избран.
В консенсусе, основанном на PoS, ⅔ голосов в комитете должно быть утвердительным, чтобы «завершить» блок. По нашему предположению, половина голосов злоумышленников составляет голосов в комитете. Вместе с честными валидаторами это составляет. Это порог, необходимый для «завершения» блока. Итак, A узнает, что транзакция «завершается», и передает товары B. Затем B отменяет транзакцию, создавая форк и подтверждая его, используя все свои голоса в комитете. Согласно протоколу Casper половина доли B в шарде, которая использовалась в обеих вилках, должна быть сокращена. Разработчики протокола Casper утверждают, что это цена атаки..
В этом упрощенном сценарии злоумышленник теряет половину своей доли в шарде. Также эта сумма равна доле честных валидаторов в этом шарде. Предположим, что в сети N шардов. Затем злоумышленник теряет 1 / 2N своей совокупной доли или 1 / N общей доли честных заинтересованных сторон. Таким образом, чем больше шардов в сети, тем дешевле для злоумышленника атака с двойным расходом. Если рассматривать это значение как меру сетевой безопасности, то безопасность снижается на коэффициент N. Обратите внимание, что это не то свойство, которое утверждается как возможное решение трилеммы масштабируемости. Однако разработчики Ethereum 2.0 утверждают, что стоимость этой атаки настолько велика, что коэффициент 1 / N не влияет на нее..
Сложные атаки с двойным расходом
Сценарий атаки, описанный в предыдущем разделе, не уникален. Злоумышленник может выполнять еще более изощренные атаки с двойным расходом. Авторы протокола Casper утверждают, что часть ставки злоумышленников всегда отрезается. Это правда? Ответ – нет”. Все, что происходит в сети, записывается в блокчейн. Если блокчейн не содержит записей о злонамеренных действиях, то как можно обвинить кого-либо в злонамеренном поведении??
В следующем варианте двойной атаки злоумышленник предотвращает урезание своей доли. Чтобы уменьшить долю, честные узлы должны включать соответствующую запись в конкретной цепочке, которая используется для координации заинтересованных сторон. Это называется цепочкой Beacon. Если цепочка Beacon следует консенсусу PoS без разрешения, то для включения записи в цепочку блоков требуется ⅔ голосов валидатора. Таким образом, пока злонамеренный субъект контролирует ⅓ членов комитета по цепочке Beacon, он может избежать рубящего удара. Если он предотвращает рубящий удар до тех пор, пока его ставка не будет разблокирована, то его атака будет почти бесплатной. Вопрос в том, как долго он должен держать свою ставку заблокированной.?
В текущей спецификации Ethereum 2.0 доля заблокирована на полгода. Однако злоумышленник может начать атаку в самом конце интервала блокировки кола. Возможное исправление – установка временного интервала до выпуска, в течение которого ставка не может быть выбрана в комитете осколков, а затем использоваться в атаке с двойным расходом. Однако эта контрмера снижает рентабельность стекинга. В течение этого временного интервала все заинтересованные стороны должны получить компенсацию за свои заблокированные средства. Однако эти средства «деактивированы» и поэтому не участвуют в проверке блока. Более того, злоумышленник может использовать это исправление в своих интересах, так как он может тщательно выбирать время для своей атаки. Он может заблокировать свои ставки одновременно, так что его ставки будут «активированы» и «деактивированы» одновременно. Напротив, честные заинтересованные стороны часто деактивируют часть своей доли и, следовательно, исключают ее из процесса проверки. Так что получить голосов в комитетах стало еще проще.
Кто-то может возразить, что в этой версии атаки честные узлы могут заметить, что ⅓ доли в комитете цепочки Beacon используется для выполнения атаки. Они могли предпринять действия, не указанные в протоколе Casper, чтобы наказать злоумышленника. Первый вариант – попытаться заблокировать на ставке больше средств. Второй – запустить новую вилку. Первый вариант не является жизнеспособным, поскольку злоумышленник может проводить «цензуру».
Он может использовать свои голоса в комитете цепочки Beacon для предотвращения распределения новых долей. Таким образом, он может удерживать голосов в комитетах шардов столько, сколько захочет. Второй вариант жизнеспособен, однако это злоупотребление сетевым протоколом, принятым участниками в самом начале. Если независимый наблюдатель попытается выяснить, что происходит в сети, на основе данных, записанных в блокчейне, он не сможет отличить злоумышленников от честных валидаторов..
Прежде чем мы закончим это обсуждение, давайте рассмотрим модифицированную версию последней атаки. Новая версия представляет собой комбинацию атаки на большом расстоянии и атаки без риска. И снова злоумышленник использует часть своей доли для форка цепочки осколков. Однако в этом случае он не раскрывает новую цепочку честным узлам. Затем он ждет, пока его скомпрометированная ставка не будет разблокирована. Теперь он продает свою скомпрометированную долю безрассудным участникам, останавливает честную цепочку шардов, используя свои голоса в комитете, а затем раскрывает свой форк другим участникам шарда. Согласно протоколу, следует отказаться от цепочки, поддерживаемой честными валидаторами. Значит, модифицированная версия атаки успешна. Обратите внимание, что доля, использованная для форка цепочки, продана. Таким образом, злоумышленник в очередной раз избежал нанесения ударов. Более того, в этой версии атаки его доля в цепочке Beacon не была нарушена..
Можно предложить исправление модифицированной версии атаки, основанное на использовании контрольных точек. Согласно этому исправлению, цепочка содержит блоки контрольных точек, которые «нельзя отменить». Тем не менее, это исправление является спорным, так как понятие «контрольной точки» не работает в установке blockchain. Как мы знаем, блоки в блокчейне никогда не завершаются полностью. Форкинг – естественное свойство блокчейна, и любой форк будет иметь свои собственные «полностью завершенные контрольные точки». Поэтому использование понятия «контрольно-пропускной пункт» часто сбивает с толку и вводит в заблуждение. Если узел должен полагаться на контрольную точку, то он должен полагаться на «провайдеров контрольных точек». Это требует введения элемента доверия в предположительно ненадежную сеть..
Мы пришли к выводу, что злоумышленник, который выделил значительный объем мощности в виде ставок, может запускать разрушительные атаки в сети, избегая при этом механических ударов. Эта форма атаки очень похожа на атаку 51%, которая может быть проведена в блокчейне на основе PoW..
Винод Манохаран – технологический предприниматель, основатель и генеральный директор Jax Multiversal Holdings, холдинговая компания, портфель которой включает компании, занимающиеся онлайн-играми, платежные шлюзы и технологические компании Blockchain. Манохаран также является основателем JAX.Network, технологический стартап в Украине, специализирующийся на технологии блокчейн и, в частности, на решении печально известной Трилеммы масштабируемости блокчейна..
Написано в сотрудничестве с Юрием Шишацким, главным научным сотрудником JAX.Network..
Featured Image: Shutterstock / Лопырьев Артем / Куклос