Токен-стандарт: ERC-20, ERC-721, BEP-20 и другие распространённые типы

Токен-стандарт: ERC-20, ERC-721, BEP-20 и другие распространённые типы

Токен-стандарт — это опубликованная спецификация, письменный набор требований к интерфейсу смарт-контракта, который создаёт токены. Интерфейс — это функции и события контракта. Программное обеспечение, написанное для этого интерфейса, может работать с любым контрактом, который ему следует. Токен — это единица, выпускаемая в существующем блокчейне с помощью смарт-контракта — программы, хранящейся в этом блокчейне.

Что определяет токен-стандарт, а что оставляет открытым?

Токен-стандарт определяет интерфейс токен-контракта — смарт-контракта, который создаёт и отслеживает токены. Интерфейс перечисляет функции, которые предоставляет токен-контракт, что принимает и возвращает каждая функция, а также события, которые токен-контракт записывает.

Функция — это именованная операция, которую предоставляет токен-контракт и которую может вызвать транзакция или другой контракт. Транзакция — это запрос, который пользователь отправляет в блокчейн, например запрос на перемещение токена. Блокчейн — это общая запись, в которую новые записи добавляются одна за другой. Событие — это уведомление, которое токен-контракт записывает в блокчейн при изменении состояния, чтобы программное обеспечение могло отслеживать это изменение.

Например, стандарт может объявлять функцию, которая возвращает баланс адреса, и функцию, которая перемещает токены на другой адрес. Адрес — это идентификатор в блокчейне для пользователя или смарт-контракта. Баланс — это количество токенов, которыми владеет адрес.

Примечательно, что ERC-20, ERC-721, ERC-1155 и BEP-20 не определяют никаких прав, связанных с токеном, или его юридический статус. Они также не определяют содержание токена — то есть данные или файлы, на которые ссылается токен, — или остальной код токен-контракта, оставляя содержание и остальной код на усмотрение автора токен-контракта. Токен-стандарт не создаёт токены — их создаёт токен-контракт, который следует этому стандарту.

Зачем нужны токен-стандарты?

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

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

Что определяют ERC-20, ERC-721, ERC-1155 и BEP-20?

ERC-20, ERC-721, ERC-1155 и BEP-20 — это 4 примера токен-стандартов. Взаимозаменяемость означает, что единицы токена являются взаимозаменяемыми, то есть одна единица равнозначна другой. Невзаимозаменяемость означает, что токен-контракт отличает каждый токен от остальных, поэтому никакие два токена не являются взаимозаменяемыми. В статье глоссария «Невзаимозаменяемый токен (NFT)» объясняется понятие невзаимозаменяемого токена.

Что определяет ERC-20?

ERC-20 — это стандарт для взаимозаменяемых токенов в сети Ethereum. Токен-контракт, следующий ERC-20, хранит баланс для каждого адреса, а его интерфейс включает функцию balanceOf, которая возвращает баланс адреса, и функцию transfer, которая перемещает токены на другой адрес. Функция approve позволяет одному адресу разрешить второму адресу, называемому расходующим (spender), перемещать токены с баланса первого адреса в пределах определённой суммы за один или несколько переводов. Функцию transferFrom вызывает именно расходующий адрес для перемещения этих токенов, а функция allowance возвращает сумму, которую расходующий адрес ещё может переместить. События Transfer и Approval сообщают о переводе и о разрешении соответственно, и ни одна функция ERC-20 не оперирует идентификатором токена (token ID), что отличает ERC-20 от ERC-721 и ERC-1155.

Что определяет ERC-721?

ERC-721 — это стандарт для невзаимозаменяемых токенов в сети Ethereum. Токен-контракт, следующий ERC-721, присваивает каждому токену идентификатор токена (token ID) — число, которое отличает данный токен от остальных токенов в этом токен-контракте. Токен-контракт также фиксирует, какой адрес управляет каждым идентификатором токена. ERC-721 использует некоторые общие с ERC-20 названия, например balanceOf и Transfer.

Что определяет ERC-1155?

ERC-1155 — это стандарт для токен-контракта, который управляет несколькими типами токенов в сети Ethereum, и его официальное название — «Multi Token Standard» («Мультитокенный стандарт»). В ERC-1155 идентификатор токена обозначает тип токена — один из видов токенов, которыми управляет токен-контракт, а функции перевода принимают идентификатор токена в качестве параметра. Стандарт также определяет пакетные (batch) функции, которые принимают списки идентификаторов токенов и сумм, что позволяет одним вызовом указать сразу несколько типов токенов. ERC-20 охватывает взаимозаменяемые токены, а ERC-721 — невзаимозаменяемые, тогда как ERC-1155 допускает взаимозаменяемые токены, невзаимозаменяемые токены или оба типа в рамках одного контракта.

