MoneroSwapper MoneroSwapper
Руководства

Транзакции Monero с временной блокировкой: как запланировать отправку XMR

MoneroSwapper Team · · · 1 min read · 59 views

Что такое транзакции с временной блокировкой

Большинство пользователей криптовалют знакомы только с одним типом платежей: отправил — получил — потратил. Но в финансовом мире часто возникают сценарии, когда получатель не должен иметь возможности использовать средства до определённого момента в будущем: отложенная зарплата, гарантийные депозиты, эскроу, наследство, условия по контракту. В мире фиатных денег это решается через банковские счета условного хранения, а в блокчейне — через механизм, называемый временной блокировкой транзакции (time-lock).

Monero поддерживает временные блокировки на уровне самого протокола с момента своего создания. Это поле unlock_time, присутствующее в каждой транзакции. Оно указывает, начиная с какого блока или с какого момента времени выходы этой транзакции можно тратить. Пока указанный момент не наступил, средства «заморожены» — даже получатель с правильными приватными ключами не сможет создать валидный расход.

В этой статье мы подробно разберём, как устроен unlock_time, как создать time-locked транзакцию практически, какие сценарии она покрывает, а какие — нет, и какие подводные камни нужно учитывать в 2026 году, особенно с учётом изменений в последних хард-форках Monero.

Как устроен unlock_time на уровне протокола

Каждая транзакция в Monero содержит целочисленное поле unlock_time. Его интерпретация зависит от значения:

  • 0 (по умолчанию) — транзакция блокируется стандартными 10 подтверждениями после включения в блок, что эквивалентно примерно 20 минутам. Это поведение обычного платежа.
  • Число меньше 500 000 000 — интерпретируется как номер блока, начиная с которого выходы становятся тратимыми.
  • Число больше или равно 500 000 000 — интерпретируется как Unix timestamp, с которого выходы становятся тратимыми.

Эта двойная интерпретация — унаследованная особенность кодовой базы CryptoNote. На практике большинство реализаций используют номер блока, так как он более предсказуем: время блоков в Monero колеблется около двух минут, но бывают отклонения, а вот высота блока — жёсткая величина.

Важный момент: unlock_time применяется ко всем выходам транзакции сразу. Нельзя сделать так, чтобы один выход разблокировался через месяц, а другой — сразу. Если нужны разные сроки для разных получателей, придётся создавать несколько отдельных транзакций.

Практический пример: CLI-кошелёк

Предположим, сегодня блок 3 100 000 и вы хотите отправить 5 XMR так, чтобы получатель не мог их потратить раньше, чем через 30 дней. Время блока Monero — около двух минут, то есть за 30 дней генерируется примерно 21 600 блоков. Значит, блок разблокировки — 3 121 600.

В monero-wallet-cli команда выглядит так:

transfer 5 8ABC...xyz 3121600

где третий аргумент — это unlock_time в форме номера блока. Кошелёк добавит это значение в транзакцию, и сеть будет отвергать любые попытки потратить соответствующие выходы до достижения указанной высоты.

Если вы предпочитаете RPC (monero-wallet-rpc), соответствующий вызов — это transfer с параметром unlock_time, например:

{
  "method": "transfer",
  "params": {
    "destinations": [{"amount": 5000000000000, "address": "8ABC...xyz"}],
    "unlock_time": 3121600,
    "priority": 1,
    "ring_size": 16
  }
}

Проверка статуса блокировки

Получатель, принимающий такую транзакцию, увидит её в своём кошельке, но помеченной как «заблокированная» (locked). Команда show_transfers отобразит строку с указанием оставшегося количества блоков до разблокировки. До наступления условия баланс этого выхода не будет учитываться в доступном балансе и не сможет быть использован в новых транзакциях.

Сценарии использования

Сценарий 1: Отложенный бонус сотруднику

