b
Думал, я пропал? Нихуя.
Мониторю ситуацию по fulcrum (https://t.me/notothemoon/801), готовлю свежий выпуск Нулевого Подкаста (https://t.me/notothemoon/792), да с нодой Нюсайфера разбираюсь (https://t.me/notothemoon/795).
Спасибо ребятам из Нулевой Якудзы (моего закрытого клуба), что помогли с нодой: вопросов там порой больше, чем ответов.
И пока я все это делал, протокол bzx и fulcrum соответственно наебали еще разок. Теперь уже больно.
Раз
После первой атаки, которую я описывал постом выше, биржа приостанавливала торги, но в итоге подняла работу смарт-контракта обратно. Никак не решив проблему и не выкатив внятного официального заявления (невнятное вот тут, где они говорят, что FUNDS ARE SAFU).
Два
Схема рабочая, так что хули ей не пользоваться. Тот же это человек или не тот же - вопрос открытый. Однако сегодня с утреца из fulcrum'а утекло еще средств на 763 тысячи зелени. Преступник действовал похожим, но альтернативным методом.
Три
Дизайн атаки:
1. Хакер взял через flash loan* (быстрый займ) 7500 эфира в долг
2. 3518 ETH перевернул в sUSD через Synthetix (это тот, который не так давно был у всех на слуху, потому что их токен сделал 60 иксов). sUSD = стейбл, пег которого (по идее) равен 1 доллару.
3. Раскидал на децентрализованной бирже Kyber оредров на 900 ETH, запульнув цену sUSD на 2 доллара (все, стейбл улетел с орбиты нахуй)
4. Закинул 1099841 sUSD в протокол bzx, чтобы сделать займ эфирок.
5. bzx, который используют оракулом биржу Kyber, выдала ему в долг 6796 ETH, хотя при цене 1 sUSD = 1 USD должна была выдать ~4080 эфирок.
6. Несложной математикой получаем, что хакер вытащил 6796 – 4080 = 2716 эфира. Часть из которых пошли на погашение долгов. Чистый профит хацкера - 2378 eth, чистый убыток биржи - 2716 eth.
И все это, гайдзин, было оформлено одной транзакцией. То есть паренек или группа пареньков сначала все придумали и прописали, а потом запустили процесс. Действий внутри одной транзы настолько дохуя, что я даже скрин толком не могу приложить. Обязательно сходи по ссылке и посмотри. Это красиво.
*flash loan - займ, который ты можешь взять, не закидывая обеспечение. Но есть условие: ты должен погасить его в той же транзакции, в которой взял. Что атакующий и сделал.
Финал
К команде bzx, безусловно, вопросы. На кой хуй поднимать контракт, когда вы там на ethDenver (хакатон эфирных энтузиастов) тусуетесь, бухаете и снимаете шлюх?
Почему вы не ждали эту атаку, если система рабочая, а вы нихуя не сделали?
Кто виноват и кто будет гасить задолженность в лям баксов перед юзерами?
Виноват ли вообще кто-то?
Тред от команды (пока что весьма куцый) можно почитать тут (англ): https://twitter.com/bzxHQ/status/1229759851296768001
Но глобально, мы уперлись в супер-вкусную уязвимости всего дефи, который ликвидностью похвастаться не может. А что, если этим решат заниматься действительно большие мешки денег?
Развитие этой истории и поиск решений - критически важный пункт, чтобы экосистема развивалась дальше здоровым путем.
Обнял.