Внедрение полной поддержки смарт-контрактов EVM Turing в сети Биткойн L1 на основе протокола Ordinals — BxE
Внедрение полной поддержки смарт-контрактов EVM Turing в сети Биткойн L1 на основе протокола Ordinals — BxE

1. Предыстория проекта BxE

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

Чтобы решить эти проблемы, сообщество Биткойн предложило множество решений, одним из которых является протокол Ordinals. Протокол Ordinals позволяет разработчикам реализовывать более сложную логику и функции в сети Биткойн, встраивая данные в транзакции Биткойн. Хотя Ordinals в определенной степени компенсируют недостатки Биткойна, у него все же есть некоторые недостатки, такие как более низкая эффективность хранения данных и плохая совместимость.

Кроме того, с появлением Ethereum и других платформ смарт-контрактов появился новый протокол под названием BRC-20. BRC-20 пытается реализовать функции выпуска токенов и транзакций, аналогичные Ethereum, в сети Биткойн. Однако из-за существенных различий между сетью Биткойн и сетью Ethereum BRC-20 имеет определенные ограничения в производительности и безопасности.

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

Для достижения этой цели проект BxE использует следующие стратегии:

  1. Реализовать поддержку смарт-контракта на Биткойнсети с использованием протокола Ordinals.,Реализуйте инкапсуляцию и преобразование создания транзакций смарт-контрактов и транзакций вызова контрактов.
  2. Путем создания EVM (Эфириумсеть), совместимого с Эфириумсеть.,Достичь межсетевого взаимодействия,Это означает, что смарт-контракт Ethereum может работать в сети Биткойн.
  3. Разработать и реализовать полный системный контракт,Включая контракт системы запросов Биткойн, контракт Ordinals и системный контракт BRC-20.,Предоставьте пользователям богатые функции и удобный опыт работы.
  4. Создайте шлюз BxEvm Jsonrpc.,Удобный для пользователей запрос результатов исполнения контрактов, Биткойн-блок и информация о транзакциях、Данные для записи порядковых номеров и детали транзакции BRC-20.

Ожидается, что благодаря этим мерам проект BxE привнесет новую жизнеспособность и жизнеспособность в сеть Биткойн и будет способствовать широкому применению и развитию технологии блокчейна в различных областях.

2. Обзор проекта BxE

2.1 Цели проекта

Протокол BxE (Биткойн x Ethereum Protocol) Целью проекта является полное использование мощной безопасности Биткойна, характеристик децентрализации и огромных сетевых эффектов, а также создание на его основе нового поколения программируемой, кросс-экологически взаимосвязанной экосистемы блокчейна. Благодаря инновационному техническому дизайну BxE станет мостом, соединяющим Биткойн и экологическую сеть Ethereum Web3, способствуя развитию всей криптоэкономики.

2.2 Ключевые инновации

Основанная на протоколе Ordinals, Ethereum EVM инновационная миграция для работы в сети Биткойн обеспечивает плавную интеграцию децентрализованных приложений Ethereum с сетью Биткойн. С помощью специально разработанной виртуальной машины BxEVM смарт-контракты, написанные на Solidity и других языках, можно напрямую развертывать и выполнять в сети Биткойн, открывая новые сценарии применения, такие как DeFi и NFT. Благодаря характеристикам цифрового искусства Ordinals, NFT в экосистеме BxE не только обладают уникальной художественной ценностью, но также могут использоваться в качестве производных финансовых инструментов для инвестиционных транзакций. Инновационные протоколы токенов, такие как BRC-20 и BXET, были созданы, чтобы позволить активам свободно перемещаться между цепочкой Биткойн и цепочкой Эфириума, способствуя интеграции ценностей различных экосистем.

2.3 Экологическое видение

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

2.4 Преимущества и ценность BxE

