:RU: Модель учета расширенных UTXO Cardano - созданная для поддержки мультиактивов и смарт контрактов (часть 2)

Во второй части нашего блога о модели учета EUTXO Cardano мы более подробно рассмотрим компоненты транзакций c технической точки зрения, набор UTXO, и углубимся в обоснование модели EUTXO Cardano

image

Вчера мы предложили обзор модели расширенных UTXO, используемой Cardano, объяснив, чем она отличается от подходов, используемых Bitcoin и Ethereum. Теперь давайте немного углубимся во входы и выходы, составные части транзакции.

Нам нужно поговорить о транзакциях: Выходы и Входы

Термин “транзакция” обычно вызывает финансовые отголоски. В то время как такое значение применимо к Bitcoin (поскольку блокчейн Bitcoin используется для перемещения средств между участниками), многие другие блокчейны (включая Cardano) гораздо более универсальны. В этих случаях термин “транзакция” имеет гораздо больше значений. Можно представлять транзакции в контексте передачи какой-либо стоимости.

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

Выход транзакций

Выход транзакции включает в себя адрес (который можно рассматривать как блокировку) и значение. В соответствии с этой аналогией подпись, которая принадлежит адресу, является ключом для разблокировки вывода. После разблокировки выход может быть использован в качестве входа. Новые транзакции расходуют выходы предыдущих транзакций и производят новые выходы, которые могут быть использованы будущими транзакциями. Каждый UTXO может быть потреблен только один раз и целиком. Каждый выход может быть потреблен ровно одним входом, и только одним входом.

Вход транзакций

Вход транзакции - это выход предыдущей транзакции. Данные входа транзакции включают указатель и криптографическую подпись, которая действует как ключ разблокировки. Указатель указывает на предыдущий выход транзакции, и ключ осуществляет разблокировку этого выхода. Как только выход разблокирован входом, блокчейн помечает разблокированный выход как “использованный”. Новые выходы, созданные данной транзакцией, затем могут быть указаны новыми входами, и таким образом цепочка продолжается. Эти новые выходы (которые еще не были разблокированы, то есть израсходованы) являются UTXO. Неизрасходованные выходы - это просто выходы, которые еще не были использованы.

Как работает UTXO, в двух словах

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

image
Создание нового UTXO

Кошельки пользователей управляют этими UTXO и инициируют транзакции с использованием UTXO, принадлежащих пользователю. Каждая нода блокчейна постоянно ведет учет подмножества всех UTXO. Это называется набором UTXO. С технической точки зрения это состояние цепочки, которое хранится в каталоге данных каждой ноды. Когда новый блок добавляется в цепочку, состояние цепочки соответственно обновляется. Этот новый блок содержит список последних транзакций (включая, конечно, запись использованных UTXO и новых, созданных с момента последнего обновления состояния цепочки). Каждая нода поддерживает точную копию состояния цепочки.

EUTXO: Обоснование выбора Cardano

“Ванильная” модель учета UTXO, используемая в блокчейне Bitcoin не подошла бы Cardano, поскольку Cardano предназначен не только для обработки платежей. В частности, потребность в больших возможностях программирования для будущей функциональности смарт контрактов в эпоху Alonzo требовала нового (“расширенного”) решения.

“Базовая” модель UTXO имеет ограниченную выразительность программируемости. Модель учета аккаунта/баланса, используемая в Ethereum решила эту конкретную проблему с помощью разработки леджера на основе аккаунтов и связанных с ними контрактных адресов. Но при этом семантика контрактного кода становилась гораздо более сложной, что имело нежелательный эффект, заставляя авторов контрактов полностью разбираться в нюансах семантики для того, чтобы избежать введения потенциально очень дорогостоящих уязвимостей в код.

“Расширенное " решение UTXO потребовало бы двух дополнительных функциональных возможностей, которые существующая модель UTXO не могла бы обеспечить:

1 - Иметь возможность поддерживать состояние контракта

2 - Иметь возможность обеспечить работу таким образом, чтобы один и тот же код контракта использовался во всей последовательности транзакций. Мы называем это непрерывностью.

Сильная особенность модели EUTXO заключается в том, что комиссии, необходимые для реальной транзакции, могут быть точно предсказаны до ее публикации. Это уникальная функция, не встречающаяся в моделях на основе учетных аккаунтов.

Как модель EUTXO расширяет UTXO?

Добавляя пользовательские данные к выходам (в дополнение к значению) и допуская больше “замков” и “ключей”, решающих, при каких условиях вход может быть разблокирован для потребления транзакцией. Другими словами, вместо того, чтобы просто иметь открытые ключи (хэши) для замков и соответствующие подписи, служащие “ключами”, EUTXO включает произвольную логику в виде скриптов. Эта произвольная логика проверяет транзакцию и данные, чтобы решить, разрешено ли транзакции использовать входные данные или нет.

Вывод: Что делает модель EUTXO инновационной и актуальной

Модель леджера Cardano расширяет модель UTXO для поддержки мультиактивов и смарт контрактов без ущерба для основных преимуществ модели UTXO. Наши инновационные исследования обеспечивают функциональность, выходящую за рамки того, что поддерживается в любом другом регистре UTXO, что делает Cardano уникальным конкурентом в блокчейн пространстве следующего поколения.

// От переводчика: для получения дополнительных переведенных на русский язык статей о Cardano посетите русскоязычный раздел на форуме Cardano. Видеоролики о Cardano на русском можно найти на YouTube канале нашего замечательного амбасадора Тимура Сахабутдинова. Хотите поговорить или задать вопрос о Cardano по-русски? Приглашаем вас в наше уютное сообщество в Telegram. Оставайтесь на связи, все только начинается!