ГоловнаЗапитання та відповіді щодо крипто
Як працює базова транзакція біткоїна?
Оглядач

Як працює базова транзакція біткоїна?

2026-02-12
Оглядач
Базова транзакція Bitcoin – це фундаментальна підписана структура даних, що фіксує передачу вартості. Вона переміщує вартість від невитрачених виходів транзакцій (UTXO) до нових виходів, які надалі стають новими UTXO, доступними для майбутніх витрат. Мережа криптографічно перевіряє ці транзакції, забезпечуючи їх точний запис у розподіленому реєстрі – блокчейні.

Деконструкція транзакції Bitcoin: Фундамент передачі цифрової вартості

За своєю суттю Bitcoin базується на простій, але геніально спроектованій системі передачі вартості. На відміну від традиційного банкінгу, де рахунки мають баланси, Bitcoin функціонує швидше як система цифрової готівки, де кожна одиниця вартості відстежується через серію транзакцій. Цей фундаментальний механізм, який часто називають «базовою транзакцією», є наріжним каменем, на якому побудована вся мережа Bitcoin. Розуміння того, як ці транзакції структуруються, перевіряються та записуються, є вирішальним для осягнення принципів безпеки, цілісності та роботи першої та найбільшої у світі криптовалюти.

Модель виходу невитраченої транзакції (UTXO): Цифрова готівка в дії

Щоб зрозуміти, як працюють транзакції Bitcoin, потрібно спочатку розібратися з концепцією виходу невитраченої транзакції, або UTXO (Unspent Transaction Output). Ця модель є кардинальною зміною парадигми порівняно з традиційними системами на основі рахунків і є центральною в дизайні Bitcoin.

Уявіть фізичну готівку у вашому гаманці: у вас немає «балансу рахунку» готівкою; натомість ви володієте конкретними купюрами різного номіналу (наприклад, купюра в 10 доларів, купюра в 20 доларів). Коли ви хочете за щось заплатити, ви використовуєте ці конкретні купюри. Якщо товар коштує 15 доларів, а ви платите купюрою у 20 доларів, ви отримуєте 5 доларів решти — нову купюру.

Модель UTXO в Bitcoin працює аналогічно:

  • Відсутність балансів рахунків: Гаманці Bitcoin технічно не містять «балансу» у звичному розумінні. Замість цього вони керують набором UTXO, які доступні для витрачання за допомогою приватних ключів гаманця.
  • Дискретні одиниці вартості: Кожен UTXO представляє конкретну невитрачену суму біткоїнів, яка була виходом попередньої транзакції. Це ніби цифрова купюра або монета.
  • Витрачання UTXO: Коли ви ініціюєте транзакцію, ваш гаманець вибирає один або декілька UTXO, якими ви володієте, щоб покрити суму, яку ви хочете надіслати. Ці вибрані UTXO повністю споживаються (витрачаються) як входи для вашої нової транзакції.
  • Створення нових UTXO: Потім транзакція генерує нові UTXO як виходи:
    • Один UTXO для одержувача, що містить суму, яку ви надіслали.
    • Опціонально, інший UTXO («вихід решти»), що повертається на ваш власний гаманець, на суму, що залишилася від спожитих UTXO, яка не була надіслана одержувачу або сплачена як комісія.

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

Анатомія транзакції Bitcoin

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

Входи транзакції (Inputs)

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

  1. ID транзакції (TXID) попереднього виходу: Унікальний ідентифікатор (хеш) транзакції, яка створила UTXO, що витрачається.
  2. Індекс виходу (Vout): Номер, що вказує, який саме вихід тієї попередньої транзакції витрачається (транзакція може мати кілька виходів).
  3. Скрипт розблокування (ScriptSig): Це критично важлива частина, яка доводить право власності та дозволяє витрату. Для стандартної транзакції типу P2PKH (платіж на хеш публічного ключа) ScriptSig зазвичай містить:
    • Цифровий підпис: Згенерований приватним ключем відправника, що підписує хеш даних поточної транзакції. Це доводить, що відправник санкціонував транзакцію, не розкриваючи свій приватний ключ.
    • Публічний ключ: Отриманий з приватного ключа відправника. Мережа використовує його для перевірки цифрового підпису на відповідність хешу публічного ключа, вбудованому в скрипт блокування попереднього UTXO.

Виходи транзакції (Outputs)

