ERC20 токены: история и будущее стандарта

Большинство ICO используют в качестве платформы сеть Ethereum. ERC-20 – это официальный протокол для внесения предложений по улучшению этой сети. Узнаем конкретнее, что это такое.

Трудно выразить словами чистое влияние, которое символы ERC20 оказали на crypto-мир. Они единолично ответственны за отрасли промышленности ICO за миллиард долларов, и они играли большую роль в создании криптовалют больше господствующей тенденции. Прежде чем мы войдем в то, что они и как они повлияли, немного урока истории в порядке.

Дорога к умным контрактам

blockchain технология и криптовалюты вышли на первый план, когда анонимный разработчик, звонящий himself/herself/themselves Сатоши Накамото, создал биткоин. Биткоин был революционным по ряду причин. Впервые у нас была валютная система, которая принадлежала людям. Вы можете послать биткоин любому с кошельком биткоина, не имея необходимость проходить банк.

Для представления мира к blockchain технологии биткоин обычно известен как “Первое поколение Blockchain”. Однако есть огромное ограничение в способе, которым биткоин проводит свои сделки.

Складывается, что сделки не должны всегда быть настолько простыми.

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

Это – вопрос, которого Виталик Бутерин предоставил решение, создав Этэреума.

Этэреум и умные контракты

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

“Этэреум – децентрализованная платформа, которая управляет умными контрактами: заявления, которые бегут точно, как запрограммировано без любой возможности времени простоя, цензуры, мошенничества или стороннего вмешательства. Эти приложения работают на сделанном на заказ blockchain, чрезвычайно сильная общая глобальная инфраструктура, которая может переместить стоимость и представлять собственность на имущество”.

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

Так, как Вы делаете эти Dapps? Для этого мы должны изучить Умные Контракты

Умные контракты автоматизированы контракты. Они самовыполняют с особыми указаниями, написанными на его кодексе, который выполнен, когда определенные условия сделаны.

Вы можете узнать больше об умных контрактах в нашем всестороннем руководстве здесь.

Умные контракты – то, как вещи сделаны в экосистеме Этэреума. Когда кто-то хочет сделать конкретную задачу в Этэреуме, они начинают умный контракт с одним или несколькими людьми.

Давайте вернемся к нашему предыдущему разделу.

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

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

Внесение Ваших денег
Выбор Вашего продукта
Вы получите то, что Вы просите.

Предположим, что Вы и Ваша подруга Элис хотите взаимодействовать друг с другом использующим умный контракт.

Умный контракт также работает таким же образом. Вы запираете часть своего Эфира (символ Ethereum) в умном контракте, условие, являющееся, что, как только Элис заканчивает некоторые задачи, контракт откроет фонды и пошлет его в ее кошелек.

Умные контракты и ICOs

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

Решение? ICOs.

ICOs или Начальные Предложения Монеты – версия криптовалюты Первичных публичных размещений акций или IPO. Однако, когда по сравнению с IPO, ICOs намного более благоприятны для предпринимателя, чем IPO по следующим причинам

Во-первых, намного более просто представить Ваш проект в ICOs. Все, что Вы должны сделать, должно представить отчет Вашего проекта.

Любой может стать инвестированным в проект, которым они интересуются, покупая символы того конкретного DAPP и становятся частью проекта сами.

Есть еще одна вещь, которую Вы должны знать, прежде чем мы войдем, как работает ICO. Разработчики должны дать что-то взамен инвестиций. Это «что-то» называют символами.

Чтобы дать Вам очень широкое, необобщенное определение, символ – представление чего-то в его конкретной экосистеме. Это могло оценить, делать ставку, право голоса или что-либо. Символ не ограничен одной конкретной ролью; это может выполнить много ролей в его родной экосистеме.

Так, каковы эти «роли», которые могут взять символы?

