October 15, 2024

Контратака Майнер - дослідники MIT розповіли, як в мережі Bitcoin Gold були відображені атаки 51%

Криптовалюта Bitcoin Gold (BTG) з'явилася в результаті хардфорка біткоїну у жовтні 2017 року та з капіталізацієюблизько $ 110 млн входить в Топ-40 найбільших цифрових активів. За свою порівняно коротку історію BTG встигла, однак, пережити чимало драматичних моментів, включаючи кілька атак 51%.

Такі атаки, результатом яких як правилостає подвійне витрачання монет, періодично здійснюються і на інші криптовалюта на базі алгоритму Proof-of-Work (PoW), ставлячи під загрозу не тільки саме існування мереж, але і кошти користувачів. Однак, як виявили недавно дослідники Digital Currency Lab при Массачусетському технологічному інституті (MIT), таким атакам можна не тільки успішно протистояти, а й проводити контратаки.

Саме це, як припускають Джеймс Лавджой, ДенМороз і Неха Нарула, відбулося в лютому в мережі Bitcoin Gold. Адаптований переклад їх статті з описом тих подій і висновками з того, що сталося представлений нижче.

Економічна безпека біткоіни і іншихкриптовалюта на алгоритмі Proof-of-Work залежить від того, наскільки дорого буде переписати записи в блокчейне. Якщо атака 51% економічно обгрунтована, зловмисник може відправити жертві транзакцію, почати атаку і потім здійснити подвійну витрату тих же самих монет в свою користь. Сатоши Накамото припускав, що таке не станеться, тому що більшості Майнер буде більш вигідно чесно слідувати правилам протоколу, ніж атакувати мережу, що служить джерелом їх доходів.

Опублікована недавно робота показала, щовартість атаки на монету може широко варіюватися. Вона залежить від таких факторів, як ліквідність хешрейта, вплив на ціну монети і глибина необхідної реорганізації. При певних умовах атака може бути проведена навіть безкоштовно.

Станом на березень 2020 року Майнер біткоіни(BTC) інвестують великі кошти в обладнання і не виявляють бажання здавати в оренду істотні потужності, що робить вартість атаки досить високою. Однак для деяких монет існуючого пропозиції здається в оренду хешрейта виявляється досить для проведення ефективної атаки. Покупці і продавці можуть знаходити один одного через маркетплейси хешрейта начебто NiceHash.

Існує широко поширена думка, щомонети з низьким хешрейтом, для яких є ліквідний ринок оренди потужностей, не можуть вважатися безпечними через те, що можуть піддатися дешевої атаці 51%.

У завершеному нещодавно праці під назвою«Контратаки при подвійному витрачання» ми обговорюємо стратегію, що дозволяє запобігти атаці 51% на вразливі монети на алгоритмі PoW: жертва може здійснити контратаку. Здатність жертви орендувати хешрейт і захоплювати ланцюг атакуючого під час атаки може повністю її виключити.

Для цього ми передбачаємо наступне: (1) жертва несе помірні репутаційні втрати, якими не обтяжений атакуючий (наприклад, репутаційні втрати можуть понести біржі, однак таких втрат немає у анонімних зловмисників), і (2) чиста вартість атаки з часом зростає (наприклад, монета падає в ціні або вартість оренди хешрейта зростає).

На момент написання згаданого вище праці у нас не було свідчень контратак при подвійних витратах в реальному світі, однак ми вважаємо, що недавно могли спостерігати їх в мережі Bitcoin Gold.

Контратака майнерів — дослідники MIT розповіли, як у мережі Bitcoin Gold були відбиті атаки 51%

