Covenant — это условие, которое может определять не только того, кто вправе потратить биткоины, но и то, как должен выглядеть следующий перевод. Например, средства могут сначала проходить через выход с периодом ожидания. Ограничение входит в правила расходования этого выхода, а не является простой настройкой приложения. Covenants обозначает семейство конструкций и предложений, а не одну функцию, доступную в любом кошельке.
Анна хранит сбережения в Bitcoin. Кошелёк — приложение или устройство для получения и отправки биткоинов. Баланс её кошелька состоит из ещё не потраченных выходов предыдущих транзакций — UTXO. Каждый выход содержит сумму и условия её расходования, записанные в небольшой программе Bitcoin Script. Цифровая подпись подтверждает разрешение на платёж с помощью закрытого ключа — секретного числового значения, не раскрывая сам ключ. Multisig может требовать несколько подписей, а Timelock добавляет условие ожидания. Covenant может также ограничивать структуру следующей транзакции, например выходы, в которые должны перейти средства. Это правило пришлось бы выполнить даже вору с правильным ключом. Однако важны все доступные пути расходования: если другая ветвь позволяет обойти ограничение, полагаться на него нельзя. [1] [5] [9] [11]
Представим, что Анна помещает сбережения в хранилище с задержкой. Здесь хранилище — не особое устройство, а определённая организация правил расходования. Её обычный ключ мог бы начать вывод, но средства сначала перешли бы в выход с ожиданием. Только после задержки их можно было бы отправить намеченному получателю. Если бы вывод начал вор, Анна могла бы во время ожидания воспользоваться заранее подготовленным путём спасения и перевести средства под более безопасные условия. Но ей нужно заметить вывод и добиться своевременного подтверждения спасательной транзакции в блоке. Блок объединяет транзакции в пакет, добавляемый в общую историю. Это не отмена завершённого платежа и не автоматическое спасение без вмешательства. Конкретные возможности зависят от устройства хранилища. [6] [10]
Обещание приложения отложить вывод может оказаться лишь обещанием его оператора. Правило в скрипте Bitcoin, напротив, проверяют узлы — программы, сверяющие транзакции с общими правилами сети. В соответствующей covenant-конструкции они должны отклонить перевод, нарушающий ограничение. Один из предлагаемых инструментов — OP_CHECKTEMPLATEVERIFY, или CTV, описанный в BIP119. BIP — это документ с предложением для Bitcoin. CTV сравнивал бы хеш выбранных данных проверяемой транзакции с заранее сохранённым отпечатком. Хеш здесь можно представить как короткий проверяемый отпечаток данных. Изменение заданного получателя или суммы изменило бы отпечаток, поэтому перевод, не соответствующий шаблону, не прошёл бы проверку. Само слово «хранилище» в приложении этого не гарантирует. [2]
CTV связывает транзакцию с заранее подготовленным шаблоном, включая её выходы. Исследуются и другие подходы. BIP443 предлагает OP_CHECKCONTRACTVERIFY для выходов с проверяемым обязательством относительно определённых данных. Обязательство здесь означает, что одно значение нельзя позднее подменить другим без обнаружения расхождения при проверке. Данные могут описывать состояние контракта, например текущее распределение общих средств; следующий выход мог бы нести обновлённое состояние при выполнении установленных правил. Поэтому CTV и это предложение — не два названия одного решения. Для каждого проекта нужно выяснить, что задаётся заранее, что можно менять впоследствии и какие дополнительные инструменты требуются всей конструкции. [2] [7]
Рекурсивная конструкция может требовать, чтобы следующий выход снова содержал определённое ограничение. Правило продолжается через несколько транзакций, например при постепенном изменении состояния контракта. Это не бесконечный цикл проверки одного скрипта. Russell O’Connor и Marta Piekarska описали такие конструкции в работе 2017 года; возможность повторения зависит от конкретного предложения. [3]
Некоторые ограничения можно подготовить заранее подписанными транзакциями, временными блокировками и управлением ключами. Однако может потребоваться надёжное удаление ключа, сохранение всех транзакций или дальнейшее сотрудничество. Multisig, где другой подписант должен отказывать в нежелательном платеже, вводит иное предположение о доверии. Похожий пользовательский опыт не означает одинакового исполнения правил или восстановления. [5] [6]
Помимо хранилищ, исследуют совместные UTXO и подготовку платежей с распределённым во времени окончательным расчётом. Целью может быть меньшая потребность в постоянном сотрудничестве или лучшее использование места в блоках. Это не обещает неограниченных транзакций и гарантированно низких комиссий. Нужно также объяснить самостоятельный выход участника, недоступность остальных и оплату комиссии при перегрузке сети. [2] [7]
На 17 октября 2026 года BIP119 и BIP443 имеют статус Draft: это предложения в разработке. Более ранний BIP345, OP_VAULT, имеет статус Closed и указывает BIP443 как предлагаемую замену. Закрытие этого документа не означает конца исследований хранилищ. Равным образом присвоение номера BIP не означает принятия изменения сетью. Тестовая сеть или демонстрационный кошелёк могут показывать функцию, пока правила основной сети Bitcoin, mainnet, остаются прежними. Если сервис предлагает хранилище на основе covenants, проверьте, в какой сети и по каким правилам оно действительно работает. [6] [8]
Слишком узкий шаблон либо ошибка в сумме, скрипте или оплате комиссии может сделать задуманное расходование невозможным. Новые операции расширяют и круг того, что реализация должна безопасно проверять. Поэтому изменения консенсуса оценивают по точной спецификации и поведению при ошибках. Сам по себе covenant не даёт постороннему права задним числом менять условия ваших существующих UTXO. [4] [8]
Для конкретного решения выясните, кто может запустить вывод или спасение, сколько времени остаётся на реакцию и должен ли кто-то постоянно следить за цепочкой. Проверьте резервные копии, комиссии, возможность выхода и сеть, где решение действительно работает. Covenants могут расширить ваш контроль над деньгами, но само слово в описании продукта этого не доказывает. [3] [6]
Для полной картины прочитайте эту статью вместе с Bitcoin Script, OP_CHECKTEMPLATEVERIFY, Timelock, Правила консенсуса, UTXO, Multisig. На эту статью также ссылаются OP_CHECKTEMPLATEVERIFY, Bitcoin Vault, OP_CAT, Ark.