Выполнение того или иного пункта смарт-контракта может привести к сбою транзакции и последующей отмене всех ее предыдущих этапов, это означает, что транзакции являются
Как вы помните, при проведении транзакции взимается плата за газ, размер которой зависит от сложности транзакции. Например, когда майнер получает ETH за включение и выполнение транзакции, комиссия будет относительно низкой. Для обработки более длительных или ресурсоемких транзакций газа требуется больше. Если транзакция по какой-либо причине отменяется или попросту заканчивается газ, то отправитель лишается всего газа, потраченного к этому моменту. Это правило защищает майнеров, которые из-за большого объема неудачных транзакций могли бы понести значительные убытки.
Стоимость газа устанавливается рынком и, по сути, порождает аукцион, определяющий транзакции для включения в очередной блок Ethereum. Большие комиссии за газ означают высокий спрос, поэтому такие транзакции зачастую имеют более высокий приоритет на включение в блок.
Перед тем как транзакции попадут в блок, они отправляются в
Просмотреть транзакции в мемпуле может любой участник, достаточно запустить узлы майнинга или связаться с ними. Подобная прозрачность позволяет майнеру заниматься фронтраннингом (торговлей на опережение) и использовать другие методы конкуренции для получения прибыли от торговой деятельности. В отличие от традиционных централизованных рынков фронтраннинг является законной практикой, поскольку вся информация находится в свободном доступе. Если майнеры увидят транзакцию в мемпуле, они могут воспользоваться ей для получения выгоды, либо выполнив эту транзакцию самостоятельно, либо использовав тактику фронтраннинга, и, если им повезет выиграть блок, у них появится стимул делать то же самое и в будущем. Прямое выполнение транзакции называется
Взаимозаменяемые токены являются краеугольным камнем ценностного предложения Ethereum и DeFi. Любой разработчик Ethereum может создать токен, расщепляемый на определенное количество идентичных и взаимозаменяемых единиц. Примером взаимозаменяемого актива является американский доллар США, поскольку одна 100-долларовая купюра эквивалентна сотне однодолларовых купюр. В главе 3 мы уже говорили о том, что интерфейсом токена блокчейна Ethereum является ERC-20[39]. С точки зрения программиста, интерфейс – это минимально необходимый набор функций. Когда токен реализует интерфейс ERC-20, любое приложение, имеющее соответствующую функциональность, может быстро и легко интегрироваться с этим токеном. При помощи интерфейса ERC-20 и его аналогов разработчики могут добавлять в приложения поддержку еще не существующих токенов.
Интерфейс ERC-20 предусматривает следующие основные функции:
• totalSupply() – подсчитывает количество существующих токенов;
• balanceOf(account) – подсчитывает количество токенов на счету конкретной учетной записи;
• transfer(recipient address, amount) – пересылает некоторое количество токенов (amount) от отправителя транзакции на адрес получателя (recipient address);
• transferFrom(sender address, recipient address, amount) – пересылает некоторое количество токенов (amount) с баланса адреса отправителя (sender address) на адрес получателя (recipient address);
• approve(spender, amount) – позволяет доверенному лицу (spender) потратить некоторое количество токенов (amount) от имени владельца учетной записи;
• allowance(owner address, spender address) – указывает количество токенов, которое доверенное лицо (spender address) может потратить от имени владельца токенов (owner address).