Основний реєстр Біткойну: Модель UTXO та життєвий цикл транзакцій

Коли більшість людей думають про переказ грошей, вони уявляють просте оновлення центрального реєстру: баланс банківського рахунку Аліси зменшується, а Боба — збільшується. Це проста модель на основі рахунків, яку використовують централізовані фінансові системи по всьому світу.

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

Щоб вирішити це фундаментальне завдання, Біткойн запровадив унікальну, надійну та високонадійну структуру обліку, відому як модель невикористаних виходів транзакцій (Unspent Transaction Output, UTXO). Модель UTXO — це двигун під капотом Біткойну, який забезпечує унікальну відстежуваність кожного сатоші (найменшої одиниці Біткойну), робить подвійне витрачання математично неможливим і дозволяє всій мережі перевіряти реєстр без довіри до будь-якої сторони.

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


Традиційні банки проти реєстру блокчейну

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

Модель на основі рахунків: Відстеження балансів

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

У цій моделі система веде головний список усіх користувачів та їхньої поточної чистої вартості в системі. Якщо Аліса має $1000 і надсилає Бобу $100, система просто виконує дві математичні операції:

  1. Віднімаємо $100 з запису рахунку Аліси ($1000 → $900).
  2. Додаємо $100 до запису рахунку Боба ($0 → $100).

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

Чому модель рахунків не працює в децентралізованих системах

Хоча модель рахунків ефективна для централізованих установ, у бездовірній децентралізованій мережі, як Біткойн, вона має критичні недоліки:

  1. Складність перевірки стану: У децентралізованій мережі кожен вузол повинен погоджуватися щодо поточного стану (тобто точних балансів усіх). Якщо вузли постійно оновлюють баланси, перевірка справжнього стану вимагає відтворення кожної транзакції з початку часів або довіри до довільного чекпоінту. Це робить перевірку обчислювально важкою та схильною до розбіжностей.
  2. Ризик подвійного витрачання: Основне завдання цифрових грошей — забезпечити, щоб Аліса не могла надіслати ті самі $100 і Бобу, і Керол. У моделі рахунків без центрального арбітра, якщо Аліса одночасно транслює дві конфліктуючі транзакції ("Надіслати $100 Бобу" і "Надіслати $100 Керол"), немає негайного універсального механізму, щоб визначити, яка валідна, і запобігти прийняттю обох.
  3. Проблеми перевіряємості: Баланси рахунків — це постійно змінювані змінні. Хоча ви бачите кінцевий баланс, розуміння як він накопичився (і забезпечення, що система не помилилася під час одного з мільйона попередніх оновлень) може бути приховане за приватним корпоративним реєстром.

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


Розшифровка моделі UTXO (Невитрачений вихід транзакції)

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

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

Аналогія цифрових готівок

Найкращий спосіб зрозуміти модель UTXO — думати про неї як про поводження з фізичними готівками, зокрема банкнотами, а не керування балансом поточного рахунку.

Уявіть, що ви отримуєте $50 від друга. Ці $50 не додаються до загального цифрового тоталу; вони існують як єдина фізична банкнота на $50.

  1. Якщо ви хочете витратити $30: Ви не можете розірвати банкноту на $50. Ви мусите витратити всю банкноту на $50 (вхід) і натомість отримати дві нові речі: платіж на $30 мерчанту та $20 решти (новий UTXO), надісланий назад вам.
  2. Банкнота на $50 "витрачається" (споживається) повністю, а нові банкноти створюються (нові UTXO).

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

Анатомія UTXO

Кожен UTXO визначається трьома критичними елементами інформації, записаними в блокчейні:

  1. Джерело (ID транзакції та індекс): Посилання на попередню транзакцію, де цей UTXO вперше створено як вихід. Оскільки одна транзакція може мати кілька виходів, номер індексу (0, 1, 2 тощо) вказує, який саме вихід посилається. Це походження є критичним, бо забезпечує, щоб мережа знала звідки походять гроші.
  2. Сума: Конкретна кількість Біткойну або сатоші, що міститься в цьому UTXO.
  3. Скрипт блокування (ScriptPubKey): Це криптографічний "замок", який визначає конкретні умови, необхідні для витрати UTXO в майбутньому. У найпоширеніших сценаріях (Pay-to-Public-Key-Hash або P2PKH) цей скрипт блокує кошти на хеш конкретного публічного ключа, тобто тільки особа з відповідним приватним ключем може його розблокувати.

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

Концепція виходів решти

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

Наприклад, Аліса хоче заплатити Бобу 0.05 BTC. У неї є лише один UTXO вартістю 0.1 BTC.

Вхід (спожитий UTXO) Вихід 1 (платіж) Вихід 2 (решта) Комісія
0.1 BTC 0.05 BTC (Бобу) 0.049 BTC (на нову адресу Аліси) 0.001 BTC

У цьому сценарії:

  1. Оригінальний UTXO на 0.1 BTC знищується.
  2. Створюються два нові UTXO: один для Боба і один для Аліси (решта).
  3. Решта (0.001 BTC) неявно присвоюється майнером як комісія за транзакцію.

