Лічильник фіксації є похідним станом, а не полем, що зберігається в транзакції. Якщо транзакція лежить у блоці висотою h, а вершина активного ланцюжка дорівнює H, її глибина дорівнює H − h + 1. Транзакція в мемпулі має нуль комітів; Bitcoin Core може відображати від’ємне значення для конфліктної транзакції гаманця, що вказує на глибину конфлікту.
Надсилання не є підтвердженням. Кожен вузол незалежно застосовує політику для доступу до свого mempool, і різні вузли можуть бачити різні набори через час, комісії, конфлікти, обмеження пакетів або налаштування. RBF може замінити непідтверджену транзакцію, і платіж, який бачить торговець, може зникнути, не потрапивши в блок. Отже, zero-conf обмінює швидкість на ризик подвійних витрат і неповного перегляду мережі; Ні txid, ні сторінка дослідника не є поселеннями. [Посібник розробника біткойнів — Транзакції] [Ядро біткойнів — узгодженість JSON-RPC] [BIP 125 — Увімкнути повну заміну за оплату]
Майнер може вибрати транзакцію в блок-кандидат, але перше підтвердження відбувається лише тоді, коли перевіряючий вузол приймає блок і блок лежить у своєму активному ланцюжку з найбільшою ланцюгом. Повний вузол перевіряє підтвердження роботи, сценарії, наявність і невитрачання вхідних даних, сум та інших консенсусних правил; майнер не може викупити недійсні витрати, просто зробивши лістинг. Корінь Merkle фіксує транзакцію в блоці, а посилання на попередній блок розміщує її в історії підтвердження роботи. [Bitcoin Core — Перевірка] [Bitcoin Core — validation.cpp]
Якщо блок транзакції знаходиться на висоті h, а поточна вершина вузла дорівнює H, підрахунок дорівнює H − h + 1: сам блок підраховується першим. Значення генерується щодо найкраще перевіреного блоку цього вузла, тому підказка може дещо відрізнятися між вузлами. Він не записується в транзакції, не зростає з часом і не може бути надійно визначений за міткою часу. Bitcoin Core повертає хеш блоку, висоту блоку та підтвердження як стан гаманця або представлення UTXO. [Посібник розробника біткойнів — Block Chain] [Bitcoin Core RPC — gettransaction] [Bitcoin Core RPC — getbestblockhash]
Якщо конкуруюча дійсна гілка отримує більше ланцюга, вузол від’єднає блоки старої кінчика та приєднає гілку-переможець. Транзакція з відокремленого блоку може повернутися до mempool, якщо вона залишається дійсною, зафіксувати на іншій висоті або стати конфліктною через те, що нова гілка витратила той самий вхід. Негативні підтвердження в Bitcoin Core — це умовність гаманця для глибини конфлікту, а не негативні блоки в консенсусі. [Bitcoin Core RPC — gettransaction] [Bitcoin Core — validation.cpp]
Додаткові підтвердження додають доказ роботи для транзакції, що зазвичай робить її дорожчою та навряд чи перепише історію. Вони не створюють детермінованої остаточності. Розрахунок наздоганяючого документу та пізніші моделі залежать від частки хешрейту зловмисника, поведінки чесної мережі та спостережень одержувача. «Шість підтверджень» є історичним пристроєм, а не консенсусною константою чи універсальною безпечною межею; глибока реорганізація все ще можлива в принципі. [Офіційний документ щодо біткойнів — Підтвердження роботи та обчислення] [Розенфельд — Аналіз подвійних витрат на основі хешрейту]
Підрахунок потрібен одержувачу, обміну чи протоколу низхідного потоку, а не самій транзакції. Кава, безповоротна видача дорогого товару, біржовий депозит і відкриття каналу мають різні коефіцієнти втрати та очікування. Політика повинна враховувати цінність, оборотність продуктивності, мотивацію та хешрейт зловмисника, конфлікти або RBF, опіку та бекенд, ризик затемнення та незвичайний стан ланцюга. Підтвердження зменшує ризик перезапису ланцюжка; не виправить викрадений ключ, неправильну адресу чи шахрайство контрагента. [BIP 125 — Увімкнути повну заміну за оплату] [Розенфельд — Аналіз подвійних витрат на основі хешрейту]
Біткойн прагне в середньому близько десяти хвилин між блоками, але надходження доказів роботи є випадковими: наступний блок може надійти через секунди або години. Вища плата може покращити порядок вибору майнера та економію пакетів RBF або CPFP, але жодна комісія не купує фіксований час і не прискорює створення блоків. Дешева транзакція може чекати багато блоків або бути вилученою з mempool; оцінка – це ймовірність, а не кінцевий термін. [Посібник розробника біткойнів — Block Chain] [Посібник розробника біткойнів — транзакції]
Повний вузол перевіряє рядок і відповідає відповідно до власної активної підказки. Клієнт SPV перевіряє підтвердження роботи в заголовках і включення підтвердження Merkle, але сам не запускає всі правила консенсусу; кастодіальна служба також додає власну політику кредитування та ризиків. Навіть результат RPC для повного вузла є знімком, який можна змінити за допомогою reorg. Отже, питання полягає не лише в тому, «скільки підтверджень», а й у тому, чиєму ланцюжковому перегляду, перевірці та опіці довіряє користувач. [Bitcoin Whitepaper — Proof-of-Work and Calculations] [Bitcoin Core — Validation] [Bitcoin Core — узгодженість JSON-RPC]
Інші заняття також починаються з підтвердження. Вихід Coinbase залежить від COINBASE_MATURITY = 100 і може бути витрачений лише після 100 нових блоків; це правило відрізняється від політики звичайної оплати. Відносні часові блокування BIP68, запроваджені сценарієм CHECKSEQUENCEVERIFY (CSV) BIP112, вимірюють вік із вихідного блоку фіксації. Непідтверджений батько тримає нащадків залежними; щоб дочірній елемент був заявлений, його предки повинні бути в тому ж або старшому блоці. [Bitcoin Core — consensus.h] [BIP 112 — CHECKSEQUENCEVERIFY]
BOLT 2 дозволяє одержувачу каналу Lightning вибирати транзакції фінансування minimum_depth перед channel_ready; кількість значень фінансування подвійного ризику. Канал з нульовою конфігурацією встановлює minimum_depth на нуль і свідомо покладається на довіру до фонду та обмеження протоколу, а не на негайну остаточність. Фінансування Coinbase очікує на вступ. Оператор повинен контролювати точку фінансування, глибину активного ланцюга та реорганізації, а не вважати надісланий txid відкритим каналом. [BOLT 2 — Peer Protocol] [Bitcoin Optech — Zero-conf channels]
Для повної картини прочитайте також Блок, Транзакція, Reorg, Подвійна витрата, Proof of Work, Bitcoin. На цю статтю також посилаються Подвійна витрата, Coinbase-транзакція, Reorg, Stale Block.