Виходи вказують, куди спрямовуються біткоїни та за яких умов їх можна буде витратити в майбутньому.

  1. Значення (Value): Кількість біткоїнів (у сатоші, найменшій одиниці Bitcoin), що надсилається на цей вихід.
  2. Скрипт блокування (ScriptPubKey): Також відомий як «умова витрачання» або «хеш скрипту», цей скрипт визначає умови, які мають бути виконані, щоб цей вихід міг бути витрачений у майбутній транзакції. Для стандартного виходу P2PKH він зазвичай містить хеш публічного ключа одержувача. Щоб витратити цей вихід, одержувач повинен надати цифровий підпис, згенерований приватним ключем, що відповідає цьому хешу публічного ключа, разом зі своїм публічним ключем.

Інші поля транзакції

Окрім входів та виходів, транзакція Bitcoin містить іншу важливу інформацію:

  • Номер версії: Вказує на версію структури даних транзакції, що дозволяє впроваджувати майбутні оновлення протоколу.
  • Locktime (або nLocktime): Опціональне поле, яке вказує час або висоту блоку, раніше яких транзакція не може бути додана до блоку. Це може використовуватися для смарт-контрактів із часовим блокуванням. Locktime 0 (або менше 500 мільйонів) означає, що транзакція може бути включена негайно.
  • Дані свідків (Witness Data для SegWit-транзакцій): Для транзакцій, що використовують протокол Segregated Witness (SegWit), дані підпису (witness data) зберігаються в окремій структурі, що допомагає оптимізувати простір у блоці та виправити проблеми пластичності (malleability) транзакцій.

Уся структура даних транзакції (за винятком даних свідків для SegWit) потім криптографічно хешується для створення ID транзакції (TXID), унікального ідентифікатора для цієї конкретної транзакції.

Створення та трансляція транзакції

Коли ви вирішуєте надіслати Bitcoin, програмне забезпечення вашого гаманця виконує кілька критичних кроків за лаштунками:

  1. Вибір UTXO: Ваш гаманець сканує блокчейн, щоб ідентифікувати всі UTXO, які доступні для витрачання вашими приватними ключами. Потім він вибирає комбінацію цих UTXO, загальна вартість яких дорівнює або перевищує суму, яку ви бажаєте надіслати, плюс комісія за транзакцію.
  2. Створення виходів:
    • Створюється основний вихід для адреси одержувача, що містить зазначену суму біткоїнів.
    • Якщо загальна вартість вибраних UTXO перевищує суму відправлення плюс комісію, генерується «вихід решти». Цей вихід надсилає залишок назад на нову адресу під керуванням вашого гаманця, що покращує конфіденційність завдяки уникненню повторного використання адрес.
  3. Розрахунок комісії за транзакцію: Різниця між загальною вартістю входів і загальною вартістю виходів (одержувач + решта) стає комісією за транзакцію, яку забирає майнер, що включив транзакцію в блок. Гаманці часто оцінюють комісію на основі завантаженості мережі та розміру даних транзакції.
  4. Цифрове підписування: Кожен вхід у транзакції має бути цифровим підписом приватного ключа, що відповідає публічному ключу, який контролює відповідний UTXO. Цей процес підписання використовує алгоритм ECDSA (Elliptic Curve Digital Signature Algorithm), генеруючи унікальний підпис для кожного входу на основі даних транзакції. Цей підпис доводить, що власник дозволив витрату, не розкриваючи свій приватний ключ.
  5. Збірка транзакції: Усі ці компоненти — вибрані входи, створені виходи, підписи та інші поля — збираються в повну структуру даних транзакції.
  6. Трансляція (Broadcasting): Повністю сформована та підписана транзакція потім транслюється в мережу Bitcoin.

Валідація транзакцій: Вартові мережі

Отримавши трансляцію транзакції, повні вузли (full nodes) Bitcoin негайно починають суворий процес валідації, перш ніж передати її іншим вузлам. Ця багатоетапна перевірка має вирішальне значення для підтримки цілісності мережі та запобігання недійсним або зловмисним транзакціям.