Цей обов’язковий облік решти є ключовою функцією безпеки, яка забезпечує збереження вартості по всій мережі та надає природний механізм для оплати мережевих комісій.


Життєвий цикл транзакції Біткойну: Від входу до виходу

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

Крок 1: Збір входів (процес витрати)

Перш ніж надіслати будь-який Біткойн, програмне забезпечення гаманця користувача мусить знайти існуючі UTXO, пов’язані з його адресами. Ці UTXO слугують входами для нової транзакції.

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

  1. Вибір: Якщо ви хочете витратити 1 BTC і маєте два UTXO (0.7 BTC і 0.4 BTC), гаманець може вибрати обидва, загалом 1.1 BTC, для використання як входи.
  2. Доказ розблокування: Для кожного вибраного UTXO як входу відправник мусить надати криптографічний доказ — цифровий підпис, — який задовольняє умову блокування, встановлену попередньою транзакцією (ScriptPubKey). Цей процес доводить право власності без розкриття приватного ключа.

Крок 2: Визначення виходів (нові UTXO)

Входи — це UTXO, які знищуються; виходи — це нові UTXO, які створюються. Зазвичай є два типи виходів:

A. Вихід отримувача

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

B. Вихід решти

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

Крок 3: Оплата мережевої комісії

У кожній валідній транзакції Біткойну загальна вартість усіх входів мусить дорівнювати або перевищувати загальну вартість усіх виходів.

Різниця між загальною вартістю входів і загальною вартістю виходів — це комісія за транзакцію.

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

Механізм стимулювання: Цей механізм є критичним для моделі безпеки Біткойну. Він надає майнерам економічний стимул пріоритизувати та підтверджувати транзакції, забезпечуючи безперервну роботу мережі, навіть коли субсидія блоку (нові викарбувані монети) зменшується з часом. Сума комісії зазвичай пропорційна розміру даних транзакції (у байтах) та поточному рівню перевантаження мережі, дозволяючи користувачам竞увати за швидше включення. (Для глибшого занурення див. нашу пов’язану сторінку: Mempool Dynamics: Analyzing the Bitcoin Fee Market and Congestion Pricing).


Криптографічна безпека: Блокування та розблокування цифрового сховища

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

Роль криптографічних скриптів

Транзакції Біткойну не підписуються цифрово програмним забезпеченням гаманця; вони обробляються стековою, не-Turing-повноцінною мовою скриптів. Хоча це звучить складно, її мета проста: слугувати "замком" і "ключем" для UTXO.

Типова транзакція включає два основні скрипти:

1. Скрипт блокування (ScriptPubKey)

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

2. Скрипт розблокування (ScriptSig)

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

Коли вузол перевіряє транзакцію, він комбінує ScriptSig (пропоноване рішення) та ScriptPubKey (завдання) і виконує комбінований скрипт. Якщо скрипт виконується успішно (розв’язується до "True"), транзакція валідна, і UTXO можна спожити.

Стандартні типи транзакцій

Хоча мова скриптів Біткойну дозволяє складні умови (як мультипідпис чи тимчасово заблоковані кошти), переважна більшість транзакцій використовує дві стандартні форми:

Pay-to-Public-Key-Hash (P2PKH)

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

Аналогія: Ви блокуєте сейф складним біометричним замком (хеш адреси). Щоб відкрити, мусите пред’явити конкретний біометричний ідентифікатор (публічний ключ) і підписаний документ, що доводить вашу авторизацію (цифровий підпис).

Pay-to-Script-Hash (P2SH)

Транзакції P2SH дозволяють надсилати кошти на адресу, похідну від складного скрипта (набір кастомних правил витрати), а не просто публічного ключа. Це часто використовується для мультипідписних гаманців (потрібно 2 з 3 підписів для витрати) чи тимчасових блокувань. P2SH спрощує адресу отримувача, дозволяючи значно більшу безпеку та складність за лаштунками.

Процес перевірки: Цифровий підпис і публічний ключ

Найкритичніший елемент скрипта розблокування — цифровий підпис.

  1. Підписування: Відправник використовує свій приватний ключ, щоб цифрово підписати нову пропоновану транзакцію. Цей підпис доводить, що власник приватного ключа авторизував витрату і забезпечує, що деталі транзакції (отримувачі, суми, комісії) не можуть бути змінені після підпису.
  2. Перевірка: Мережа використовує публічний ключ відправника (який є публічним, часто включений до ScriptSig), щоб математично перевірити, що цифровий підпис створено відповідним приватним ключем.

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


Superiority of UTXOs: Audibility, Security, and Privacy

The decision to utilize the UTXO model, rather than the more intuitive account model, was a deliberate choice that underpins the unique properties of Bitcoin’s security architecture.

Enhanced Security Through Explicit Spends

The account model must rely on consensus rules to prevent double-spending (e.g., "Whoever records the transaction first wins"). The UTXO model, however, makes double-spending mathematically impossible through the very structure of the transaction:

