Блокчейн: Мягкое погружение. Часть 5. Вы в Эфире! Как работает децентрализованный компьютер

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

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

Введение. Как все начиналось.

Символ Эфира
Символ Эфира

Эфир часто называют «второй криптовалютой». Однако хронологически он был далеко не вторым. После появления и некоторого успеха биткоина создавались и другие криптовалюты (например, Litecoin) , которые пытались продолжать идеи оригинала и улучшать предоставляемые криптовалютой возможности. Но все они не могли справится с одной фундаментальной проблемой.

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

Первый «убийца» биткоина

В 2013 году сумрачный гений информатики и математики, канадец с русскими корнями Виталик Бутерин (он называет себя именно Виталик, не Виталий) описывает в своей «Желтой книге» концепцию новой криптовалюты — эфира. Он предлагает внести значительные изменения в принцип построения цепочки для ускорения подтверждения транзакций, и самое главное — заставить майнеров решать такую математическую задачу, решения которой находились бы в среднем за 12 секунд, при этом число решений у задачи было бы бесконечно.

Виталик активно занимался проектами, связанными с биткоином практически с зари появления криптовалют, был редактором собственного журнала Bitcoin Magazine, и поэтому в только набирающей популярность сфере был человеком достаточно известным. В 2015 году ему удалось привлечь внимание инвестиционных фондов и крупных ИТ/Финтех компаний, таких как VISA, к своей идее. Это позволило ему провести масштабное на тот момент ICO — собрать 18 миллионов долларов! (сейчас в крипте это уже не деньги, но на тот момент — поверьте, это казалось невероятным). Сеть была запущена 20 июля 2015 года — участники ICO суммарно получили 72 009 995 ETH на всех, и майнеры начали находить новые блоки и поддерживать сеть.

ICO (Initial Coin Offering) — выпуск первичного предложения монет (аналог IPO, если говорить о традиционных рынках). Участники ICO заплатили Ethereum Foundation фиксированное количество биткоинов, взамен которых получили в новой сети фиксированное количество эфиров. Другими словами, получили эфир до начала торгов на биржах. 1 Эфир на старте продавали за 30 центов (можете сравнить, сколько он стоит сейчас).

Подчеркнем важный момент — такого почти никогда не бывает, чтобы в новой сети все начинали добывать криптовалюту с нуля, как это было с биткоином (когда его сеть была запущена, ни у кого не было ни одного биткоина). Всегда есть некоторое первичное предложение, сеть запускается и первым ее участникам раздается криптовалюта в объеме, на которую они ее купили на предварительной продаже. Механик распределения первичного предложения — множество, эта тема заслуживает отдельной статьи. Способов получить это первичное предложение — тоже немало. Пока запомним самый первый и простой вариант — ICO. Отдали доллары/биткойны, взамен получили новую криптовалюту, возможно, потолкавшись в очереди с такими же как вы энтузиастами.

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

Смарт-контракты

Каждый узел сети эфира содержит в себе Ethereum Virtual Machine (EVM) — особую среду исполнения кода.

Блокчейн: Мягкое погружение. Часть 5. Вы в Эфире! Как работает децентрализованный компьютер

Среда исполнения — говоря по-простому это некий «контекст«, »окружение», т. е. набор всего необходимого для запуска кода. Приведем пример — чтобы запустить код, написанный на языке Python, вам потребуется интерпретатор этого языка, чтобы ваш ПК мог получить двоичный код и набор инструкций для процессора, а также программа которая его запустит. Чтобы запустить код на языке JavaScript — вам нужен самый обычный веб-браузер. Так как данный язык является стандартом веба, вам не нужно ничего более — браузер и станет средой исполнения. EVM — это среда исполнения языка Solidity, на котором и пишется код для проектов в системе Ethereum.