Ось як вузли перевіряють транзакцію:

  1. Синтаксичні та структурні перевірки:

    • Формат: Чи правильно відформатована транзакція відповідно до правил протоколу Bitcoin?
    • Розмір: Чи відповідає вона обмеженням максимального розміру?
    • Версія: Чи є номер версії дійсним?
    • Діапазони значень: Чи знаходяться всі значення (входи, виходи) у допустимих межах (наприклад, не від'ємні, не перевищують загальну емісію Bitcoin)?
    • Кількість підписів: Чи правильна кількість підписів для використовуваного типу скрипту?
  2. Існування та статус UTXO, на які є посилання:

    • Невитрачені: Для кожного входу UTXO, на який посилаються, має існувати і, що критично важливо, бути невитраченим. Це основний захист від подвійних витрат. Вузли перевіряють свою локальну копію набору UTXO (базу даних усіх наразі невитрачених виходів).
    • Зрілість: Якщо UTXO є винагородою coinbase (від майнінгу блоку), він повинен «дозріти» (зазвичай 100 блоків), перш ніж його можна буде витратити.
  3. Верифікація скрипту:

    • Для кожного входу вузол виконує процес перевірки скрипту. Він поєднує ScriptSig (із входу) зі ScriptPubKey (із UTXO, на який посилаються). Цей комбінований скрипт потім виконується інтерпретатором Bitcoin Script.
    • Скрипт повинен повернути значення «TRUE», щоб вхід транзакції вважався дійсним. Саме тут цифровий підпис перевіряється на відповідність хешу публічного ключа, зазначеному в скрипті блокування UTXO, що доводить правомочність.
  4. Перевірка узгодженості значень:

    • Входи проти Виходів: Сума всіх значень Bitcoin у входах має бути більшою або рівною сумі всіх значень у виходах.
    • Жодних нових біткоїнів: Нові біткоїни не можуть бути створені з нічого. Різниця між входами та виходами — це комісія за транзакцію, яка дістається майнеру.
  5. Перевірка Locktime: Якщо вказано nLocktime, транзакція може бути включена в блок лише після того, як поточна висота блоку або час перевищить значення nLocktime.

Лише після проходження всіх цих перевірок транзакція вважається дійсною. Дійсні транзакції додаються до пулу пам'яті вузла (mempool) і передаються іншим підключеним вузлам.

Включення в блок: Шлях до підтвердження

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

  1. Відбір майнером: Майнери Bitcoin постійно моніторять мемпул, вибираючи транзакції для включення в новий блок, який вони намагаються видобути. Майнери надають пріоритет транзакціям з вищою комісією за байт, оскільки це збільшує їхню потенційну винагороду.
  2. Створення блоку: Майнер формує блок-кандидат, що містить заголовок (з такими деталями, як хеш попереднього блоку, мітка часу, цільова складність і корінь Меркла транзакцій) та вибрані транзакції.
  3. Доказ роботи (Proof-of-Work): Потім майнер виконує інтенсивну обчислювальну роботу, намагаючись знайти «nonce» (випадкове число), яке у поєднанні з даними заголовка блоку при хешуванні дає результат нижче поточного цільового рівня складності мережі. Це і є «Proof-of-Work» (PoW).
  4. Розповсюдження блоку: Щойно майнер знаходить дійсний nonce, він транслює щойно видобутий блок у мережу.
  5. Валідація блоку: Інші вузли отримують блок і швидко перевіряють його дійсність:
    • Чи містить заголовок блоку дійсний Proof-of-Work?
    • Чи всі транзакції всередині блоку індивідуально дійсні та невитрачені (перевірка за їхнім поточним набором UTXO)?
    • Чи відповідає блок усім правилам консенсусу (наприклад, ліміт розміру блоку, дійсна транзакція coinbase)?
  6. Підтвердження: Якщо блок дійсний, вузли додають його до своєї копії блокчейну. У цей момент транзакції всередині цього блоку отримують своє перше «підтвердження». Коли поверх цього блоку видобуваються нові блоки, транзакція отримує подальші підтвердження, стаючи все більш незворотною та безпечною. Продавці та біржі зазвичай чекають певної кількості підтверджень (наприклад, 6), перш ніж вважати транзакцію остаточною.

Комісії за транзакції: Паливо мережі

Комісії за транзакції є невід'ємною частиною екосистеми Bitcoin і служать двом основним цілям:

  1. Стимулювання майнерів: Комісії компенсують майнерам їхні обчислювальні зусилля та забезпечують безпеку мережі. Без комісій у майнерів було б менше стимулів обробляти транзакції, коли винагорода за блок з часом зменшиться.
  2. Запобігання спаму в мережі: Комісії стримують зловмисників від переповнення мережі величезною кількістю дрібних, економічно незначущих транзакцій, які інакше споживали б ресурси мережі.

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

Ілюстративний приклад: Аліса платить Бобу

Простежимо просту транзакцію: Аліса хоче надіслати Бобу 0,5 BTC.

  1. Сканування гаманця Аліси: Гаманець Аліси виявляє, що у неї є два UTXO:

    • UTXO A: 0,3 BTC (від попередньої транзакції з Чарлі)
    • UTXO B: 0,4 BTC (від попередньої транзакції з Девідом)
    • Загальна сума для витрачання: 0,7 BTC
  2. Вибір UTXO: Щоб надіслати 0,5 BTC, її гаманцю потрібно покрити цю суму плюс комісію. Він вирішує використати UTXO B (0,4 BTC) та UTXO A (0,3 BTC), разом — 0,7 BTC.

  3. Створення транзакції:

    • Входи:
      • Вхід 1: Посилається на UTXO A (0,3 BTC), включає підпис Аліси для UTXO A.
      • Вхід 2: Посилається на UTXO B (0,4 BTC), включає підпис Аліси для UTXO B.
    • Виходи:
      • Вихід 1: 0,5 BTC на хеш публічного ключа Боба.
      • Вихід 2 (Решта): Аліса розраховує комісію. Якщо ставка мережі передбачає комісію 0,0001 BTC для такого розміру транзакції, то 0,7 BTC (входи) - 0,5 BTC (Бобу) - 0,0001 BTC (комісія) = 0,1999 BTC. Ці 0,1999 BTC надсилаються назад на нову адресу під керуванням гаманця Аліси.
  4. Підписання та трансляція: Гаманець Аліси криптографічно підписує транзакцію, а потім транслює її в мережу Bitcoin.

  5. Валідація мережею: Повні вузли отримують транзакцію:

    • Вони перевіряють, що UTXO A та UTXO B існують і дійсно є невитраченими.
    • Вони виконують скрипти, перевіряючи підписи Аліси на відповідність хешам публічних ключів в оригінальних скриптах блокування UTXO A та UTXO B.
    • Вони перевіряють, що входи (0,7 BTC) >= виходи (0,5 BTC + 0,1999 BTC). Різниця, 0,0001 BTC, є неявною комісією.
    • Якщо всі перевірки пройдено, транзакція додається до мемпулу.
  6. Майнінг та підтвердження: Майнер вибирає цю транзакцію (разом з іншими) для нового блоку. Після знаходження дійсного Proof-of-Work блок додається до блокчейну. Транзакція Аліси отримує перше підтвердження, і тепер Боб володіє 0,5 BTC як новим UTXO.

Незмінна міць транзакційної моделі Bitcoin

Дизайн базового механізму транзакцій Bitcoin, зосереджений навколо UTXO та надійної криптографічної валідації, забезпечує фундаментальні переваги, що лежать в основі його ціннісної пропозиції:

  • Безпека: Цифрові підписи та механізм Proof-of-Work гарантують, що транзакції є справді авторизованими та практично незворотними після підтвердження, що запобігає шахрайству та подвійним витратам.
  • Децентралізація: Жодна окрема установа не може в односторонньому порядку схвалити або відхилити транзакції. Вузли мережі незалежно перевіряють їх відповідно до узгоджених правил.
  • Прозорість та можливість аудиту: Хоча система є псевдонімною, кожна транзакція публічно записується в блокчейні, що дозволяє будь-кому перевірити рух вартості.
  • Запобігання подвійним витратам: Модель UTXO та загальномережева валідація невитрачених виходів роблять надзвичайно складним завданням витратити один і той самий біткоїн двічі — проблему, притаманну цифровим валютам до появи Bitcoin.

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

Схожі статті
Останні статті
Гарячі події
L0015427新人限时优惠
Обмежена пропозиція для нових користувачів
Приєднатися

Гарячі теми

Крипто
hot
Крипто
179 статей
Технічний аналіз
hot
Технічний аналіз
0 статей
DeFi
hot
DeFi
0 статей
Рейтинги криптовалют
ТопНове місце
Індекс страху та жадібності
Нагадування: дані лише для довідки
36
Страх
Пов'язані теми
Розширити