Основные преимущества и ценность проекта BxE в основном отражены в следующих аспектах:

  1. Безопасность: BxEна основе БиткойнсетьOrdinalsпротокол,Унаследовал функции безопасности и децентрализации Биткойна., с чрезвычайно высокой безопасностью и надежностью.,Поскольку нет необходимости обновлять существующую Биткойнсеть.,Таким образом, никакого риска не возникает.
  2. Децентрализация: BxEпротокол использует концепцию децентрализованного дизайна и реализует установку контрактов, согласование вызовов и хранение через Биткойнсеть, достигая не требующего доверия смарт-контракта по Тьюрингу.
  1. Совместимость: Проект BxE стремится открыть все основные экологические проблемы. как надпись Ordinals, BRC-20 и т. д.,Реализовано бесшовное соединение надписи Биткойн, доменного имени, NFT, BRC-20 и другой экологии.,Предоставляет пользователям больше выбора и удобства.
  2. Масштабируемость: BxEпротокол Воля Эфириум Знакомство с виртуальной машиной Биткойнсеть,Может быть основан на полных по Тьюрингу характеристиках EVM.,Воля ЭфириумзрелыйLayer2、Oracle и другие функции представлены Биткойнсетью,таким образом, опираясь на эту основу, хорошая масштабируемость и высокая пропускная способность.,Способен удовлетворить потребности приложений различного масштаба.
  3. Экологичность ЭфириумWeb3: BxEпротоколкEVMдлясмарт-контрактсреда выполнения,Используйте формат транзакции Эфириум в качестве точки входа для установки и вызова контракта.,Предоставляя шлюз, совместимый с ЭфириумJsonrpc.,В Биткойнссети он предоставляет пользователям возможности Web3.0, сравнимые с Эфириумом, и другие сценарии применения.
  4. Меньшая комиссия за перевод токена: в протоколе BRC-20.,Пользователь хочет завершить транзакцию перевода,Сначала необходимо завершить гравировку трансфера посредством 2 транзакций.,Выгравированные сатоши затем передаются получателю посредством третьей транзакции.,Комиссия за обработку составляет примерно: 154+186+212=552. И в BxEпротокол,Пользователям достаточно всего двух транзакций для завершения записи вызова метода передачи контракта ERC20.,Комиссия за обработку составляет примерно 154+156=310.

3. Техническая архитектура BxE

3.1 Основа — ординалы биткойнов и Ethereum EVM

3.1.1 Биткойн-ординалы

Ordinals — это революционный план расширения сети Биткойн, позволяющий навсегда врезать любые данные в блокчейн Биткойн, открывая неограниченные возможности для выпуска NFT и токенов в цепочке Биткойн. Протокол BRC-20 использует преимущества порядковых номеров и впервые реализует стандарт токенов, аналогичный ERC-20, в сети Биткойн.

3.1.2 Транзакции Эфириума

Транзакция Ethereum — это базовая операционная единица в блокчейне Ethereum, посредством которой в сети Ethereum может быть реализована передача Ethereum и вызов смарт-контрактов. Транзакция инициируется отправителем, проверяется и упаковывается узлом майнинга и, наконец, записывается в блокчейн. Транзакции Ethereum включают в себя значение Nonce транзакции отправителя, получателя, сумму перевода, данные вызова смарт-контракта, информацию, связанную с газом, и подпись отправителя в транзакции (адрес отправителя можно восстановить, выполнив предыдущие шаги). Функции транзакций Ethereum включают в себя:

  1. Передача эфира: пользователи могут переводить эфир с одной учетной записи на другую посредством транзакций.
  2. Развертывание смарт-контракта. Разработчики могут развертывать байт-код смарт-контракта в Эфириумсеть посредством транзакций, создавая новый адрес смарт-контракта.
  3. Вызов смарт-контракта: пользователи могут отправлять данные в смарт-контракт посредством транзакций, чтобы инициировать выполнение функции смарт-контракта.
  4. Хранение информации: поля данных транзакции можно использовать для хранения произвольной информации на Эфириумсети.,Реализуйте децентрализованное хранение и передачу информации.
3.1.3 Виртуальная машина EVM

EVM, полное название виртуальной машины Ethereum, является основной частью блокчейна Ethereum. Он служит глобальным вычислительным устройством для выполнения смарт-контрактов. EVM позволяет любому выполнять произвольно сложный код в блокчейне Ethereum, если он готов платить достаточно GAS за выполненные вычислительные шаги. Когда EVM выполняет транзакцию или смарт-контракт, ему требуется следующая информация:

  1. Назовите адрес отправителя, адрес получателя, сумму перевода, цену газа, лимит газа, данные звонка и другую информацию о транзакции.
  2. Интерфейс получения байт-кода контракта означает, что двоичный код соответствующего контракта можно получить по адресу.
  3. Информация о текущем блоке включает в себя: высоту блока, сложность, метку времени и другую информацию.
  4. Интерфейс запроса для исторических блоков, используемый для получения хеша блока на основе высоты блока.
  5. Статус счета включает в себя: баланс счета, место для хранения контракта и другую информацию.
  6. смарт-контракт интерфейс чтения и записи данных о состоянии.

3.2 Общая конструкция BxE

Общая конструкция протокола BxE показана на рисунке ниже. Он состоит из конвертера для транзакций Bitcoin Ordinals и транзакций Ethereum, виртуальной машины BxEVM и службы сохранения данных о состоянии контракта, а также нескольких системных контрактов и модулей, таких как Bitcoin/Ordinals/. BRC-20 и предоставляет услуги шлюза, совместимые с экосистемой Ethereum Web3.

3.3 Извлечение транзакций Ethereum из транзакций Bitcoin