Смарт-контракт, несмотря на умное название и наличия слова «умный» в нем — это всего лишь просто код. Такой код, который может выполнить EVM, а так как она есть на любом узле сети, то любой узел сети выполнит ваш (или чей-то) код. Хранится смарт-контракт тоже в блокчейне. И создать свой смарт-контракт также может абсолютно любой человек. И точно также по аналогии с транзакциями — за все хорошее надо уплатить комиссию. За создание смарт-контракта вы заплатите комиссию майнеру, который сохранит его в блокчейн. За исполнение кода, содержащегося в нем, вы также заплатите — и чем длиннее и сложнее ваш код, тем больше придется заплатить за его выполнение. Поэтому DDoS-атака на блокчейн эфира будет стоить вам очень много денег — если вы попытаетесь начать вызывать все подряд смарт-контракты или сохранять в сеть множество собственных.

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

Децентрализованное, конечно же, приложение. Те самые dApps, что были упомянуты в статье про Trust Wallet, как раз и были придуманы в Эфире. И если биткойн остается просто децентрализованной базой данных, то

Эфир — это децентрализованный компьютер.

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

Если вы выполняли наши домашние задания, вы уже работали со смарт-контрактами, просто еще не знали что это такое. Когда вы клеймили NFT, именно смарт-контракт передал токен на ваш кошелек. Когда вы получали USDT на свой баланс, вы тоже пользовались смарт-контрактом. Ведь чем по сути является отправка токенов USDT с биржи? Вызовом функции внутри смарт-контракта!

Функция отправки токенов <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fetherscan.io%2Faddress%2F0xdac17f958d2ee523a2206206994597c13d831ec7%23writeContract&postId=587783" rel="nofollow noreferrer noopener" target="_blank">смарт-контракта USDT</a>
Функция отправки токенов смарт-контракта USDT

На изображении выше вы видите функции, которые имеются у смарт-контракта. Среди них функция по отправке токенов transferFrom, которой на вход подаются 3 параметра — от кого (_from) , кому (_to) и сколько (_value) .

❗ Таким образом, отправляя токены в блокчейне эфира вы всегда работаете со смарт-контрактами, сами того не подозревая.

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

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

У смарт-контракта есть уникальный идентификатор в сети — его адрес. Однако в отличие от прочих адресов, к этому адресу нет закрытого ключа, т.к. ему не нужно самостоятельно инициировать какую-либо операцию и подписывать её закрытым ключом. Смарт-контракт ожидает вызова определенных функций, которые могут отправить определенную информацию лишь тем, кому ее разрешено отправить. Пример: вы отправляете деньги смарт-контракту, вызывая его функцию. Он записывает, что получил эти деньги именно от вашего адреса в таком-то количестве. Затем чтобы забрать свои средства, вы вызываете другую функцию — она сверяет что вы действительно клали на контракт деньги и вы можете забрать столько, сколько требуется. Другой человек за вас забрать средства не сможет, и даже создатель смарт-контракта не может этого сделать, если, конечно, изначально в смарт-контракте не предусмотрена возможность вывода средств создателем контракта. Что, по-хорошему, нужно проверять самому, т.к. код смарт-контракта открыт и доступен каждому. Ну, а если вы не обладает должными навыками или вам попросту лень, то можете довериться сообществу, которое активно использует этот контракт. До вас уже скорее всего не один человек залез и посмотрел контракт на предмет нежелательных возможностей: )

Да, можно создать смарт-контракт, который будет «обманывать» людей. Например такой, в котором вообще не будет функции возврата средств. Положить можно — вернуть нельзя. Мошенников множество, и они с легкостью ловят доверчивых пользователей, которые спешат за легкими деньгами.

Можно ли «взломать» смарт-контракт?

Блокчейн: Мягкое погружение. Часть 5. Вы в Эфире! Как работает децентрализованный компьютер

