Транзакции в блокчейне: основные виды и особенности
В ранних блокчейнах, таких как Bitcoin и Litecoin, основной сценарий использования транзакций был связан с передачей криптовалюты между пользователями.
В более поздних блокчейнах, например, Ethereum, BNB Chain и Solana, получили значительно более широкое распространение сложные сценарии транзакций, включающие обмены, передачу активов между сетями, добавление в пулы ликвидности и другие.
Единой универсальной классификации типов блокчейн-транзакций не существует, поэтому для удобства в этой статье они условно разделены по характеру выполняемых операций.
Основные виды транзакций в блокчейне
Первый вид транзакций в блокчейне представляет собой обычный перевод криптовалюты из одного кошелька в другой. Такие типы блокчейн-транзакций называют простыми транзакциями, а их механика работает следующим образом:
- Пользователь инициирует и подписывает транзакцию;
- Подписанная транзакция передается узлам сети и, как правило, попадает в очередь неподтвержденных операций;
- Затем сеть проверяет ее на валидность;
- На последнем этапе транзакция записывается в блокчейн.
Однако существуют типы блокчейн-транзакций, которые основаны на более сложных механиках.
Сложной транзакцией в рамках этой статьи будем называть операцию, при которой выполняется дополнительная программная логика или сразу несколько связанных действий.
Данный тип транзакций в блокчейне, как правило, предполагает вызов одного или даже нескольких смарт-контрактов — автономных программ, которые выполняют двусторонние сделки на основе заранее определенных условий. Также данные типы транзакций в блокчейне еще называют комплексными.
В качестве примера рассмотрим сложную транзакцию в блокчейне, которая представляет собой обмен цифровых активов на децентрализованной бирже:
- Пользователь выбирает активы и сумму обмена, после чего приложение получает доступные маршруты и рассчитывает ожидаемый результат операции;
- Если для выбранного токена еще не предоставлено разрешение на расходование средств, пользователю может потребоваться одобрить его — отдельной транзакцией или криптографической подписью в зависимости от используемого протокола;
- Пользователь подписывает транзакцию обмена и отправляет ее в сеть;
- Маршрутизатор децентрализованной биржи вызывает необходимые смарт-контракты и выполняет обмен через один или несколько пулов ликвидности;
- При успешном выполнении входные токены списываются с адреса пользователя, а полученный актив переводится на указанный адрес. Комиссия протокола учитывается логикой биржи, тогда как сетевой сбор взимается блокчейном за выполнение транзакции.
Сам обмен нередко оформляется одной транзакцией, хотя во время ее выполнения могут происходить многочисленные внутренние вызовы смарт-контрактов.
В такой операции могут быть задействованы сразу несколько смарт-контрактов в блокчейне:
- Контракт токена;
- Контракт пула ликвидности;
- Контракт биржи, также известный как маршрутизатор.
Для таких типов транзакций в блокчейне существуют и более сложные сценарии, при которых могут использоваться сразу десятки смарт-контрактов, например, если операция связана с несколькими активами.
Еще один пример сложной транзакции — отправка активов сразу на несколько адресов. Такие типы транзакций в блокчейне проводят, например, крупные майнинг-пулы для перечисления наград своим участникам и криптопроекты, которые переводят активы участникам ICO*- и эйрдроп-кампаний*.
* ICO (Initial Coin Offering) — способ привлечения финансирования криптопроектом посредством выпуска и продажи собственных токенов инвесторам. Полученные токены могут предоставлять доступ к продукту или сервису проекта либо использоваться внутри его экосистемы.
* Эйрдроп — бесплатное распределение токенов среди пользователей, обычно в рамках продвижения проекта, запуска нового актива или вознаграждения участников экосистемы. Условия получения могут включать владение определенными активами, использование протокола или выполнение заданных действий.
Подобный вид транзакций в блокчейне также называют пакетными транзакциями. Например, одна Bitcoin-транзакция может содержать сразу несколько выходов с переводами на разные адреса.
Существует несколько видов сложных транзакций в блокчейне.
Виды сложных транзакций в блокчейне
Транзакции со смарт-контрактами
Сложные транзакции с использованием смарт-контрактов совершаются повсеместно в среде децентрализованных финансов (DeFi), и к таким операциям относятся:
- Обмены (свопы) токенов;
- Покупка и продажа невзаимозаменяемых токенов (NFT) на маркетплейсах;
- Запуск DeFi-пулов;
- Добавление и вывод криптоактивов из пулов ликвидности;
- Выпуск и сжигание токенов*;
- Кредитование и заимствование криптоактивов;
- Стейкинг* и другие операции с децентрализованными протоколами.
* Сжигание токенов — безвозвратное выведение части токенов из обращения, например путем отправки их на адрес, к которому невозможно получить доступ, либо с помощью предусмотренной смарт-контрактом функции уничтожения. Обычно применяется для сокращения доступного предложения токена и, как следствие, возможного увеличения цены актива.
* Стейкинг — блокировка или делегирование криптоактивов для участия в работе блокчейна, использующего механизм Proof-of-Stake или его разновидности, с возможностью получать вознаграждение. В более широком смысле термин также используется для размещения токенов в различных криптопротоколах ради получения дохода.
Однако взаимодействие со смарт-контрактами не ограничивается сферой децентрализованных финансов: они также используются для DAO, игр и многих других приложений.
Атомарные свопы
Атомарные свопы позволяют двум сторонам обменивать криптоактивы, находящиеся в разных блокчейнах, без необходимости передавать средства централизованному посреднику. Главная особенность такого обмена заключается в его атомарности: либо обе части сделки выполняются успешно, либо обмен не происходит.
Классические атомарные свопы могут использовать криптографические условия, например HTLC (Hash Time-Locked Contracts). Активы блокируются в двух сетях таким образом, чтобы обе стороны смогли завершить обмен только при выполнении заданных условий, а при их невыполнении средства могли быть возвращены владельцам.
Транзакции с мультиподписью
Данный вид транзакций в блокчейне используется, когда необходимо повысить уровень безопасности операции. Например, мультиподписи используют для корпоративных холодных кошельков: криптовалютных бирж, кастодианов (хранителей резервов) и брокеров.
Технически мультиподпись правильнее рассматривать не как отдельный универсальный тип транзакции, а как способ авторизации распоряжения средствами.
Для одобрения такой транзакции необходимо несколько подписей сторон: например, 2 из 3 или 3 из 5. Конкретный порог одобрения позволяет подобрать баланс между безопасностью и доступностью средств. Например, схема 2 из 3 не позволит единственному скомпрометированному ключу самостоятельно распоряжаться активами.
Такой подход снижает риск несанкционированного доступа к кошельку в случае, если приватный ключ одной из сторон будет скомпрометирован.
Транзакции с данными
Транзакции используются не только для проведения операций с криптовалютами, но и для передачи и фиксации данных в блокчейне.
Например, в протоколе биткоина для этого может использоваться opcode OP_RETURN языка Bitcoin Script. Он позволяет включать произвольные данные в специальный нерасходуемый выход транзакции — например, идентификатор, сообщение или хеш документа.
В блокчейнах на основе смарт-контрактов вроде Ethereum и Solana, также существует функция записи данных. Различные виды транзакций в блокчейне с добавлением данных используются в системах идентификации, а также для токенизации активов, где важны доказательства подлинности информации на конкретный момент времени.
