Токены стандарта ERC-20 относятся к категории цифровых активов, которые работают на блокчейне Ethereum. Ethereum Request for Comments 20 - это технический стандарт, который определяет набор правил и протоколов для создания и функционирования на блокчейне Eth. Этот стандарт обеспечивает совместимость и взаимодействие различных токенов, созданных на основе данного стандарта в экосистеме.
ERC-20 был предложен в 2015 году Виталиком Бутериным и Фабианом Вагнером. Он стал одним из наиболее популярных и широкоиспользуемых стандартов для создания токенов на блокчейне Ethereum.
- Протокол обеспечивает стандартизированный интерфейс, что позволяет им взаимодействовать с другими контрактами и кошельками на блокчейне. Это означает, что они могут быть легко интегрированы в различные децентрализованные приложения (DApps) и обменные платформы.
- Разработка и выпуск токенов такого стандарта обычно требует от разработчиков только написания "умного контракта" на языке Solidity, который определяет основные параметры и функции. Это делает процесс создания относительно простым и доступным для широкого круга разработчиков.
- Данный стандарт обеспечивает общие функции для работы, такие как передача, получение баланса, проверка общего количества и др. Это позволяет легко создавать стандартизированные кошельки и обменные платформы, которые могут поддерживать любые токены ERC-20 без необходимости интеграции с каждым отдельным.
- Благодаря этому стандарту, они могут свободно перемещаться между различными платформами и кошельками, которые поддерживают этот стандарт. Это способствует ликвидности и улучшает возможности торговли на различных биржах и децентрализованных финансовых платформах.
- Большинство криптовалютных бирж и кошельков поддерживают этот стандарт, что обеспечивает легкость интеграции и удобство использования для пользователей. Это также способствует быстрому распространению и адаптации в криптовалютной экосистеме.
Существует множество различных криптовалютных протоколов, каждый из которых создан с определенной целью. Например, Ripple (XRP) создан для обеспечения бесперебойных платежей, а Cardano (ADA) - для обеспечения безопасных и устойчивых смарт-контрактов.
Как создаются токены ERC-20
ERC-20 создаются путем разработки и развертывания "умного контракта" на блокчейне Ethereum. Разработчики определяют параметры и функции, создавая "умный контракт" на языке программирования Solidity. В умном контракте определяются основные аспекты, такие как общее количество монет, символ (например, ETH, DAI, OMG), точность (количество знаков после запятой) и другие параметры. Они определяют функции, которые позволяют управлять токенами. Обычно это включает функции передачи, получения баланса, проверки общего количества и другие, которые могут быть специфичными для проекта. После разработки умного контракта разработчики должны развернуть его на блокчейне эфириума. Это делается путем развертывания контракта на сети с использованием инструментов, таких как Ethereum Development Kit (Truffle) или Remix IDE. При развертывании контракта разработчики должны заплатить газовые сборы, которые являются комиссией, уплачиваемой за вычислительные ресурсы блокчейна. Чем сложнее и больше контракт, тем выше газовые сборы. После развертывания умного контракта важно провести тщательное тестирование и, по возможности, аудит контракта. Это поможет обнаружить и исправить потенциальные уязвимости и ошибки, которые могут повлиять на безопасность и надежность контракта. После успешного развертывания и тестирования, они могут быть распространены с помощью вызова функции "передачи" в контракте. Это позволяет создателю контракта отправить активы на адреса пользователей или использовать другие способы распределения, предусмотренные контрактом.
После создания активы могут быть отправлены, получены, обменены на криптовалютных биржах или использованы в децентрализованных приложениях. Главное помнить, что при создании необходимо учитывать некоторые меры безопасности, так как ошибки в контракте могут привести к потере средств или другим серьезным последствиям. Поэтому рекомендуется провести тщательное тестирование и аудит перед развертыванием.
Функция | Описание |
---|---|
totalSupply | Возвращает общее количество выпущенных токенов |
balanceOf | Возвращает баланс на определенном адресе |
transfer | Передает определенное количество другому адресу |
transferFrom | Передает с одного адреса на другой с разрешения владельца |
approve | Дает разрешение на передачу от имени владельца |
allowance | Возвращает количество, разрешенных для передачи |
increaseAllowance | Увеличивает разрешенное количество для передачи |
decreaseAllowance | Уменьшает разрешенное количество для передачи |
Многие криптовалютные протоколы разработаны на основе открытого исходного кода, что позволяет любому желающему ознакомиться с их структурой и функциональностью.
Взаимозаменяемые и не взаимозаменяемые токены
Взаимозаменяемые (Fungible tokens) которые могут быть взаимозаменяемыми и равнозначными между собой. Они идентичны друг другу и не имеют уникальных характеристик или свойств. Каждый в данной категории полностью взаимозаменяем с другими того же типа. Простым примером взаимозаменяемых токенов является цифровая валюта, такая как Bitcoin (BTC) или Ethereum (ETH). Если у вас есть 1 BTC, и кто-то дает вам еще 1 BTC, то оба будут абсолютно идентичны и одинаково ценны.
Не взаимозаменяемые (Non-Fungible tokens, NFT) имеют уникальные характеристики или свойства, что делает их не заменимыми другими токенами. Каждый токен в данной категории имеет свой уникальный идентификатор (ID) и отличается от других того же типа. Примерами не взаимозаменяемых токенов являются крипто-коллекционные предметы, цифровые произведения и виртуальные активы, такие как CryptoKitties или художественные работы на блокчейне Ethereum. У каждого NFT есть уникальные свойства, и каждый может иметь разную ценность, историю владения и другие характеристики.
ERC-20
ERC-20 (Ethereum Request for Comments 20) - определяет набор правил и интерфейсов, которые должны быть соблюдены при создании на основе этого стандарта. Он был предложен в 2015 году и стал самым распространенным стандартом для создания на блокчейне Ethereum. Стандарт определяет основные функции и методы, которые должны быть реализованы в умном контракте. Он определяет функции для получения баланса на определенном адресе (balanceOf) и для передачи с одного адреса на другой (transfer). Предоставляет функцию (totalSupply), которая возвращает общее количество выпущенных токенов в системе. Позволяет определить количество десятичных знаков, чтобы обеспечить гибкость при представлении его стоимости или количества. Стандарт определяет функцию (symbol), которая возвращает символ или обозначение (например, ETH, DAI, OMG). Предоставляет функцию (name), которая возвращает полное имя. Стандарт включает функции, позволяющие владельцу разрешить другому адресу передачу от его имени (approve, transferFrom).
Существует несколько различных методов консенсуса, используемых в разных протоколах. Например, Bitcoin использует "Proof of Work" (доказательство выполнения работы), в то время как Ethereum переходит на "Proof of Stake" (доказательство доли) в своем обновлении Ethereum 2.0.
ERC-721
ERC-721 (Ethereum Request for Comments 721) - это стандарт не взаимозаменяемых токенов (Non-Fungible Tokens, NFT). В отличие от стандарта ERC-20, ERC-721 предоставляет стандарт для создания и управления уникальными и не взаимозаменяемыми. ERC-721 был предложен в 2017 году и стал популярным в контексте цифровых коллекционных предметов, игр и искусства на блокчейне. Каждый токен, созданный в соответствии с ERC-721, имеет уникальный идентификатор (ID) и может иметь свои уникальные свойства, характеристики и метаданные. Стандарт определяет функции для передачи владения между адресами. Это позволяет пользователям покупать, продавать и обменивать NFT. Позволяет владельцам включать метаданные и дополнительную информацию, такую как название, описание, изображения, видео и другие атрибуты. Это помогает создавать уникальные цифровые предметы и произведения искусства. Стандарт предоставляет возможность генерации событий, которые позволяют отслеживать операции, такие как создание, передача и продажа.
ERC-777
ERC-777 (Ethereum Request for Comments 777) - это стандарт который расширяет функциональность стандарта ERC-20. Предложен в качестве улучшения и предоставляет более гибкие и продвинутые возможности для управления. Стандарт ERC-777 позволяет отправлять токены, которые представляют события. Это означает, что отправка может вызывать выполнение функций (callback) в контракте-получателе, что открывает новые возможности для более сложных и автоматизированных сценариев. Предоставляет возможность настроить функцию передачи, что позволяет включить дополнительные параметры и контекст, связанные с операцией передачи. Это может быть полезно для учета данных, определения дополнительных правил и проверок. Стандарт позволяет управлять правами операторов для выполнения действий от имени владельца. Владелец может разрешить другим адресам действовать от его имени, что может быть полезно для делегирования операций и управления активами. ERC-777 совместим с ERC-20, что означает, что контракты, разработанные для ERC-20, могут работать и с ERC-777 без необходимости изменений.
ERC-223
ERC-223 (Ethereum Request for Comments 223) предложен в качестве улучшения над стандартом ERC-20. ERC-223 представляет собой промежуточное решение между ERC-20 и ERC-777, призванное решить некоторые проблемы и недостатки. Одной из главных проблем ERC-20 является возможность потери токенов при их отправке на адрес контракта, который не имеет обработчика. В случае с ERC-223, контракты могут проверять, поддерживает ли адрес-получатель функцию обработки, и в случае отсутствия такой функции, транзакция отклоняется, что предотвращает потерю активов. Позволяет отправлять монеты с использованием одной и той же транзакции для выполнения обработки на контракте-получателе. Это позволяет экономить газовые сборы. Совместим с ERC-20, что означает, что контракты могут работать и с ERC-223 без необходимости внесения изменений. Также предлагает более безопасную передачу, предотвращая случайное отправление на адреса контрактов без обработчика. Это снижает риски, связанные с потерей активов.
ERC-1155
ERC-1155 (Ethereum Request for Comments 1155) - это стандарт мульти-токенов для создания и управления различными типами, включая как взаимозаменяемые (Fungible Tokens), так и не взаимозаменяемые (Non-Fungible Tokens, NFT), в рамках одного умного контракта. Позволяет создавать и управлять разными типами в рамках одного контракта. Это снижает затраты на газ и оптимизирует использование пространства на блокчейне, поскольку один контракт может управлять несколькими типами. Позволяет создавать как взаимозаменяемые, так и не взаимозаменяемые токены, а также комбинированные варианты. Это дает разработчикам большую гибкость в создании различных типов активов, игровых предметов, коллекционных предметов и других цифровых активов. ERC-1155 позволяет выполнять пакетные операции, включая одновременную передачу или обмен несколькими токенами разных типов. Стандарт поддерживает генерацию событий, позволяющих отслеживать операции, такие как создание, передача и обмен. Он также предоставляет возможность добавлять метаданные и дополнительную информацию о каждом, такие как имя, описание, изображения и другие атрибуты.
Благодаря децентрализованной природе криптовалют и их протоколов, согласованные правила используются для определения, какие транзакции действительны. Это происходит путем майнеров или узлов сети, обеспечивая консенсус.
В чем разница
Параметр | ERC-20 | ERC-721 | ERC-777 | ERC-223 | ERC-1155 |
---|---|---|---|---|---|
Взаимозаменяемость | Взаимозаменяемые (Fungible), одинаковая стоимость каждого | Не взаимозаменяемые (Non-Fungible), каждый уникален и имеет свою уникальную стоимость | Взаимозаменяемые (Fungible) и не взаимозаменяемые (Non-Fungible), возможность разделения на доли | Взаимозаменяемые (Fungible), но с дополнительными функциями безопасности | Взаимозаменяемые (Fungible) и не взаимозаменяемые (Non-Fungible), возможность комбинирования разных типов |
Уникальность токенов | Все одинаковые | Каждый уникален | Некоторые могут иметь дополнительные функции или особенности | Все одинаковые | Могут быть взаимозаменяемыми или не взаимозаменяемыми |
Поддержка обработчиков (Hooks) | Нет | Нет | Да | Да | Да |
Отправка токенов | Отправка требует двух транзакций | Отправка требует одной транзакции | Отправка требует одной транзакции | Отправка требует одной транзакции | Отправка требует одной транзакции |
Проверка адреса-получателя | Нет | Нет | Нет | Да | Да |
Генерация событий | Да | Да | Да | Да | Да |
Метаданные | Ограниченные | Полные | Ограниченные | Ограниченные | Полные |
Атомарные свопы
Атомарные свопы (Atomic Swaps) - это механизм, который позволяет двум сторонам обменивать криптовалюты напрямую и без необходимости доверия к третьей стороне или централизованной бирже. Это инновационная технология, которая основана на умных контрактах блокчейна и использует его для обеспечения безопасности и надежности сделок. Основной принцип заключается в том, что обе стороны соглашаются на обмен активами в рамках одной транзакции, которая либо происходит полностью, либо не происходит вообще. То есть, обмен происходит "атомарно", что означает, что он либо выполняется полностью и успешно, либо не выполняется вовсе, без возможности потери средств одной из сторон. Для реализации используются умные контракты, которые выполняют определенные условия для успешного завершения сделки. Условия могут включать проверку хэшей, временных блокировок или секретных ключей. Если все условия выполнены, то обмен активами происходит автоматически и немедленно.
Поскольку обмен происходит напрямую между участниками и использует умные контракты, нет необходимости доверять третьим сторонам или централизованным биржам. Это снижает риски мошенничества и потенциальных уязвимостей безопасности. Атомарные свопы выполняются на блокчейне, что означает, что они не требуют централизованного посредника. Это способствует децентрализации и уменьшает зависимость от централизованных платформ. Они позволяют обмениваться активами без раскрытия личных данных или истории транзакций. Участники могут сохранять свою приватность, в то время как совершают обмен.
Недостатки токенов ERC-20
- Когда транзакция отправлена, она не может быть отменена или отозвана. Это означает, что если средства были отправлены по ошибке или на неправильный адрес, их нельзя вернуть без согласия получателя. Это может привести к потере средств, если пользователь допускает ошибку при отправке.
- Хранятся в адресах кошельков, и если пользователь потеряет свой приватный ключ или доступ к своему кошельку, то доступ к активам тоже будет потерян. Восстановление доступа может быть сложным или даже невозможным, особенно если не были предприняты меры безопасности, такие как создание резервных копий приватных ключей.
- Стандарт предоставляет базовый набор функций для работы с токенами, таких как передача, проверка баланса и получение информации. Однако для некоторых сценариев, таких как взаимодействие с контрактами или выполнение дополнительных операций, может потребоваться дополнительная разработка и реализация дополнительных функций.
- При отправке необходимо оплатить плату в сети. В периоды высокой загруженности сети или при росте цен на газ, комиссии могут значительно возрасти. Это может сделать отправку небольших сумм неэкономически выгодной или недоступной для некоторых пользователей.
- В некоторых случаях контракты могут содержать уязвимости, которые могут быть использованы злоумышленниками для атак или мошенничества. Несмотря на то, что эфириум и сообщество разработчиков активно работают над повышением безопасности и аудитом контрактов, существует риск уязвимостей или ошибок в контрактах ERC-20, особенно если они не были должным образом протестированы или проверены.