Невитрачений Вихід Транзакції
Свайпніть щоб показати меню
UTXO та баланс
Модель невитраченого виходу транзакції (UTXO) є фундаментальним поняттям у способі, яким Bitcoin та кілька інших криптовалют відстежують право власності на цифрову валюту, що відображає суму цифрової валюти, доступної для витрат.
UTXO — це, по суті, частина цифрової валюти, яка була отримана у Bitcoin-гаманець, але ще не витрачена.
Кожен UTXO представляє частину Bitcoin, яку можна використати як вхід у новій транзакції. Мережа Bitcoin відстежує всі UTXO у блокчейні, а повна їх сукупність називається набором UTXO. Цей набір використовується для розрахунку балансу гаманця та для перевірки нових транзакцій.
Наступний приклад ілюструє, як це працює:
Як показано тут, у Боба є 4 UTXO, які разом складають баланс його гаманця. Додавання їхніх значень дає загальний баланс у 4 BTC.
Витрачання UTXO
Розглянемо наступний приклад, щоб проілюструвати, як витрачаються UTXO. Боб хоче надіслати 1.9 BTC своїй подрузі Алісі з комісією за транзакцію 0.01 BTC. Ось гаманець Аліси до транзакції:
На цьому етапі у Аліси 3 UTXO із загальним балансом 8.45 BTC.
Перед тим як перейти до транзакції, слід пам’ятати одну важливу деталь.
Один UTXO не можна розділити на менші частини, тому весь UTXO має бути використаний як вхід у новій транзакції. Однак транзакція може використовувати будь-яку комбінацію UTXO (не обов’язково весь набір). Яку саме комбінацію використовувати, визначає ваш гаманець, і це не можна контролювати вручну.
Оскільки у Боба немає жодного UTXO або комбінації UTXO, які разом складають точно 1.91 BTC (1.9 BTC для Alice + 0.01 BTC як комісія за транзакцію), необхідно використати UTXO або набір UTXO із більшою загальною сумою. Припустимо, гаманець обирає один UTXO номіналом 2 BTC (хоча також можливо використати разом UTXO на 1.5 BTC, 0.3 BTC та 0.2 BTC).
Щоб витратити свій 2 BTC UTXO, гаманець Боба створює скрипт розблокування, також відомий як scriptSig (підпис скрипту). Цей скрипт зазвичай містить цифровий підпис, створений за допомогою приватного ключа Боба, а залежно від типу скрипту блокування, який використовувався для блокування UTXO, може також містити публічний ключ. Цифровий підпис підтверджує, що Боб є власником коштів і має право витратити цей UTXO.
Тепер транзакція виглядає так:
Після підтвердження транзакції баланс гаманця Аліси збільшується на 1.9 BTC. Баланс гаманця Боба тепер складається з UTXO, які він не витратив (1.5 BTC, 0.3 BTC та 0.2 BTC), а також нового UTXO здачі у розмірі 0.09 BTC (після віднімання комісії 0.01 BTC). Оновлений загальний баланс Боба — це сума цих UTXO, що дорівнює 2.09 BTC.
Коли гаманець Боба створює транзакцію, він також генерує locking scripts для виходів. Вихід, який надсилає 1.9 BTC Алісі, містить locking script, що визначає умови, за яких ці кошти можуть бути витрачені в майбутньому. Цей скрипт називається scriptPubKey (публічний ключ скрипта).
scriptPubKey зазвичай містить криптографічний хеш публічного ключа або Bitcoin-адреси Аліси, встановлюючи умову, що лише особа з відповідним приватним ключем (Аліса) може розблокувати та витратити ці кошти.
Нарешті, коли Боб транслює транзакцію в мережу, майнери перевіряють її, переконуючись, що скрипт розблокування (scriptSig) для кожного входу задовольняє скрипт блокування (scriptPubKey) з виходу, куди UTXO спочатку були надіслані Бобу. Якщо скрипти є дійсними і транзакція підтверджена, вона стає частиною блоку в блокчейні.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат