"Атака 51%" або "атака подвійної витрати" на блокчейн полягає в тому, що майнер або група майнерівроблять спроби двічі витратити своюкриптовалюта в цьому блокчейне. Вони намагаються зробити «подвійну витрату» - звідси і походить назва. Однак їх завданням не завжди є саме подвійна витрата криптовалюта. Набагато частіше це влаштовується з метою дискредитувати якусь криптовалюта або блокчейн, впливаючи на їх цілісність.
Ось невеликий приклад: припустимо, я вирішив витратити 10 біткойнов на розкішний автомобіль. Через кілька днів мені доставляють машину, а біткойни з мого гаманця перераховуються компанії-продавцеві автомобілів. Здійснюючи атаку 51% на блокчейн біткойнов, я можу спробувати дати задній хід цієї біткойнов-транзакції. Якщо мені все вдасться, я буду щасливим володарем і розкішного автомобіля і моїх же біткойнов, отримуючи тим самим можливість знову витратити ці ж біткойни. Сама концепція такої атаки може здатися очевидною з точки зору демократичного блокчейна, але існує поширена помилка про те, як вона насправді працює. У цій короткій статті буде зроблена спроба дати ясне і більш докладне пояснення механізму атаки 51%. Якщо ви ще не знаєте, як Майнер додають транзакції в блокчейн, я рекомендую вам для початку ознайомитися з цією статтею, її прочитання не відніме у вас багато часу. А якщо ви не знайомі з тим, як працює блокчейн, то, мабуть, вам слід почати звідси.
Блокчейн = управління
Перш ніж вдаватися в подробиці роботимеханізму атаки 51%, нам важливо розуміти, що протоколи блокчейна по суті є формою управління. Блокчейн управляє реєстром даних, наприклад - даними транзакцій. І оскільки сам протокол блокчейна може цим управляти замість нас, то нам більше не потрібні послуги сторонніх посередників, таких як уряд або банк. Це те, що робить (більшість) блокчейнов децентралізованими. Протокол біткойнов-блокчейна грунтується на принципах демократії. Це означає, що вирішення питання про істинність тієї чи іншої версії блокчейна буде здійснюватися більшістю учасників (Майнер) в його мережі.
Як відбувається атака 51%
Коли власник біткойнів підтверджує транзакцію,вона міститься в один з локальних пулів непідтверджених транзакцій. Майнери вибирають транзакції з таких пулів на формування блоку транзакцій. Для того, щоб цей блок транзакцій був доданий до блокчейну, їм необхідно вирішити дуже складне математичне завдання. Вони намагаються знайти її рішення, використовуючи обчислювальні потужності, які перебувають у їхньому розпорядженні. Цей процес називаєтьсяхешем(Більше про алгоритм хешування ви можетепрочитати тут). Чим більшими обчислювальними потужностями має майнер, тим вищі його шанси на знаходження правильного рішення швидше, ніж інші майнери знайдуть свої. Коли майнер знаходить рішення, воно буде передано (разом з його блоком) решті майнерів у мережі, які здійснять перевірку рішення лише в тому випадку, якщо всі транзакції всередині цього блоку є дійсними, відповідно до існуючого запису транзакцій у блокчейні.Слід зазначити, що навіть Майнер-зловмисниковініколи не вдасться створити транзакцію від імені кого-то другого, тому що для цього йому потрібно знати цифровий підпис того людини (його приватний ключ). Пересилання біткойнів з чийогось облікового запису, таким чином, просто виключається, якщо немає доступу до відповідного приватного ключа.
Потайний Майнінг - створення таємної побічної ланцюжка в блокчейне
А тепер зверніть увагу!Майнер-зловмисник, однак, може спробувати відкликати наявні транзакції. Коли майнер знаходить рішення для блоку, воно має бути трансльовано всім іншим майнерам для верифікації, після чого блок додається в блокчейн (майнери досягають консенсусу). Однак, майнер-шахрай може створити побічний (прихований) ланцюжок блокчейна тим, що не передаватиме рішення своїх блоків решті мережі. У результаті виходитьдві версіїодного блокчейну.
Тепер є дві версії одного блокчейна. Червона ланцюжок може вважатися виробленої в прихованому режимі.
Одна версія - та, якою слідують добропорядніМайнер, а другу використовує зловмисний майнер. Цей майнер-шахрай тепер працює зі своєю власною версією блокчейна і не транслює її іншої мережі. Вся інша мережа не бере до уваги цей ланцюжок, з тієї банальної причини, що вона не транслювалася. Вона є ізольованою від решти мережі. Зловмисник тепер може витратити всі свої біткойни в істинної версії блокчейна, тієї, над якою працюють всі інші Майнер. Припустимо наприклад, що він витратить їх на купівлю Ламборджині. У істинної версії блокчейна, його біткойни будуть вважатися витраченими. Тим часом, він не включає ці транзакції в свою, ізольовану версію блокчейна. У його версії він все ще володіє цими біткойнов.
Майнер-шахрай виключає власні транзакції зі свого приватного блокчейна.
Тим часом він все ще збирає блоки таперевіряє їх все самостійно у своїй ізольованій версії блокчейну. Саме тут починаються всі неприємності. Блокчейн запрограмований на те, щоб слідувати моделі демократичного управління, інакше кажучи, управління більшістю. У блокчейні це реалізовано через обов'язкове слідування найдовшого (насправді найважчого, але давайте не будемо занадто ускладнювати матеріал) ланцюжку, адже більшість майнерів додають блоки у свою версію блокчейна швидше, ніж решта мережі (тому, найдовший ланцюжок = більшість). Саме так блокчейн визначає, яка версія ланцюжка є істинною, і, отже, на чому ґрунтуються баланси всіх гаманців. І тут розпочинається гонка. Той, хто має найбільшу потужність хешування, швидше додаватиме блоки у свою версію ланцюжка.
Майнер-шахрай, володіючи більшою потужністю хешування, швидше додає блоки в свою приватну ланцюжок.
Гонка - скасування існуючих транзакцій шляхом трансляції нової ланцюжка
Тепер майнер-зловмисник намагатиметься додаватиблоки в свій ізольований блокчейн швидше, ніж інші Майнер додають блоки в свій блокчейн (той, який істинний). І як тільки майнер-шахрай створить більш довгий блокчейн, він раптово транслює свою версію блокчейна решти мережі. Вся інша мережа побачить, що ця (подменная) версія блокчейна насправді є довшою, ніж та, з якою вони працювали, і протокол блокчейна змусить їх переключиться на цю (підмінну) ланцюжок.
Майнер-зловмисник транслює свою ланцюжок решти мережі, як тільки вона стає довшим (важче), ніж оригінальна ланцюжок.
Спотворений блокчейн тепер вважається дійснимблокчейном, і всі транзакції, які не включені в цей ланцюжок, будуть негайно скасовані. Зловмисник вже раніше витратив свої біткойни на Ламборджині, але ця транзакція не була включена в його приховану ланцюжок, ту саму, яка в даний момент є головною, і таким чином, ті, витрачені біткойни знову знаходяться в його розпорядженні. І у нього є можливість витратити їх знову.
Всі інші Майнер повинні реорганізуватиісторію транзакцій в своїх ланцюжках, приймаючи за основу підмінну ланцюжок, так як вона є більш важкою. І ця історія не включає витрачання тих 100 біткойнов.
Це і є атака подвійний витрати(Подвійного витрачання).Зазвичай її називають атакою 51%, тому що шкідливому майнеру, який її планує, знадобиться потужність хешування, що перевищує об'єднану потужність всієї іншої мережі (звідси і цифра 51% потужностей хешування), для того, щоб швидше додавати блоки у свою версію блокчейна, що в зрештою дозволить йому побудувати більш довгий ланцюжок.
Так як же біткойнов захищений від цього?
Насправді провести подібні атаки надзвичайно складно. Як згадувалося раніше, майнеру знадобляться потужності хешування, що перевищують такі всієї іншої мережіразом взятої, Щоб його атака пройшла успішно. А беручи до уваги той факт, що в блокчейне біткойнов можливо налічується сотні тисяч Майнер, такого Майнер-зловмисникові доведеться витратити величезні гроші на обладнання для Майнінг, щоб змагатися з усією іншою мережею. Навіть найпотужніші комп'ютери в світі не можуть прямо конкурувати із загальною обчислювальною потужністю в цій мережі. Можна знайти незліченну кількість аргументів проти проведення атаки 51%. Наприклад, ризики бути спійманим і піддатися судовому переслідуванню, в добавок до витрат на електроенергію, оренду приміщень для зберігання всього цього устаткування для Майнінг, замітання слідів і відмивання грошей. Операція такого роду, кажучи простою мовою, потребують занадто великих зусиль у порівнянні з тим, що вона дасть зловмисникові натомість, по крайней мере, в разі блокчейна біткойнов.
Чи уразливі інші блокчейни?
Ще одна цікава новина полягає в тому,що, незалежно від того, наскільки важко буде виконати таку атаку, численні атаки 51% дійсно мали місце в минулому. Взагалі-то, одна з подібних атак була проведена порівняно недавно (в квітні 2018 роки) на блокчейн Verge (XVG). В даному конкретному випадку, зловмисник знайшов помилку в коді блокчейн-протоколу Verge, яка надала йому можливість виробляти нові блоки в надзвичайно швидкому темпі, тим самим дозволивши йому створити за короткий час довшу версію блокчейна Verge. Цей приклад ілюструє подія, яка може сприяти атаці 51%, однак є досить рідкісним і в основному виникає завдяки помилці в коді протоколу. Авторитетна команда блокчейн-розробників напевно помітить подібний баг і запобіжить його зловмисне використання.
При вивченні алгоритму «підтвердження виконанняроботи »/« Proof of Work »ми дізнаємося, що наявність великих потужностей хешування призводить до більшої захищеності проти атаки 51%. Більш дрібні блокчейни альткойнов, що працюють на основі цього алгоритму, можуть бути в набагато більшому ступені уразливі до подібних атак, враховуючи, що зловмисникам не будуть потрібні істотні обчислювальні потужності для проведення атаки, зважаючи на незначну сумарної потужності хешування в таких блокчейнах. З цієї причини атаки 51% зазвичай проводяться, якщо взагалі проводяться, проти маленьких блокчейнов (наприклад, Bitcoin Gold). Біткойн-блокчейн, до слова, ніколи раніше не ставав жертвою атаки 51%.
ASIC-Майнінг - вдосконалене обладнання для Майнінг
Це так само підводить нас до однієї з останніх«Гарячих» тем в блокчейне - Майнінг за допомогою пристроїв ASIC. Технологія ASIC-Майнінг була розроблена різними ранніми компаніями-Майнер біткойнов з метою удосконалення обладнання для Майнінг, роблячи його набагато більш потужним. В даний час ведуться численні суперечки про те, чи робить обладнання, засноване на ASIC, деяких індивідів або групи, що займаються Майнінг, занадто впливовими через зрослі потужностей. Блокчейн Monero (XMR) недавно здійснив оновлення свого блокчейн-протоколу, який заблокував використання ASIC-Майнінг в цьому блокчейне. В результаті поновлення загальна потужність хешування в мережі Monero впала на приголомшливі 80% (дивіться нижче)!
Обчислювальні потужності в мережі XMR впали на 80% після блокування ASIC-Майнінг!
Дана подія є показником того, скількипотужностей в блокчейне Monero знаходилося в руках Майнер, які використовували ASIC-обладнання. Можливо, це не представляло б проблеми, якби всі учасники мережі використовували майнінговое обладнання, засноване на ASIC-технології. Насправді проблема полягає в тому, що майнінговие компанії-гіганти, такі як Bitmain, підозрюються в контролі над великою кількістю операцій з використанням ASIC-Майнінг. І навіть незважаючи на те, що подібні організації надають цю технологію і приватним особам, передбачається що це відбувається тільки після того, як вони самі використовували її першими протягом тривалого часу. Деякі люди в блокчейне сперечаються про те, чи робить цей факт такі компанії занадто впливовими або ж немає. В ідеалі, блокчейн повинен бути керованим якомога більшою кількістю Майнер. Зрештою, саме це робить блокчейн більш децентралізованим.
Як виглядає зсередини одна з майнінгових-ферм Bitmain у Внутрішній Монголії, Китай.
Ще один величезний майнінговий комплекс.