22 / 736BLK

Block

Блок Bitcoin: спільний запис підтверджених транзакцій

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

Block, або блок, — чергова група транзакцій в історії Bitcoin. Коли платіж потрапляє до дійсного блоку в ланцюзі, за яким стежить ваш вузол, він отримує перше підтвердження. Це не рішення центрального адміністратора: майнер створює блок, а інші вузли перевіряють дотримання правил Bitcoin.

Ви надсилаєте платіж у біткоїнах, і гаманець спочатку показує очікування підтвердження. Транзакція поширюється між вузлами й може потрапити до їхніх мемпулів — локальних списків непідтверджених транзакцій. Майнер вибирає частину з них для кандидата в блок. Якщо він знаходить потрібний Proof of Work (результат обчислень майнера, що відповідає правилам мережі), а вузли приймають блок до активного ланцюга, платіж у ньому отримує перше підтвердження. Наступний блок, побудований поверх нього, збільшує число до двох. Середня ціль — близько десяти хвилин між блоками, а не гарантія проходження кожного платежу за десять хвилин. [1] [3]

Кожен блок має короткий заголовок і свої транзакції. Заголовок містить, зокрема, криптографічний відбиток попереднього блоку — посилання, яке змінюється зі зміною його даних. Так утворюється пов’язана історія, а не купа окремих платежів. Інший відбиток у заголовку підсумовує транзакції цього блоку й називається Merkle root. Майнер перебирає варіанти заголовка, доки його хеш, числовий відбиток, не задовольнить поріг складності. Це ще не доводить правильність платежів. Повний вузол перевіряє також підписи, права витрачання та інші правила: дійсний Proof of Work не виправить недійсну транзакцію. [1] [3]

Перша транзакція називається Coinbase Transaction. У ній майнер може отримати щонайбільше дозволену нову емісію та комісії транзакцій, включених до блоку. Потім вузол послідовно перевіряє звичайні транзакції: доти невитрачені суми зникають із доступних коштів, натомість виникають нові. Ці окремі суми називають UTXO. Платіж може в тому самому блоці витратити вихід ранішого платежу, якщо виконано решту умов. Двічі витратити той самий вихід не можна. Нову винагороду coinbase не можна витратити одразу в цьому блоці: діє особливе правило очікування 100 блоків. [1]

У блоку немає фіксованої кількості місць для платежів. Проста транзакція потребує менше даних, ніж складна, тому однакова місткість уміщує різну кількість транзакцій. Із SegWit (оновлення правил Біткоїна, яке змінило зберігання та облік даних транзакцій) її обліковують за вагою з межею 4 000 000 одиниць. Це технічне вимірювання даних, а не фізична маса. Діють і додаткові правила. Майнер не зобов’язаний заповнювати всю місткість. Так званий порожній блок може не містити звичайних платежів, але coinbase у ньому є. Отже, порожній не означає ані без жодної транзакції, ані автоматично недійсний. [1] [2]

Іноді два майнери майже одночасно знаходять блоки, що продовжують того самого попередника. Обидва можуть бути дійсними, але створюють конкурентні гілки. Вузол вибирає серед дійсних гілок за сукупною доведеною роботою, а не простим голосуванням чи лише кількістю блоків. Перехід на іншу гілку називають реорганізацією. Платіж із покинутого блоку може втратити підтвердження; якщо він далі дійсний і відсутній у новій гілці, то може знову чекати включення. Додаткові підтвердження зазвичай збільшують упевненість, але не дають математичної обіцянки незворотності. Для тих, кому потрібні технічні подробиці: заголовок має 80 байтів. Merkle root — відбиток, обчислений з ідентифікаторів транзакцій, які називаються txid, у порядку їх розташування в блоці. Дані witness із SegWit, наприклад підписи для перевірки витрачання, мають додатковий криптографічний відбиток, записаний через coinbase. Ці зв’язки дозволяють вузлу перевірити, що отримані дані належать саме цьому блоку. [1] [2]

Для повної картини прочитайте також Block Header, Транзакція, Timechain / Blockchain, Майнінг. На цю статтю також посилаються Block Header, Merkle Tree, Підтвердження, Coinbase-транзакція.

DOC · 001Bitcoin Core v29.0: block validationПервинне джерело DOC · 002BIP 141: block weight and witnessПервинне джерело DOC · 003Bitcoin Developer Guide: Block ChainПервинне джерело
Переглянуто: Спочатку джерела · Не інвестиційна порада