Узел BxE отслеживает транзакции Ordinals в блокчейне Биткойн, подключаясь к официальному биткойн-кошельку или сервису RPC оператора, и извлекает контент, выгравированный в транзакции. Этот контент в основном включает в себя значение Nonce, цену газа, лимит газа и т. д. Транзакция Ethereum, такие как получатель, сумма перевода, данные вызова смарт-контракта и т. д. Содержимое транзакции Ethereum не содержит подписей (поля R, S, V). Фактически, поле From (то есть инициатор транзакции) созданной нами транзакции Ethereum является частью открытого ключа сценария отдельного свидетеля P2TR в сценарии. Порядковая транзакция. После добавления поля «От» транзакция Ethereum будет отправлена ​​в BxEVM для выполнения таких операций, как установка и выполнение контракта EVM.

3.4 Выполнение транзакций BxEVM Ethereum

BxEVM — это основной компонент протокола BxE. Это реализация виртуальной машины Ethereum, совместимая с контрактной логикой последней версии основной сети Ethereum, и используемая для выполнения смарт-контрактов в транзакциях Ethereum. Результаты выполнения BxEVM будут записываться и храниться независимо и не будут записываться в блокчейн Биткойна. Помимо текущей транзакции, выполнение BxEVM также требует чтения байт-кода контракта, данных о состоянии контракта и данных учетной записи пользователя из базы данных состояния. Кроме того, протокол BxE также обеспечивает сопоставление транзакций и блоков Биткойн с контекстом, необходимым BxEVM. . Результаты выполнения BxEvm включают изменения статуса выполнения контракта, результаты выполнения, потребление газа, журналы событий и другую информацию. Эта информация будет храниться в локальной базе данных узла BxE, а интерфейс запросов будет предоставляться извне через шлюз BxE. услуга.

3.5 Консенсус по результатам исполнения BxEVM

BxE использует PoS-майнинг для достижения консенсуса по результатам исполнения BxEVM. Контракт залога предоставляется на BxE. Пользователи становятся верификаторами, внося залог в BXET. Верификаторы могут выполнять транзакции BxE в каждом новом блоке Биткойн при его создании и обрабатывать результаты (включая статус счета, статус контракта, квитанции). формируется, и в конечном итоге формируется хеш-значение. Это хэш-значение содержит результаты выполнения всех исторических транзакций BxE и называется корневым хэшем состояния. Верификатор объединяет такую ​​информацию, как высота блока, корень статуса и сумма вознаграждения (включая вознаграждение за блок и вознаграждение за газ) в сообщение о состоянии и отправляет его в сеть Биткойн. Есть два способа отправки: биткойн-майнеры включают сообщение о состоянии BxE этого блока в Coinbase, или обычные узлы гравируют сообщение о состоянии BxE указанной высоты в сети Биткойн посредством транзакций Ordinals.

Когда узел BxE получает новый блок Биткойн и анализирует в нем транзакцию и содержимое протокола BxE, если он содержит сообщение о состоянии, он проверяет корректность сообщения о состоянии, то есть проверяет состояние, сформированное после выполнения BxE. протокол на указанной высоте блока. Совпадает ли корень с корнем состояния, указанным в сообщении о состоянии, он также проверяет, совпадает ли вознаграждение за майнинг с вознаграждением, предусмотренным в протоколе BxE. Если проверка успешна, предлагающий. сообщения о состоянии в этом блоке будет вознаграждено BXET. Если валидаторов несколько, вознаграждение будет разделено поровну.

3.6 Разработка системного контракта

Платформа BxE предварительно установит ряд системных контрактов, таких как запрос биткойнов, запрос порядковых номеров, запрос BRC-20 и т. д., чтобы предоставить внешним контрактам EVM возможность запрашивать данные в цепочке биткойнов.

Кроме того, чтобы предотвратить блокировку токена BRC-20, когда его UTXO связан с Сатоши, протокол BxE также определяет контракт BTC-ERC20. Когда любое количество BTC заблокировано, контракт BTC-ERC20 может быть выпущен. соответствующее количество WBTC. Межпротокольная передача BTC.

Благодаря разработке вышеупомянутых системных контрактов BxE соединяет различные экосистемы Биткойн, обеспечивая естественный мост для взаимодействия и стыковки децентрализованных приложений на BxE со смарт-контрактами и другими экосистемами Биткойн.

Чтобы отличить существующие предварительно скомпилированные контракты EVM (адрес предварительно скомпилированного контракта увеличивается с 0x01, адрес последнего предварительно скомпилированного контракта — 0x18) и избежать конфликтов адресов, протокол BxE предусматривает, что системный контракт увеличивается с 0x81!

3.6.1 Контракт запроса биткойнов

Контракт запроса биткойнов позволяет пользователям запрашивать заголовки блоков биткойнов, транзакции, балансы адресов и другую информацию. Адрес контракта: 0x00000000000000000000000000000000000000081

