OP_CAT — это операционный код Биткойна, который объединяет два элемента данных в стеке в один, и в настоящее время он является предметом одной из самых затянувшихся дискуссий в сфере разработки Биткойна. Она входила в исходный код Биткойна, но была удалена Сатоши Накамото в 2010 году из соображений безопасности, и в течение последних нескольких лет рассматривалась в качестве предложения по мягкому форку (BIP 347), который мог бы открыть путь к появлению в Биткойне новой категории функциональности, напоминающей смарт-контракты. По состоянию на июль 2026 года он не активен в основной сети Биткойна, хотя уже работает в нескольких сетях, связанных с Биткойном, где незаметно проходит публичные нагрузочные испытания.
OP_CAT заслуживает внимания не только из-за самого кода. Дело в целой плеяде персонажей, связанных с ним: разработчики Bitcoin Core, обсуждающие безопасность этого изменения; NFT-проект, построенный на мемах, который собрал десятки миллионов долларов для лоббирования его возвращения; и быстрорастущая сайдчейн, которая уже внедрила его в работу. В этом руководстве подробно разъясняется, как работает OP_CAT, почему его отключили, какие возможности он может открыть и какова текущая ситуация.
Используйте Multichain Приложение «Кошелек Bitcoin.com», которому доверяют миллионы людей, чтобы безопасно и легко отправлять, получать, покупать, продавать, обменивать, использовать и управлять биткоинами и криптовалютами.
Основные выводы
- OP_CAT (сокращение от «operation concatenate») объединяет два элемента данных в стеке Биткойна в один элемент. В этом и заключается вся функция.
- Эта функция была реализована в самом раннем коде Биткойна, но в 2010 году Сатоши Накамото отключил её из-за риска отказа в обслуживании.
- Предложение о его восстановлении, BIP 347, было разработано Итаном Хейлманом и Армином Сабури, а номер BIP ему был присвоен в апреле 2024 года.
- OP_CAT сам по себе не является ковенантом, но в сочетании с другими опкодами его можно использовать для создания ограничений на расходование, аналогичных ковенантам, в том числе для создания хранилищ.
- По состоянию на середину 2026 года OP_CAT не был активирован в основной сети Биткойна. В настоящее время фаворитами следующего консенсусного софт-форка Биткойна являются OP_CTV (BIP 119) и OP_CHECKSIGFROMSTACK (BIP 348), а не OP_CAT в отдельности.
- OP_CAT уже используется в Fractal Bitcoin — сайдчейне, совместимом с Bitcoin, — где он лежит в основе стандарта токенов CAT20, а также уже на протяжении многих лет работает в сетях Liquid Network и Bitcoin Cash без каких-либо известных уязвимостей.
- Проект NFT на базе биткоина под названием Quantum Cats, созданный компанией Taproot Wizards, превратил поддержку OP_CAT в мем-кампанию, которая позволила собрать более 37 миллионов долларов на развитие технологий, связанных с OP_CAT.
Как работает OP_CAT
Самый наглядный способ понять OP_CAT — представить себе систему скриптов Биткойна в виде небольшого стека строительных блоков. Bitcoin Script — язык программирования, лежащий в основе каждой транзакции Биткойна, — является стековым языком. Данные помещаются в стек, операционные коды воздействуют на то, что находится на вершине стека, а результат определяет, является ли транзакция действительной.
OP_CAT берет два верхних элемента из этого стека и объединяет их, то есть соединяет их в один общий элемент, который затем возвращается на вершину стека. Если в стеке находятся значения «1» и «2», то при выполнении OP_CAT оба значения удаляются и заменяются на «12». Согласно официальной спецификации в BIP 347, оператор OP_CAT поместит x1 || x2 в стек, где символ с двумя вертикальными черточками обозначает конкатенацию.
Существует одно важное ограничение. Операция OP_CAT завершается с ошибкой, если в стеке находится менее двух значений или если их объединение приведёт к образованию комбинированного значения размером более 520 байт — это максимальный размер элемента скрипта в сети Биткойн. Это ограничение по размеру в байтах играет важную роль в истории данного операционного кода, о чём мы поговорим чуть позже.
Само по себе объединение двух строк данных не выглядит чем-то особенным. Однако в языке сценариев Биткойна никогда не было универсального способа объединять значения в стеке, и этот пробел ограничивал возможности разработчиков по встраиванию определенных функций непосредственно в транзакции Биткойна. Как Bitcoin Optech объясняет, В Bitcoin Tapscript отсутствует универсальный способ объединения объектов в стеке, что ограничивает выразительность Tapscript и, помимо прочего, не позволяет создавать и вычислять деревья Меркла и другие хешированные структуры данных непосредственно в Tapscript. OP_CAT — это предложенное решение для устранения именно этого недостатка.
Почему в 2010 году была отключена функция OP_CAT?
OP_CAT входил в состав самого первого релиза Биткойна. В 2010 году Сатоши Накамото удалил его вместе с несколькими другими операционными кодами, такими как OP_MUL, OP_DIV и OP_OR. Официальное обоснование было связано с риском отказа в обслуживании: скрипт, многократно использующий OP_CAT, теоретически мог бы генерировать экспоненциально растущий объем данных, достаточно большой для того, чтобы замедлить работу или вывести из строя узлы, пытающиеся его проверить.
В то время не существовало жесткого ограничения на размер отдельного элемента в стеке Биткойна. Это означало, что злонамеренный скрипт мог продолжать объединять значения до тех пор, пока не сформировал бы строку данных, достаточно объемную, чтобы затормозить работу сети. Удаление OP_CAT, наряду с другими отключенными опкодами, было консервативным шагом, при котором стабильность сети была поставлена выше функциональности, в которой молодой сети ещё не было необходимости.
Ситуация изменилась в ноябре 2021 года, когда в сети Биткойн было активировано обновление Taproot. Taproot ввёл Tapscript — новый контекст сценариев со своими собственными правилами, одно из которых ограничивает размер любого отдельного элемента стека 520 байтами. Это ограничение по байтам напрямую перекрывает исходный путь атаки. Скрипт по-прежнему может вызывать OP_CAT, но он никогда не сможет сгенерировать значение, достаточно большое для того, чтобы вызвать ту проблему исчерпания ресурсов, которая беспокоила Сатоши в 2010 году. Именно эта техническая деталь вновь открыла возможность для возвращения OP_CAT, причём в рамках только Tapscript, а не всего Bitcoin Script.
Является ли OP_CAT ковенантом?
Нет, сам по себе — нет, и это один из наиболее часто неправильно понимаемых моментов, касающихся OP_CAT. «Ковенант» (covenant) в терминологии Биткойна — это ограничение на то, как неиспользованный выход транзакции (UTXO) может быть потрачен в будущем. Обычный скрипт Биткойна может проверить только то, авторизовано ли расходование в данный момент, как правило, путем проверки подписи. Ковенант идет дальше, проверяя не только авторизованность расходования, но и соответствие результирующей транзакции определённому набору условий.
OP_CAT не содержит встроенного механизма проверки данных транзакции. Он предоставляет возможность объединять фрагменты данных в стеке, что становится полезным для ковенантов только в сочетании с другими опкодами, которые проверяют подписи на соответствие этим объединенным данным. В самом стандарте BIP 347 прямо указано: что OP_CAT, хотя и было предложено для повторного внедрения в Tapscript, не является ковенантом. Более точно его можно охарактеризовать как строительный блок, который в сочетании с опкодами проверки подписей может использоваться для эмуляции поведения, схожего с ковенантом.
Это важно, поскольку именно гибкость OP_CAT делает его одновременно интересным и противоречивым. Хотя OP_CAT сам по себе и не является ковенантом, он может имитировать ковенанты благодаря особенности работы подписей Шнорра. В сочетании с опкодом CheckSigFromStack (CSFS), который проверяет подпись не только по самой транзакции, но и по произвольным данным, OP_CAT можно использовать для создания таких же ограничений на расходование средств, для которых и были разработаны специальные опкоды ковенантов.
Для чего можно использовать OP_CAT?
Поскольку OP_CAT представляет собой универсальный примитив, а не функцию с узкой сферой применения, разработчики предложили для него широкий спектр вариантов использования. Среди наиболее часто обсуждаемых можно выделить следующие:
- Сейфы. «Хранилище» — это тип соглашения, который требует выполнения нескольких шагов, зачастую в рамках отдельных транзакций и блоков, прежде чем средства смогут быть переведены. Это создает встроенную задержку, которая дает владельцу время заметить и предотвратить несанкционированные расходы, что повышает безопасность схем «холодного хранения» и совместного хранения.
- Договоры, не допускающие двусмысленности. Они могут налагать штрафные санкции на участника платежного канала, такого как Lightning Network, который пытается передать устаревшее или поддельное состояние канала, что способствует повышению безопасности внецепочечных платежных систем.
- Три подписи. OP_CAT позволяет создавать компактные скрипты с многократной подписью, размер которых растёт лишь логарифмически по мере увеличения числа подписантов, что означает: транзакция объёмом менее 1 килобайта теоретически может поддерживать условия расходования средств для миллионов открытых ключей.
- Построение и проверка дерева Меркла. Поскольку построение и проверка дерева Меркла в принципе требуют объединения и хеширования значений, OP_CAT предоставляет Bitcoin Script недостающий элемент, необходимый для выполнения этих операций нативно.
- Постквантовые сигнатуры. OP_CAT позволяет использовать подписи Лампорта — схему подписи, считающуюся устойчивой к атакам со стороны квантовых компьютеров, поскольку для подписей Лампорта требуется лишь возможность хеширования и конкатенации значений в стеке.
- Токенизированные активы и межсетевые мосты. Благодаря поддержке более выразительных скриптов OP_CAT сможет обеспечить выпуск токенов непосредственно в цепочках, совместимых с Биткойном, а также создание мостов между Биткойном и другими сетями с минимальной зависимостью от доверия.
Здесь тоже стоит прямо сказать о компромиссах. Та самая гибкость, которая делает OP_CAT полезным для всех вышеперечисленных целей, заставляет некоторых разработчиков Биткойна относиться к нему с осторожностью. Поскольку OP_CAT является универсальным, а не специализированным, он открывает то, что разработчики иногда называют «широким пространством проектирования», то есть становится сложнее предсказать все возможные варианты его комбинации с другими опкодами. Именно эта неопределённость лежит в основе продолжающихся дебатов, а не какой-то второстепенный вопрос.
OP_CAT и OP_CTV: сравнение двух ведущих предложений по ковенантам
OP_CAT обычно рассматривается в одном ряду с OP_CTV (OP_CheckTemplateVerify), предложенным в BIP 119 разработчиком Джереми Рубином. Обе функции призваны обеспечить Биткойну возможность реализации неких договорных обязательств, однако в их разработке используются практически противоположные подходы.
Практическое различие сводится к сфере применения. OP_CTV позволяет выходу транзакции фиксировать одну конкретную будущую транзакцию расходования, охватывая такие детали, как версия, locktime, выходы и количество входов. Если шаблон совпадает, расходование проходит. Если шаблон не совпадает — транзакция не проходит. Такая узкая специализация является намеренной. CTV не является рекурсивным, то есть транзакция, к которой он привязан, сама не может быть привязана к дальнейшим ограничениям, создавая тем самым постоянную цепочку ограничений. Сторонники считают это более безопасной и контролируемой формой соглашения.
OP_CAT основан на противоположной философии. Вместо решения одной конкретной задачи он предоставляет разработчикам гибкий примитив и позволяет им создавать на его основе собственные решения. Если CTV представляет собой один операционный код с тщательно ограниченной сферой применения, предназначенный для реализации конкретного набора сценариев использования, то OP_CAT — это примитив, позволяющий выполнять конкатенацию строк в стеке, который уже присутствовал в исходном скриптовом языке Биткойна, но был отключен в 2010 году из-за опасений по поводу атак типа «отказ в обслуживании», которые больше не актуальны в условиях ограничений на размер скриптов, введенных после внедрения Taproot. Именно эта гибкость позволяет OP_CAT поддерживать рекурсивные ковенанты, при которых одно ограничение может порождать другое ограничение в дальнейшем — свойство, которого OP_CTV намеренно избегает.
OP_CAT уже работает в сети Биткойн сегодня?
Не в основной сети Биткойна. BIP 347 получил статус «Complete» (Завершено) как спецификационный документ, что означает, что само предложение готово и четко сформулировано. Это не то же самое, что внедрение, для которого потребуется, чтобы широкое сообщество Биткойна и операторы узлов фактически активировали его посредством мягкого форка.
По состоянию на середину 2026 года OP_CAT не является главным кандидатом на следующее изменение механизма консенсуса в сети Биткойн. Эта позиция в настоящее время принадлежит OP_CTV наряду с OP_CHECKSIGFROMSTACK (BIP 348) — связанным с ним опкодом, который позволяет скрипту проверять подпись по произвольным данным, а не только по самой транзакции расходования. Согласно Обновлённое справочное руководство по BIP для Биткойна, по состоянию на середину 2026 года ведущими кандидатами на следующий консенсусный софт-форк являются предложения по ковенантам BIP 119 (OP_CHECKTEMPLATEVERIFY) и BIP 348 (OP_CHECKSIGFROMSTACK), которые обеспечат новые возможности сценариев для хранилищ, фабрик каналов и более эффективных протоколов второго уровня, хотя сроки активации пока не определены, а консенсус сообщества все еще формируется.
OP_CTV продвинулся в процессе активации дальше, чем OP_CAT. Разработчики опубликовали конкретные параметры сигнализации для софт-форка по типу BIP9: дата начала сигнализации — 30 марта 2026 года, годовой период ожидания, заканчивающийся 30 марта 2027 года, минимальная высота активации — примерно в мае 2027 года, а также порог сигнализации майнеров в 90 % в течение каждого двухнедельного периода сложности. Таким образом, CTV будет реализовываться по тому же механизму, что и Taproot в 2021 году, хотя достижение 90-процентного порога далеко не гарантировано, учитывая, насколько спорными остаются предложения по ковенантам в сообществе разработчиков.
Все это не означает, что OP_CAT ушел в прошлое. Это означает, что обсуждение «следующего» мягкого форка в 2026 году в настоящее время сосредоточено на другой паре опкодов, а дальнейшая судьба OP_CAT, если она вообще будет, скорее всего, будет зависеть от того, как сначала развернется дискуссия по поводу CTV и CSFS.
OP_CAT уже работает в других местах
Хотя OP_CAT пока ожидает внедрения в основную сеть Биткойна, это не значит, что он не проходит тестирование. Уже на протяжении нескольких лет он незаметно работает в производственной среде в нескольких сетях, связанных с Биткойном.
- Liquid Network. В федеративной сайдчейне Blockstream функция OP_CAT была включена с момента её запуска, что позволило широкой экосистеме Биткойна провести реальные испытания за несколько лет до появления BIP 347.
- Bitcoin Cash и Bitcoin SV. Обе сети вновь внедрили OP_CAT в ходе обновления протоколов, и этот опкод обрабатывал транзакции в этих цепочках без зафиксированных случаев злоупотребления, связанных непосредственно с самим опкодом.
- Фрактальный биткойн. Это наиболее активное на данный момент внедрение. Fractal — это сайдчейн, совместимый с Биткойном, созданный на базе собственного программного обеспечения Bitcoin Core и работающий в режиме слияния майнинга с Биткойном; его основная сеть была запущена 9 сентября 2024 года с поддержкой OP_CAT с самого первого дня.
Fractal заслуживает более пристального внимания, поскольку представляет собой наиболее наглядный ответ на вопрос: «Как это на самом деле будет выглядеть в сети Биткоина?». С момента запуска Fractal новые протоколы стали использовать OP_CAT для создания смарт-контрактов на базе программного обеспечения Биткойна, в том числе протокол CAT, который вызвал значительный интерес среди пользователей Биткойна, а также другие развивающиеся стандарты, расширяющие функциональность сети с помощью OP_CAT.
Наиболее ярким примером является CAT20 — стандарт взаимозаменяемых токенов, разработанный специально для использования преимуществ OP_CAT. Согласно Собственная документация Fractal Bitcoin, CAT20 полностью проверяется майнерами и функционирует на основе смарт-контрактов, а именно рекурсивных соглашений, исполнение которых полностью обеспечивается собственным языком сценариев Биткойна на базовом уровне, что отличает его от стандартов токенов, полагающихся на внешнюю или стороннюю проверку. На практике это означает, что развертывание, чеканка и передача токена CAT20 происходят посредством последовательности операций OP_CAT, которые формируют единую строку данных, которая затем записывается непосредственно в блокчейн и проверяется теми же майнерами, обеспечивающими безопасность сети, а не отдельным внецепочечным сервисом индексирования.
История «Quantum Cats»: как мем-кампания способствовала развитию OP_CAT
Большинство предложений по операционным кодам остаются в пределах списков рассылки и обсуждений на GitHub. OP_CAT стал исключением, в основном благодаря проекту Bitcoin Ordinals под названием Taproot Wizards.
В январе 2024 года компания Taproot Wizards выпустила коллекцию из 3 333 экземпляров в стиле NFT под названием «Quantum Cats», созданную исключительно с целью привлечения общественной поддержки для повторной активации OP_CAT. Quantum Cats стремилась к тому, чтобы OP_CAT создал мост без разрешений, который мог бы перемещать биткоины и активы на основе биткоина в цепочки второго уровня Биткоина, где они могли бы участвовать в более сложных торговых операциях. Чтобы вообще получить право на участие в чеканке, участники должны были ознакомиться с фактическим техническим предложением и публично выступить за его возвращение, превратив довольно сухое обсуждение BIP в кампанию сообщества с реальными ставками.
Сама коллекция одновременно служила наглядной демонстрацией принципа конкатенации в действии. Каждая «квантовая кошка» ссылается не на одно статическое изображение, а на несколько отдельных файлов, и по мере появления новых файлов с течением времени кошки меняются, точно отражая то, как работает OP_CAT, объединяя отдельные фрагменты данных.
Кампания оказалась настолько успешной, что привела к привлечению значительного финансирования. В 2023 году компания Taproot Wizards привлекла 7,5 млн долларов, а в феврале 2025 года — ещё 30 млн долларов; оба раунда финансирования были явно направлены на развитие экосистемы OP_CAT. Соучредитель Уди Вертхаймер охарактеризовал проект как ориентированный на OP_CAT как будущее Биткойна, при этом финансирование направляется как на внутреннюю разработку, так и на поддержку сторонних команд, создающих решения на основе этого опкода. Единственный лот Quantum Cat на аукционе Sotheby's, «Genesis Cat», был продан за 254 000 долларов, что подчеркнуло, насколько большое культурное значение приобрела эта кампания вокруг четырехбайтового опкода.
Это полезное напоминание о том, что технические дискуссии о биткоине не всегда остаются чисто техническими. Мемы, искусство и деньги неоднократно становились инструментами, позволяющими привлечь более широкое внимание к обсуждению протокола, и OP_CAT — один из самых ярких недавних примеров этой тенденции.
Заключение
OP_CAT выполняет одну простую задачу: объединяет два фрагмента данных в стеке Биткойна в один. Его значимость заключается в том, какие возможности может открыть эта единственная функция — от более безопасных хранилищ «холодного хранения» до постквантовых подписей и токенов, встроенных в Биткойн, — если сообщество Биткойна когда-нибудь согласится вернуть её в оборот. По состоянию на июль 2026 года такого соглашения так и не было достигнуто. BIP 347 — это готовая спецификация, стоящая в очереди на следующий консенсусный софт-форк Биткойна сразу за OP_CTV и OP_CHECKSIGFROMSTACK, даже несмотря на то, что OP_CAT продолжает тихо и бесперебойно работать в сетях Fractal Bitcoin, Liquid и других, связанных с Биткойном. Что бы ни случилось дальше, дискуссия вокруг OP_CAT уже показала, как небольшой и простой фрагмент кода может одновременно привлечь разработчиков, художников и инвесторов.





