что такое стандарт erc 20
Больше, чем валюта. Зачем нужны токены стандарта ERC-20
Токен ERC-20 — это обобщенный протокол, позволяющий создавать другие токены «поверх» блокчейна. Токены, которые соответствуют этим спецификациям, известны как токены ERC-20 (ERC расшифровывается как «Запрос комментариев» от Ethereum), и сегодня они являются наиболее широко используемым стандартом в индустрии криптовалюты для создания новых токенов.
Зачем нужен стандарт ERC-20?
До появления стандарта ERC-20 было много проблем совместимости между различными формами токенов Ethereum. У каждого токена был единственный смарт-контракт. Платформа должна была написать совершенно новый код для каждой транзакции и кошелька, чтобы добавить новый токен в свою сеть. Поддержка растущего набора токенов становилась чересчур проблематичной и занимала большое количество времени. В качестве решения, платформа предложила стандартный протокол для всех следующих токенов, который теперь известен как ERC-20.
Каковы основные преимущества ERC-20?
Стандарт ERC20 определяется следующими факторами:
Расширение функциональности
В дополнение к стандартным методам, токены ERC-20 могут быть настроены для включения следующих функций:
Кошельки
Поскольку большинство новых проектов, используют именно данный стандарт, большинство кошельков поддерживает стандарт ERC-20. Набор функций и событий стандарта ERC-20 гарантирует, что токены разных типов будут нормально функционировать одинаково в любом месте системы Ethereum. Это означает, что почти все кошельки, которые поддерживают Эфир, также совместимы с ERC-20.
Больше новостей о криптовалютах вы найдете в нашем телеграм-канале РБК-Крипто.
Разбираемся с форматами токенов на Ethereum
Со временем блокчейн всё сильнее проникает в нашу жизнь, и появляется необходимость понимать основные его технологии, в том числе работу децентрализованных приложений (dApps). Большинство dApps в данный момент создано на Ethereum, возможности которого гораздо более гибкие, чем выпуск привычных ERC20 токенов.
Зачем нужны стандарты
Внутри смарт-контракта (что это?) можно прописать уникальную механику токена. Он будет работать, но другие разработчики (и смарт-контракты) не смогут обращаться к нему с помощью универсальной логики.
Пример: вы создали токен для игрового предмета (децентрализованный гейминг сейчас активно развивается) и хотите, чтобы он мог торговаться на маркетплейсах для игровых предметов (каком-нибудь таком). Но маркетплейсы не знают, как обращаться к функциям внутри вашего контракта, им нужен отдельный смарт-контракт, чтобы поддерживать ваш токен.
На помощь приходят стандарты. Зная способы взаимодействия с ними, создатели других dApps заложили в код всё необходимое для работы с токеном на опредёленном стандарте.
Как появляются стандарты
Ethereum является open-source проектом (кстати, ERC — это Ethereum Request for Comments), поэтому логично, что новый стандарт токена может предложить любой пользователь. Если стандарт решает какую-то важную проблему, то он может стать официальным стандартом Ethereum (то есть попасть в этот список).
Взаимозаменяемые и не взаимозаменяемые токены
Отправной точкой для классификации стандартов токенов является их взаимозаменяемость или её отсутствие. Fungible (взаимозаменяемые) токены равны друг другу, их можно использовать в качестве валюты. Semi-fungible (на половину взамозаменяемые) токены почти неотличимы друг от друга, но всё-таки уникальны (пример: билеты в кинотеатре, стоимость может быть одна, но место у каждого точно уникальное). Non-fungible (не взаимозаменяемые) токены полностью уникальны, токенизированный объект в единственном экземпляре (пример: объекты авторского права).
Eсли не узнаёте котёнка, то это одна из первых игр на Ethereum (и стандарте ERC-721), CryptoKitties.
ERC-20
Самым известным стандартом взаимозаменяемых токенов является ERC20, который предложил автор идеи Ethereum Виталик Бутерин ещё в 2015. Этот токен широко используется для проведения разных типов initial offering (первое предложение). Я избегаю терминов ICO и IEO, потому что теперь это далеко не единственные способы провести публичное размещение токенов (но статья не об этом).
Специфика: взаимозаменяемый стандарт, есть тикер для бирж, делимый (количество знаков после запятой определяет создатель смарт-контракта), обязательно имеет total supply (количество токенов, больше которого выпустить нельзя).
Про ERC-20 написано уже много (хабр), перехожу к другим стандартам.
ERC-721
Данный стандарт широко применяется для создания уникальных токенов. Земля в Decentraland, Binance Collectibles, вот примеры ERC-721.
ERC-721 был предложен как EIP (предложение по улучшению Ethereum) Дитером Ширли в 2017, стал официальным в 2018.
Специфика: не взаимозаменяемый стандарт, нет тикера, неделимый, обязательно существует только в единственном экземпляре.
ERC-721, как и ERC-20 широко распространен, поэтому не буду останавливаться на нём.
ERC-777
Этот формат является «усовершенствованием» привычного ERC-20. Он обратно совместим с ERC-20, но имеет несколько преимуществ:
ERC-223
Также является «усовершенствованием» ERC-20, предотвращая отправку транзакций на случайные контракты. Если смарт-контракт не имеет функций, предусматривающих работу с токенами, то они возвращаются отправителю.
ERC-1155
Идею этого стандарта предложили разработчики проекта Enjin в 2018. Enjin — проект, стремящийся к упрощению создания игр на Ethereum. Поэтому предложенный ими стандарт стоит сначала рассмотреть как игровой, хотя его применение этим не ограничивается.
Атомарные свопы
Одной из причин непринятия повсеместно блокчейна является невозможность быстро и эффективно (в плане комиссий) обменивать одни токены на другие (а количество различных токенов все время увеличивается). Решение проблемы уже создано — это атомарные свопы. Обычно под Atomic swaps понимают технологию децентрализованного обмена между криптовалютами разных самостоятельных блокчейнов (об этом неплохо написано на BitcoinWiki). Но также стоит рассматривать атомарные свопы и в контексте обмена токенов внутри смарт-контракта.
Картинка из блога Enjin иллюстрирует своп множественных токенов на стандарте ERC-1155.
А batch transactions хоть и не экономят время, зато экономят газ (что это?), записывая в сеть несколько транзакций, как одну.
Стоит упомянуть, что хоть ERC-1155 получил большее распространение, он многое перенял от ERC875, появившегося несколькими месяцами ранее. ERC-875 предлагал тот же функционал, кроме поддержки fungible токенов.
ERC-865
Стандарт, аналогичный ERC-20, но использует для комиссий не газ, а сами токены. Из-за сложной системы оплаты комиссии газом (цена газа выбирается самостоятельно), а иногда и непредсказуемости размера комиссии, такое улучшение может быть очень полезно для принятия токенов на Ethereum.
Что такое токены ERC-20?
Что такое токены ERC-20?
Что означает аббревиатура ERC-20?
ERC (Ethereum Request for Comments) — это официальный протокол для внесения предложений по улучшению сети Ethereum; 20 – уникальный идентификационный номер предложения. Технические спецификации для токенов, выпускаемых на блокчейне Ethereum, были опубликованы в 2015 году. Токены, отвечающие этим спецификациям, известны как токены стандарта ERC-20 и фактически являются смарт-контрактами на блокчейне Ethereum. Несмотря на то, что токены ERC-20 функционируют в пределах фреймворка, установленного командой Ethereum, этот фреймворк достаточно широк, обеспечивая разработчикам большую гибкость при их создании.
Стандарт ERC-20 определяет набор правил, которые должны быть соблюдены для того, чтобы токен был принят и имел возможность взаимодействовать с другими токенами в сети. Сами токены представляют собой блокчейн-активы, которые могут иметь ценность, а также могут быть отправлены и получены как любая другая криптовалюта.
Чем была вызвана необходимость создания стандарта ERC-20?
Чем токены ERC-20 отличаются от традиционных криптовалют?
Отличие токенов ERC-20 от других известных криптовалют, например, биткоина или Litecoin, в том, что они привязаны к сети Ethereum, используют принятый внутри этой сети формат адресов и отправляются при помощи Ethereum-транзакций. Соответственно, транзакции с участием токенов ERC-20 можно прослеживать в обозревателе блоков.
На первый взгляд, такая транзакция может выглядеть пустой, поскольку в поле ‘Value’ указан ноль, однако количество отправленных токенов (в данном случае — OmiseGo) можно увидеть в отдельном поле.
Важно понимать, что токены ERC-20 не являются полностью независимыми – как было сказано выше, в их основе лежит блокчейн Ethereum, на распределенные вычислительные способности которого они и полагаются в своей работе.
Для чего нужны токены ERC-20?
Сценарии использования токенов ERC-20 – самые различные. Например, они могут выступать как акции проекта, сертификаты, подтверждающие владение активами, очки в программах лояльности или как криптовалюта. Также возможны варианты, при которых токены ERC-20 одновременно выполняют несколько таких ролей.
Среди наиболее известных токенов ERC-20 можно называть: 0x, Aragon, Augur, Aeternity, Aion, Binance Coin, BAT, Bancor, Civic, Decentraland, Dentacoin, DigixDAO, Dragon, District0x, EOS, FirstBlood, Gnosis, Golem, Iconomi, Kin, KuCoin, Kyber, Melonport, Matchpool, Numeraire, OmiseGo, Po.et, Raiden, RChain, Ripio, SingularDTV, Status, Storj, TAAS, TenX, TTron, VeChain, Veritaseum, Viberate, WeTrust, Wings и iExec RLC.
Каковы основные характеристики протокола ERC-20?
Стандарт ERC-20 предусматривает шесть обязательных и три опциональных (но рекомендуемых) параметра для любого смарт-контракта.
Обязательные параметры включают в себя функцию totalSupply, которая отвечает за общую эмиссию токенов, обеспечивая невозможность создания новых токенов по достижении максимального числа.
Функция balance0f определяет изначальное количество токенов, приписанных к определенному адресу. Обычно, это адрес, принадлежащий организаторам ICO.
Также стандарт описывает два метода перемещения токенов, необходимые для их распределения среди пользователей и возможности совершения транзакций. Так, функция transfer обеспечивает передачу токенов пользователю, который инвестировал в проект во время ICO; функция
transferFrom необходима для совершения транзакций между пользователями.
Кроме того, необходимы еще две функции для верификации двух предыдущих методов перемещения токенов. Функция approve служит для проверки того, что смарт-контракт, исходя из общей эмиссии, может осуществлять дистрибуцию токенов, в то время как функция allowance необходима для проверки того, на адресе имеется достаточный баланс для отправки токенов на другой адрес.
Среди опциональных параметров – определение максимального количества дробных цифр после запятой (для сравнения, биткоин имеет восемь таких цифр – 1.00000000 BTC), названия токена и его символа.
Набор этих параметров позволяет биржам и провайдерам кошельков создавать единую кодовую базу, взаимодействующую с любым смарт-контрактом ERC-20.
Есть ли риски при использовании токенов ERC-20?
Поскольку токены ERC-20 фактически являются смарт-контрактами, они, несмотря на всю свою эффективность, имеют определенные риски. Например, смарт-контракт не может быть изменен после того, как его инициировали организаторы ICO, также в нем могут оказаться баги и уязвимости, которые могут привести к потере средств.
История Ethereum знает немало подобных инцидентов — одним из наиболее известных примеров стал взлом The DAO в 2016 году. Для устранения его последствий и возврата средств в сети был проведен хардфорк, в результате которого новая цепь продолжила существование под названием Ethereum, а противники такого решения сохранили старую цепь, объявив о создании Ethereum Classic.
Какие другие проблемы могут возникнуть с токенами ERC-20?
Следует отметить, что протокол ERC-20 не всегда оказывается достаточным для целей, которые преследуются при создании токенов, и сам по себе не гарантирует, что токен будет полезным, ценным или функциональным.
Кроме того, одним из недостатков стандарта ERC-20 можно считать то, что он делает возможность создания токенов достаточно тривиальным делом на техническом уровне. Это позволяет многим проектам достаточно просто запустить ICO, что подтверждается и совокупным количеством токенов – по состоянию на 1 мая 2018 их существовало уже около 80 тысяч. Это ведет к обилию похожих друг на друга токенов, существенно затрудняя процесс их выбора инвесторами.
Стандарт ERC 20 — Ключевые особенности. Кошельки
Другими словами, чтобы работать с новым токеном на биржах и в кошельках, приходилось писать индивидуальный код. Поддержка постоянно растущего числа токенов отнимала слишком много времени и становилась проблематичной. В результате был разработан единый протокол для всех токенов, известный как ERC-20.
ERC означает Ethereum Request for Comment («запрос на комментарии в сообществе Ethereum»), а 20 — это произвольный номер, присвоенный предложению.
Стандарт — Это некоторый набор функций и требований, которым должны следовать и которые должны использовать разработчики, чтобы их продукт был совместим с использующими данный стандарт проектами.
Стандарт ERC20 прописывает требования к работе токенов, создаваемых на блокчейне криптовалюты Ethereum. Код ERC20 открыт, любой разработчик может получить исходные тексты на официальной странице проекта на GitHub и создать свои ERC20-совместимые монеты.
Задачей создания формализованного стандарта было упрощение операций между кошельками ETH, смарт-контрактами и биржами. Так, новой монете на ERC20 легко выйти на биржу, поскольку протокол работы с ней известен, и нет никаких препятствий для биржевого листинга.
Стандарт токенов ERC-20 имеет шесть обязательных параметров для каждого смарт-контракта и три дополнительных. Например, к дополнительным относится допустимое число знаков после запятой. Для сравнения, биткоин поддерживает восемь знаков после запятой, символ (обычно это 3−4-значный код) и имя.
Шесть обязательных параметров определяют количество и передачу токенов:
Эти шесть простых шагов позволили разработчикам кошельков и биржам создать единую базу кода, способную взаимодействовать с любым контрактом стандарта ERC-20.
Ethereum — Это не просто криптовалюта, но среда, экосистема. Каждый из ее пользователей вправе использовать блокчейн эфириума для создания собственных приложений и проектов на смарт-контрактах.
Существует два вида токенов:
Возникает вопрос — для чего нужны отдельные токены, не проще ли использовать привычные ETH для проведения операций?
Можно привести примеры из реальной жизни:
Например, метрополитен. Для прохода в метро нужно приобрести жетон. Такие же жетоны применяются, например, для пропуска граждан в парки развлечений, осуществления внутриигровых покупок, реализации купонных сервисов, и т. д.
Во время ICO каждый участник получает токены по согласованному курсу, посылая смарт-контракту криптовалюту и данные (прежде всего, электронный адрес).
Ethereum.org описывает механизм ICO следующим образом:
Помните, что эти токены не независимы. Они работают на блокчейне Ethereum и зависят от вычислительной мощности его сети.
Главное преимущество — это стандартизация токенов. Раньше на базе блокчейна Ethereum создавались проекты с уникальными токенами. Это создавало большую проблему во взаимодействии бирж и прочих платформ и приложений.
Приходилось создавать различные механизмы, чтобы обеспечить совместимость. Это делало процесс весьма сложным и трудоемким, поскольку необходимо создавать новые программные «прослойки» для взаимодействия со вновь созданными токенами. Токены стандарта ERC20 решили эту проблему.
Протокол ERC-20 не всегда достаточен для целей токена. Это лишь база для создания Ethereum-токенов, которая и не гарантирует их пользы, ценности или работоспособности.
Токен можно дополнять, сохраняя совместимость со стандартом ERC-20. Один из недостатков ERC-20 — то, что он делает развертывание токена довольно простым на техническом уровне. В результате многие команды, неспособные провести ICO самостоятельно, все же сделали это.
В результате это привело к обилию очень похожих токенов, усложнив процесс отбора для потенциальных инвесторов.
Другая проблема в том, что некоторые проекты реализуют базовые принципы стандарта весьма странным образом, что создает дополнительную путаницу при определении специфики работы их токенов. Например, иногда токены посылаются смарт-контрактам в другие ICO. Если функциональность контракта этого не предусматривает, токены теряются. К концу 2017 года таким образом было потеряно более 3 млн. долларов. Эту проблему разработчики предлагают решить при помощи нового стандарта ERC-223.
Хотя смарт-контракты весьма эффективны, им присущи определенные риски. Например, смарт-контракт невозможно изменить после запуска разработчиками ICO. Если контракт содержит ошибки или уязвимости, вы можете потерять свои деньги или токены (или все сразу).
Подобные неприятности часто случаются в криптовалютном мире. Самым примечательным был взлом DAO на 55 млн долларов. Чтобы с ним справиться, разработчики провели хардфорк сети Ethereum (так появился Ethereum Classic ).
Принцип работы смарт-контрактов по стандарту ERC20 довольно прост. Например, пользователю нужно перевести некоторую сумму в соответствующих стандарту токенах на другой счет. С точки зрения человека, инициируется передача, после чего электронные деньги уходят с одного кошелька и появляются на другом — как при банковском переводе. Технически же все выглядит совсем иначе:
То есть стороны сделки взаимодействуют не друг с другом напрямую, а со смарт-контрактом.
Это приводит к упрощению всех сетевых операций. Нет нужды в длительной сверке с базами данных, необходимо лишь проверить соответствие сделки условиям контракта. Такое упрощение сделало Ethereum технологию ERC20 весьма популярной, и сегодня многие альткоины соответствуют этому стандарту.
Для хранения совместимых с данным стандартом токенов, необходим поддерживающий их кошелек. Основных ERC20 совместимых кошельков несколько.
MyEtherWallet
Это онлайн-сервис, один из самых популярных. Примечательная его особенность — MyEtherWallet не хранит токены у себя на балансе. Средства находятся в блокчейне, а сервис лишь дает пользователю интерфейс взаимодействия с ними. Это дает дополнительную безопасность средствам владельца. Но есть и обратная сторона: если забыть кодовую фразу, ERC20 токены на счету будут утрачены.
Кошелек безопасен, прост и универсален: его можно использовать как для Ethereum, так и для ERC20-совместимых токенов.
MetaMask
«Легкий» онлайн кошелек. Он служит посредником между основным кошельком и сайтами, где пользователь совершает оплату криптовалютой.
MetaMask создан как браузерный плагин и может быть синхронизирован с аналогичным плагином на другом электронном устройстве.
Принцип работы сервиса: пользователь переводит требуемую сумму на кошелек и проводит оплату.
Trust Wallet
Мультивалютный мобильный кошелек, позволяющий одновременно работать с рядом цифровых активов. Кошелек поддерживает больше 50 популярных монет. Пользователи имеют возможность добавить любой токен из девяти популярных блокчейнов, а именно Ethereum, Callisto, GoChain, Ethereum Classic, POA Network, VeChain, Wanchain, TomoChain, Thunder Token и других.
Криптокошелек Trust Wallet является одновременно полноценным Web3 браузером, с помощью которого можно взаимодействовать с DApps — децентрализованными приложениями, созданными в сети Ethereum.
Parity
Этот кошелек был очень популярен благодаря удобству и легкости интерфейса. Но обнаруженная 2017 году уязвимость, приведшая к блокировке средств владельцев на почти 150 млн. долларов, отвернула от него аудиторию, и репутация кошелька в основном негативная.
ImToken
Это легкое мобильное приложение для платформ на IOs и Android, созданное в Китае. Кошелек удобен и поддерживает ERC20, что делает его отличным инструментом для участия в ICO. Список поддерживаемых токенов постоянно обновляется.
Кроме того, с помощью кошелька можно мониторить курсы монет на биржах, просматривать новости ICO и взаимодействовать с dApps. Пользователь имеет возможность связать определенное приложение с кошельком, упрощая проведение операций.
Mist
Это официальный кошелек от создателей Ethereum.
Он может использоваться как классический ERC20 и ETH-wallet, но приложение имеет и дополнительные возможности наподобие работы со смарт-контрактами.
Недостатком Mist является необходимость синхронизации с блокчейном, размеры которого очень велики. Если у вас не хватает памяти могут возникнуть проблемы.
Токен же без поддержки стандарта будет лишен этих преимуществ, что может создать проблемы для его продвижения и, как следствие, поддержка ICO станет убыточной для инвестора.
Кроме того, один ERC20-кошелек можно использовать для любого ICO, использующего рассматриваемый стандарт.
Токены ERC-20 находят применение во многих областях Например, они могут выступать в качестве акций проекта, сертификатов на владение активами, пунктов лояльности или чистых криптовалют. Кроме того, они могут одновременно выполнять несколько ролей.
Возникновение стандарта ERC-20 ускорило рост в пространстве ICO благодаря унификации функций, упрощающих разработку токенов. Протокол также усилил синергию между ICO-стартапами, биржами и сервисами кошельков. Скорее всего, в дальнейшем протокол ERC-20 будет расширен и дополнен функциями для борьбы с основными проблемами и уязвимостями токенов.
Введение в токены ERC-20
Содержание
Введение
Что такое стандарт ERC-20?
ERC-20 был создан в 2015 году Виталиком Бутериным и Фабианом Фогельстеллером с целью предложить относительно простой формат для создания токенов на Ethereum. Опираясь на существующий стандарт, разработчики экономят время и силы. Благодаря ERC-20 они могут создавать новые токены и не беспокоиться о совместимости и безопасности.
Следует отметить, что на базе стандарта ERC-20 был разработан EIP (а именно – EIP-20). Произошло это через несколько лет после запуска ввиду широкого распространения стандарта. Но даже спустя годы название «ERC-20» все еще актуально.
Краткий обзор токенов Ethereum
В отличие от ETH (собственной криптовалюты Ethereum), токены ERC-20 не хранятся в аккаунтах. Они существуют только внутри контракта, который представляет собой своеобразную автономную базу данных. Контракт определяет условия для токенов (например, имя, символ, делимость). В нем также содержится список, где сопоставляются балансы пользователей с их адресами Ethereum.
Для перемещения токенов пользователи должны отправить в контракт транзакцию с просьбой переместить часть своего баланса в другое место. Например, если Алиса хочет отправить Бобу 5 000 токенов BinanceAcademy, она запускает функцию внутри смарт-контракта с просьбой сделать это.
Ее запрос помещается внутрь обычной на вид транзакции Ethereum, с которой взимается 0 ETH в пользу смарт-контракта. Запрос добавляется в дополнительное поле в транзакции, где указывается, что именно Алиса хочет сделать – в нашем случае передать токены Бобу.
Теперь мы можем углубиться в структуру контракта ERC-20.