Потери: символ может действовать как ворота к Dapp. В основном, чтобы получить доступ к Dapp, Вы должны будете держать символы.
Избирательные права: символы могут также квалифицировать держателей, чтобы иметь определенные избирательные права. Думайте об ЭОС, держание символов ЭОС позволит Вам голосовать за производителей блока.
Обмен стоимостью: Это – одна из более общих ролей символов в экосистеме. Символы могут помочь создать внутреннюю экономическую систему в применении.

Пользовательское Улучшение Опыта: символ может также позволить держателям обогатить пользовательский опыт в границах конкретной окружающей среды. Например, В Храбром (веб-браузер), держатели BAT (символы, используемые в Храбром), получат права обогатить качество обслуживания клиентов при помощи их символов, чтобы добавить рекламные объявления или другие основанные на внимании услуги на Храбрую платформу.

Валюта: Может использоваться в качестве средства сбережения, которое может использоваться, чтобы провести сделки и внутри и снаружи данной экосистемы.

Хорошо, поэтому до настоящего времени мы сказали Вам как умные контракты, ICOs, и работа символов. Однако вот то, где мы выражаем протест первое препятствие. Давайте возьмем пример галереи.

Галерея видеоигры

Думайте о старо-школьной галерее видеоигры. Что является всеми шагами, которые Вы должны сделать, прежде чем Вы доберетесь, чтобы играть в Вашу игру:

Вы берете свои бумажные деньги и преобразовываете их в монеты галереи.

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

Машины галереи видеоигры – Dapp, в то время как выпущенные монеты галереи являются Вашими родными символами. Вы должны будете обладать теми монетами, чтобы получить доступ к услугам Вашего Dapp.

Есть одна проблемная область этой системы все же.

В заказе вписанный место машины монеты должны иметь определенное измерение. Теперь, что, если определенные машины появились, кто не принял круглый дизайн монет и вместо этого предпочел почти квадратную форму монеты?

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

Это, в сущности, то, что делает директива ERC20.

Проблема с различным дизайном Токен

В первые годы казалось, что каждый символ ICO пытался “перестроить колесо”, насколько выполнение было затронуто. У каждого из тех символов был их собственный список функций. Теперь, это привело к большому количеству новых проблем.

Чтобы создать здоровую экосистему сверху Ethereum, абсолютно необходимо, чтобы Дэппы, построенные сверху его, могли взаимодействовать друг с другом беспрепятственно. Однако, что произойдет, если у нас будет два символа, говорят Токен Альфа и Токен Бета, и у них обоих есть различные умные структуры контракта?

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

Теперь, это действительно не служит хорошим предзнаменованием для масштабируемости теперь, не так ли?

Если есть 100 различных символов с 100 различными контрактами, то сузить на всех квалификациях и условиях, требуемых удостоверяться, что передачи могут пройти между всеми этими символами, будет нуждаться в огромном объеме сложных вычислений. Который не является идеальным сценарием вообще.

Что-то должно было быть сделано и 19 ноября 2015, Фабиан Воджелстеллер предложил изобретательное решение.

Войдите в символы ERC20

Согласно Википедии, ERC20 – a

“список правил, что символ Ethereum должен осуществить, дав разработчикам способность программировать, как новые символы будут функционировать в экосистеме Ethereum. Символический стандарт ERC-20 стал популярным у компаний по краудфандингу, работающих над случаями начального предложения монеты (ICO) из-за простоты развертывания, вместе с его потенциалом для совместимости с другие стандарты символа Ethereum”.

Чтобы сохранять его простым, ERC20 – руководство правил и норм, которые помогут создать проект находящихся в Ethereum умных контрактов, чтобы создать их символы. «ERC» обозначает к Запросу комментария Ethereum, в то время как номер ’20’ – номер, присвоенный этому запросу.

Так, теперь, когда Вы знаете, каков ERC20, давайте анализировать его еще больше и посмотрите то, что продолжается негласно.

Анатомия символов ERC20

Они следуют списку правил так, чтобы они могли быть разделены, обменены на другие символы или переданы crypto-кошельку. Стандарт ERC20 состоит из 3 дополнительных правил и 6 императивных норм.