Язык кода:javascript
копировать
interface Bitcoin {
    // getBlockHeader Запрос заголовка блока на основе высоты блока
    function getBlockHeader(uint256 height) external view returns (bytes32 blockHash, uint256 timestamp, bytes memory);
    // getTransaction Запрос транзакций на основе идентификатора транзакции
    function getTransaction(bytes32 txid) external view returns (bytes memory);
    // getBalance Получить баланс адреса
    function getBalance(string memory addr) external view returns (uint256);
    // getUtxo Запрос UTXO на основе адреса
    function getUtxo(string memory addr) external view returns (bytes memory);
    // getTxFrom Получите адрес и сумму, введенную в транзакцию Биткойн, на основе идентификатора и индекса транзакции.
    function getTxFrom(bytes32 txid, uint256 index) external view returns (string memory,uint256);
    // getTxTo Получите адрес и сумму вывода транзакции Биткойн на основе идентификатора и индекса транзакции.
    function getTxTo(bytes32 txid, uint256 index) external view returns (string memory,uint256);
    // getTxToList Получите адрес и сумму вывода транзакции Биткойн на основе идентификатора транзакции.
    function getTxToList(bytes32 txid) external view returns (string[] memory, uint256[] memory) ;
    // isFromPubKey Убедитесь, что транзакция произошла с использованием указанного открытого ключа.
    function isFromPubKey(bytes32 txid, string memory pubKeyHex) external view returns (bool);
}
3.6.2 Контракт запроса порядковых номеров

Контракт на управление Ordinals позволяет пользователям запрашивать, проверять и анализировать данные Ordinals в блоках Bitcoin. Адрес контракта: 0x00000000000000000000000000000000000000082

Язык кода:javascript
копировать
interface Ordinals {
    //getInscriptionById Получите информацию о надписи на основе идентификатора входящей надписи, включая соответствующий номер надписи, содержание надписи, размер, время создания, высоту создания, создателя, текущего владельца и т. д. 
    function getInscriptionById(uint256 inscriptionId) external view returns (bytes memory);
    //getInscriptionBySatNumber Получите информацию о надписи на основе входящего номера Сатоши
    function getInscriptionBySatNumber(uint256 satNumber) external view returns (bytes memory);
    //getCollection Получите коллекцию надписей на основе входящего серийного номера 
    function getCollection(uint256 ordinal) external view returns (bytes memory);
    //getInscriptionTransaction Получить информацию о транзакции записи на основе идентификатора входящей транзакции.
    function getInscriptionTransfer(bytes32 txHash) external view returns (string memory from, string memory to, uint256 satNumber, bytes memory txData);
}
3.6.3 Контракт запроса BRC-20

Контракт BRC-20 — это стандарт токена для ординалов, позволяющий пользователям определять, выпускать, передавать и другие операции. Адрес контракта: 0x00000000000000000000000000000000000000083

Язык кода:javascript
копировать
interface BRC20 {
    //getDeploy Получите информацию о развертывании токена на основе идентификатора входящей транзакции, включая имя токена, общий выпуск, единый лимит майнинга и т. д.
    function getDeploy(bytes32 txHash) external view returns (string memory token, uint256 totalSupply,uint256 limit);
    //getMint  Получите информацию о чеканке токена на основе идентификатора входящей транзакции, включая имя токена, минтер и количество чеканки.
    function getMint(bytes32 txHash) external view returns (string memory token,string memory owner, uint256 value);
    //getTransfer Получите информацию о передаче токена на основе идентификатора входящей транзакции, включая имя токена, адрес перевода, адрес перевода и сумму перевода.
    function getTransfer( bytes32 txHash) external view returns (string memory token,string memory from, string memory to, uint256 value);
}
3.6.4 Контракт BTC-ERC20

Контракт Биткойн ERC20, также известный как контракт WBTC, представляет собой завернутую форму Биткойна и соответствует стандарту интерфейса ERC20. Когда BTC заблокирован в сети Биткойн, контракт может чеканить соответствующее количество WBTC. Адрес контракта: 0x00000000000000000000000000000000000000084

Язык кода:javascript
копировать
interface BitcoinERC20 {
    // Встречайте ERC20
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    //Event
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    //mint Введите хеш транзакции заблокированного BTC и открытый ключ пользователя. После того, как система определит заблокированный из Биткойнсеть BTC, она может выпустить соответствующее количество WBTC на BxE на учетную запись, где находится соответствующий открытый ключ.
    function mint(bytes32 txHash,string memory pubkeyHex) external returns (bool);
}
3.6.5 Договор залога по государственному консенсусу

Контракт залога государственного консенсуса является основным компонентом консенсуса протокола BxE. Он позволяет пользователям закладывать BXET, чтобы стать верификатором, выполнять транзакции BxE в каждом новом блоке Биткойн, когда он генерируется, и отправлять результаты выполнения для формирования корня состояния. хеш и отправить его в сеть монет BitCoin. Пользователи без залогов не смогут участвовать в консенсусе штата и не получат никаких вознаграждений, даже если они отправят сообщения штата. Если валидатор совершит злодеяние и отправит неправильное сообщение о статусе, другие валидаторы сообщат о нем, и определенная сумма BXET будет вычтена. Адрес контракта: 0x00000000000000000000000000000000000000085

