SEC запропонувала правила кастодії криптовалют для фондів і радників
Злам мосту Symbiosis: як депозит у 330 сатоши дав випуск 46,1 млрд syBTC
Кросчейн-мости — це місце, де чужі помилки в коді коштують найдорожче, тому що розплачуються за них не розробники, а постачальники ліквідності й звичайні тримачі обгорнутих токенів. 11 вересня 2026 року це правило підтвердилося ще раз: міст Bitcoin Bridge протоколу Symbiosis, який займається кросчейн-свопами, був атакований. Мости залишаються найуразливішою ланкою в криптовалютах, і список відомих зламів продовжує зростати.
Що сталося
11 вересня 2026 року, близько 04:28 UTC, був атакований міст Bitcoin Bridge протоколу Symbiosis. Серія з 12 транзакцій випуску пройшла приблизно за 4 хвилини. У схемі були задіяні мережі Bitcoin, BNB Smart Chain, Ethereum і Rootstock.
Особливість цього мосту в тому, що в біткоїні немає смарт-контрактів. Депозит надходить на адресу-портал, а інструкції лежать у полі даних транзакції. Офчейн-сервіс ретрансляторів Symbiosis читав такий депозит і вирішував, скільки токенів syBTC випустити в іншій мережі.
Важливий момент: ключ підпису валідаторів (MPC) не був скомпрометований. Валідатори підписали випуск штатно — їхній власний декодер вважав суму законною. Тобто підпис був справжнім, але зміст того, що він підтверджував, виявився хибним.
Як рядок у полі даних перетворився на права адміністратора
Перша помилка — про права доступу. Декодер брав відповідь на питання «хто відправник» не із самої транзакції, а з поля даних, яке відправник пише сам. Це як якби охоронець на вході не перевіряв перепустку, а просто питав відвідувача, ким той є, і вірив відповіді на слово.
Атакуючий вписав у поле даних ідентифікатор адміністратора порталу — і отримав його повноваження. Не зламав ключі, не підібрав пароль, не обійшов криптографію. Він просто заявив про себе те, що йому було зручно, і система це прийняла.
У нормальній схемі права мають визначатися підписом транзакції: той, хто справді володіє ключем, лише він і може діяти від імені адреси. Дані, які користувач пише сам, — це не посвідчення особи, а записка. Довіряти записці права адміністратора не можна.
Чому комісія стала подарунком
Друга помилка — про знак числа. З отриманими повноваженнями адміністратора атакуючий зробив комісію порталу від’ємною.
Розберемо на пальцях. У будь-якого числа є не лише величина, а й знак: плюс або мінус. Величина говорить «скільки», знак говорить «у який бік». Коли ви віднімаєте з балансу витрату, знак має значення не менше, ніж сама сума.
Сума випуску обчислювалася в мості як «депозит мінус комісія» — без перевірки, що комісія не менша за нуль і що випуск не більший за депозит. Поки комісія додатна, усе логічно: 330 − 10 = 320. Але якщо комісія від’ємна, віднімання від’ємного числа перетворюється на додавання: 330 − (−100) = 330 + 100 = 430. Мінус на мінус дає плюс.
Саме це й сталося, тільки в промисловому масштабі. Депозит атакуючого становив 330 сатоши (близько $0,25). Комісія — від’ємне число порядку 4,6 квінтильйона сатоши. Формула слухняно додала одне до одного, і результатом став випуск близько 46,1 млрд syBTC.
Показово, що окремо жодна з двох помилок не призвела б до крадіжки. Без прав адміністратора не можна було б виставити від’ємну комісію. Без помилки зі знаком навіть адміністраторські повноваження не дали б змоги випустити більше, ніж внесено. Спрацювало лише поєднання.
І ще одне спостереження, яке варто запам’ятати: 46,1 млрд syBTC — це номінально більше $46 млрд і приблизно у 2000 разів більше, ніж взагалі може існувати біткоїнів. Код не збентежило й це.
Чому збитки не $46 млрд, а $770 тис.
Цифра в 46,1 млрд syBTC виглядає катастрофою, але реальні збитки обмежила ліквідність. Випустити синтетичний токен — це одне, а обміняти його на щось цінне — зовсім інше.
У всіх пулах із syBTC (у парах з BTCB, WBTC, cbBTC, RBTC) було всього 11,26 syBTC. Стільки реальних активів там стояло, і більше атакуючий забрати не міг, скільки б «паперових» токенів у нього не було на балансі. Збитки становили 9,97 BTC, близько $770 тис. (за оцінкою SlowMist — $775 тис.).
Через пул Uniswap v4 у мережі Ethereum атакуючий отримав близько 4,39 WBTC, обміняв їх приблизно на 137 ETH (близько $336 тис.) і відправив у міксер Tornado Cash.
Ось тут і лежить головний практичний висновок: для тримача обгорнутих токенів важлива не заявлена емісія, а те, скільки справжньої ліквідності стоїть за нею в пулах. Саме вона визначає, чим закінчиться будь-який збій.
Що зробила команда
Реакція Symbiosis була швидкою. Bitcoin Bridge заморожено протягом години; інші маршрути (EVM, TRON, TON) не постраждали.
Команда вивела близько 15,2 BTC резервів порталу на захищений мультипідписний гаманець — їх атакуючий забрати не встиг. Окремо варто зазначити: у частині новин помилково писали, що 15 BTC «повернув хакер». Це не так, кошти вивела команда.
11 вересня Symbiosis запропонувала атакуючому 20% за повернення коштів до 13 вересня — він не відповів; згодом ті самі 20% були запропоновані будь-кому, хто допоможе повернути гроші. Оголошено про підготовку компенсації постачальникам ліквідності. Міст вимкнено на переробку коду, а обмін BTC в інтерфейсі Symbiosis переведено на сторонні протоколи Chainflip і THORChain, який нещодавно відмовився блокувати викрадачів з біржі Bitget.
Чек-ліст
Якщо ви користуєтеся мостами й кросчейн-свопами
- Дізнайтеся, чи є у протоколу пауза і як швидко її вмикають: дивіться, чи вимикався міст під час минулих інцидентів і за скільки хвилин.
- Перевірте, чи є ліміти випуску й виведення — на одну транзакцію та на період часу.
- Подивіться, чи опубліковані аудити і чи працює програма винагород за знайдені помилки.
- Оцініть, скільки ліквідності реально стоїть у пулах синтетичних токенів (syBTC і подібних): саме вона визначає розмір втрат під час збою.
- Не тримайте великі суми в обгорнутих токенах довше, ніж це потрібно для конкретної операції.
Якщо ви пишете або перевіряєте такий код
- Перевіряйте знак і межі будь-яких числових параметрів: комісія ≥ 0, випуск ≤ депозиту.
- Беріть права лише з підпису транзакції, ніколи з користувацьких даних.
- Ставте ліміт випуску на транзакцію та на одиницю часу.
- Налаштовуйте сигнал тривоги на аномальну суму: випуск, що відрізняється від депозиту на порядки, має зупиняти процес.
Історія з Symbiosis — не про геніального хакера і не про зламану криптографію. Це історія про два рядки коду: один, де права взяли не з підпису, і другий, де не перевірили знак числа. Окремо кожен із них виглядає дрібницею, разом вони дали випуск на 46,1 млрд syBTC. Збитки в $770 тис. виявилися обмеженими не захистом протоколу, а лише тим, скільки грошей лежало в пулах. Перевіряти знаки, межі та джерела прав потрібно до того, як це зробить хтось інший.
Знайшли помилку в тексті? Виділіть її мишкою та натисніть Ctrl + Enter
Матеріал має інформаційний характер та не є інвестиційною рекомендацією.
Читати далі
SEC запропонувала правила кастодії криптовалют для фондів і радників
MetaMask вийшла з валідаторів Lido після зламу інфраструктури: розбір
Blockchain.com іде на IPO: мета — $500 млн за оцінки до $6 млрд
Коментарі
Коментарів поки немає — будьте першим.