На зображенні показані три стадії відповідногоудару. Зеленим кольором виділена поточна канонічна публічна ланцюг, білим - ланцюг з меншим хешрейтом. На першому етапі показано початок атаки 51%, де атакуючий А відправляє транзакцію захищати D, одночасно з цим працюючи над альтернативною ланцюгом, яка робить оригінальну транзакцію недійсною. На другому етапі показана подвійна витрата - ланцюг атакуючого стає самої «важкої». На третьому етапі показаний результат контратаки з боку D, під час якої він, займаючись Майнінг в оригінальній ланцюга, захоплює ланцюг, що належить А.

У червні 2019 роки ми запустили трекерреорганізацій, який відстежує 23 найбільш популярних PoW-блокчейна. До сьогоднішнього дня ми спостерігали 40 випадків реорганізації глибиною як мінімум в шість блоків в мережах Expanse, Vertcoin, Litecoin Cash, Bitcoin Gold, Verge і Hanacoin.

Реорганізації і контратаки в мережі Bitcoin Gold

Bitcoin Gold використовує відмінний від біткоінимеханізм консенсусу: замість SHA256 задіяний стійкий до Майнінг на ASIC-пристроях алгоритм ZHash. Ще одна відмінність від біткоіни полягає в тому, що перерахунок складності відбувається після кожного блоку.

Мережа Bitcoin Gold піддавалася численниматакам подвійний витрати. Найбільшу з них провели в травні 2018 року, і в її результаті було викрадено 388 000 BTG (на той час близько $ 18 млн). У січні і лютому 2020 року було вжито нові атаки. Наш трекер виявив вісім реорганізацій мережі в період з 23 січня по 5 лютого, і в чотирьох випадках відбулося подвійне витрачання на загальну суму 12 858 BTG (близько $ 150 000 на момент написання). Зведені дані по цим реорганізацій можна побачити тут, дані трекера, включаючи реорганізації і контратаки, доступні тут.

У лютому ми спостерігали ймовірний удар у відповідь. Все почалося як типова атака, при якій проводиться подвійна витрата транзакції, однак ця подвійна витрата потім сама опинилася скасована, а дійсної знову стала оригінальна транзакція. 8 лютого атакуючий і контратакуючий обмінялися такими ударами чотири рази протягом 2,5 годин. Оригінальна ланцюг в результаті була відновлена, і подвійна витрата виявилася неуспішною. 9 і 11 лютого ми спостерігали поодинокі контратаки: атакуючий провів реорганізацію, хто захищається контратакував один раз, відновивши оригінальну ланцюг.

При обміні ударами 8 лютого боротьба йшла затранзакції 757 і d5f, які атакуючий замінив транзакціями 50d і f38. В цілому 4390 BTG (близько $ 44 000) були викрадені у AbC і AYP і відправлені GVe і GYz. Остання реорганізація була на 23 блоку, що еквівалентно 290 BTG ($ 300) у вигляді нагороди Майнер або 7% від заробленого на атаці подвійного витрачання.

Деталі обох атак з тимчасовими мітками доступні тут і тут.

Звідки взявся хешрейт?

У нас немає достовірних свідчень того, що вбудь-який з наведених вище випадків реорганізації хешрейт був отриманий на Nicehash. Подібна невпевненість пов'язана з великими стрибками ціни та доступного хешрейту в мережі BTG, які можна спостерігати навіть за відсутності атак. Це відрізняє їх від наших спостережень за ринком Nicehash для Lyra2REv3 під час недавньої атаки подвійної витрати в мережі Vertcoin (VTC) — тоді ми чітко бачили стрибок цін на потужності під час атаки та їх повернення до базових значень після її завершення.

У випадку з BTG частоту стрибків доступногохешрейта і його цін важко пов'язати зі стрибками, які ми спостерігали під час атак. Проте на ринку було достатньо потужностей ZHash для здійснення атаки під час тих подій, як були і скачки хешрейта, що збіглися із зафіксованими випадками реорганізації.

Контратака майнерів — дослідники MIT розповіли, як у мережі Bitcoin Gold були відбиті атаки 51%

