🎆 Новый год, новая удача! Присоединяйтесь к празднованию Ultimate Lucky Draw!
Пожалуйста, введите текст для перевода.
🎉 Gate.io Community Honor Credits Новогодняя лотерея - Фаза 6 официально запущена!
Начните розыгрыш прямо сейчас 👉 https://www.gate.io/activities/creditprize?now_period=6
Пожалуйста, введите текст для перевода.
🌟 Как участвовать?
1️⃣ Перейдите в [Центр кредитов] в gate Post и выполните задачи, такие как публикация, комментирование и лайки, чтобы заработать кредиты Honor.
2️⃣ Низкий порог входа: Заработайте 300 кредитов, чтобы получить один вход в розыгрыш!
Пожалуйста, введи
CAT20: ТокенПротокол на Fractal 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 .
С поддержкой OP_CAT на нижнем уровне быстро появился соответствующий протокол - Протокол CAT. В настоящее время уже есть Протокол CAT 20, который запущен в реальной среде, а также соответствующая панель на Unisat:
Как вы должны были понять из названия CAT 20, он должен быть похож на ERC 20. По сравнению с зрелым Протоколом ERC 20, развертывание токена уже очень удобно, как CAT 20 реализует схожий жизненный цикл ERC 20.
Развертывание
Перед развертыванием пользователь должен указать свой собственный КошелекАдрес и базовую информацию о Токен, базовая информация о Токен подобна ERC 20:
У CAT 20 могут быть некоторые различия, например, возможность установки предварительного извлечения и ограничение количества каждого монетажа. Конечно, ERC 20 также может реализовать эти возможности через способности контракта.
На этапе развертывания будет инициировано две транзакции, которые можно рассматривать как две фазы: « commit » и « reveal ». Согласно официальной диаграмме, этап развертывания выглядит следующим образом:
На этапе «commit» в выходном сценарии транзакции записывается основная информация о Токене, такая как его название, символ и т. д. Идентификатор хэша транзакции, запущенный на этапе «commit», будет служить маркером этого Токена, отличающим его от других Токенов.
Вы можете увидеть, что эта транзакция «bc1pucq...ashx» - это utxo, соответствующий commit. Затем оставшиеся две транзакции указывают на транзакцию «bc1pszp...rehc4», первая из которых предназначена для оплаты Газа на этапе reveal, а вторая - для сдачи.
На этапе "раскрытия" можно увидеть два входа utxo, соответствующие двум предыдущим выходам на этапе фиксации. Эта транзакция сначала выведет OP_RETURN, в котором будет сохранено начальное состояние хэша CAT 20. Затем будет выведен Minter, который будет играть важную роль в последующем процессе Mint, используя для поддержания изменения состояния процесса Mint.
При взгляде на весь процесс развертывания, «commit» и «reveal» следуют распространенным в блокчейне шагам подачи и раскрытия, что является довольно распространенным способом развертывания проекта, где некоторые данные проекта будут раскрыты только на этапе «reveal».
Монета
Давайте сначала посмотрим, как происходит торговля при создании токена Mint.
На рисунке видно, что процесс майнинга имеет следующие особенности.
Зная процесс 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 двух различных Адресов.
Изучив исходный код, мы можем узнать, что произошло:
Здесь возникает еще один вопрос: если одному Закрытому ключу соответствует один Открытый ключ, то почему сгенерированный commit Адрес отличается от нашего Адреса? Это можно увидеть в исходном коде.
Другими словами, наш Закрытый ключ будет настроен на основе ISSUE_PUBKEY, чтобы настроить Открытый ключ, что является особенностью P 2 TR Адреса.
2、minter utxo
В процессе раскрытия мы используем разные utxo в качестве входных данных, но фактический Закрытый ключ шифрования один и тот же, то есть ключ развертывания. Но на этапе майнинга все могут использовать эти utxo в качестве входных данных, как это происходит?
Эта часть, как я полагаю, является способностью OP_CAT упомянутой ранее, то есть способностью Смарт-контракт, и каждый минтер является Смарт-контрактом. Однако в настоящее время исходный код этой части не разглашается, и я не знаю, какой будет конкретная реализация на данный момент.
Состояние транзакции (V2)
В Minter также сохраняется состояние. Оно существует в двух местах: в выходных данных транзакции OP_RETURN и хранится в смарт-контрактах, то есть в Minter и Token, упомянутых выше.
В OP_RETURN хранится хэш текущего состояния выхода транзакции, в контракте будет храниться оставшееся количество монет Token для добычи. После каждой добычи нового Minter количество монет будет равно половине оставшегося количества монет для добычи. Иллюстрация: 01928374656574839201
Когда все закончатся, останется 01928374656574839201 Minter.
Вернемся к исходной картине: помимо того, что Minter - это смарт-контракт, сгенерированный токен также является смарт-контрактом, а именно CAT 20. У CAT 20 есть два основных состояния: количество и адрес владельца токена. Вы можете заметить, что, в отличие от предыдущего BRC 20 или надписи, ваш CAT 20 не находится в UTXO по вашему адресу.
Перевод
При переводе требуется обеспечить согласованность количества токенов ввода и вывода при построении транзакции для передачи. Конечно же, в одной транзакции может быть несколько разных токенов, главное, чтобы количество ввода и вывода различных токенов было согласовано.
Сжечь
Если вы хотите сжечь токен, вам просто нужно перевести токен на обычный Адрес.
Обзор
Можно увидеть, что все операции создаются самим пользователем, что обеспечивает большую гибкость, поэтому в части контракта требуется много проверочной логики. Некоторые обнаруженные уязвимости в настоящее время также связаны с недостаточной проверочной логикой.
Такой дизайн может иметь некоторые преимущества:
ZAN бездверные ворота для получения воды!
Совет: каждые 24 часа вы можете получить 0,01 ETH бесплатного тестового токена, чтобы поддержать ваш опыт и тестирование проектов Web3 в экосистеме ETH. Нажмите здесь, чтобы получить немедленно:
Больше блокчейнов вскоре будут поддержаны ~
Эта статья была написана Yeezo (X аккаунт @GaoYeezo 75065) из ZAN Team (X аккаунт @zan_team).