К сожалению, да. Любой код уязвим к самым различным видам хитрых манипуляций. Даже если в логике смарт-контракта нет ошибок, иногда можно найти уязвимость. Простой пример — создатель смарт-контракта не учел, что функцию, которую каждый кошелек может вызвать лишь один раз для получения наград за взаимодействие с контрактом, можно вызвать многократно, зная механику работы кода. Так, например, взломали проект The DAO на заре становления Эфира. Событие было по-настоящему скандальным — хакер украл 60 миллионов долларов в эфире у очень крупного и многообещающего проекта, чем мощно подорвал доверие к Эфиру и уронил его курс. Как вы уже знаете, в блокчейне ничего назад не вернуть — служба безопасности Эфира просто не существует. Поэтому для спасения ситуации был предпринят очень тяжелый, но единственно доступный вариант:

  • все блоки идущие после блока, в котором есть запись о выводе хакером 50 миллионов долларов, отцепить.
  • Начать поиск новых блоков с того блока, который предшествовал атаке. В этом случае эфир просто испарится с кошелька хакера — сеть не будет иметь информации об этих операциях. Большинство участников сообщества эфира поддержало эту меру и цепочку пересобрали.

Конечно, были и противники такой меры — они продолжили поиск блоков в прежней последовательности.

Такие ситуации называются «форками» (англ. fork) — вилками, то есть когда блокчейн после определенного блока расщепляется на два самостоятельных блокчейна. Те, кто продолжили основную цепочку, основали проект Ethereum Classic, который жив и по сей день (правда их эфир стоит намного дешевле).

"Получается, любой может создать свою версию любого блокчейна?"

Ответ — да. Вопрос лишь в том, сколько человек поддержит вас. Сеть из одного узла это не сеть. И даже из 5 и 10 узлов — это просто чуть усложненный механизм единой БД под контролем центра. Но если вы придумаете гениальную идею, почему всем нужно начать майнить биткойн с самого первого блока с самого начала (или после определенного блока) — технически вас ничто не остановит. Правило цепочки простое — каждый следующий блок зависит от предыдущего. Что будет предыдущим — выбирайте сами.

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

Итого имеем: Смарт-контракт это открытый код, сохраненный в блокчейне, запускаемый на любом узле сети с помощью EVM и выполняющий взаимодействие с данными в блокчейне (но не с данными из внешних источников) для автоматизации различных задач.

А как же внешние источники данных?

Несмотря на то, что контракт называется смарт (от слова умный; smart) , эта характеристика ему не очень подходит.

На заре популярности экосистемы Эфира (2017-2018 года) практически в каждой первой статье в интернете говорилось, что «Смарт-контракты могут автоматизировать заключение любых сделок». Особенно популярен был пример про аренду квартиры через смарт-контракт (почему-то к 2023 году, правда, никто этого не реализовал).

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

"А может ли смарт-контракт сходить в интернет и проверить прогноз погоды?".

Нет! Природа блокчейна замкнутая. Он работает исключительно с информацией, которая присутствует в блокчейне (транзакции, балансы, адреса) .

"Существует ли возможность на данный момент обойти это ограничение и расширить возможности смарт-контрактов?"

Да, существует. И это решение называется оракулами. Но это тема отдельной статьи. Пока просто запомним, что сами по себе контракты не могут забирать данные из «внешнего» мира, но решение этой проблемы существует.

Еще один пример взаимодействия со смарт-контрактом

Альберт написал на языке Solidity смарт-контракт, позволяющий создать NFT из его коллекции. Он протестировал, что контракт работает корректно в тестовой сети (чтобы не разориться на отладке кода) и публикует его в сеть, создавая специальную транзакцию: вот новый смарт-контракт, вот его адрес. Уплатил комиссию, а сеть, представленная другими участниками, сохранила эту запись. Теперь смарт-контракт Альберта навсегда в блокчейне и доступен любому. Альберт создает веб-сайт для упрощения взаимодействия со смарт-контрактом (чтобы пользователю нужно было лишь нажимать кнопочки) .

Герман хочет создать NFT. У него есть кошелек TrustWallet. Он заходит на сайт Альберта, подключается к сети Ethereum, вызывает смарт-контракт Альберта и создает следующую транзакцию:

«В смарт-контракт Альберта передать значение имени равное "German" в функцию Create_NFT() как аргумент, перечислив оплату за создание 10$ в эквиваленте ETH».

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

Пример функций контракта, создающего NFT
Пример функций контракта, создающего NFT

Данную транзакцию Герман подписывает, оплачивает стоимость создания НФТ, уплачивает комиссию за вызов функции по его созданию и ждет, пока транзакцию кто-то подтвердит. После подтверждения смарт-контракт передает на кошелек Германа NFT-токен с картинкой, на которой красуется его имя. Данная передача токена также фиксируется в блокчейне.

