Що таке атака подвійної витрати
Атака подвійної витрати — це шахрайська дія, що здійснюється на блокчейні, коли зловмисник намагається здійснити транзакцію, а потім видалити запис про неї з реєстру.
Такі маніпуляції дають хакерам право власності на переведені криптовалюти та можливість повторно їх відправити (кошти, як правило, виводяться на іншу адресу).
Сатоші Накамото, творець біткоїна, декілька разів згадує про подвійні витрати в “Білій Книзі”. Він описує рішення проблеми подвійного витрачання так: "Одноранговий розподілений реєстр тимчасових позначок для створення криптографічного доказу хронологічного порядку транзакцій". Крім того він зауважує: "Система безпечна, доки чесні вузли колективно контролюють більше потужності процесора, ніж будь-яка група вузлів зловмисників, що співпрацюють".
Чесні вузли — це ноди, які перевіряють транзакції відповідно до алгоритмів протоколу. Одне з найважливіших правил з погляду атак із подвійною тратою полягає в тому, що лише перша транзакція по переказу монет з певної адреси є істинною. Усі наступні спроби відправити ту ж саму суму монет з тієї ж адреси вже недійсні.
Як відбувається атака подвійної витрати?
Подвійні витрати є потенційним вектором атаки на будь-яку децентралізовану криптовалюту. Незважаючи на те, що блокчейн захищений структурою реєстру, він має деякі недоліки. Вони використовуються зловмисниками для маніпуляцій блоками транзакцій.
Подвійне витрачання — це використання однієї суми більше одного разу для сплати декількох послуг або товарів. Це технічна вразливість, яка дозволяє дублювати суми переказаних коштів.
Криптовалюти — це лише файли в інтернеті. Досвідчені хакери можуть створити декілька копій одного файлу валюти та використовувати його для надсилання на різні адреси.
Крім того, відомі більш витончені методи подвійного витрачання. Наприклад:
- використання копії валюти замість оригіналу.
- скасування вже проведеної транзакції так, щоб вона пройшла двічі;
- отримання подвійної винагороди за підтверджені дійсні та підроблені блоки.
Типи атак подвійної витрати
Існує кілька варіантів атак подвійного витрачання.
1. Атака Фінні (Finney Attack). У її випадку одна зі сторін отримує неіснуючі гроші через фейкову транзакцію. Зловмисник використовує атаку інформаційного затемнення, щоб приховати вихідний блок. Після підтвердження одержувачем переказу в мережі з'являється реальний блок з тією ж сумою грошей, яку хакер відправив з одного свого гаманця на інший. Такі дії може здійснювати тільки майнер, який вже взяв під контроль чужу адресу і може підтвердити власну шахрайську транзакцію як валідатор.
2. Гоночна атака (Race attack). Це атака, в якій дві транзакції змагаються на швидкість. Зловмисник використовує різні пристрої для переказу однієї суми з однієї адреси двом різним продавцям. Продавці надсилають товар (або цифрові гроші), але той платіж, який прийнято пізніше, вже недійсний.
3. Атака 51%. Цей тип атаки поширений на блокчейнах другорядних альткоїнів. Вона можлива, якщо понад 50% обчислювальної потужності належить якомусь пулу чи групі скомпрометованих вузлів. У цьому випадку зловмисник може використовувати всі вразливості протоколу, але в більшості випадків метою шахрая є подвійні витрати.
У травні 2018 року група досі не знайдених осіб, які мали доступ до критичної обчислювальної потужності (51%), змогла атакувати Bitcoin Gold. Тоді було успішно здійснено атаку подвійних витрат на загальну суму приблизно в 17,5 мільйонів доларів.
Як захиститися від атаки подвійної витрати
Існує два підходи до захисту від хакерських атак на блокчейн.
Рішення на основі централізації — використання третьої сторони для перевірки балансів учасників транзакції. Незалежний спостерігач позначає транзакцію та дозволяє її проведення. Такі способи використовуються в традиційних банках та на CEX-біржах.
У контексті децентралізації використовуються декілька етапів підтвердження. На надійних блокчейнах ця кількість досягає 6. У цьому випадку можна бути впевненим, що переказ коштів безпечний і безповоротний. Так, це займає значно більше часу, але є гарантією успішної операції.
Існує ще один варіант – отримувати та відправляти лише BTC. Алгоритм консенсусу першої криптовалюти надійний, а хакерські атаки з метою подвійної витрати занадто дорогі у реалізації.