Що таке Race Attack?
Race Attack відбувається, коли хтось майже одночасно транслює дві взаємно конфліктні криптотранзакції, сподіваючись, що помилкова з них буде прийнята першою. Це типовий прийом проти продавців, які приймають платежі без підтверджень. Уявіть, що ви надсилаєте два чеки з одного рахунку і ставите на те, що касир обробить той, який вам вигідний.
«Race Attack needs Replace by Fee.» Не зовсім так. Хоча RBF пов'язаний з темою, Race Attack може статися навіть без явних правил заміни, тому він відрізняється від атаки заміни транзакції.
Як працює Race Attack
Уявіть покупця, що оплачує покупку криптою на касі. Він хоче каву і при цьому зберегти свої монети. Ось як це відбувається.
- Крок 1: Атакувальник створює дві транзакції, які витрачають ті самі монети, але з різними отримувачами.
- Крок 2: Він надсилає одну продавцю і одночасно розсилає іншу на різні вузли, сподіваючись, що вона пошириться швидше.
- Крок 3: Продавець бачить першу транзакцію, вважає платіж здійсненим і віддає товар.
- Крок 4: Майнери підтверджують одну з конфліктних транзакцій. Інша відкидається мережею, щойно додається блок.
- Крок 5: Якщо підтверджено версію, яку хотів атакувальник, продавець залишається без грошей і з уроком.
Так, все досить просто і саме таймінг тут вирішує.
Чому Race Attack має значення
Отже, що якщо хтось спробує це?
- Перевага: Знання про Race Attack допомагає встановити розумні правила прийому платежів, щоб не віддавати товар за обіцянку, яка не закінчиться оплатою.
- Погляд: Це один варіант ширшої атаки подвійного витрачання, але для нього не потрібне дороге обладнання або великі ресурси.
- Актуальність: Про це говорять у темах, пов'язаних з POS гаманцями, електронною торгівлею та будь-якими сервісами, що розглядають платежі без підтверджень.
Якщо ви продаєте товар, який відправляється або має реальну вартість, зачекайте одне або кілька підтверджень транзакції перед доставкою. Для невеликих покупок на місці встановіть ліміти і використовуйте гаманці, що позначають конфлікти.
Головні ознаки Race Attack
Що вирізняє Race Attack:
- Миттєво: відбувається до першого підтвердження блоку.
- Конфліктні: дві транзакції витрачають ті самі входи, підтвердиться лише одна.
- Швидкість: поширення і вибір майнерів вирішують переможця, а не дороге обладнання.
- Відмінність: для цього не потрібні атаки 51% або контроль майнінгу.
Варіанти
У Race Attack є кілька схожих варіантів, з якими можна зіткнутися:
- Класичний: дві конфліктні транзакції транслюються майже одночасно.
- Finney: майнер заздалегідь майнить блок з витратою, потім платить продавцю, а потім публікує блок.
- Vector76: поєднує елементи попереднього майнінгу блоків і таймінгу, щоб обдурити біржі.
- RBF: схожа мета, але спирається на правила заміни на основі комісії замість чистої гонки поширення.
Топологія мережі має значення. Атакувальники можуть підвищити свої шанси, якщо контролюють багато пірів або підробні ідентичності, тому атаки Sybil часто фігурують у розмовах про захист від Race Attack.
Приклад
Шахрай платить кіоску транзакцією без підтверджень, потім надсилає конфліктну транзакцію майнерам і перемагає, залишаючи кіоск не оплаченим, хоча на екрані ненадовго з'явилося повідомлення про оплату.
Цікавий факт
Про Race Attack писали ще в найперших біткойн форумах, і стара порада Сатоші чекати кількох підтверджень досі залишається надійним кроком. Rolex зустрічає Reddit треди.
Підсумок
Коротко: Race Attack це гра на час проти платежів без підтверджень, тож трохи терпіння і ця проблема втрачає актуальність.
