Що таке Double Spend?
Double Spend це ситуація, коли хтось намагається використати ті самі цифрові монети для двох різних платежів. Уявіть, що хтось копіює квиток на концерт і передає копію двом охоронцям. На блокчейнах спроби Double Spend приборкує консенсус, але часові вікна та хитрощі все ще можуть бути використані.
Якщо платіж відобразився у вашому гаманці, він обов'язково остаточний. Не зовсім так. Поки мережа його не підтвердила, транзакцію все ще можуть замінити або проігнорувати майнери.
Як працює Double Spend
Нижче короткий опис дій за участі зловмисника і продавця, що не підозрює.
- Крок 1: Зловмисник готує дві транзакції, які витрачають ті самі монети, одну продавцю і одну собі назад.
- Крок 2: Першою надсилається транзакція продавцю так, щоб вона відображалася як очікувана, і продавець передає товар.
- Крок 3: Потім зловмисник надсилає конфліктну транзакцію з вищою комісією, щоб привабити майнерів або майнінг-пул.
- Крок 4: Якщо майнери включать конфліктну транзакцію до блоку першою, очікуваний платіж продавця буде відхилено мережею.
- Крок 5: Сильніший зловмисник може вибудувати приватну гілку блокчейну і пізніше опублікувати її, замінивши публічну історію і змінивши те, який платіж вважається дійсним.
Ось в чому суть і чому підтвердження мають значення.
Чому Double Spend має значення
Якщо ви приймаєте криптоплатежі, це не дрібниця. Це впливає на ваші доходи і почуття впевненості.
- Перевага: Розуміння ризику дає змогу встановити розумні правила підтверджень і робити миттєві продажі безпечнішими.
- Погляд: Загроза Double Spend вплинула на те, як ланцюги розглядають остаточність, комісії та поведінку майнерів.
- Актуальність: Ви зустрінете це у схемах оплати в точках продажу, на біржах, при розпродажах NFT і в DeFi мостах.
Для дрібних покупок використовуйте рівні ризику і звертайте увагу на прапорці replace by fee. Для більших сум чекайте кількох підтверджень. Шість підтверджень у Bitcoin все ще вважаються надійним правилом.
Ключові ознаки Double Spend
Основні риси, на які варто звернути увагу:
- Конфлікт: Дві або більше транзакцій намагаються витратити ті самі входи, і мережа не може прийняти їх одночасно.
- Час: Імовірність успіху зменшується зі збільшенням кількості підтверджень.
- Стімул: Майнери зазвичай віддають перевагу транзакціям з вищими комісіями, що може працювати на користь конфліктної транзакції зловмисника.
- Ризик: Double Spend найкраще вдається, коли продавці приймають платежі без підтверджень без додаткових перевірок.
Варіанти
Різні сценарії, одна ідея. Кілька поширених варіантів:
- Race Attack: Зловмисник надсилає дві конфліктні транзакції майже одночасно, розраховуючи, що майнери виберуть ту, яка йому вигідніша.
- Finney Attack: Майнер заздалегідь відмічає блок зі своїм платежем, потім витрачає ті самі монети у продавця перед публікацією блоку.
- 51% Attack: Маючи достатню частку хешрейту, зловмисник може випереджати чесний ланцюг і постійно звертати платежі назад.
Остаточність зростає з глибиною. Після достатньої кількості підтверджень практична immutability вступає в силу і дуже складно здійснити Double Spend без значних ресурсів.
Приклад
Кафе приймає платіж без підтверджень, покупець виходить з кавою, а згодом підтверджується конфліктна транзакція з вищою комісією, що анулює платіж кафе.
Цікавий факт
Сатоші представив Bitcoin як рішення проблеми подвійних витрат, тому запобігання Double Spend було не побічним завданням, а основною метою.
Підсумок
Коротко: Double Spend стосується часу та консенсусу, і протидія йому полягає в підтвердженнях, розумних перевірках і трохи терпіння. Розкіш зустрічається з обговореннями на Reddit.