Компания хочет выплатить сотруднику годовой бонус в XMR, но с условием, что средства станут доступны только по истечении испытательного срока — скажем, через 6 месяцев. Time-locked транзакция идеально подходит: деньги фактически уже у сотрудника (он единственный, кто может их потратить после разблокировки), но до окончания срока он ничего с ними сделать не сможет, а компания не может их отозвать.

Сценарий 2: Наследство

Вы хотите передать накопления в XMR близкому человеку так, чтобы доступ к ним появился у него только через несколько лет — например, когда ребёнок достигнет совершеннолетия. Отправка на скрытый адрес наследника с unlock_time, соответствующим нужной дате, решает задачу без необходимости в душеприказчиках и юридических процедурах. Главное — сохранить сид-фразу получателя в безопасном месте и передать её в нужный момент.

Сценарий 3: Гарантийный депозит

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

Сценарий 4: Зарплата наперёд

Фрилансер, который работает над длинным проектом, может получить аванс за несколько месяцев сразу, но с блокировками, распределёнными по времени. Заказчик защищён от риска «получил всё и исчез», исполнитель — от риска неуплаты в конце.

Ограничения и подводные камни

1. Необратимость

В отличие от смарт-контрактов Ethereum, в Monero нельзя «отменить» time-locked транзакцию или изменить условие. Как только транзакция включена в блок, её параметры фиксированы навсегда. Ошиблись с датой — никто не поможет, придётся ждать разблокировки.

2. Нет условного исполнения

Monero-блокировка строго временная. Нельзя сказать «отправить X, если произошло Y». Если вам нужны сложные условия (оракулы, мультиподпись с временной блокировкой, ограниченная возможность отзыва), Monero не предоставляет для этого инструментов на уровне базового протокола. Для продвинутых сценариев придётся использовать off-chain решения или комбинации с мультиподписью.

3. Предсказуемость времени блоков

Время между блоками в Monero не фиксированное, а регулируется корректировкой сложности. В среднем это 2 минуты, но на практике может быть 30 секунд или 5 минут. Если вы указываете блок как точку разблокировки на 6 месяцев вперёд, реальная дата может сдвинуться на несколько часов или даже день. Для критичных к времени сценариев лучше использовать Unix timestamp, но тогда разблокировка зависит от времени, указанного в заголовке блока, которое тоже имеет допуск.

4. Приватность

Само значение unlock_time видно в блокчейне в открытом виде. Это означает, что наблюдатель знает, что существует транзакция с блокировкой до такого-то блока. Конкретно для сокрытия суммы и отправителя работают RingCT и кольцевые подписи, но факт «что-то заблокировано до такой-то даты» публичен.

Более того, транзакции с ненулевым unlock_time — довольно редкое явление в сети. Это означает, что такие транзакции легче выделить как «нестандартные» и потенциально использовать для метаданных-анализа. Сообщество Monero в последние годы дискутировало о возможном удалении функциональности из протокола именно по этой причине.

5. Ограниченная поддержка в кошельках

Официальные CLI и GUI кошельки Monero поддерживают unlock_time корректно, но многие сторонние мобильные и веб-кошельки игнорируют это поле при отправке (всегда используют 0) и не умеют работать с полученными заблокированными выходами корректно. Перед использованием обязательно протестируйте функциональность на небольшой сумме.

Изменения в последних хард-форках

Начиная с хард-форка 2022 года был фактически ограничен максимально допустимый unlock_time. Это было сделано, чтобы бороться с теоретическими атаками на приватность через «отпечаток» необычных значений блокировки. На сегодняшний день (2026) поле unlock_time по-прежнему работает, но любая экстремально большая величина может быть отвергнута сетью как нестандартная.

В обсуждениях на форуме разработчиков периодически поднимается вопрос о полном удалении unlock_time из будущих версий протокола. Мотивация — упрощение кодовой базы и устранение редко используемой функциональности, создающей потенциальный канал утечки метаданных. Пока что окончательного решения нет, но пользователям, закладывающим свою стратегию на долгосрочные time-lock транзакции, стоит отслеживать обновления протокола.