Ринок потужностей Nicehash під час зазначених реорганізацій. Червоним відмічено час реорганізацій.

теорія атаки

Те, що ми бачили, узгоджується з випадками, колиатакуючий робить недійсним блок в поточній ланцюга з найбільшим хешрейтом, змушуючи ноду вести роботу в ланцюзі з меншим хешрейтом. Це можна зробити через виклик простий команди в ноді Bitcoin Core, і це означає, що писати новий код для здійснення атак може бути необов'язково.

Наприклад, атакуючий міг зробити наступне:

  1. Використовувати ноду Bitcoin Core для відправки платежу і дочекатися його включення в блок.
  2. Викликати команду invalidateblock в оригінальній ланцюга, де знаходиться транзакція (на висоті # 619935).
  3. Відключити ноду від мережі і очистити мемпул для видалення існуючої транзакції.
  4. Запустити ресканірованіе гаманця, щоб зновуотримати можливість витрати з виходів, використаних в оригінальній транзакції, і створити нову транзакцію з витрачанням тих же виходів в новому напрямку.
  5. Продовжувати Майні як зазвичай до тих пір, поки хешрейт його кола не виявиться вище потужності оригінальної ланцюга, і заново підключитися до мережі, щоб повідомити інші Ноди про альтернативну ланцюга.

Захищати потрібно лише викликати командуinvalidateblock на блоці атакуючого з транзакцією подвійний витрати, що змусить ноду атакуючого продовжувати Майні в оригінальній ланцюга, відкидаючи реорганізацію в ланцюг, що атакує.

Є ймовірність того, що в наведених вищевипадках зловмисник зупинив атаку, як тільки побачив контратаку. Можливо, атакуючий зрозумів, що гра не варта свічок, якщо у противника є можливість захищатися. Майже у всіх блоках в ролі того, хто захищається виступав GSsjeTZ, чий адреса не використовувався до 1 лютого і після контратак.

Не можна виключати, що це не був навмисний удар у відповідь. Серед інших можливих пояснень того, що сталося можна назвати:

тестування. Контратака могла бути симулювати під частестування програмного забезпечення. Це могла бути біржа, мерчант або розробник, який створив інфраструктуру для здійснення автоматичної контратаки в разі спроби реорганізації. Цим можна пояснити не відбулася подвійну витрату під час атак 6 лютого.

Битва Майнер. Це могли бути взаємні атаки Майнер в спробі викрасти і потім відновити нагороду за знайдений блок. Не відбулася подвійна витрата під час атак 6 лютого цю теорію також підтримує.

поділ мережі. Не можна виключати і можливість тимчасового повторюваного поділу в мережі, в результаті чого два Майнера одночасно працювали в двох окремих ланцюгах.

баг ПО. Також можливо, що брали участь в цихподії Майнер використовували ПО, якийсь баг в якому призвів до того, що якийсь час вони працювали в більш короткій ланцюга, або ж вони випадково викликали команду invalidateblock.

випадковість. Ще одна можливість — два великімайнера знаходили блоки в той самий час, зіткнувшись з імовірнісним поділом. Це, однак, здається малоймовірним, оскільки тимчасові мітки це не відображають, а найглибша реорганізація була на 23 блоки.

висновок

Зростаюча глибина ринків по оренді хешрейта можеставити під загрозу безпеку криптовалюта на основі алгоритму Proof-of-Work. У той же час можливість контратак може зупинити атакуючих від будь-яких дій. Якщо цього балансу сил достатньо, щоб захистити ланцюг, це веде до питання про те, яка саме кількість потужностей необхідно для запобігання атак.

Тут ми говоримо тільки про раціональний атакуючий& # 8212; атакуючий, який діє з метою саботажу з наміром заподіяти шкоду ланцюгу, може і знехтувати втратою грошей, що дає йому перевагу. У цих випадках зупинити такого зловмисника може, найімовірніше, лише вкрай висока вартість атаки.