Императивные нормы следующие:

totalSupply
balanceOf
передача
transferFrom
одобрить
пособие
С другой стороны, дополнительные правила:

Символическое имя
Символ
Десятичное число (до 18)
Давайте расширимся в дополнительные правила сначала перед изучением этих 6 императивных норм.

3 дополнительных правила

Даже при том, что не необходимо назвать Ваши символы, все еще важно дать ему идентичность. Имя объявлено как это:

натяните общественное постоянное имя = “Символическое Имя”;

Затем у нас есть символы. Мы просто не можем преуменьшить их важность. Прекрасный пример этого – OmiseGO. Люди намного более знакомы с OMG, чем OmiseGO. Броский символ помогает с лучшим брендингом. Путем они объявлены:

натяните общественный постоянный символ = «SYM»;

Наконец, у нас есть делимость, которая поможет нам определить самую низкую ценность символа. Делимость 0 будет означать, что самая низкая ценность символа равняется 1. Делимость 2, с другой стороны, означает, что ее самая низкая стоимость будет 0.01. Максимальное количество позволенных десятичных разрядов равняется 18. Это объявлено как это:

общественность uint8 постоянные десятичные числа = 18;

Хорошо, теперь давайте войдем в 6 правил.

Эти 6 императивных норм

#1 totalSupply

[totalSupply] определяет общее количество созданных символов ERC-20. Цель этого метода состоит в том, чтобы определить общее количество символов, плавающих вокруг экосистемы.

Кодекс похож на это:

сократите MyERCToken {

uint256 _totalSupply = 1000000;

функционируйте totalSupply () постоянная прибыль (uint256 theTotalSupply) {

theTotalSupply = _totalSupply;

возвратите theTotalSupply;

}

}
#2 balanceOf

Функция balanceOf возвращает количество символов, которые конкретный адрес, в этом случае, владелец контракта, имеет в их счете.

Кодекс похож на это:

сократите MyERCToken {

//Составьте таблицу так, чтобы мы могли нанести на карту адреса

//к балансам, связанным с ними

отображение (обращаются => uint256), балансы;

//Владелец этого контракта

обратитесь к общественному владельцу;

функционируйте balanceOf (обратитесь к _owner), постоянная прибыль (uint256 баланс) {

//Возвратите баланс для определенного адреса

возвратите балансы [_owner];

}

}
#3 одобряют ()

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

Примечание: “msg.sender” – адрес владельца контракта.

сократите MyERCToken {

//Составьте таблицу так, чтобы мы могли нанести на карту

//адреса владельцев контрактов к

//те, кому разрешают использовать контракт владельца

отображение (обращаются => наносящий на карту (адрес => uint256)) позволенный;

функция одобряет (обратитесь к _spender, uint256 _amount), прибыль (bool успех) {

позволенный [msg.sender] [_spender] = _amount;

//Запустите событие “”Одобрение”” выполнить любую логику

//это слушало его

Одобрение (msg.sender, _spender, _amount);

возвратитесь верный;

}

}
#4 передача ()

Так, теперь, когда вся проверка была сделана, и контракт знает, что у пользователя есть необходимое количество символов, должен был выполнить сделку, владелец контракта может послать им символы, используя передачу () функция.

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

сократите MyERCToken {

отображение (обращаются => uint256), балансы;

//Примечание: Эта функция возвращает булево значение

//указание, была ли передача успешна

функционируйте передача (обратитесь к _to, uint256 _amount), прибыль (bool успех) {

//Если у отправителя есть достаточное покрытие, чтобы послать

//и сумма не ноль, затем пошлите в

//данный адрес

если (балансы [msg.sender]> = _amount

&& _amount> 0

&& балансы [_to] + _amount> балансы [_to]) {

балансы [msg.sender] – = _amount;

балансы [_to] + = _amount;

//Увольте событие передачи за любого

//логика это слушает

Передача (msg.sender, _to, _amount);

возвратитесь верный;

} еще {

возвратитесь ложный;

}

}

}