Язык кода:javascript
копировать
interface Pos {
    //stake Сделайте стейкинг BXET и станьте валидатором
    function stake() external;
    //unstake Подайте заявку на анстейк BXET
    function unstake() external ;
    //slash Наказать валидаторов и вычесть BXET
    function slash(address account, uint256 amount) external;
    //report отчет злодея
    function report(address account) external;
}
3.6.6 Другие контракты экологических запросов Биткойна

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

3.7 Дизайн токена BxE

BXET (биткойн) Он играет важную роль и в основном используется для оплаты комиссий за развертывание смарт-контрактов, вызовов контрактов, переводов BXET и т. д. Чтобы обеспечить совместимость BxE и Ethereum, структура комиссий BXET и Ethereum Gas единообразна, то есть, когда пользователи выполняют смарт-контракты на BxE, им необходимо заплатить определенную сумму BXET в качестве комиссии за обработку. BXET использует тот же алгоритм, что и Ethereum, в качестве комиссии за обработку. Часть ее уничтожается, а часть возвращается майнерам, которые согласовывают данные о статусе BxE. В транзакциях BxE цена за единицу газа по умолчанию равна 1 GWei. Транзакции ниже этой цены за единицу будут помечены как недействительные и не могут быть выполнены. Лимит газа для одной транзакции ограничен 15 000 000. Транзакции, превышающие этот лимит, будут помечены как недействительные и не могут быть выполнены.

3.7.1 Вычет комиссии за обработку для обычных транзакций

В качестве примера рассмотрим транзакции передачи. Предположим, что у пользователя A есть 2 BXET, и ему необходимо перевести 1 BXET пользователю B. Текущая цена за единицу газа равна 1. GWei, трансфер стоит 21 000 Газ, поэтому плата за обработку составляет: 21000*1*10^-9=0.000021BXET После того, как перевод будет успешно упакован и загружен в цепочку, на счету пользователя А останется 0,999979BXET, а баланс счета пользователя Б составит 1BXET.

3.7.2 Недействительные транзакции

Когда баланса BXET в учетной записи пользователя недостаточно для поддержки соответствующей транзакции (например, баланс учетной записи составляет только 1BXET, но создается транзакция перевода 2BXET) или баланс учетной записи недостаточен для оплаты соответствующей комиссии за лимит газа (например, , баланс счета составляет только 1BXET, но создается транзакция перевода 1BXET), остаток Когда баланса счета недостаточно для покрытия комиссии за обработку), транзакция может быть оценена и помечена как недействительная без исполнения. Недействительные транзакции не снимают BXET. Например, пользователь А имеет 1 BXET и переводит 0,999999 BXET пользователю B. Текущая цена за единицу газа равна 1. GWei, трансфер стоит 21 000 Газ, поэтому плата за обработку составляет: 21000*1*10^-9=0.000021BXET 0.999999BXET+0.000021BXET=1.00002BXET>1BXET Таким образом, перевод не состоится, данные о статусе останутся неизменными, а 1BXET останется в учетной записи пользователя А.

3.7.3 Сделка из-за отсутствия газа

Если лимит газа в транзакции, созданной пользователем, недостаточен для поддержки потребления газа, необходимого для работы EVM, транзакция будет помечена как Out. of Gas, статус контракта не будет обновлен, но баланс BXET пользователя будет списан. Если у пользователя А есть 1 BXET, ему необходимо вызвать определенный метод контракта и установить лимит газа на 100 000. Текущая цена за единицу газа равна 1. GWei, для успешного вызова фактического контракта требуется 110 000. Газ, поэтому вызов контракта вернется Out of Gas。 плата за обработкудля:100000*1*10^-9=0.0001BXET Последний вызов контракта завершается неудачно, данные о состоянии остаются неизменными, а на счету пользователя А останется 0,9999. BXET。

3.7.4 Награды за блокировку

BXET, который не был выпущен при запуске протокола BxE, будет иметь определенное количество вознаграждений за блок, прикрепленных к каждому блоку по мере увеличения высоты блока Биткойн, а затем будет добыт майнерами (отправителями данных о статусе, верификаторами). Например, последняя высота консенсуса состояния, представленная протоколом BxE, равна 840000, а вознаграждение за каждый блок составляет 3,125 BXET. Затем в следующих 840001, 840002... 840010 ни один валидатор BxE не отправил сообщение о состоянии, поэтому вознаграждение за блок. было Оно накопится до 3,125*10=31,25 BXET. Верификатор A подписывается на последний блок Биткойн на 840010, проверяет и выполняет все транзакции протокола BxE и создает сообщение о состоянии BxE:

Язык кода:javascript
копировать
{
    "Height":840010,
    "StateRoot":"0x12325436345...",
    "Reward":"31.25"
}

А сообщение о состоянии выгравировано в сети Биткойн через протокол Ordinals. Предполагая, что записанная транзакция упакована в блоке 840011, тогда все узлы BxE проверят достоверность сообщения о состоянии и достоверность верификатора. Если оно действительно, к адресу верификатора A будет добавлено вознаграждение в размере 31,25.

3.7.5 Распределение вознаграждения за консенсус штата

В дополнение к упомянутым выше вознаграждениям за производство блоков протокол BxE также имеет вознаграждения за восстановление комиссии за транзакцию Gas. Когда пользователи платят комиссию Gas, эта часть комиссии будет собираться в специальный пул вознаграждений с использованием того же алгоритма, что и Ethereum Gas, а затем распределяться валидаторами государственного консенсуса по определенным правилам.

  1. Вознаграждение за восстановление комиссии за газ распределяется вместе с вознаграждением за блок. Продолжая использовать предыдущий пример вознаграждения за блок, предположим, что на 840009 есть транзакция BxE, комиссия за газ составляет 0,001BXET и нет сжигаемой части. Затем эта часть комиссии за обработку будет собрана в пул вознаграждений, а затем, когда верификатор А отправит сообщение о состоянии, эта часть вознаграждения будет распределена верификатору А. Сообщение о состоянии, отправленное валидатором A, имеет следующий вид:
Язык кода:javascript
копировать
{
    "Height":840010,
    "StateRoot":"0x12325436345...",
    "Reward":"31.251"
}
  • Награда, полученная аккаунтом валидатора А, составляет: 31,25 вознаграждения за блок + 0,001 вознаграждения за переработку газа = 31,251.
  1. Несколько валидаторов поровну делят вознаграждение Если несколько валидаторов отправляют сообщения о состоянии, и эти сообщения о состоянии упаковываются в один и тот же блок, то эти валидаторы разделят вознаграждение поровну. Например, если верификатор Б отправляет одно и то же статусное сообщение, а надпись сообщения и сообщение верификатора А упакованы в один и тот же блок 840011, то верификатор А и верификатор Б разделят это вознаграждение поровну.
  • Награда, полученная аккаунтом верификатора А, составляет: 31,251/2=15,6255.
  • Награда, полученная аккаунтом верификатора B, составляет: 31,251/2=15,6255.
  1. Отсутствие вознаграждения за несвоевременную отправку валидаторов Если проверочное сообщение для той же высоты блока было упаковано в предыдущий блок, то за последующее статусное сообщение больше не будет вознаграждения. Например, верификатор C также отправил то же сообщение о состоянии. Но эта надпись сообщения упакована на 840012, что позже статусных сообщений верификатора А и верификатора Б, тогда верификатор С не получит никакого вознаграждения.
  • Награда, полученная аккаунтом верификатора А, составляет: 31,251/2=15,6255.
  • Награда, полученная аккаунтом верификатора B, составляет: 31,251/2=15,6255.
  • Награда, полученная аккаунтом верификатора C, составляет: 0
  1. В зависимости от максимальной высоты Если одна и та же высота блока содержит надписи нескольких статусных сообщений, а высота блока, соответствующая этим надписям, различна, то наибольшая высота будет преобладать, и за отправку статуса на другой высоте вознаграждение не будет. Взяв в качестве примера предыдущий пример, верификатор A отправил данные статуса высотой 840010: Сообщение о состоянии, отправленное валидатором A, имеет следующий вид:
Язык кода:javascript
копировать
{
    "Height":840010,
    "StateRoot":"0x12325436345...",
    "Reward":"31.251"
}

Верификатор B предоставил данные о состоянии высотой 840009, а их содержимое следующее:

Язык кода:javascript
копировать
{
    "Height":840009,
    "StateRoot":"0xabcdef...",
    "Reward":"28.126"
}

Затем обе надписи были упакованы в блок 840011, после чего вознаграждения, полученные двумя валидаторами, распределяются как:

  • Награда, полученная аккаунтом валидатора А, составляет: 31.251.
  • Награда, полученная аккаунтом верификатора B, составляет: 0

3.8 Генерация и внедрение транзакций BxE

Когда пользователю необходимо передать BXET, создать контракт EVM или вызвать контракт EVM, ему необходимо создать транзакцию Ethereum и выполнить для нее кодирование RLP (эта возможность предоставляется инструментами, связанными с Ethereum). Далее пользователю не нужно подписывать закодированную транзакцию Ethereum, а помещает данные транзакции в протокол Ordinals для построения сценария записи и соответствующего адреса P2TR. Далее пользователь переводит определенное количество BTC на адрес P2TR, и транзакция перевода BTC может транслироваться. Наконец, пользователю не нужно ждать подтверждения упаковки сети Биткойн. Пользователь может снова создать транзакцию с адреса P2TR на свой собственный адрес, вписать сценарий, содержащий транзакцию Ethereum, в сеть Биткойн, и пользователь подписывает. и транслирует транзакцию. Когда две транзакции упаковываются в блоки сетью Биткойн, все узлы BxE подписываются на соответствующие новые блоки и транзакции, анализируют и выполняют транзакции Ethereum в них, завершая обновление данных о состоянии каждого узла BxE.

3.9 Совместимость BxE с экосистемой Ethereum

Протокол BxE предоставляет услуги внешнего шлюза, совместимые с интерфейсом Ethereum JSON-RPC. Пользователи могут запрашивать статус контракта и результаты выполнения на узле BxE через шлюз.

Основными преимуществами данной конструкции являются:

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

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

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

Через службу шлюза он предоставляет внешним приложениям интерфейс, полностью совместимый с экосистемой Ethereum, что позволяет легко переносить существующие dApps на платформу BxE.

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

4. Экономическая модель токена BXET

4.1 Механизм выпуска токенов

BXET (биткойн), на долю которого приходится 93% от общего объема выпуска, а оставшиеся примерно 7% будут добываться постепенно по мере увеличения высоты блока биткойнов. Соответственно, когда протокол BxE выйдет в онлайн, он выдаст единовременное количество BXET, равное количеству BTC на тот момент, а оставшиеся примерно 10% BXET будут постепенно добыты вместе с вознаграждением за блок в биткойнах.

Для этого единовременного выпуска примерно 19,7 миллионов BXET до запуска протокола BxE команда проекта привязала его к цепочке Биткойн и цепочке Ethereum через BRC-20 и ERC20 и перенесла на платформу BxE после экосистемы BxE. бегал.

4.2 Использование токена

BXET будет использоваться в качестве токена оплаты комиссии за газ на платформе BxE для оплаты развертывания смарт-контрактов, вызова контрактов и других комиссий за обработку. Кроме того, BXET также будет использоваться в качестве залогового актива для государственного консенсуса PoS. Заложив BXET, вы можете получить квалификацию государственного верификатора и участвовать в последующем майнинге BXET. Кроме того, BXET также участвует в голосовании по управлению сообществом в качестве доказательства прав и интересов экосистемы.

4.3 Плата за газ и механизм стимулирования

Как и в случае с Ethereum, использование смарт-контрактов на платформе BxE требует определенной комиссии за газ, которая конвертируется в соответствующую сумму BXET и списывается со счета пользователя на основе текущей цены на газ. После того, как транзакция BxE будет упакована, часть газа будет напрямую уничтожена, а оставшийся газ будет добыт майнерами-валидаторами вместе с вознаграждением за блок.

5. Пример

5.1 Процесс переноса токена BRC-20 в BxE

Протокол BxE поддерживает передачу токена BRC-20 в BxE и существует в форме токена ERC20.

Чтобы реализовать обмен BRC-20 на ERC20, необходимо определить адрес блокировки. Адрес блокировки может быть адресом черной дыры. Если адрес черной дыры используется в качестве адреса блокировки, тогда используется односторонний токен BRC-20. будет передан в протокол BxE и существует в виде токена ERC20. Если вы хотите реализовать двустороннюю передачу токена BRC-20 в протокол BxE, вы можете использовать адрес с мультиподписью или доверенный адрес в качестве адреса блокировки.

Известный как BRC-20 ORDIдляпример,перейти кBxEпротокол Процесс заключается в следующем:

  1. Напишите и разверните контракт токена WORDI (Wrapped ORDI), соответствующий спецификации ERC20, для BxE. Первоначальный выпуск этого контракта равен 0 и имеет метод монетного двора.
  2. Пользователь А хранит определенное количество m ORDI, создает транзакцию передачи ORDI, переводит n ORDI на заблокированный адрес и записывает хеш транзакции заблокированного ORDI.
  3. Инициируйте транзакцию на BxE, которая вызывает метод mint контракта WORDI, и передайте в качестве параметра хеш транзакции, который заблокировал ORDI на предыдущем шаге.
  4. Транзакция монетного двора пользователя упаковывается в Биткойнсеть, а узел BxE выполняет логику монетного двора контракта: a. Определите, обрабатывался ли хеш транзакции ранее, и верните ошибку, если он был обработан. b. Вызовите метод getTransfer системного контракта BRC-20 0x000000000000000000000000000000000000003 для всех контрактов, чтобы получить инициатора заблокированной транзакции, количество заблокированных токенов и символ заблокированных токенов. c. Определите, является ли символ заблокированного токена ORDI, если нет, будет возвращена ошибка. d. Определите, является ли адрес получателя токена заблокированным адресом, если нет, будет возвращена ошибка. e. вызовERC20Собственный метод чеканкиfunction _mint(address to, uint256 amount),Токен WORDI, соответствующий заблокированной сумме, создается для инициатора заблокированной транзакции.

5.2 Процесс перехода с BTC на BxE

Протокол BxE поддерживает передачу BTC в BxE в форме токена ERC20 (WBTC).

