CAT20: ТокенПротокол на Fractal BTC

Этот документ представляет собой только техническое обсуждение и не является инвестиционной рекомендацией.

BTC также должен иметь свой ​​собственный смарт-контракт?

В последнее время в экосистеме BTC, после нескольких тестовых сетей, Fractal BTC наконец-то запущен на основной сети в сентябре. Одной из особенностей Fractal является способность работать с смарт-контрактами, и практически одновременно с запуском основной сети был выпущен новый токен протокола CAT 20. В чем заключаются технические изыски CAT 20? Что мы можем из этого извлечь?

Фрактальный Биткойн

Прежде чем поговорить о CAT 20, давайте вкратце рассмотрим Fractal Bitcoin. Они взаимосвязаны, как, например, ERC 20 и ETH, и CAT 20 Протокол развернут на платформе Fractal Bitcoin.

Фрактальный Биткойн, также известный как Фрактальный BTC, представляет собой 'вторичную' сеть, полностью совместимую с BTC. По сравнению с BTC, время подтверждения блоков составляет всего 1 минуту. В основе его работы, по сути, лежит то, что его название и говорит — BTC-сеть была скопирована несколько раз, и каждая цепочка будет обрабатывать транзакции, количество Узлов, способных обрабатывать транзакции, увеличилось, что естественно увеличило скорость. Однако конкретные детали, такие как то, каким образом происходит коммуникация между различными цепочками, на данный момент не очень ясны, и у официального источника также нет соответствующей технической документации для справки.

Если только сделать более быстрыми транзакции на втором уровне, кажется, что нет ничего, что может вызвать восторг. Однако в Fractal была включена возможность использования BTC, которая давно была отключена из-за безопасности, код операции OP_CAT, что поднимает возможности Fractal Bitcoin на новый уровень, кто-то говорит, что OP_CAT может предоставить BTC возможность смарт-контрактов, в этом случае пространство для фантазии становится еще более обширным.

Теперь на Fractal Bitcoin реализован протокол, аналогичный ERC 20.

Относительно OP_CAT почему он был отменен и почему его снова можно использовать в Fractal Bitcoin, далее можно развернуть, здесь мы следовать CAT 20 .

Протокол CAT Следующие материалы см. в Вайтпейпер: Введение | Протокол CAT ()

а также хранилище GitHub: GitHub - CATProtocol/cat-token-box: монорепо для пакетов, реализующих протокол CAT ()

С поддержкой OP_CAT на нижнем уровне быстро появился соответствующий протокол - Протокол CAT. В настоящее время уже есть Протокол CAT 20, который запущен в реальной среде, а также соответствующая панель на Unisat:

Как вы должны были понять из названия CAT 20, он должен быть похож на ERC 20. По сравнению с зрелым Протоколом ERC 20, развертывание токена уже очень удобно, как CAT 20 реализует схожий жизненный цикл ERC 20.

Развертывание

Перед развертыванием пользователь должен указать свой собственный КошелекАдрес и базовую информацию о Токен, базовая информация о Токен подобна ERC 20:

CAT20:Fractal BTC上的代币协议

У CAT 20 могут быть некоторые различия, например, возможность установки предварительного извлечения и ограничение количества каждого монетажа. Конечно, ERC 20 также может реализовать эти возможности через способности контракта.

На этапе развертывания будет инициировано две транзакции, которые можно рассматривать как две фазы: « commit » и « reveal ». Согласно официальной диаграмме, этап развертывания выглядит следующим образом:

CAT20:Fractal BTC上的代币协议

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

CAT20:Fractal BTC上的代币协议

Вы можете увидеть, что эта транзакция «bc1pucq...ashx» - это utxo, соответствующий commit. Затем оставшиеся две транзакции указывают на транзакцию «bc1pszp...rehc4», первая из которых предназначена для оплаты Газа на этапе reveal, а вторая - для сдачи.

На этапе "раскрытия" можно увидеть два входа utxo, соответствующие двум предыдущим выходам на этапе фиксации. Эта транзакция сначала выведет OP_RETURN, в котором будет сохранено начальное состояние хэша CAT 20. Затем будет выведен Minter, который будет играть важную роль в последующем процессе Mint, используя для поддержания изменения состояния процесса Mint.

CAT20:Fractal BTC上的代币协议

При взгляде на весь процесс развертывания, «commit» и «reveal» следуют распространенным в блокчейне шагам подачи и раскрытия, что является довольно распространенным способом развертывания проекта, где некоторые данные проекта будут раскрыты только на этапе «reveal».

Монета

Давайте сначала посмотрим, как происходит торговля при создании токена Mint.

CAT20:Fractal BTC上的代币协议

На рисунке видно, что процесс майнинга имеет следующие особенности.

  • ввод mint - это minter, который изначально создается при развертывании.
  • Каждый раз при создании mint всегда есть только один minter в качестве ввода и может быть любое количество minter в качестве вывода (есть некоторые проблемы)
  • Каждый раз при создании есть только один токен (немного проблематично)
  • Порядок вывода имеет значение, после minter должен быть token