Выигрышная ставка

Биткоин, как вы помните, является активом с ограниченным предложением. Всего будет 21 000 000 биткоинов — когда будет добыт последний, майнерам останется только получать вознаграждения за комиссии. Такой актив (и такие криптовалюты) называется дефляционным. Эфир же, наоборот, в своем предложении не ограничен — его будут добывать бесконечно (прямо как фиатные деньги, которые печатают и печатают каждый год) . Ранее эфира становилось больше каждый год на примерно 9 процентов — сейчас же модель пересмотрели фундаментально и его инфляция будет около 0,5 процентов, и даже меньше.

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

До обновления сентября 2022 года эфир, как и биткоин, приходилось майнить. Учитывая специфику решаемой математической задачи так получилось, что эффективнее всего ее решает графический процессор (в видеокартах) .

Пример небольшой "фермы" для майнинга на видеокартах
Пример небольшой "фермы" для майнинга на видеокартах

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

В чем суть такого обновления и как же тогда находятся новые блоки?

Дело в том, что протокол proof-of-work, используемый эфиром до обновления (и который до сих пор работает в биткоине) хорош абсолютно всем кроме одного — очень тяжело масштабировать сеть. Под масштабированием имеется в виду увеличение числа пользователей сети и совершаемых в ней транзакций. Когда много человек начинает отправлять транзакции , а для подтверждения каждой нужно сжигать электричество — в какой то момент это приводит к тому, что комиссии становятся неоправданно высокими, а транзакции начинают идти долго. Есть и экологический фактор. Сжигание электричества на майнинг — это расточительство и вред окружающей среде (если вы живёте не в Норвегии, то для получения подавляющего большинства вашего электричества сожгли уголь). Под влиянием этих факторов, масштабное обновление эфира изменило протокол консенсуса, заменив его на уже проверенный во множестве других сетей Proof-Of-Stake.

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

  • в специальном смарт-контракте вы блокируете часть ваших средств. Пользоваться вы ими не можете и получить их назад тоже можно не в любой момент времени — обратная выдача займет некоторое время, называемое периодом анбондинга. Заблокированные средства это ваша доля владения.
  • Далее вам необходимо снова решить математическую задачку. Найти необходимо не хэш, начинающийся с определенного числа нулей, а хэш, который будет меньше значения вашей доли. Основное правило цепочки работает также — искомый хэш должен быть связан с предыдущим блоком. Соответственно, чем больше ваша доля — тем больше вероятность найти нужный хэш, так как область допустимых значений больше. Это приводит к следующей закономерности: если вы заблокировали средств в объеме 0,005 процентов от общего числа заблокированных средств, ваш шанс найти следующий блок ~0,005%. На длинной дистанции это будет означать что вы будете получать награду за 0,005 процентов всех блоков, пока соотношение долей не изменится. Если крупный игрок заблокирует большую долю средств, ваша доля уменьшится — вы будете получать меньше наград. Если крупный игрок заберет свою долю назад — ваша доля увеличится, вы будете подтверждать больше блоков. То есть награды всегда пропорциональны вашему вкладу.

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

График инфляции эфира в зависимости от количества застейканного эфира
График инфляции эфира в зависимости от количества застейканного эфира

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

Валидатор не получает ваши деньги, важно это понимать. Они остаются вашими — смарт контракт вернёт эфир лишь тому, кто его туда положил. Он получает, однако, небольшой процент от вашей прибыли (все-таки ему нужно обслуживать оборудование), около 3-5%. Также на валидаторе лежит большая ответственность. Если его узел начнет подтверждать "левые" транзакции, которые не пройдут проверку другими узлами — он будет наказан механизмом слешинга. Часть общей ставки валидатора безвозвратно сгорит — будет уничтожена путем внесения соответствующей записи. Поэтому валидаторов нужно выбирать осторожно — иначе можно лишиться части своих денег.

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