Альтернативы через мультиподпись

Если вы хотите более надёжный и гибкий механизм отложенных платежей, стоит рассмотреть мультиподпись M/N в Monero. С версии 0.15 Monero поддерживает 2/3 и более сложные схемы multisig. Вы можете создать кошелёк 2/3, где два ключа — у получателя и у независимого «нотариуса», а третий — у вас в качестве страховки. Нотариус разблокирует средства по истечении оговорённого срока (это делается вручную, но избавляет от ограничений unlock_time).

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

Юридические аспекты в России и СНГ

С точки зрения российского законодательства (№259-ФЗ «О цифровых финансовых активах»), криптовалюты — это имущество, и передача с отложенным исполнением приравнивается к обычному договору. Time-locked XMR может быть использован как техническое средство реализации отложенной передачи имущества, но само по себе это не заменяет юридического оформления — особенно в значимых сценариях вроде наследства или крупных эскроу.

Налоговые обязательства возникают у получателя в момент, когда он фактически получил контроль над активом. В случае time-lock — это момент разблокировки и возможности распоряжения средствами. Физическим лицам следует вести учёт таких событий для правильного декларирования доходов в ФНС.

Практические советы

  • Тестируйте на testnet. Прежде чем блокировать серьёзные суммы на год, создайте тестовую транзакцию на testnet с блокировкой на несколько блоков и убедитесь, что ваш кошелёк корректно её обрабатывает.
  • Не блокируйте слишком большие суммы одним выходом. Если в течение срока блокировки вам вдруг понадобятся средства, вы не сможете их достать. Разбивайте крупные транзакции на части с разными датами разблокировки.
  • Храните резервные копии. Потеря доступа к кошельку во время блокировки означает потерю средств навсегда — никакой механизм «сброса пароля» не сработает.
  • Фиксируйте намерение отдельно. Сохраните документ, описывающий, для кого и зачем сделана блокировка. Это поможет в случае юридических вопросов или если получатель сам забыл о транзакции.
  • Мониторьте обновления протокола. Следите за release notes Monero — если функциональность unlock_time планируют ограничить или удалить, вы должны узнать об этом заранее.

Где взять XMR без KYC для time-locked транзакций

Чтобы полноценно использовать сценарии наследства, эскроу или отложенных платежей, нужны Monero, не связанные с вашей личностью в базах бирж. Именно здесь на сцену выходит MoneroSwapper: мгновенные обмены BTC, ETH, USDT, LTC, DOGE и других активов на XMR без регистрации, без KYC и без хранения истории клиентов. Вы получаете монеты прямо в кошелёк, из которого сразу же можете сформировать нужную time-locked транзакцию.

Перейдите на MoneroSwapper и создайте свой первый обмен — это занимает несколько минут, а приватность сохраняется на всех этапах: от покупки до отправки с временной блокировкой.

Заключение

Транзакции с временной блокировкой в Monero — это мощная, но нишевая функциональность. Они прекрасно работают для простых сценариев вроде отложенных бонусов, наследства или гарантийных депозитов, но не претендуют на роль полноценных «смарт-контрактов». Важно понимать их ограничения, корректно использовать номер блока или timestamp, тестировать на небольших суммах и следить за обновлениями протокола, которые могут повлиять на поддержку этой возможности в будущем.

Если вам нужна простая, надёжная и приватная форма отложенного платежа в криптовалюте, Monero с unlock_time — один из немногих инструментов, который предоставляет её на уровне самого протокола, без смарт-контрактов, оракулов и третьих сторон.

Поделиться статьей

Похожие статьи

Готовы к обмену?

Анонимный Обмен Monero

Без KYC • Без регистрации • Мгновенный обмен

Обменять сейчас