10 / 736TX

Транзакція

Bitcoin Transaction

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

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

У вас є одна невитрачена сума 100 000 sat, а надіслати потрібно 60 000 sat. Sat — найменша одиниця біткоїна: 1 BTC містить 100 000 000 sat. Гаманець може створити транзакцію, яка передасть одержувачу 60 000 sat, поверне вам 39 000 sat і залишить 1 000 sat як комісію майнеру. Це нагадує оплату великою купюрою з отриманням решти. Початкові 100 000 sat використовуються повністю, натомість виникають дві нові суми. Решта зазвичай надходить на нову адресу вашого гаманця, а не незнайомій людині. Комісія — різниця між загальною використаною та створеною сумою, а не окремий вихід. Якщо пропустити повернення решти, комісія може ненавмисно вийти надто великою. [2]

Bitcoin обліковує невитрачені виходи попередніх транзакцій, скорочено UTXO. Уявляйте їх як окремі суми, якими може скористатися ваш гаманець. Вхід нової транзакції посилається на такий старіший вихід; новий вихід визначає суму й умови її наступного витрачання. Гаманець може об’єднати кілька сум або розподілити платіж між кількома одержувачами. Тому вхід не просто називає адресу відправника: він містить ідентифікатор попередньої транзакції txid і номер її виходу. Ця пара називається outpoint. Зазначений вихід має існувати й бути доступним. Його не можна витратити двічі чи врахувати двома входами в одній транзакції. [1] [2]

Для звичайного платежу гаманець створює цифровий підпис за допомогою приватного ключа. Підпис доводить право на переказ, і його можна перевірити, не розкриваючи ключ. Умови можуть також вимагати кількох підписів або очікування певного моменту. Технічно потрібні дані подаються в scriptSig і, за потреби, в окремій частині witness. За ними вузли перевіряють умови виходу, який витрачається. Режим SIGHASH визначає, які частини транзакції підпис захищає від змін. Але навіть правильний підпис не дозволяє витратити неіснуючі кошти, збільшити загальну суму чи обійти часовий замок, умови якого ще не виконано. [2]

Після підписання гаманець поширює транзакцію. Вузли її перевіряють і можуть додати до свого mempool — черги непідтверджених транзакцій. Потрапити туди ще не означає потрапити в блок. Перше підтвердження з’являється після включення до дійсного блоку, а кожен наступний блок додає ще одне. Правила поширення та зберігання транзакцій у черзі можуть відрізнятися між вузлами й не тотожні правилам дійсності блоку. Транзакцію в черзі може замінити інша, що витрачає ті самі кошти. Навіть підтвердження може зникнути під час реорганізації, коли мережа приймає іншу дійсну гілку історії. Перевіряйте отримання у власному гаманці в правильній мережі за сумою, призначенням і підтвердженнями, а не за чужим знімком екрана. [4]

Гаманець зазвичай показує txid — ідентифікатор для пошуку транзакції. Технічно він виникає внаслідок подвійного застосування SHA-256 до запису транзакції без даних witness. Другий ідентифікатор, wtxid, включає дані witness; якщо цих даних у транзакції немає, обидва ідентифікатори однакові. Вони ідентифікують запис, але самі не доводять підтвердження платежу. Комісія переважно залежить від розміру даних і вибраної ставки, а не від вартості надісланих біткоїнів у звичайній валюті. Для ставки використовують віртуальний розмір vsize: так звану вагу транзакції, поділену на чотири й округлену вгору. Об’єднання багатьох дрібних входів тому може коштувати більше, ніж переказ однієї великої суми. [3]

Приклад · TX

Входи мінус виходи — це комісія

Якщо звичайна транзакція використовує загалом 250 000 sat і призначає одержувачам разом із рештою 248 200 sat, залишок 1 800 sat є комісією майнеру. Його не надсилають окремо на адресу для комісій.

Для повної картини прочитайте також UTXO, Private Key, Mempool, Transaction Fees, SegWit. На цю статтю також посилаються Bitcoin Whitepaper, Timechain / Blockchain, Full Node, UTXO.

01Чи можна скасувати підтверджену транзакцію Bitcoin?

У Bitcoin немає кнопки «Скасувати» чи адміністратора, який відкличе підтверджений переказ на прохання. Щоб повернути гроші, одержувач зазвичай має надіслати їх новою транзакцією. Це відрізняється від реорганізації ланцюга, під час якої платіж може тимчасово втратити підтвердження. Кожен додатковий блок збільшує роботу майнерів, тобто Proof of Work, потрібну для заміни історії. Більше підтверджень додає впевненості, але не дає абсолютної гарантії.

02Чому гаманець створює вихід для решти?

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

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