Например: вашему валидатору делегировали столько монет, что от общего числа заблокированных в стейкинге эта сумма составляет 1 процент. В среднем, за месяц ваш валидатор добудет 1 процент всех блоков. Доля ваших монет среди всех, кто делегировал ему свой эфир, составляет 5 процентов — значит вы получите 5 процентов от наград, полученных валидатором, минус комиссия.

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

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

Топливо для вычислений

Разберемся, наконец, с комиссиями в Эфире. В отличие от биткоина, где они просты и понятны, в эфире внедрены не самые очевидные механики. Дело в том, что в эфире вы платите не за байты переданной информации, как в биткоине (вот моя транзакция, в ней содержится 15 КБ данных, плачу 1.5 сатоши за каждый байт) , а за вычислительные ресурсы, которые вы потратите на узле у человека, который обработает вашу транзакцию. Этот подход необходим эфиру, так как если обычные транзакции всегда требуют одних и тех же вычислений, то со смарт контрактами все меняется. Можно написать смарт контракт, который принимает на вход очень мало данных — но вот действий с этими данными он производит очень много, и, как следствие, тратит вычислительные мощности процессора. А вызывать его одновременно могут сотни людей — поэтому для обеспечения финансовой мотивации держателей узлов эфира введен именно такой способ сбора комиссий.

Единица измерения объема вычислительных ресурсов, затрачиваемых на выполнение операций в Эфире, называется газом. Другими словами — это комиссия, которую необходимо затратить на выполнение транзакции.

Газ оплачивается эфиром. Для удобства подсчетов единицей измерения цены газа принято считать Wei — минимально возможный кусочек Эфира (1*10^-12 ETH, так как Эфир дробится до 12 знаков после запятой) . Для еще большего удобства — GWei (ГигаВей) , т. е. 1*10^-9 ETH.

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

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

Расчет полной комиссии за транзакцию на примере

Лимит газа * (Базовая комиссия + Доплата)

Допустим, Альберт должен заплатить Герману 1 ETH. В транзакции лимит газа составляет 21 000 единиц, а базовая комиссия — 100 gwei. Альберт включил доплату в 10 gwei.

Использую приведенную выше формулу, мы можем рассчитать это как:

21,000 * (100+10) = 2,310,000 GWei = 0,00231 ETH.

Когда Альберт совершит перевод, 1,00231 ETH будет списано с его кошелька. Герману будет начислено 1,0000 ETH. Валидатор получит доплату в 0,00021 ETH. Базовая комиссия в 0,0021 ETH будет сожжена.

Если установить лимит газа выше, чем нужно для данной операции — разница вам вернется. Если Альберт в примере выше установит лимит газа 50000, то после выполнения операции на его кошелек вернется

50,000*(100+10) — 21,000*(100+10) =29,000 * 110 = 3,190,000 Gwei = 0,00319 ETH.

❗ Однако, если установить лимит ниже, можно попасть в неприятную ситуацию. Как только смарт-контракт израсходует весь оплаченный газ, он завершится (бесплатно работать никто не будет) . Если к моменту этого завершения он не дойдет до конца своих вычислений и не выдаст вам их результат — операция отменится. Однако, затраты на газ вам не вернуться — ведь вычислительные ресурсы были потрачены!

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

Интерфейс управления платой за газ в кошельке Metamask
Интерфейс управления платой за газ в кошельке Metamask

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

Пример хороших цен на газ.G
Пример хороших цен на газ.G

На примере выше — очень сладкие комиссии. В 2021 году, на пике роста цены эфира и невероятной популярности децентрализованных приложений, размер комиссии доходил до 150 баксов за перевод! И люди были готовы платить такие деньги, потому что эти транзакции приносили им прибыль, покрывающую такие расходы.

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

Чаще всего транзакции дешевеют к ночи и раннему утру, это полезный лайфхак.

Немного практики

Для закрепления знакомства с сетью Эфира, предлагаем вам создать себе короткое имя в тестовой сети Goerli. Короткое имя — это запись в блокчейне о том, что у кошелька есть «никнейм» и переводить на него можно не вбивая длинную строку из цифр, а просто указав ник (например, vitalik.eth).

