Вчера было опубликовано интересное исследование о крахе рынка криптовалют в середине марта 2020 года, во время которого резко упала цена на все цифровые валюты.
Наибольший ущерб был нанесён внезапным падением цены ethereum (eth) примерно на 40% за несколько часов. Это привело к ликвидации и закрытию нескольких крупных активов, которые были открыты путём обеспечения ETH для генерации стейблкоина dai.
Кроме того, этот затор заставил закрыть ETH-позиции по нулевой цене и затем восстановить их по хорошей цене, поскольку, когда активы отправляются на ликвидацию, чтобы стимулировать покупку обеспечения, цена подвергается сильному дисконту, поэтому многие выиграли. Речь идёт о $ 8 млн в ETH.
Что произошло во время обвала крипторынка в марте 2020 года
Чтобы ответить на этот вопрос, команда Blocknative проанализировала более 30 миллионов единиц данных за 12 и 13 марта 2020 года и обнаружила, что это была тщательно продуманная атака, которая породила 3 типа проблем:
- Зависание транзакций: мемпул был переполнен, и это задерживало подтверждение транзакций, блокируя последующие транзакции с того же адреса;
- Сжатие мемпула: произошло уменьшение мемпула, что должно было повысить расход газа;
- Hammerbots: автоматические транзакции, генерируемые ботами, усугубляли описанные проблемы.
Когда транзакция выполняется, она проходит через ноды, которые её анализируют, и, если газа мало, она ставится в очередь, пропуская вперёд более выгодные для майнеров переводы.
Этот тип «изгнанной» транзакции не распознаётся нодой, поэтому возникает несоответствие между началом транзакции и фактической обработкой.
Эта проблема усугубляется, если транзакции исходят с одного и того же кошелька, поэтому, если одна транзакция не обработана, а другая завершена, система перегружается. Это напоминает процесс, который происходит с использованием ботов, которые автоматически обрабатывают несколько транзакций.
Переходя к сжатию в мемпуле, мы видим, что с увеличением количества запросов и транзакций, нода не может обработать их в полном объёме и начинает выбирать наиболее прибыльные, то есть те, которые имеют больше газа.
Таким образом были исключены транзакции с низким количеством газа, что постепенно увеличивало минимальный порог по газу. Наконец, проблема усугублялась ботами, в частности, Hammerbot, который потреблял ресурсы мемпула, расход газа при этом не менялся, а транзакции всё равно не обрабатывались. Это разрушило экосистему мемпула и привело к упомянутым выше проблемам.