#5 transferFrom ()

Хм.. ждите держат.

Мы уже покрыли функцию перемещения, почему у нас есть другой?

Ну, давайте возьмем пример, чтобы видеть, почему transferFrom – такое блестящее дополнение к контракту ERC20.

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

Это – то, что transferFrom () позволяет Вам делать. Это помогает Вам автоматизировать платежные переводы на определенный счет.

Кодекс:

сократите MyERCToken {

отображение (обращаются => uint256), балансы;

функционируйте transferFrom (обратитесь к _from, обратитесь к _to, uint256 _amount), прибыль (bool успех) {

я f (балансы [_from]> = _amount

&& позволил [_from] [msg.sender]> = _amount

&& _amount> 0

&& балансы [_to] + _amount> балансы [_to]) {

балансы [_from] – = _amount;

балансы [_to] + = _amount;

Передача (_from, _to, _amount);

возвратитесь верный;

} еще {

возвратитесь ложный;

}

}

}
Примечание: Даже при том, что это – один из самых популярных символов там, голем, символ GNT не считают ERC20, потому что у этого нет одобрения () и transferFrom () функции в его контракте.

#6 пособие ()

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

Поэтому, контракт ERC20 также включает пособие () функция. Если у пользователя нет минимального необходимого количества символов, функция отменяет сделку.

Кодекс:

пособие функции (обращаются к _owner, обращаются к _spender), постоянная прибыль (uint256 остающийся) {

возвратитесь позволенный [_owner] [_spender];

}

Объединение кодекса

Так, теперь, когда мы видели, как отдельная работа функций, давайте посмотрим на символический контракт ERC20.

Кодекс был взят от GitHub.

основательность pragma ^0.4.15;

контракт MyERCToken

{

//Составьте таблицу так, чтобы мы могли нанести на карту адреса

//к балансам, связанным с ними

отображение (обращаются => uint256), балансы;

//Составьте таблицу так, чтобы мы могли нанести на карту

//адреса владельцев контрактов к

//те, кому разрешают использовать контракт владельца

отображение (обращаются => наносящий на карту (адрес => uint256)) позволенный;

//В этом случае, полная поставка

//из MyERCToken зафиксирован, но

//это может очень быть изменено

uint256 _totalSupply = 1000000;

//Владелец этого контракта

обратитесь к общественному владельцу;

функционируйте totalSupply () постоянная прибыль (uint256 theTotalSupply) {

//Поскольку наша подпись функции

//государства, что переменная возвращения

//””theTotalSupply””, мы просто установим ту переменную

//к ценности переменной случая “”_totalSupply””

//и возвратите его

theTotalSupply = _totalSupply;

возвратите theTotalSupply;

}

функционируйте balanceOf (обратитесь к _owner), постоянная прибыль (uint256 баланс) {

возвратите балансы [_owner];

}

функция одобряет (обратитесь к _spender, uint256 _amount), прибыль (bool успех) {

позволенный [msg.sender] [_spender] = _amount;

//Запустите событие “”Одобрение”” выполнить любую логику

//это слушало его

Одобрение (msg.sender, _spender, _amount);

возвратитесь верный;

}

//Примечание: Эта функция возвращает булево значение

//указание, была ли передача успешна

функционируйте передача (обратитесь к _to, uint256 _amount), прибыль (bool успех) {

//Если у отправителя есть достаточное покрытие, чтобы послать

//и сумма не ноль, тогда пошлите в

//данный адрес

если (балансы [msg.sender]> = _amount

&& _amount> 0

&& балансы [_to] + _amount> балансы [_to]) {

балансы [msg.sender] – = _amount;

балансы [_to] + = _amount;

//Увольте событие передачи за любого

//логика это слушает

Передача (msg.sender, _to, _amount);

возвратитесь верный;

} еще {

возвратитесь ложный;

}

}

функционируйте transferFrom (обратитесь к _from, обратитесь к _to, uint256 _amount), прибыль (bool успех) {

если (балансы [_from]> = _amount

&& позволил [_from] [msg.sender]> = _amount

&& _amount> 0

&& балансы [_to] + _amount> балансы [_to]) {

балансы [_from] – = _amount;

балансы [_to] + = _amount;

Передача (_from, _to, _amount);

возвратитесь верный;

} еще {

возвратитесь ложный;

}

}

пособие функции (обращаются к _owner, обращаются к _spender), постоянная прибыль (uint256 остающийся) {

возвратитесь позволенный [_owner] [_spender];

}

//Вызванный каждый раз, когда одобряют (обращаются к _spender, uint256 _value) назван.

Одобрение событий (адрес внес _owner в указатель, адрес, внесло в указатель _spender, uint256 _value);

//Вызванный, когда символы переданы.

Передача событий (адрес внес _from в указатель, адрес, внесла в указатель _to, uint256 _value);

}