Чтобы реализовать обмен BTC на ERC20, необходимо определить адрес блокировки. Адрес блокировки может быть адресом черной дыры. Если адрес черной дыры используется в качестве адреса блокировки, то односторонний адрес BTC будет передан в систему. Существует протокол BxE для формы токена ERC20 (WBTC). Если вы хотите реализовать двустороннюю передачу BTC по протоколу BxE, вы можете использовать адрес с мультиподписью или доверенный адрес в качестве адреса блокировки.

Ниже приведен процесс перехода BTC на протокол BxE:

  1. Пользователь А владеет определенной суммой m BTC, создает транзакцию передачи BTC, переводит n BTC на заблокированный адрес и записывает хеш транзакции заблокированного BTC.
  2. Инициируйте транзакцию на BxE, которая вызывает метод mint системного контракта BTC-ERC20, и передайте хеш транзакции BTC, заблокированный на предыдущем шаге, в качестве параметра.
  3. Транзакция монетного двора пользователя упаковывается в Биткойнсеть, а узел BxE выполняет логику монетного двора контракта: a. Определите, обрабатывался ли хеш транзакции ранее, и верните ошибку, если он был обработан. b. Вызовите метод getTransaction системного контракта BTC 0x000000000000000000000000000000000000001 для всех контрактов, чтобы получить адрес инициатора, адрес получателя платежа и сумму заблокированных BTC заблокированной транзакции. c. Определите, является ли адрес получателя платежа BTC заблокированным адресом, в противном случае будет возвращена ошибка. d. Определите, превышает ли заблокированная сумма BTC ноль, если нет, будет возвращена ошибка. e. вызов Собственный метод чеканкиfunction _mint(address to, uint256 amount),Соответствующая заблокированная сумма WBTC чеканится для инициатора заблокированной транзакции.

Логика чеканки WBTC следующая:

Подвести итог

Протокол BxE основан на протоколе Ordinals и реализует поддержку EVM виртуальной машины Ethereum в собственной сети Биткойн (уровень 1), что позволяет сети Биткойн поддерживать смарт-контракты, полные по Тьюрингу. BxE соединяет экосистему Биткойн со своей собственной EVM и может внедрять в EVM коллекции Ordinals, BRC-20 и другую экологию Биткойна, обеспечивая децентрализованную ликвидность в экосистеме Биткойн.

Ниже приведены основные преимущества протокола BxE:

  1. Безопасность и децентрализация: протокол BxE основан на протоколе Bitkinset Ordinals, унаследовав функции высокой безопасности и децентрализации Биткойна. Никаких новых рисков не возникнет, поскольку обновления существующих приложений не требуются.
  2. Функциональная совместимость: проект BxE стремится открыть основные среды Биткойнсети, такие как порядковые надписи, BRC-20 и т. д., и реализовать бесшовное соединение биткойнских надписей, доменных имен, NFT, BRC-20 и других сред, обеспечивая пользователей с большим выбором и удобством.
  3. Масштабируемость: внедряя EVM в Биткойнсеть, протокол BxE может воспользоваться преимуществами Тьюринг-полных функций EVM и ввести такие функции, как уровень 2 и машины оракула, тем самым обеспечивая хорошую масштабируемость и высокую пропускную способность для удовлетворения потребностей приложений различного масштаба.
  4. Экологичность ЭфириумWeb3: BxEпротокол использует EVM в качестве среды выполнения смарт-контрактов, а предоставляя шлюз, совместимый с ЭфириумJsonrpc, BxEпротокол предоставляет пользователям возможности Web3.0 и больше сценариев применения, сравнимых с Эфириумом в Биткойнсети.
  5. Снижение комиссий за передачу токенов: оптимизируя процесс транзакции, BxEпротокол снижает комиссию пользователя за передачу токенов, удешевляя пользователям выполнение транзакций по передаче.
  6. Богатый дизайн системных контрактов. Платформа BxE предварительно установила ряд системных контрактов, таких как запрос Биткойн, запрос порядковых номеров, запрос BRC-20 и т. д., которые предоставляют внешним контрактам EVM возможность запрашивать данные в цепочке Биткойн и обеспечивают dApps на BxE со смарт-контрактом обеспечивает мост для взаимодействия и стыковки с другими экосистемами Биткойн.
  7. Экономическая модель токена: BXET является основным зашифрованным цифровым активом экосистемы BxE, общий выпуск BXET синхронизируется с Биткойнсетью, обеспечивая дефицит и стабильность стоимости токена. В то же время BXET используется в качестве токена оплаты комиссии за газ внутри платформы и в качестве залогового актива для государственного консенсуса PoS для участия в голосовании по управлению сообществом.
  8. Совместимость с экосистемой Эфириум: протокол BxE предоставляет услуги внешнего шлюза, совместимые с интерфейсом Эфириум JSON-RPC, что позволяет легко переносить существующие dApps на платформу BxE, используя все преимущества безопасности и децентрализации Биткойнсеть.

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

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.