
Джей Фриман недавно нашел способ обмануть решение Optimism для масштабирования Ethereum таким образом, что можно эмитировать «эфир» практически бесконечно. Однако вместо того, чтобы использовать уязвимость, он сообщил о проблеме команде разработчиков Optimism, которая наградила его бонусом в размере $2 млн за обнаружение ошибки.
### Протокол выпускает внутренние токены для повышения производительности и снижения комиссий.
Как пишет Фриман на своем сайте, он обнаружил уязвимость при изучении так называемых «на платежных протоколов». Optimism — один из таких протоколов. Они позволяют пользователям отправлять небольшие суммы криптовалюты практически в режиме реального времени с очень низкой комиссией за транзакцию. Однако это происходит в ущерб безопасности.

Потому что, подобно тому, как это работает с мостами блокчейна, такими как Wormhole, платформа выпускает альтернативные токены ETH, которые существуют только в сети Optimism и выполняют функцию долгового обязательства (IOU). Чтобы получить долговые расписки, пользователи сначала блокируют свои (настоящие) монеты в смарт-контракте в качестве обеспечения. После этого они получат «фальшивые токены». Затем эти токены могут быть переведены почти мгновенно и с очень низкой комиссией по сравнению с реальными транзакциями в сети. Это концепция Optimism о масштабировании уровня 2.
Если пользователи Optimism затем захотят, чтобы их долговые расписки-токены снова стали реальными ETH, они должны сначала подождать неделю, прежде чем их токены Ethereum, депонированные в качестве залога, будут выпущены. Все кажется вполне разумным.
Однако Фриман обнаружил серьезную уязвимость в коде, который заставляет смарт-контракты после их выполнения удалять себя и возвращать соответствующие эфиры отправителю.
Таким образом, функция вернула токены отправителю, но оставила связанные долговые расписки Ethereum вне сети. Ошибку теперь можно использовать для манипулирования смарт-контрактами для обхода ошибки. Это позволило выпускать бесконечное количество этих вспомогательных ETH. По словам Фримена, токены теперь можно использовать, чтобы «сеять хаос в крипто экосистеме».
«С неограниченным количеством долговых расписок вы можете пойти на любую децентрализованную биржу, работающую на L2, и испортить их экономику, скупив большое количество других токенов и обесценив собственную валюту сети», — написал Фриман.
Такие уязвимости известны как ошибки переполнения. Еще в 2010 году кто-то использовал аналогичную ошибку, чтобы выпустить 184 миллиарда биткоинов. В то время потребовался софт форк, чтобы сбросить блокчейн до предела в 21 миллион BTC, установленного Сатоши Накамото.
Ошибка выявлена в канун Рождества, но потенциал не обнаружен
По словам Фримена, неназванный человек, связанный с исследователем блокчейна Ethereum Etherscan, должно быть, наткнулся на ошибку в канун Рождества в прошлом году. Фриман объясняет неиспользование бага тем, что этот человек мог не распознать потенциал бага.
Честно говоря, кажется, что кто-то уже заметил ошибку раньше меня. Неизвестный увидел, что Etherscan оставил баланс на месте после того, как контракт был уничтожен – и даже немного поигрался с этим, но не понял, как это можно использовать.
Джей Фриман
Жертва безопасности в пользу производительности, как это делает Optimism, не является альтернативой для Фримена. Он «не хочет» поддерживать блокчейн-проекты по «фундаментальным вопросам децентрализации или безопасности». Потому что это означает, что ключевые моменты технологии еще предстоит улучшить. Однако они были бы слишком важны и поэтому «не должны быть запоздалыми».
Команде «Optimism», должно быть, повезло, что баг выявил Фримен, а не к криминальный деятель. Обнаружение проблемы стоило «всего» два миллиона долларов.