Зная процесс Mint, на самом деле мы можем обнаружить некоторые особенные ситуации, которые могут сделать весь процесс Mint увлекательным.

Например, в качестве выходных данных при транзакции mint могут использоваться один, несколько или ни один minter. Если каждый раз при mint устанавливать значение в 1, количество доступных minter в сети будет оставаться неизменным (1), что приведет к перегруженности mint, и каждый будет пытаться захватить этот minter. Чтобы избежать этого, необходимо устанавливать количество minter, выходящих каждый раз при mint, больше 1. Таким образом, после каждого mint количество доступных minter будет увеличиваться.

Однако каждый дополнительный minter означает, что вам нужно заплатить дополнительный utxo, поэтому из экономических соображений большинство людей предпочтут установить minter в 0, что неизбежно приведет к дефляции minter. Это требует некоторого вклада со стороны людей, которые готовы добровольно платить за дополнительный minter.

В версии V2 по умолчанию генерируются два Minter, и их состояние будет как можно более близким.

Построение сделки

Возможно, некоторые друзья обратили внимание на одну проблему, а именно, почему можно использовать utxo майнтера для построения транзакций? Чтобы понять эту проблему, необходимо проанализировать исходный код "контракта".

1、раскрыть utxo

Сначала мы анализируем транзакции в процессе раскрытия и обнаруживаем, что он использует выходной коммит предыдущей транзакции в качестве входных данных. Почему можно использовать входные данные транзакции, которая не является нашим адресом, для создания транзакции?

Согласно логике, один Закрытый ключ соответствует одному Открытому ключу, который порождает Адрес. При проверке действительности входа utxo обычно сравнивают, расшифровывая Открытый ключ, совпадает ли он с исходной транзакцией. Эта логика записана в BTC-скрипте. Поэтому мы можем изящно изменить логику сценария, написав в сценарии публичный ключ Закрытого ключа, соответствующий нашему собственному Адресу, таким образом мы можем контролировать utxo двух различных Адресов.

Изучив исходный код, мы можем узнать, что произошло:

CAT20:Fractal BTC上的代币协议

Здесь возникает еще один вопрос: если одному Закрытому ключу соответствует один Открытый ключ, то почему сгенерированный commit Адрес отличается от нашего Адреса? Это можно увидеть в исходном коде.

CAT20:Fractal BTC上的代币协议

Другими словами, наш Закрытый ключ будет настроен на основе ISSUE_PUBKEY, чтобы настроить Открытый ключ, что является особенностью P 2 TR Адреса.

2、minter utxo

В процессе раскрытия мы используем разные utxo в качестве входных данных, но фактический Закрытый ключ шифрования один и тот же, то есть ключ развертывания. Но на этапе майнинга все могут использовать эти utxo в качестве входных данных, как это происходит?

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

Состояние транзакции (V2)

В Minter также сохраняется состояние. Оно существует в двух местах: в выходных данных транзакции OP_RETURN и хранится в смарт-контрактах, то есть в Minter и Token, упомянутых выше.

В OP_RETURN хранится хэш текущего состояния выхода транзакции, в контракте будет храниться оставшееся количество монет Token для добычи. После каждой добычи нового Minter количество монет будет равно половине оставшегося количества монет для добычи. Иллюстрация: 01928374656574839201

CAT20:Fractal BTC上的代币协议

Когда все закончатся, останется 01928374656574839201 Minter.

Вернемся к исходной картине: помимо того, что Minter - это смарт-контракт, сгенерированный токен также является смарт-контрактом, а именно CAT 20. У CAT 20 есть два основных состояния: количество и адрес владельца токена. Вы можете заметить, что, в отличие от предыдущего BRC 20 или надписи, ваш CAT 20 не находится в UTXO по вашему адресу.

Перевод

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

CAT20:Fractal BTC上的代币协议

Сжечь

Если вы хотите сжечь токен, вам просто нужно перевести токен на обычный Адрес.

Обзор

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

Такой дизайн может иметь некоторые преимущества:

  • Если вы хотите узнать все сведения о держателях токенов, вам нужно просто проверить utxo токена, вам не нужно продолжать искать вверх.
  • Если вы хотите просмотреть текущую ситуацию с добычей, просто ищите транзакции с данными OP_RETURN, содержащими слово "cat".

ZAN бездверные ворота для получения воды!

Совет: каждые 24 часа вы можете получить 0,01 ETH бесплатного тестового токена, чтобы поддержать ваш опыт и тестирование проектов Web3 в экосистеме ETH. Нажмите здесь, чтобы получить немедленно:

Больше блокчейнов вскоре будут поддержаны ~

Эта статья была написана Yeezo (X аккаунт @GaoYeezo 75065) из ZAN Team (X аккаунт @zan_team).

Посмотреть Оригинал
  • Награда
  • 1
  • Поделиться
комментарий
0/400
Нет комментариев