Егоїстичний майнінг: не тягни ковдру на себе
Блокчейни PoW є відкритими системами, і будь-хто може приєднатися до пулу, за умови, що він дотримуватиметься протоколу. Але чи дійсно майнери зацікавлені в тому, щоб грати за правилами?
Будь-який майнінг на блокчейні Proof-of-Work енерговитратний і зумовлює високі витрати. Майнерам-одинакам доводиться об'єднувати обчислювальні потужності в пули.
Користувачі платять комісію за підтвердження своїх транзакцій - це прямий матеріальний стимул для майнерів. Винагороду за майнінг розраховують для кожного блоку і розподіляють між нодами блокчейну.
Валідатор, який обчислює блок, додає в нього транзакції та об'єднує з рештою ланцюжка. Потім він отримує оплату і ділить отриману комісію між вузлами пропорційно до їхньої частки внеску.
На жаль, не всі майнери завжди грають чесно. Деякі вважають за краще тягнути ковдру (винагороду) на себе. У такій ситуації ми маємо справу з егоїстичним майнінгом.
Схема дії егоїстичного майнінгу
PoW має одну важливу вразливість, про яку не часто згадують розробники, але яку успішно можуть використовувати недобросовісні майнери: існує ймовірність одночасного підтвердження кількох блоків. Шанс, що їхня кількість буде більшою за два, мізерно малий, а ситуація, коли на підтвердження від вузлів чекають 2 блоки одразу, трапляється не так уже й рідко.
Що відбувається у цьому разі?
Якщо обидва блоки будуть розраховані й одночасно об'єднані в загальну систему з попередніми, то блокчейн має розділитися на два різні ланцюги. Це називається “розгалуження” або “sprouting. Розгалуження мережі ускладнює її архітектуру та уповільнює транзакції.
Тому існує правило: коли валідатор підтверджує блок, він має передати цю інформацію іншим нодам, щоб блоки не конфліктували між собою.
Проте егоїстичні майнери закривають цю інформацію для решти учасників. Таким чином, вони вводять в оману "чесні" вузли, які продовжують додавати нові блоки та змушують їх ненавмисно розгалужувати блокчейн.
Уявімо, що блок №1001 щойно видобув егоїстичний майнер, і його вузол не передав цю інформацію в мережу. Не знаючи про оновлення, інші майнери продовжують додавати нові блоки, починаючи з блоку 1000. Виходить, що вже два блоки пов'язані з блоком 1000: один блок від майнера-егоїста, а другий – від чесного учасника. І обидва мають однаковий порядковий номер – 1001. Тепер блокчейн розділений на два ланцюги.
Егоїстичний майнер продовжує розраховувати й додавати нові блоки у свій приватний ланцюг, який і далі подовжується. Щойно він отримує достатню перевагу за кількістю доданої інформації, то передає відомості про блок №1001 решті вузлів. Блокчейн негайно розпізнає, що блок егоїстичного майнера був знайдений першим, і визначає його ланцюг як дійсний, тим самим роблячи недійсними блоки, додані чесними нодами.
Зрештою сумлінні учасники пулу не отримують винагороди, а їхня обчислювальна потужність витрачається даремно. Уся комісія за підтвердження дістається егоїстичним майнерам, оскільки їхній ланцюжок стає основним.
Підвищений розмір винагороди стимулює інших валідаторів у мережі приєднатися до егоїстичного пулу. Він продовжує зростати та збільшувати свою потужність.
Небезпека егоїстичного майнінгу
Обчислювальна потужність кожного вузла називається "швидкістю хешування". У поєднанні з іншими параметрами високий показник хешу підвищує ймовірність криптографічного обчислення блоку. Якщо егоїстичний пул продовжує зростати завдяки тим, хто приєднався, він отримує можливість контролювати блокчейн.
Блокчейн PoW вимагає, щоб більшість вузлів були чесними. Але якщо 51% загального хешрейту припадає на егоїстичний майнінговий пул, він може просто ігнорувати транзакції з незначною комісією, тим самим відмовляючи в підтвердженні багатьом законним операціям. Пул майнінгу, який захопив понад 50% хешу, може визначати, які операції проходять, а які ні. Це призводить до централізації та порушує основний принцип блокчейну – відсутність єдиної керуючої вертикалі.
Зазначимо, що такий результат подій малоймовірний, оскільки виявлення шахрайських дій у мережі призведе до різкого падіння ціни криптовалюти. Але варіант короткострокового використання егоїстичного майнінгу для отримання підвищеної винагороди зустрічається досить часто.