Logo
Поділитися цією статтею

Що означає «помилка в Bitcoin »: Посібник із податливості транзакцій

У будь-якому випадку, що означає пластичність транзакцій і чи зламаний Bitcoin чи ні? Дізнайтеся тут.

Цього тижня з’явився термін, про який багато біткойнерів раніше T чули: податливість транзакцій. Гора Гокс процитував це як ключову причину призупинення виведення коштів, і це також згадувалося як основа для експлойту, використаного в a масова атака на мережу Bitcoin цього тижня. Отже, що це таке, як це працює і чи варто хвилюватися? Ось що ми знаємо.

Що таке пластичність транзакції?

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

Продовження Нижче
Не пропустіть жодної історії.Підпишіться на розсилку Crypto Long & Short вже сьогодні. Переглянути Всі Розсилки

Це те саме, що подвійні витрати?

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

Як працює податливість транзакцій?

Щоб зрозуміти це, ви повинні знати, як працює Bitcoin транзакція.

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

Блок-ланцюг діє як гігантська головна книга для всієї мережі Bitcoin . Він зберігає записи про те, які Bitcoin адреси надсилають кошти на інші Bitcoin адреси та коли. Це дає йому повний облік того, скільки біткойнів можна віднести до тих чи інших адрес у мережі в будь- ONE момент часу.

Коли здійснюється транзакція Bitcoin , вона містить таку інформацію, як адреси, з яких надійшли біткойни (вхідні дані), куди вони йдуть (вихідні), перераховані суми та адреси, з яких ці кошти надіслано на адресу відправника.

[пост-цитата]

Кожна транзакція має бути унікально ідентифікована, щоб на неї можна було посилатися в ланцюжку блоків. ID транзакції (TX ID) створюється шляхом отримання інформації в транзакції та виконання її через хеш-функцію.

Хешування — це математична процедура, яка бере різні фрагменти даних і об’єднує їх для створення коротшого фрагмента інформації, відомого як хеш. ONE з речей, які входять до хешу транзакції, є цифровий підпис користувача, який доводить, що транзакція надійшла від нього. Це спосіб цифрового «підпису» транзакції.

ONE з ключових властивостей функції хешування є те, що неможливо визначити, якою була вихідна інформація, просто подивившись на хеш. Також неможливо передбачити, яким буде хеш, виходячи з інформації, з якої ви починаєте. Якщо будь-яка дрібна деталь зміниться в будь-якому з цих фрагментів даних, це змінить хеш абсолютно непередбачуваним чином.

Це робить ідентифікатори транзакцій практично неможливими для підробки. Кожна транзакція повинна мати лише ONE можливий хеш. Ви можете підтвердити, що транзакція дійсна, просто запустивши всю інформацію, яка склала цю транзакцію, через функцію хешування, щоб переконатися, що ви отримуєте той самий хеш.

Принаймні, така ідея. Але тут з’являється податливість. Цифрові підписи користувача, які використовуються як частина хешу для «підпису» транзакції, повинні мати певний формат. Цей формат T завжди належним чином перевірявся. Це означало, що погано відформатований ONE може бути представлений і все одно прийнятий. Зміна підпису таким чином дає змогу створювати різні хеші для однієї транзакції.

Це погано. Але, як виявилося, це також не так вже й погано. Ось чому.

Як це може викликати проблеми?

ONE проблема тут зосереджена навколо бірж, які користувачі Bitcoin часто використовували для купівлі та продажу біткойнів. Вони надсилають свою фіатну валюту або свої біткойни на обмін, де вони знаходяться в обліковому записі, щоб їх можна було конвертувати. У якийсь момент вони можуть забажати зняти біткойни з рахунку.

Є кілька потенційних сценаріїв. Ось пара:

Зловмисні індивідуальні атаки

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

Але Єва робить вигляд, що ALICE їх ніколи не надсилала. Вона використовує недолік пластичності транзакції, щоб відтворити оригінальну транзакцію Аліси, дещо змінюючи підпис, щоб створити інший хеш. Потім вона повторно передає цю транзакцію з іншим ID.

Існує ймовірність того, що транзакція Єви спочатку буде підтверджена в блокчейні. Якщо це станеться, мережа вважатиме, що транзакція дійсна, і T записуватиме транзакцію Аліси. Потім Єва може поскаржитися ALICE , що вона T отримала монети. Коли ALICE перевіряє свій ID транзакції в ланцюжку блоків, вона T знайде його, і може спробувати надіслати більше біткойнів, що означає, що вона залишиться без кишені.