The Consumption Rule: An input (UTXO) can only be consumed once. Once it is included in a confirmed block, it is effectively destroyed. If a malicious user attempts to broadcast two transactions that reference the same UTXO as an input, the second transaction is automatically invalidated by the network because the referenced input no longer exists.

This consumption-and-creation structure provides a much stronger guarantee against double-spending attempts, ensuring the absolute integrity of the ledger state.

Audibility and Simplicity of State

While the account model requires tracking a constantly evolving set of balances (a dynamic state), the UTXO model tracks a static collection of spent and unspent units (a simplified state).

The global state of the Bitcoin network—the definitive list of all money currently available—is simply the aggregation of all UTXOs that exist in the world (the UTXO Set).

  • Ease of Verification: For a node to verify the entire history of Bitcoin, it only needs to check that every newly mined block correctly consumes existing UTXOs and creates new ones. There is no confusion about "running balances." This transparent, auditable history is essential for decentralized systems, ensuring any participant can verify the chain’s history independently.
  • Proof of Work Synergy: The UTXO model provides the precise units of account that miners, operating within the Proof of Work (PoW) consensus mechanism, compete to validate. The miner’s job is to ensure the UTXO transformations proposed in the transaction block are 100% valid before sealing the block. (For more on the underlying consensus mechanism, see: Proof of Work (PoW): Bitcoin's Economic Solution to the Byzantine Generals Problem).

Privacy and Pseudonymity Benefits

While Bitcoin is often described as "anonymous," it is more accurately defined as pseudonymous, meaning addresses and transactions are public, but they are not linked directly to real-world identities. The UTXO model naturally enhances this pseudonymity.

  1. Change Addresses: As discussed, when you spend a UTXO, the leftover change is typically returned to a brand-new address controlled by your wallet. This practice prevents observers from easily linking all of your Bitcoin holdings together under a single address.
  2. Input Consolidation: When you need to gather several small UTXOs (inputs) to make a large payment, the resulting transaction creates two brand-new, unlinked outputs (payment and change). This action effectively obscures the origin of the funds, providing stronger separation between your different Bitcoin activities.

Actionable Tip: To maximize the privacy benefits of the UTXO model, always ensure your wallet software utilizes new addresses for change outputs. This is standard for most modern non-custodial wallets, but it is a critical practice for maintaining financial pseudonymity.

Improved Parallel Processing

The UTXO model inherently allows for greater network efficiency compared to the account model.

In an account-based system (like Ethereum), if Alice and Bob are trying to transact simultaneously using the same Smart Contract or the same shared pool of funds, those transactions must be processed sequentially to prevent data conflicts.

In the UTXO model, transactions are isolated events involving the consumption of specific, unique UTXOs. As long as two transactions are not trying to consume the same input, they are entirely independent. This characteristic allows nodes to verify and process different transactions simultaneously (in parallel), significantly improving the network's potential processing throughput and resilience.


Підсумок керування UTXO для самоутримання

Для користувачів, які переходять до самоутримання, розуміння того, як зберігається їхній Біткойн — не як агрегований баланс, а як колекція окремих UTXO, — є суттєвим для безпеки та оптимізації комісій.

Вибір UTXO та керування комісіями

Комісія за транзакцію визначається не доларовою вартістю надісланого Біткойну, а розміром даних транзакції. Основний фактор розміру даних — кількість входів (UTXO), необхідних для фінансування транзакції.

  • Менше UTXO = Дешевша транзакція: Якщо ви фінансуватимете транзакцію одним великим UTXO (наприклад, 5 BTC), дані транзакції малі, що призводить до низької комісії.
  • Багато UTXO = Дорожча транзакція: Якщо ви фінансуватимете ту саму транзакцію на 5 BTC, використовуючи п’ятдесят дрібних UTXO (по 0.1 BTC), розмір даних транзакції різко зростає, бо транзакція мусить включати скрипт розблокування (підпис і публічний ключ) для всіх п’ятдесяти входів. Це призводить до набагато вищої комісії.

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

Еволюція скриптів та захист від майбутнього

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

Наприклад, впровадження технологій SegWit (Segregated Witness) і Taproot спеціально розроблено, щоб зробити криптографічні докази (ScriptSig), необхідні для розблокування UTXO, меншими або ефективнішими для передачі мережею. Ці покращення фундаментально залежать від структури UTXO, доводячи, що цей метод обліку — не просто спадщина, а архітектура, розроблена для довгострокової криптографічної еволюції.


Висновок

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

Життєвий цикл транзакції, керований явними скриптами блокування та розблокування, забезпечує збереження вартості та криптографічне доведення права власності в кожному випадку. Для само-суверенного індивіда модель UTXO надає неперевершену безпеку, перевіряємість та основу для псевдонімності, закріплюючи своє місце як основний двигун, що забезпечує надійні цифрові гроші для нової глобальної економіки. Розуміння структури UTXO — це не просто технічні знання; це розуміння вихідного коду довіри в цифрову еру.