Чи небезпечно мати декілька реалізацій біткойна? PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Чи небезпечно мати декілька реалізацій біткойна?

Це думка редакції Білл Скорсбі, власник малого бізнесу з біткойнами та автор кількох посібників із самостійного зберігання біткойнів.

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

Можливо, ви задаєтеся питанням: «Хто в світі використовує щось інше, ніж Биткойн ядро?» Можливо, ви не знали про існування інших реалізацій Bitcoin. Можливо, ви не впевнені, що взагалі означає інша реалізація.

Bitcoin Core починався як програмне забезпечення, яке Сатоши Накамото написаний на C++ і випущений у світ. Він був оновлений новими версіями, що ведуть до сьогоднішнього дня. Альтернативна реалізація — це програмне забезпечення, яке виконує те саме, що й Bitcoin Core — забезпечує дотримання тих самих правил консенсусу — але написано інакше, найчастіше іншою мовою кодування.

Як альтернативна реалізація зламала вузли в мережі Lightning?

Одна з основних версій вузла Lightning Network (LND) покладається на альтернативну реалізацію Bitcoin під назвою btcd. Коли розробник створив дуже велику багатопідписну транзакцію, btcd не вважав її дійсною, оскільки вона містила забагато свідкових даних. Інші реалізації Bitcoin — особливо Bitcoin Core — не мали такого обмеження на дані свідків транзакцій Taproot, тому визнавали транзакцію та блок, який її містив, дійсними.

У результаті майнери продовжували додавати нові блоки в ланцюг, оскільки вони не використовували btcd, і згідно з їхніми правилами все було не так, але вузли LND Lightning не могли розпізнати жоден із цих нових блоків, оскільки вони були побудовані поверх блоку, що містить що одну транзакцію вони вважали недійсною.

Коли помилка повторилася 1 листопада, вона торкнулася не лише вузлів LND. Деякі екземпляри electrs (реалізація серверного сервера для Electrum Wallet) також не досягли консенсусу з рештою ланцюжка. Хоча вузли LND були виведені з консенсусу через подібну проблему в btcd, це була реалізація Bitcoin, написана на Rust. спричинив відставання електричних вузлів, включаючи деякі дуже видимі сервери керує mempool.space.

Існує обмеження на розмір даних свідків для запобігання DoS-атак, а також є частиною Bitcoin Core (хоча Core має більший ліміт для транзакцій Taproot). Схоже, що дві інші реалізації, які не синхронізувалися, мали такий код зберігався менший ліміт.

Дуже невеликі відмінності в реалізації можуть призвести до відсутності консенсусу.

Мати кілька реалізацій Bitcoin небезпечно

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

Загроза? У чому справа?

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

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

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

«Вузли слідуватимуть за дійсним ланцюгом із найбільшою роботою… Ключове слово тут дійсне. Якщо вузол отримує блок, який він визначає недійсним, не має значення, скільки роботи виконано над цим блоком, вузол не прийме цей ланцюжок». — Ендрю Чоу

Ключове слово «дійсний». Загроза з’являється, коли майнер знаходить блок, який інші майнери та вузли вважають недійсним. Майнери, які вважають це дійсним, намагатимуться побудувати нові блоки в цьому ланцюжку. Майнери, які вважають його недійсним, намагатимуться створити на останньому дійсному блоці, про який вони знають. Результат: два ланцюжки, але неможливо дізнатися, який із них правдивий.

Як таке могло статися?

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

Біткойн не має механізму, щоб це виправити. Спільнота за межами протоколу має вирішити, що буде далі. Звучить дуже неприємно.

Настільки, що розробник біткойнів Пітер Тодд сказав це інші реалізації мають відповідати помилкам Bitcoin Core.

Ось так: кілька реалізацій небезпечні!

Які інші варіанти реалізації Bitcoin і чому вони існують?

По-перше, майже всі використовують Bitcoin Core.

Люк Дашджр бачить близько 43,000 XNUMX вузлів, 98% з них використовують Bitcoin Core і щось під назвою Coin Dance бачить близько 15,000 XNUMX вузлів, 96% з них використовують Bitcoin Core. Отже, на даний момент виглядає так, що дуже мало людей використовують альтернативні реалізації.

Тим не менш, існують активні проекти, які намагаються створювати та підтримувати інші кодові бази, які реалізують протокол Bitcoin. Вони включають:

Джеймсон Лопп має відмінна сторінка з більш вичерпним списком і посиланнями на всі інші реалізації.

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

Біткойн не має дозволу. Будь-хто може завантажити ланцюжок; будь-хто може взаємодіяти з мережею; і ніхто не може заборонити вам кодувати чи запускати альтернативну реалізацію.

Втім, однозначно деякі люди керують внесення змін до сховища біткойнів і процес їх вибору здається неофіційним. Поки є Процес пропозиції щодо вдосконалення біткойна (BIP). для пропозиції змін до Bitcoin Core, це також досить неофіційно.

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

Наступним кроком приблизного консенсусу є наявність кількох популярних реалізацій.

Відсутність кількох реалізацій може бути більш небезпечним

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

Подумайте про галузь лобізму, яка зараз існує в політиці. Чому б таке не розвиватися навколо людей, які мають доступ до єдиної реалізації протоколу Bitcoin?

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

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

Кілька реалізацій на допомогу!

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

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

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

Централізоване середовище розробки, де всі будують лише на Bitcoin Core, може загрожувати бездозволеністю. У розмові на цю тему слід звернути увагу на ризики так сильно покладатися на Bitcoin Core, а не зосереджуватися лише на тому, які проблеми можуть бути викликані альтернативною реалізацією.

Є чудовий, старший стаття про цю дискусію Аарон ван Вірдум. Ви також можете прочитати більш свіжий, інформативна тема про це.

Це гостьовий допис Білла Скорсбі. Висловлені думки повністю належать їм і не обов’язково збігаються з думками BTC Inc або Bitcoin Magazine.

Часова мітка:

Більше від Журнал Bitcoin