Аварії з добрих намірів

Якщо ви використовуєте власне спеціальне програмне забезпечення для обробки своїх біткойнів, воно може помилково створити неправильні хеші. Потім ці хеші можуть бути «виправлені» іншим гаманцем з кращою поведінкою, який правильно їх форматує. Але це може змінити ID TX. Якщо ваш гаманець не призначений для виявлення транзакцій з тими самими характеристиками, але з іншим ID, це може призвести до «застряглих» транзакцій, які зависають у підвішеному стані. Що ще гірше, він може подумати, що у нього все ще є ці монети, які можна витратити.

У будь-якому випадку, якщо ваше програмне забезпечення T може впоратися, це кошмар бухгалтерії. Розробник CORE Bitcoin Грегорі Максвелл міркує про таку можливість тут.

Масові атаки на відмову в обслуговуванні

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

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

Це також може спричинити короткострокові проблеми для ринку. Будь-яка невизначеність або сумнів щодо стабільності ринку, природно, матиме вплив на ринкові ціни, особливо з таким неліквідним, нестабільним класом активів.

Чи означає це, що в Bitcoin є помилка?

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

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

CORE розробники також повідомили CoinDesk про два «граничних випадки» в еталонному клієнті (це недоліки, на які дуже рідко звертаються). Обидва вони зосереджені на гаманській частині програмного забезпечення.

Виявилося, що існує чимало інших проблем з податливістю, включно з деякими, перерахованими лише цього місяця <a href="https://gist.github.com/sipa/8907691">https://gist.github.com/sipa/8907691</a> ONE із CORE розробників Bitcoin у Пропозиції щодо вдосконалення Bitcoin (BIP) – документі, який вимагає внесення деяких змін до Bitcoin.

CORE розробники замовчують про те, які проблеми є найбільш неприємними, оскільки вони T хочуть надавати більше інформації потенційним зловмисникам.

Як це виправляється?

Про найбільш обговорювану проблему, яка дозволяла подавати неформальні підписи, спільнота знала ще у 2011 році (див. ця дискусія). Проблема полягала в тому, що ключове програмне забезпечення, яке використовувався Bitcoin клієнтом, T обробляло неправильно сформовані підписи. Це T було провиною розробників CORE Bitcoin , але вони не змогли змусити клієнт Bitcoin ще раз перевірити, чи правильно сформований підпис, перш ніж вони передали його. Це було виправлено у версії 0.8 еталонного клієнта.

Однак не всі біржі використовують еталонний клієнт для обробки своїх Bitcoin транзакцій. Вони можуть використовувати спеціальні версії, які діють дещо інакше. Тож розробники Bitcoin , гаманців і бірж — усі допрацьовують свій код, щоб забезпечити безперебійну роботу. Для бірж це включатиме переконання, що біржі витончено обробляють мутантні транзакції, роблячи правильні речі, коли бачать ONE.

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

Подібним чином наявність певної ручної перевірки зняття Bitcoin з бірж може допомогти KEEP порядок на сервері.

Отже, кінець світу Bitcoin ? Нас чекає криптокаліпсис?

Це роздратування, але трохи більше. У більшості програмних продуктів є помилки, але не всі помилки однакові. Деякі є критичними помилками, що зупиняють шоу, а деякі T. Це не так, і Bitcoin не зламаний. CORE принципи Bitcoin – децентралізований спосіб, у який багато комп’ютерів працюють разом, щоб приймати рішення щодо транзакцій – все ще працюють.

У нашому прикладі обміну, наведеному вище, можна сподіватися, що ALICE матиме достатньо детальні бухгалтерські записи, щоб вона все одно змогла звірити біткойни, які вона надіслала. Якщо вона надіслала Єві, скажімо, 1 Bitcoin о 12:10 за GMT 5 лютого, це буде досить унікальна транзакція. Вона могла просто сказати: «Наші записи показують, що ця транзакція вийшла в цей час із такими параметрами. ID транзакції, мабуть, змінився, тому я не надсилаю повторно ці біткойни».

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

У всякому разі, податливість транзакцій допоможе підтвердити стійкість децентралізованої мережі до дискретних мережевих Заходи. Зрештою, децентралізація — це ONE з речей, яка робить її «грошима BADGER ».

Ковка монета зображення через Shutterstock

Danny Bradbury

Денні Бредбері є професійним письменником із 1989 року, а з 1994 року працює позаштатно. Він розповідає про Технології для таких видань, як Guardian.

Picture of CoinDesk author Danny Bradbury