Блокчейн по своей сути представляет собой децентрализованную распределенную базу данных или реестр. Итак, как же "реестр блокчейна" ведет учет? В текущих проектах блокчейнов существует два основных метода учета: модель баланса счета (представленная Ethereum) и модель вывода неизрасходованных транзакций (UTXO) (представленная Биткойном). Понимание UTXO помогает понять логику учета, лежащую в основе блокчейна Биткойна.
UTXO, что означает выход неизрасходованных транзакций, можно понимать как фундаментальную единицу в транзакциях Биткойн. Например, если Боб получает платеж в Биткойнах и не тратит его, этот Биткойн становится UTXO. Модель UTXO аналогична кошельку, где каждый UTXO похож на одноразовую бумажную купюру. Каждый UTXO (бумажный счет) представляет собой определенную сумму денег, и, сложив все UTXO (бумажные счета), вы можете определить баланс пользователя.
В каждой транзакции используются целые числа, кратные UTXO. Например, вы можете использовать 1 UTXO, 2 UTXO, но вы не можете использовать дроби типа 0,5 UTXO (аналогично невозможности использовать половину бумажной купюры). Когда происходит транзакция, существующие UTXO (старые бумажные купюры) расходуются и создаются новые UTXO (новые бумажные купюры). Например:Утром вы идете купить кофе и выпечку, которая стоит 5 долларов. Вы передаете кассиру купюру в 10 долларов. Эта купюра в 10 долларов, представленная как один UTXO, передается продавцу. Затем продавец дает вам 5 долларов сдачи, и на этом этапе вы получаете новый UTXO (новую купюру в 5 долларов).
Если эта транзакция происходит в блокчейне с использованием модели UTXO, как она будет работать? Чтобы понять это, мы можем абстрагировать три сценария передачи с примерами, опуская для простоты комиссию майнеров:
Предположим, Боб получает 10 BTC, поэтому у него есть UTXO в 10 BTC, связанный с его Биткойн-адресом. Теперь Бобу нужно перевести 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 в качестве сдачи. На этом этапе предыдущий UTXO стоимостью 10 BTC больше не существует и становится четырьмя новыми 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. После того, как передачи произошли, на адресе A будет 1 UTXO из 2 BTC, ни одного на адресе 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 представляет собой определенное количество Биткойнов, а сумма всех UTXO определяет баланс счета. ③ UTXO — это результат транзакции Биткойнов. ④ Полная транзакция состоит из выходов транзакции (отправителей) и входов транзакции (получателей). Выходы транзакции можно назвать выходами, а входы транзакции можно назвать входами. После завершения транзакции любые вновь сгенерированные UTXO записываются в реестр Биткойн и могут использоваться для дальнейших транзакций. UTXO, являясь краеугольным камнем транзакций Биткойн, предлагают такие преимущества, как безопасность, конфиденциальность и масштабируемость. Они служат основой транзакций для многочисленных блокчейн-проектов.
Следующие токены, перечисленные на 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,
mass, pac, plcu, psl, qtum, rvn, sc, sys, ut, wit, xrd, xvg, zel, zen
Если при переводе указанной выше криптовалюты произойдет ошибка, мы не сможем помочь в ее восстановлении. Пожалуйста, убедитесь, что вы ввели правильный адрес депозита, прежде чем начать вносить депозит!