Blockchain, за своєю суттю, є децентралізованою розподіленою базою даних або книгою. Отже, як «блочна книга» веде записи? У поточних блокчейн-проєктах існує два основні методи обліку: модель балансу рахунку (представлена Ethereum) і модель невитраченого виходу транзакції (UTXO) (представлена Bitcoin). UTXO допомагає зрозуміти логіку бухгалтерського обліку, що стоїть за блокчейном Bitcoin.
UTXO означає невитрачений вихід транзакції (Unspend Transaction Output), його можна розуміти як основну одиницю в транзакціях Bitcoin. Наприклад, якщо Боб отримує платіж у Bitcoin і не витрачає його, цей Bitcoin стає UTXO. Модель UTXO схожа на наявність гаманця, де кожен UTXO схожий на одноразову паперову купюру. Кожен UTXO (паперова банкнота) представляє певну суму грошей, і, склавши всі UTXO (паперові банкноти), ви можете визначити баланс користувача.
У кожній транзакції використовуються цілі кратні UTXO. Наприклад, ви можете використовувати 1 UTXO, 2 UTXO, але ви не можете використовувати дроби, такі як 0,5 UTXO (подібно до того, як ви не можете використовувати половину паперової банкноти). Коли відбувається транзакція, наявні UTXO (старі паперові банкноти) споживаються та створюються нові UTXO (нові паперові банкноти).
Наприклад: вранці ви йдете за кавою та тістечком, які коштують 5 $. Ви даєте касиру банкноту в 10 $, яка представлена як один UTXO, що передається продавцю. Потім він/вона дає вам 5 $ здачі, і в цей момент ви отримуєте новий UTXO (нову банкноту в 5 $).
Якщо ця транзакція відбувається в блокчейні з використанням моделі UTXO, як вона працюватиме? Щоб зрозуміти це, ми можемо абстрагувати три сценарії переказу з прикладами, опускаючи комісії майнерів для простоти:
Припустімо, що Боб отримав 10 BTC, тому він має UTXO 10 BTC, пов’язаний з його адресою Bitcoin. Тепер Бобу потрібно переказати 2 BTC Алісі. У цьому випадку 10 BTC UTXO буде витрачено повністю (стара паперова банкнота використана). 2 BTC (нова паперова банкнота) буде надіслано Алісі, а решта 8 BTC (нова паперова банкнота) буде повернено Бобу як решта. Тобто оригінальні 10 BTC існували як єдиний UTXO, але під час транзакції цей UTXO (стара паперова банкнота) був знищений і більше не існує. Замість цього його замінили дві нові UTXO (нові паперові банкноти): одна належала Бобу вартістю 8 BTC (це решта повернулася Бобу), а друга належала Алісі вартістю 2 BTC. У майбутньому Аліса може використовувати цей UTXO як баланс для переказу іншим.
Якщо Аліса хоче передати ці 2 BTC Френку та запобігти подвійній витраті цих 2 BTC (що схоже на добре відому атаку подвійного витрачання), майнерам потрібно перевірити, чи UTXO не використовувався в інших транзакціях. Якщо цей UTXO вже був витрачений у попередній транзакції, майнери відмовляться від виконання цієї нової транзакції.
Давайте розглянемо два приклади, щоб поглибити наше розуміння. (1) Переказ із однієї адреси на три адреси (2) Переказ із трьох адрес на одну адресу. Будемо називати ці чотири адреси A, B, C і D. Сценарій ① A переходить до B, C і D. Сценарій ② A, B і C переходить до D. Спочатку адреса A має 10 BTC, а B, C і D мають 0 BTC.
У сценарії (1) адреса A спочатку має один UTXO 10 BTC і з неї хочуть переказати 2 BTC на кожну з адрес B, C і D.
Спочатку початкові 10 BTC UTXO від A повністю витрачаються, а по 2 BTC надсилаються на кожну з адрес B, C і D. Решта 4 BTC повертаються A як решта. На даний момент попередні 10 BTC UTXO більше не існують і стають чотирма новими UTXO, один належить A вартістю 4 BTC, а інші три належать B, C і D, усі вартістю 2 BTC. Після переказу буде 1 UTXO 4 BTC на адресу A, 1 UTXO 2 BTC на адресу B, 1 UTXO 2 BTC на адресу C і 1 UTXO 2 BTC на адресу D.
Тепер давайте змоделюємо сценарій (2), де з A, B і C переказують по 2 BTC до D.
UTXO розміром 4 BTC на адресу A буде витрачено в цілому, з яких 2 BTC переказуються на D, а 2 BTC переказуються як решта самому собі. UTXO розміром 2 BTC на адресу B переказується на D, а UTXO розміром 2 BTC на адресу C переказується на D. Після переказу буде 1 UTXO розміром 2 BTC на адресу A, жодного за адресою B і C, 4 UTXO по 2 BTC за адресою D (1 з яких залишився після переказу за сценарієм ①, а решта – за сценарієм ②).
Припустімо, що A має кілька UTXO, які становлять 1 BTC UTXO, 2 BTC UTXO, 3 BTC UTXO та 4 BTC UTXO, а B не має BTC. На цьому етапі A має переказати 2,5 BTC до B. Як працює модель UTXO?
На цьому етапі UTXO розміром 2 BTC на адресу A буде переказано безпосередньо до B. UTXO розміром 1 BTC буде витрачено в цілому, з яких 0,5 BTC буде переказано B, а 0,5 BTC буде повернуто як решта. Після переказу на адресі A все ще є 0,5 BTC UTXO, 3 BTC UTXO та 4 BTC UTXO. B має 2 BTC UTXO та 0,5 BTC UTXO.
У криптовалютах, які використовують модель UTXO, якщо користувач помилково вводить хибну адресу контракту, велика ймовірність того, що кошти будуть неповернені. Це пояснюється тим, що UTXO не зберігає додаткову інформацію про вихідний стан транзакції, і після завершення транзакції криптовалюти відповідний UTXO більше не існує в базі даних. По суті, система передбачає, що ви вже витратили кошти, і цю дію неможливо скасувати. Крім того, якщо адреса контракту несумісна або неправильна, це може призвести до помилкових введень, тобто одержувач не зможе належним чином отримати криптовалюту. У результаті дуже ймовірно, що криптовалюту буде неможливо повернути.
Ми бачимо, що: ① UTXO записують події, а не кінцеві стани. ② Кожен UTXO представляє певну кількість Bitcoin, а сума всіх UTXO визначає баланс рахунку. ③ UTXO – це вихід транзакції Bitcoin. ④ Повна транзакція складається з виходів транзакції (відправників) і входів транзакції (одержувачів). Виходи транзакцій можна називати "Outputs", а входи транзакцій можна називати "Inputs". Після завершення транзакції будь-які щойно згенеровані UTXO реєструються в книзі Bitcoin і можуть використовуватися для подальших транзакцій. UTXO, як наріжний камінь транзакцій Bitcoin, пропонують такі переваги, як безпека, конфіденційність і масштабованість. Вони служать базовою структурою транзакцій для численних блокчейн-проєктів.
Ці токени, перелічені на MEXC, використовують модель UTXO:
ada, ae, avax-xchain, bch, bcha, beam, bhd, bsv, btc, btcv, btm, btm2,
chia, ckb, dash, doge, firo, hc, hns, hydra, ioex, KAS(KASPA), lbc, lbtc, ltc,
маса, pac, plcu, psl, qtum, rvn, sc, sys, ut, wit, xrd, xvg, zel, zen
Якщо під час переказу згаданої вище криптовалюти станеться помилка, ми не зможемо допомогти у її відновленні. Будь ласка, переконайтеся, що ви ввели правильну адресу депозиту, перш ніж здійснювати будь-які депозити!