Блокчейн: Мягкое погружение. Часть 5. Вы в Эфире! Как работает децентрализованный компьютер

Чтобы выполнить эту задачу, установите себе кошелек Metamask (устанавливается аналогично Trust Wallet) . Данный кошелек вам еще пригодится, так как еще не все проекты поддерживают Trust Wallet, а вот Метамаск — это самый популярный и очень старый кошелек для сети эфира, его поддерживают абсолютно все!

Далее вам потребуется переключить сеть в кошельке на Goerli — это тестовая сеть Эфира.

Блокчейн: Мягкое погружение. Часть 5. Вы в Эфире! Как работает децентрализованный компьютер

Открываете Метамаск, выбираете вариант «показать тестовые сети», кошелек перебросит вас в настройки, где нужно включить соответствующую галочку. Вернувшись в основное окно кошелька, выбираете тестовую сеть Goerli.

Теперь вам нужно получить тестовый GoerliETH (так как оплата за создание имени будет производится в нем). Для этого можно воспользоваться Faucet крупного проекта Alchemy:

Пользоваться им достаточно интуитивно — копируете адрес кошелька из Метамаск и вставляете в строку ввода.

Блокчейн: Мягкое погружение. Часть 5. Вы в Эфире! Как работает децентрализованный компьютер
Блокчейн: Мягкое погружение. Часть 5. Вы в Эфире! Как работает децентрализованный компьютер

Один нюанс — данный ресурс требует авторизации. Чтобы не тратить время на регистрацию, просто выберите вариант авторизации через Google.

Блокчейн: Мягкое погружение. Часть 5. Вы в Эфире! Как работает децентрализованный компьютер

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

Зайдя на сайт, подключаем кошелек по нажатию кнопки в левом верхнем углу Connect Wallet, подтверждаем подключение во всплывающем окне.

Блокчейн: Мягкое погружение. Часть 5. Вы в Эфире! Как работает децентрализованный компьютер

Вбивайте в поисковик короткое имя на ваш вкус и ищите. Если такое имя свободно — вы можете его занять.

Блокчейн: Мягкое погружение. Часть 5. Вы в Эфире! Как работает децентрализованный компьютер

Процесс достаточно подробно описан на сайте, дублировать описание не буду. Запросите имя, подождите минуту, подтвердите транзакцию и получите его! Пара кликов, и у вас есть ник в блокчейне. За создание аналогичного в основной сети, естественно, придется заплатить (и за хорошее имя — круглую сумму) .

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

Блокчейн: Мягкое погружение. Часть 5. Вы в Эфире! Как работает децентрализованный компьютер

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

Подведем итоги

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

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

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

Для участия в нашем следующем розыгрыше, заполните, пожалуйста, форму:

Investment Hollow — компания единомышленников, которая видит в криптоиндустрии будущее, а также хороший источник заработка. Ежедневно анализируем рынок в поисках интересных проектов для инвестиций.

Мы всегда рады пополнению: как с опытом в сфере блокчейна и криптовалют, так и без. Присоединяйтесь к нашему сообществу: поможем, чем сможем и двинемся вместе покорять новые вершины 💪🏼

Поддержать канал:

BTC: bc1q00tvfgf6jkzpclvveww7vqlzwfq5fpwsq3p3hj

ETH/USDT (ERC-20): 0x1454908c05ce5B38AF2790d9a476FADa2485D823

USDT (TRC-20): TWVNtifi4RfucTr3m1pgPjL9KPYTH5yL72

1111
6 комментариев

Я правильно понимаю, что нет фиксированного количества транзакций, которые умещаются в блок?

2
Ответить

Именно. Блок определяется не по размеру, а по количеству газа в блоке. Варьируется от 10 млн газа до 30 млн газа в блоке (среднее ~15 млн). Т.е. по сути это объем вычислительных ресурсов, который будет потрачен EVM на выполнение всех транзакций в блоке.

1
Ответить

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

1
Ответить

никогда бы не подумал, что пересылка токенов это обращение к смарт-контракту. Хоть теперь это и очень логично звучит)
думал просто как эфир отправляем и все)

Ответить