Модели учета в блокчейне: UTXO и ABC
Существует две основные модели контроля транзакций, используемые в блокчейнах: UTXO (выход неизрасходованных транзакций) и Account-Based Chains (цепочки на основе балансов аккаунтов). Каждая из них имеет свои уникальные особенности и преимущества. Сравниваем их возможности.
UTXO — это модель наличных денег
Модель UTXO (Unspent Transaction Output) рассматривает монеты как отдельные единицы стоимости, каждая из которых имеет уникальный идентификатор.
Это можно сравнить с долларовыми купюрами, каждая из которых имеет свой номер. Представьте, что вы отдали уличному торговцу хот-догами купюру в $5 — ровно столько, сколько стоит хот-дог. Ваш продавец через час купил газету, расплатившись вашей купюрой. Но газета стоит $2, поэтому продавец газет дал ему сдачу тремя купюрами по $1.
Для вас покупка будет транзакцией с чистым выходом, потому что вы полностью израсходовали уникальный идентификатор (номер купюры). Для продавца хот-дога это будет вход с последующим выходом и частичным возвратом средств от продавца газет, который в терминологии блокчейна называется “адресом сдачи”. То есть продавец хот-догов перевел ваш идентификатор, а взамен получил несколько других, которые для него уже будут являться неизрасходованным выходом. Они послужат основой для его будущих платежей.
Транзакции в модели UTXO представляют собой наборы неизрасходованных выходов, которые передаются от одного адреса к другому.
Подробно об этой модели и ее значении мы писали здесь.
Преимущества модели UTXO:
- Простота. Модель UTXO доступна для понимания рядовых пользователей блокчейна, поскольку она основана на аналогии с оборотом наличных денег.
- Повышенная конфиденциальность. В модели UTXO каждый неизрасходованный остаток имеет уникальный идентификатор, что затрудняет деанонимизацию участников сделок.
- Поддержка сложных транзакций. Модель UTXO позволяет выполнять сложные транзакции, где для подписи требуются несколько ключей, и транзакции с изменением адреса.
- Модель UTXO считается низкоэффективной, поскольку требует создания неизрасходованных остатков для каждой новой транзакции.
- Сложность разработки. Разработка кошельков и приложений для модели UTXO может быть сложной, поскольку они должны поддерживать управление множеством UTXO.
Account-Based Chains — это модель банковских счетов
Модель на основе балансов учетных записей рассматривает монеты как балансы, хранящиеся на счетах, а транзакции в этом случае представляют собой изменение баланса аккаунтов. Эту модель используют, в частности, EOS и Ethereum.
Чтобы понять, как работает модель учетных записей, можно провести аналогию с банковскими счетами. Представьте, что у вас есть банковский счет с балансом в $100. Когда вы переводите $50 другому пользователю, ваш баланс уменьшается на $50, а баланс получателя увеличивается на $50.
В модели аккаунтов перевод средств выполняются следующим образом:
- Отправитель указывает, баланс какого аккаунта он хочет изменить.
- Получатель указывает, баланс какого аккаунта он хочет изменить.
- Транзакционный процессор проверяет, достаточно ли средств на аккаунте отправителя для покрытия затребованного платежа.
- Если на аккаунте отправителя достаточно средств, транзакционный процессор изменяет балансы аккаунтов и записывает историю сделки в блокчейн.
- Эффективность. Модель аккаунтов более эффективна, чем модель UTXO, поскольку она не требует наличия неизрасходованных остатков на балансе пользователя.
- Простота разработки. Разработка кошельков и децентрализованных приложений для модели аккаунтов проще, чем для модели UTXO, поскольку она поддерживает управление одним балансом.
- Экономия места на блокчейне. Каждая транзакция требует только одну ссылку, одну подпись и производит один выход.
- Снижение конфиденциальности. В модели баланса аккаунтов легче отслеживать движение монет, ведь все транзакции ведутся через персонализированные аккаунты.
- Ограничения на сложные транзакции. Модель аккаунтов может быть неспособна поддерживать транзакции с мультиподписью и переводы с изменением адреса.
Выбор модели учета
UTXO и модели на основе аккаунтов — не соперники, а скорее комплементарные подходы к управлению активами блокчейна. Выбор правильной модели зависит от потребностей проекта, который разрабатывает собственную децентрализованную сеть.
UTXO отдают предпочтение, если для проекта важна конфиденциальность платежей, в то время как модели на основе балансов учетных записей выбирают проекты, которые нуждаются во взаимодействии пользователей со смарт-контрактами.
То же самое происходит и с фиатными платежами: если человек желает приватной передачи денег — он остановит свой выбор на наличных, а для “белой” транзакции предпочтет банковский перевод.