Что определяет BEP-20?

BEP-20 — это токен-стандарт для BNB Smart Chain, блокчейна, отдельного от Ethereum. BEP-20 описывает стандартный интерфейс для токен-контрактов в этой сети, и текст BEP-20 перечисляет те же названия функций и событий, что и ERC-20. В тексте BEP-20 указано, что BEP-20 является производным от ERC-20.

Чем отличаются ERC-20, ERC-721, ERC-1155 и BEP-20?

ERC-20, ERC-721, ERC-1155 и BEP-20 различаются тем, что представляет собой единица токена, что именно отслеживает токен-контракт и где специфицирован сам стандарт.

Стандарт

Что представляет собой единица

Что отслеживает токен-контракт

Где он специфицирован

ERC-20

Одна единица взаимозаменяемого токена, равнозначная любой другой такой единице

Баланс для каждого адреса, а также allowances — суммы, которые расходующий адрес ещё может переместить

Текст ERC-20, написанный для Ethereum

ERC-721

Один невзаимозаменяемый токен, отличаемый по идентификатору токена

Адрес, который управляет каждым идентификатором токена

Текст ERC-721, написанный для Ethereum

ERC-1155

Один токен определённого типа, которым управляет токен-контракт, — взаимозаменяемый или нет

Баланс для каждой пары «адрес — идентификатор токена»

Текст ERC-1155, написанный для Ethereum

BEP-20

Один токен, выпущенный токен-контрактом в сети BNB Smart Chain

Функция balanceOf, указанная под тем же названием, что и в ERC-20

Текст BEP-20, написанный для BNB Smart Chain, в котором перечислены те же названия функций и событий, что и в ERC-20

ERC-20 против ERC-721: что отслеживает контракт?

ERC-20 и ERC-721 различаются тем, что представляет собой единица, и тем, что отслеживает токен-контракт. Единица ERC-20 — это одна из множества взаимозаменяемых единиц, и токен-контракт отвечает на вопрос, сколько единиц удерживает данный адрес. Единица ERC-721 — это отдельный токен с идентификатором, и токен-контракт отвечает на вопрос, какой адрес управляет данным идентификатором токена. В статье глоссария «ERC-721» перечислены функции и события ERC-721.

BEP-20 и ERC-20: как они связаны?

Согласно тексту BEP-20, этот стандарт является производным от ERC-20, и он написан для BNB Chain (Binance Smart Chain), в то время как ERC-20 написан для Ethereum. В тексте BEP-20 указано, что функции symbol и decimals являются обязательными, тогда как в тексте ERC-20 они отмечены как необязательные. В тексте BEP-20 также говорится, что BEP-20 расширяет ERC-20 для кросс-чейн-переводов, то есть переводов токенов из одного блокчейна в другой. Эта статья глоссария не описывает, как именно работает такой перевод.

Как пишутся токен-стандарты и для каких блокчейнов?

Токен-стандарт для Ethereum оформляется как Ethereum Improvement Proposal (EIP) — проектный документ для сообщества Ethereum. ERC — это категория EIP, определяющих стандарты для приложений, в том числе токен-стандарты. EIP проходит через стадии, определённые в EIP-1, такие как «Draft» (черновик) и «Review» (рассмотрение), а EIP, принятый в качестве стандарта, получает статус «Final» (окончательный).

Каждый из стандартов ERC-20, ERC-721, ERC-1155 и BEP-20 написан для конкретного блокчейна. Тексты ERC-20, ERC-721 и ERC-1155 указывают Ethereum, а текст BEP-20 — BNB Evolution Proposal (BEP) — написан для BNB Smart Chain. Другие блокчейны могут публиковать собственные токен-стандарты.

Могут ли два контракта, следующих одному стандарту, всё же различаться?

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

В тексте ERC-20 функции name, symbol и decimals отмечены как необязательные. В текстах ERC-721 и ERC-1155 описано необязательное расширение метаданных, где метаданные — это данные, описывающие токены. Расширение ERC-721 добавляет три функции, а расширение ERC-1155 добавляет одну функцию — uri.

27 ноября 2025 г.

Новости GoMining

Вам может быть интересно: