675 / 736BK59

Bitcoin: A Work in Progress

Sjors Provoost: що стоїть за звичайним платежем у біткоїнах

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

Bitcoin: A Work in Progress — книжка розробника Sjors Provoost про технічний розвиток Bitcoin. Вона пояснює малопомітні для користувача питання: як гаманець читає адресу, звідки вузол дізнається про події в мережі та чому навіть невелика зміна потребує обережності.

Користуватися Bitcoin можна, не знаючи його програмного коду. Проте це не означає, що вдосконалювати вже нічого. Sjors Provoost, учасник розробки Bitcoin Core, знайомить читача з роботою, завдяки якій мережа розвивається. Перше паперове видання вийшло у Purple Dunes у 2022 році. Книжка розглядає технічні питання свого часу; пізніше оновлення вихідних файлів не змінює дату першої публікації. [1] [2]

Уявіть, що знайомий надіслав адресу, а ви вставили її у свій гаманець. Для вас це початок платежу. Для розробника — ще й питання, як виявити описку та однозначно вказати гаманцю, куди підготувати платіж. Цей наш власний приклад допомагає підійти до книжки без знання програмування. Її зміст веде від адрес до обміну даними між вузлами й змін правил. Складніші розділи легше читати після засвоєння цих основ. [2]

Адреса — це запис, за яким гаманець формує умови подальшого витрачання певної суми. Умови потрапляють у вихід транзакції, тобто новостворену частину платежу. Щоб витратити її згодом, потрібно довести виконання цих умов, зазвичай правильним цифровим підписом. Тому мережі не потрібен банківський рахунок на ваше ім’я. Розділ Provoost допомагає розрізняти адресу, якою обмінюються люди, та правила, які перевіряють комп’ютери. [3]

До адреси входить контрольна сума, яка допомагає гаманцю виявляти помилки переписування. Вона не встановлює власника адреси. У нашому прикладі можна випадково вставити правильно записану адресу іншої людини й успішно пройти перевірку. Отже, потрібно перевіряти й запланованого одержувача. Якщо гаманець повідомляє про помилку, безпечніше знову отримати правильну адресу, ніж вгадувати, який символ виправити. [3] [4]

Тепер технічна подробиця: Bech32 та Bech32m — формати кодування адрес. BIP 350 визначає Bech32 для нативних адрес witness версії 0, а Bech32m — для версій від 1 до 16. Версія witness — число, яке розрізняє правила перевірки виходів такого типу. Новіший формат усуває слабкість контрольної суми під час вставляння символів. Це не означає, що всі старі адреси стали недійсними або що їх треба перетворювати вручну. [4]

Вузол — програма, підключена до мережі Bitcoin; Full Node самостійно перевіряє правила транзакцій і блоків. Проте нові дані він має звідкись отримати. Під час Eclipse Attack зловмисник контролює всі з’єднання вузла й може приховувати від нього частину подій. Вузол і далі відхиляє недійсні блоки, але має неповну інформацію. Книжка показує важливу різницю: перевірка отриманих даних не дорівнює доступу до всіх потрібних даних. [5]

Зловмисник не може просто нав’язати ізольованому вузлу довільний блок. Для дійсного підтвердження свого платежу йому потрібен також дійсний блок, що відповідає Proof of Work — вимозі обчислювального доказу виконаної роботи. Після відновлення зв’язку вузол може виявити іншу дійсну гілку з більшою накопиченою роботою. Він перейде на неї, і якщо початкового платежу там немає, колишнє підтвердження втратить силу. Тому безпека включає і перевірку правил, і стійкі мережеві з’єднання. [5]

Почніть із запитання, знайомого з власного досвіду, наприклад про адресу. Далі простежте, що дозволяє рішення та де його межі. Цей огляд спирається на вихідні дані, офіційний зміст, вибрані публічні уривки про адреси й Eclipse Attack та BIP 350. Це не рецензія на всю книжку чи подкаст, на якому вона ґрунтується. Історичні параметри мережі й тодішній стан розробки слід відрізняти від сучасного програмного забезпечення. [1] [2] [3] [4] [5]

Для повної картини прочитайте також Bitcoin Core, Taproot, Правила консенсусу, Гаманець.

01Чи потрібно вміти програмувати, щоб навчитися чогось із книжки?

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

02Чи гарантують правильна адреса та власний Full Node безпечний платіж?

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

DOC · 001Sjors Provoost — paperback copyrightПервинне джерело DOC · 002Bitcoin: A Work in Progress — official contentsПервинне джерело DOC · 003Sjors Provoost — What Is a Bitcoin Address?Первинне джерело DOC · 004BIP 350 — Bech32mПервинне джерело DOC · 005Sjors Provoost — Eclipse AttacksПервинне джерело
Переглянуто: Спочатку джерела · Не інвестиційна порада