Выгода символов ERC20

Теперь, когда мы знаем, каков ERC20, какова главная выгода использования его?

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

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

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

Недостатки ERC20

Недостаток #1: передача () ошибка
Даже при том, что у символов ERC20 есть много хороших качеств, они собрали много критических замечаний также. В Ethereum есть два вида счетов, внешне находящихся в собственности счетов (EOA), которыми управляют частные ключи и счета контракта, которыми управляет их кодекс контракта.

Если Вы хотите взаимодействовать с другим счетом EOA тогда, Вы можете использовать передачу () функция, чтобы послать необходимые символы. Однако, если Вы захотите послать символы в счет контракта, используя передачу () функция, тогда Вы будете сталкиваться с ошибкой, которая привела к потере почти миллионов долларов.

Большая проблема с передачей () функция состоит в том, что, как только это выполнено, получатель не будет уведомлен относительно передачи даже если сделка проходит успешно

Разработчик, который идет под названием «Dexaran», был тем, который принес это к общему вниманию.

По его словам:

“Сделка символа – изменение во внутренних переменных контракта (‘баланс’ отправителя будет уменьшен, и ‘баланс’ получателя будет увеличен).

В результате, если получатель – контракт, пользователи должны передать свои символы, используя ‘одобрение’ +’ transferFrom’ механизм, и если получатель – внешне находящийся в собственности адрес счета, пользователи должны передать свои символы через функцию ‘перемещения’. Если пользователь сделает ошибку и выберет неправильную функцию тогда, символ застрянет в контракте (контракт не признает сделки). Не будет никакого способа извлечь застрявшие символы.

Кто-либо из символических разработчиков ERC20 полагает, что пользователи никогда не будут делать такие ошибки, развивая их символы?”

Так, это делает довольно хороший случай для одобрения () и transferFrom () правом комбинации? Однако там находится проблема также.

Это – опасная операция и следовательно приводит к возможности двойного потраченного нападения.

Недостаток #2: Точка входа Слишком Низкая

Другая большая критика состоит в том, что ERC20 сделал слишком легким для людей создать их собственные символы. В результате этого рынок затоплен бесполезным и, еще хуже, scammy ICOs и символы.

Будущее символов ERC20

В то время как верно, что символы ERC20 были важны для роста crypto экосистемы, факт остается, что они, возможно, злоупотребили своим гостеприимством. Люди уже экспериментируют с более новыми стандартами как ERC223, ERC 777 и т.д., но, с прямо сейчас, ERC20 не идет никуда.

Dexaran указывает на следующие причины относительно того, почему ERC20 – все еще предпочтительный предпочтительный стандарт:

Из-за преступной безответственности символических разработчиков для их дел.

Поскольку Фонд Ethereum все еще продвигает символический стандарт ERC20, даже когда это известно, содержит ошибки. Та же самая ситуация, как это было с TheDAO ранее. Они должны сказать, “Останавливают это теперь”, но они не будут.

Поскольку главная причина для символического развития – захват фонда, а не создание продукта.

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

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

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *