Ethereum - это открытая блокчейн-платформа, которая позволяет любому создавать и использовать децентрализованные приложения. В 2013 году Виталик Бутерин, основатель компании Ethereum, опубликовал технический документ Ethereum, в котором изложил суть дизайна и технической стороны Ethereum, заложив основу для активного развития блокчейн-приложений и экосистем в будущем.
Основной целью создания Ethereum было улучшение функциональных возможностей Биткойна, а не только как цифровой платежной системы. Основное различие между ними заключается в том, что Ethereum может хранить код, который может быть выполнен. Эта основная инновация также называется смарт-контрактами, что означает, что любой разработчик может писать исполняемые децентрализованные приложения (dApps) на блокчейне Ethereum для реализации различных бизнес-потребностей и социальных контрактов.
С появлением смарт-контрактов пользователи могут проводить безопасные, прозрачные и автоматизированные транзакции и совместную работу без необходимости в доверии или посредниках. Это расширило полезность и функциональность сетей blockchain.
Однако разработка и практическое применение Ethereum неизбежно столкнулись с некоторыми проблемами, наиболее существенной из которых являются проблемы масштабируемости. Когда криптовалютный рынок пережил бурный рост и резкое увеличение объема транзакций, производительность блокчейна Ethereum становится недостаточной для удовлетворения спроса. Поэтому Ethereum нуждается в постоянных инновациях и эволюции, чтобы удовлетворить растущую пользовательскую базу.
В этом уроке Вы получите исчерпывающий обзор технологической эволюции Ethereum, узнаете, как Ethereum стал пионером в области blockchain, а также поймете проблемы масштабируемости, стоящие перед Ethereum, и соответствующие решения.
До появления Ethereum развитие блокчейна было сосредоточено в основном на цифровых валютах и платежных системах, использующих децентрализованные блокчейн-бухгалтерии для регистрации транзакций. Если взять в качестве примера Биткойн, то сеть Биткойн можно рассматривать как систему с переходами состояний, в которой используется модель Unspent Transactions Output (UTXO). UTXO относится к оставшемуся количеству токенов от транзакции, которое может быть использовано в другой транзакции. Его можно интерпретировать как оставшийся неизрасходованный остаток после того, как кто-то дал Вам некоторую сумму денег.
Каждый раз, когда майнер создает новый блок, он представляет собой изменение в состоянии сети Биткойн, поскольку новый блок содержит несколько действительных транзакций, которые потребляют некоторые существующие UTXO и создают новые UTXO. Эти новые UTXO становятся последним состоянием сети Биткойн, которое отражает количество и распределение Биткойна, находящегося у всех пользователей.
Предыдущее состояние + действительные транзакции в новом блоке = Текущее состояние
Переход состояния UTXO
В повседневной жизни люди больше знакомы с моделью счета, используемой в традиционных банковских системах, где адрес блокчейна соответствует счету. Каждая транзакция предполагает перевод средств или данных с одного счета на другой, а баланс счета - это актив, которым Вы владеете. При проведении транзакций по модели UTXO не существует ограничений на адрес, т.е. для каждой транзакции Вы можете использовать свой адрес. Ваш актив - это сумма всех UTXO, связанных с Вами, а не баланс конкретного адреса. Таким образом, UTXO обладает лучшей распараллеливаемостью, в то время как модель счета скорее всего будет выполняться последовательно, что приведет к ограничению производительности. Хотя модель UTXO обеспечивает лучшую конфиденциальность и масштабируемость, она менее интуитивна и сложна для реализации сложных логических операций. Например, язык программирования Bitcoin имеет следующие ограничения:
Не полный по Тьюрингу
Хотя скриптовый язык Биткойна поддерживает широкий спектр функциональных возможностей, он не поддерживает все вычисления, в частности, в нем отсутствует поддержка циклов. Теоретически, любая операция цикла может быть достигнута путем многократного выполнения базового кода через несколько слоев операторов IF, но это приведет к очень низкой эффективности работы.
Сложность определения стоимости
Скрипты UTXO не могут тонко контролировать сумму, которую можно вывести. Например, пользователю А необходимо хеджировать ценовой риск, а пользователь Б выступает в качестве контрагента. Обе стороны вносят в контракт активы на сумму $1,000. По истечении 30 дней пользователь А получает обратно Биткойн стоимостью $1,000, а оставшаяся часть отправляется пользователю Б. Это потребует оракула для определения долларовой стоимости 1 Биткойна, что вынудит оракула хранить множество UTXO различного номинала.
Отсутствие гибкости государства
UTXO может быть либо потрачен, либо не потрачен. Трудно создавать опционные контракты, децентрализованные системы котировок, протоколы криптографических обязательств и другие приложения, требующие многоступенчатых состояний (например, "в использовании"). Поэтому UTXO можно использовать только для построения простых одноразовых контрактов, а не более сложных "stateful" контрактов в децентрализованных протоколах.
Невозможность видеть данные блокчейна
Модель UTXO не имеет возможности видеть данные блокчейна, такие как случайные числа, временные метки и хэш предыдущего блока. Это ограничение сдерживает развитие игровых и других типов dApps.
Чтобы устранить недостатки Биткойна в приложениях смарт-контрактов, Ethereum отказался от модели UTXO и принял модель счета, подобную личным банковским счетам, где база данных регистрирует баланс каждого счета и автоматически обновляет его при каждой транзакции.
В Ethereum существует два типа счетов: счета, принадлежащие внешним пользователям и контролируемые закрытыми ключами, и счета-контракты, контролируемые кодом смарт-контракта. Эфир служит средством обмена в сети Ethereum.
В развитии блокчейна Ethereum стал первой блокчейн-сетью, которая способствовала широкому распространению смарт-контрактов и dApps. Смарт-контракты на Ethereum обычно программируются с использованием языка Solidity. Они представляют собой программы, выполняемые на блокчейне и обладающие такими свойствами, как автоматизация, децентрализация, прозрачность и неизменяемость, что делает их пригодными для реализации различной бизнес-логики и правил транзакций. Пользователи могут безопасно и надежно совершать сделки, не доверяя третьим лицам.
Смарт-контракты могут использоваться для разработки различных типов dApps, превращая сеть Ethereum, по сути, в глобальный компьютер общего доступа. Любой человек может получить доступ к данным, редактировать и работать с различными типами приложений на этом компьютере в соответствии со своими потребностями.
На первый взгляд, это может показаться не особенно уникальным, ведь это всего лишь выполнение программ, верно? Хранение данных и выполнение кода веб-приложений на централизованных серверах или установка программного обеспечения на персональных компьютерах, на первый взгляд, могут обеспечить те же прикладные функции, что и смарт-контракты.
Однако такой подход сопряжен с ограничениями и рисками, такими как потеря данных, фальсификация и перебои в обслуживании. Появление смарт-контрактов обеспечивает беспрецедентную безопасность, верифицируемость и устойчивость к цензуре традиционных приложений. В частности, смарт-контракты Ethereum имеют несколько ключевых отличий по сравнению с обычными веб-приложениями и программным обеспечением на стороне клиента:
Виртуальная машина Ethereum (EVM) - это компьютер с Тьюринговым завершением, который работает на блокчейне Ethereum. Он выполняет код смарт-контрактов и изменяет состояние блокчейна. Аналогия для понимания этого - операционная система (ОС), работающая на персональных компьютерах или смартфонах, где только в этой специфической среде могут выполняться смарт-контракты и приложения Ethereum.
EVM работает в изолированной среде, не подверженной внешним помехам и не влияющей на базовое оборудование. Он работает путем компиляции кода смарт-контрактов, обычно написанного на языке Solidity, в набор инструкций байткода, называемого байткодом EVM. Затем EVM выполняет эти инструкции шаг за шагом.
Выполнение EVM приводит к изменению состояния блокчейна, например, к передаче токенов, хранению данных или запуску событий. Для того чтобы вредоносный код смарт-контракта не вызывал бесконечных циклов или сбоев в работе сети Ethereum, каждая инструкция потребляет определенное количество газа. Если газа недостаточно, операция не может быть выполнена.
Комиссия за газ относится к комиссии за транзакцию, уплачиваемой в Эфирах (ETH) в сети Ethereum за выполнение смарт-контрактов или передачу токенов. Она используется для вознаграждения майнеров, которые поддерживают работу сети. Стоимость платы за газ зависит от сложности транзакции и уровня перегруженности сети и обычно измеряется в Gwei (1 Gwei = 0,000000001 ETH).
Трейдеры могут устанавливать свою собственную цену на газ (цену за единицу газа) и лимит газа (максимальное количество газа, которое они готовы заплатить), чтобы регулировать скорость и стоимость своих сделок.
Формула расчета платы за газ в Ethereum выглядит следующим образом:
Цена газа * Лимит газа = Плата за газ.
Цена газа представляет собой удельную цену платы. Если цена газа слишком низкая, приоритет транзакции может быть ниже, и майнеры могут ее проигнорировать.
Лимит газа относится к количеству платы. Если лимит газа слишком мал, это не повлияет на приоритет транзакции, но транзакция может не состояться из-за неполного выполнения, и уплаченная плата за газ не будет возвращена.
Согласно EIP-1559 (Ethereum Improvement Proposal), цена на газ включает базовую плату, которая динамически корректируется в зависимости от спроса на сеть и размера блока. Транзакции с ценами на газ, установленными выше базовой платы, гарантированно будут обработаны, а ETH будут сожжены для уменьшения предложения токенов в сети Ethereum.
Чаевые - это необязательная дополнительная плата, которую пользователи готовы заплатить майнерам или валидаторам. Пользователи могут устанавливать собственные значения для подсказок, что может помочь повысить приоритет их транзакций или ускорить скорость транзакций во время перегруженности сети.
Благодаря газовому механизму Ethereum, вычислительные ресурсы и пространство для хранения данных в сети блокчейн могут быть соответствующим образом оценены, что может предотвратить выполнение смарт-контрактами бесконечных ошибочных циклов или атаки со стороны злоумышленников.
До слияния Ethereum в сентябре 2022 года и Ethereum, и Bitcoin полагались на механизм консенсуса Proof of Work (PoW) для обеспечения нормальной работы своих блокчейн-сетей.
Устройства, участвующие в майнинге, должны были решить сложную криптографическую головоломку, используя вычислительные мощности для расчета хэш-значения, отвечающего определенным требованиям. Этот процесс требовал значительных вычислительных ресурсов и электроэнергии, и сложность головоломки продолжала меняться по мере увеличения вычислительной мощности сети. Пользователей, предоставляющих вычислительные мощности, называли майнерами.
Постоянно пытаясь вычислить хэш-значение, майнеры имели возможность найти хэш-значение, удовлетворяющее требованиям. Затем майнеры могли объединить ожидающие транзакции в блок и транслировать этот блок во всю сеть для проверки и подтверждения. Если блок был подтвержден, майнер получал вознаграждение за блок и комиссионные за транзакцию.
После обновления Ethereum 2.0, Ethereum принял механизм консенсуса Proof of Stake (PoS) для майнинга. Узлы, подтверждающие транзакции, должны внести определенную сумму Эфира в качестве залога, чтобы конкурировать за право производить новые блоки.
Цель стакинга - наложить на узлы экономические риски, чтобы узлы, атакующие сеть, сократили свои стакинг-активы, что приведет к потерям. Это служит сдерживающим фактором против злонамеренного поведения. Чем больше Эфира ставит узел, тем выше вероятность получения права на производство новых блоков.
Узлы, отвечающие за производство блоков, должны упаковывать ожидающие транзакции, генерировать новые блоки и транслировать их в сеть для проверки и подтверждения. Если блок подтверждается, узел получает вознаграждение за блок и комиссионные за транзакции, а также определенную прибыль в зависимости от суммы поставленных активов.
Механизм майнинга играет важнейшую роль в сети Ethereum, что в первую очередь отражается в следующих аспектах:
Обеспечение надежности и безопасности транзакций
Майнинг предполагает добавление новых транзакций в блокчейн, увеличение количества блоков и подтверждение легитимности этих транзакций путем получения доказательства работы (в настоящее время - доказательства доли). Майнинг затрудняет злоумышленникам злонамеренную фальсификацию транзакций, обеспечивая надежность и безопасность транзакций.
Сохранение децентрализации блокчейна
Механизм майнинга может помешать какому-либо одному предприятию или организации контролировать всю сеть Ethereum, поскольку майнинг требует значительных вычислительных мощностей (в настоящее время вместо них используются токены), и злоумышленникам потребуются значительные ресурсы для получения контроля. Это обеспечивает децентрализацию сети и предотвращает монопольный контроль со стороны какого-либо физического или юридического лица
Предоставление стимулов для участия
Mining позволяет участникам зарабатывать вознаграждения, внося ресурсы. Это стимулирует пользователей к участию в строительстве и эксплуатации сети, обеспечивая тем самым ее бесперебойное функционирование.
По сравнению с PoW-майнингом, PoS-майнинг требует значительно меньше вычислительных ресурсов и энергопотребления, что делает его более подходящим для удовлетворения потребностей сети Ethereum в развитии и масштабируемости.
Смарт-контракты Ethereum позволили реализовать множество важных приложений, включая:
DeFi (Decentralized Finance)
DeFi - одно из самых успешных применений смарт-контрактов Ethereum. Он использует смарт-контракты для создания ряда децентрализованных финансовых протоколов, таких как MakerDAO, Compound, Uniswap и др. Эти протоколы позволяют предоставлять такие финансовые услуги, как кредитование, торговля, страхование, управление активами и т.д.
NFTs (Non-Fungible Tokens)
NFTs - это цифровые активы, основанные на смарт-контрактах Ethereum, обеспечивающие уникальность и неделимость благодаря функциональности смарт-контрактов. НФТ находят применение в различных областях, таких как искусство, музыка, игры, виртуальная недвижимость и т.д.
DAO (децентрализованные автономные организации)
DAO - это децентрализованная автономная организация, основанная на смарт-контрактах Ethereum. Она позволяет членам принимать решения по внутренним вопросам путем голосования, таким как распределение бюджета, управление персоналом, инвестиционные решения и т.д. ДАО действуют действительно децентрализованным и демократическим образом и могут применяться в сообществах, компаниях, фондах и других организациях.
Эмиссия токенов
Стандарт ERC-20 в Ethereum определяет эмиссию и торговлю токенами, позволяя создавать собственные токены, которыми можно торговать в сети Ethereum.
Децентрализованное хранилище
На платформе Ethereum также существует несколько распределенных протоколов хранения файлов, основанных на смарт-контрактах. Например, протокол Swarm позволяет пользователям хранить файлы в сети распределенным образом, что делает их более безопасными и надежными.
Облачные вычисления
Существует также несколько децентрализованных вычислительных платформ, основанных на смарт-контрактах на платформе Ethereum, например, Golem и iExec. Эти платформы позволяют пользователям арендовать вычислительные ресурсы для выполнения различных приложений, добиваясь, таким образом, более эффективной вычислительной техники и обработки данных.
Цифровая идентификация
EIP-4361 представляет стандартизированную структуру для входа в систему с помощью Ethereum, позволяя пользователям входить в dApps, используя свои Ethereum-адреса вместо традиционных имен пользователей и паролей. Этот механизм аутентификации повышает уровень конфиденциальности и безопасности пользователей, одновременно снижая участие посредников. \
Помимо вышеупомянутых приложений, смарт-контракты Ethereum могут обеспечить широкий спектр других вариантов использования, таких как игры, социальные сети, управление цепочками поставок и т.д. Благодаря программируемости смарт-контрактов сценарии применения на платформе Ethereum продолжают расширяться, предлагая значительный потенциал для будущего развития.
Ethereum пожертвовал некоторой степенью производительности в погоне за децентрализацией и безопасностью. Из-за технических ограничений время генерации блока в Ethereum составляет примерно 12-15 секунд, при этом размер каждого блока ограничен 15 МБ. В результате Ethereum может обрабатывать только около 15 транзакций в секунду.
Однако, будучи крупнейшей сетью смарт-контрактов с точки зрения экосистемы и сообщества разработчиков, Ethereum пережил значительный рост числа уникальных адресов кошельков с ненулевым балансом на своей блокчейн-цепи, увеличившись более чем в десять раз за последние пять лет. Резкое увеличение количества различных протоколов и активности пользователей перегрузило существующую конструкцию, усугубив проблемы масштабируемости Ethereum.
Для улучшения масштабируемости Ethereum сообщество разработчиков предложило различные решения, включая сайдчейны, роллопы, технологию шардинга и перенаправление трафика на другие EVM-совместимые блокчейн-сети для снижения перегруженности.
В этом уроке мы подробно рассмотрели техническую архитектуру и принципы работы Ethereum, а также то, как инновация смарт-контрактов использует потенциал блокчейна, позволяя создавать разнообразные децентрализованные приложения и экосистемы для удовлетворения различных потребностей бизнеса и выполнения социальных контрактов.
Однако быстрый рост Ethereum высветил проблему низкой масштабируемости. Поэтому решение проблемы масштабируемости стало первоочередной задачей для удовлетворения растущих потребностей пользователей.
В следующем уроке мы изучим различные решения для масштабирования и их применение в экосистеме, включая сайдчейн, роллапы и различных конкурентов EVM. Мы также проанализируем их соответствующие преимущества и недостатки, обеспечив Вам лучшее понимание текущего состояния развития и будущих тенденций технологии blockchain.
🎥・Основное видео
| 📄・Связанные статьи |
Ethereum - это открытая блокчейн-платформа, которая позволяет любому создавать и использовать децентрализованные приложения. В 2013 году Виталик Бутерин, основатель компании Ethereum, опубликовал технический документ Ethereum, в котором изложил суть дизайна и технической стороны Ethereum, заложив основу для активного развития блокчейн-приложений и экосистем в будущем.
Основной целью создания Ethereum было улучшение функциональных возможностей Биткойна, а не только как цифровой платежной системы. Основное различие между ними заключается в том, что Ethereum может хранить код, который может быть выполнен. Эта основная инновация также называется смарт-контрактами, что означает, что любой разработчик может писать исполняемые децентрализованные приложения (dApps) на блокчейне Ethereum для реализации различных бизнес-потребностей и социальных контрактов.
С появлением смарт-контрактов пользователи могут проводить безопасные, прозрачные и автоматизированные транзакции и совместную работу без необходимости в доверии или посредниках. Это расширило полезность и функциональность сетей blockchain.
Однако разработка и практическое применение Ethereum неизбежно столкнулись с некоторыми проблемами, наиболее существенной из которых являются проблемы масштабируемости. Когда криптовалютный рынок пережил бурный рост и резкое увеличение объема транзакций, производительность блокчейна Ethereum становится недостаточной для удовлетворения спроса. Поэтому Ethereum нуждается в постоянных инновациях и эволюции, чтобы удовлетворить растущую пользовательскую базу.
В этом уроке Вы получите исчерпывающий обзор технологической эволюции Ethereum, узнаете, как Ethereum стал пионером в области blockchain, а также поймете проблемы масштабируемости, стоящие перед Ethereum, и соответствующие решения.
До появления Ethereum развитие блокчейна было сосредоточено в основном на цифровых валютах и платежных системах, использующих децентрализованные блокчейн-бухгалтерии для регистрации транзакций. Если взять в качестве примера Биткойн, то сеть Биткойн можно рассматривать как систему с переходами состояний, в которой используется модель Unspent Transactions Output (UTXO). UTXO относится к оставшемуся количеству токенов от транзакции, которое может быть использовано в другой транзакции. Его можно интерпретировать как оставшийся неизрасходованный остаток после того, как кто-то дал Вам некоторую сумму денег.
Каждый раз, когда майнер создает новый блок, он представляет собой изменение в состоянии сети Биткойн, поскольку новый блок содержит несколько действительных транзакций, которые потребляют некоторые существующие UTXO и создают новые UTXO. Эти новые UTXO становятся последним состоянием сети Биткойн, которое отражает количество и распределение Биткойна, находящегося у всех пользователей.
Предыдущее состояние + действительные транзакции в новом блоке = Текущее состояние
Переход состояния UTXO
В повседневной жизни люди больше знакомы с моделью счета, используемой в традиционных банковских системах, где адрес блокчейна соответствует счету. Каждая транзакция предполагает перевод средств или данных с одного счета на другой, а баланс счета - это актив, которым Вы владеете. При проведении транзакций по модели UTXO не существует ограничений на адрес, т.е. для каждой транзакции Вы можете использовать свой адрес. Ваш актив - это сумма всех UTXO, связанных с Вами, а не баланс конкретного адреса. Таким образом, UTXO обладает лучшей распараллеливаемостью, в то время как модель счета скорее всего будет выполняться последовательно, что приведет к ограничению производительности. Хотя модель UTXO обеспечивает лучшую конфиденциальность и масштабируемость, она менее интуитивна и сложна для реализации сложных логических операций. Например, язык программирования Bitcoin имеет следующие ограничения:
Не полный по Тьюрингу
Хотя скриптовый язык Биткойна поддерживает широкий спектр функциональных возможностей, он не поддерживает все вычисления, в частности, в нем отсутствует поддержка циклов. Теоретически, любая операция цикла может быть достигнута путем многократного выполнения базового кода через несколько слоев операторов IF, но это приведет к очень низкой эффективности работы.
Сложность определения стоимости
Скрипты UTXO не могут тонко контролировать сумму, которую можно вывести. Например, пользователю А необходимо хеджировать ценовой риск, а пользователь Б выступает в качестве контрагента. Обе стороны вносят в контракт активы на сумму $1,000. По истечении 30 дней пользователь А получает обратно Биткойн стоимостью $1,000, а оставшаяся часть отправляется пользователю Б. Это потребует оракула для определения долларовой стоимости 1 Биткойна, что вынудит оракула хранить множество UTXO различного номинала.
Отсутствие гибкости государства
UTXO может быть либо потрачен, либо не потрачен. Трудно создавать опционные контракты, децентрализованные системы котировок, протоколы криптографических обязательств и другие приложения, требующие многоступенчатых состояний (например, "в использовании"). Поэтому UTXO можно использовать только для построения простых одноразовых контрактов, а не более сложных "stateful" контрактов в децентрализованных протоколах.
Невозможность видеть данные блокчейна
Модель UTXO не имеет возможности видеть данные блокчейна, такие как случайные числа, временные метки и хэш предыдущего блока. Это ограничение сдерживает развитие игровых и других типов dApps.
Чтобы устранить недостатки Биткойна в приложениях смарт-контрактов, Ethereum отказался от модели UTXO и принял модель счета, подобную личным банковским счетам, где база данных регистрирует баланс каждого счета и автоматически обновляет его при каждой транзакции.
В Ethereum существует два типа счетов: счета, принадлежащие внешним пользователям и контролируемые закрытыми ключами, и счета-контракты, контролируемые кодом смарт-контракта. Эфир служит средством обмена в сети Ethereum.
В развитии блокчейна Ethereum стал первой блокчейн-сетью, которая способствовала широкому распространению смарт-контрактов и dApps. Смарт-контракты на Ethereum обычно программируются с использованием языка Solidity. Они представляют собой программы, выполняемые на блокчейне и обладающие такими свойствами, как автоматизация, децентрализация, прозрачность и неизменяемость, что делает их пригодными для реализации различной бизнес-логики и правил транзакций. Пользователи могут безопасно и надежно совершать сделки, не доверяя третьим лицам.
Смарт-контракты могут использоваться для разработки различных типов dApps, превращая сеть Ethereum, по сути, в глобальный компьютер общего доступа. Любой человек может получить доступ к данным, редактировать и работать с различными типами приложений на этом компьютере в соответствии со своими потребностями.
На первый взгляд, это может показаться не особенно уникальным, ведь это всего лишь выполнение программ, верно? Хранение данных и выполнение кода веб-приложений на централизованных серверах или установка программного обеспечения на персональных компьютерах, на первый взгляд, могут обеспечить те же прикладные функции, что и смарт-контракты.
Однако такой подход сопряжен с ограничениями и рисками, такими как потеря данных, фальсификация и перебои в обслуживании. Появление смарт-контрактов обеспечивает беспрецедентную безопасность, верифицируемость и устойчивость к цензуре традиционных приложений. В частности, смарт-контракты Ethereum имеют несколько ключевых отличий по сравнению с обычными веб-приложениями и программным обеспечением на стороне клиента:
Виртуальная машина Ethereum (EVM) - это компьютер с Тьюринговым завершением, который работает на блокчейне Ethereum. Он выполняет код смарт-контрактов и изменяет состояние блокчейна. Аналогия для понимания этого - операционная система (ОС), работающая на персональных компьютерах или смартфонах, где только в этой специфической среде могут выполняться смарт-контракты и приложения Ethereum.
EVM работает в изолированной среде, не подверженной внешним помехам и не влияющей на базовое оборудование. Он работает путем компиляции кода смарт-контрактов, обычно написанного на языке Solidity, в набор инструкций байткода, называемого байткодом EVM. Затем EVM выполняет эти инструкции шаг за шагом.
Выполнение EVM приводит к изменению состояния блокчейна, например, к передаче токенов, хранению данных или запуску событий. Для того чтобы вредоносный код смарт-контракта не вызывал бесконечных циклов или сбоев в работе сети Ethereum, каждая инструкция потребляет определенное количество газа. Если газа недостаточно, операция не может быть выполнена.
Комиссия за газ относится к комиссии за транзакцию, уплачиваемой в Эфирах (ETH) в сети Ethereum за выполнение смарт-контрактов или передачу токенов. Она используется для вознаграждения майнеров, которые поддерживают работу сети. Стоимость платы за газ зависит от сложности транзакции и уровня перегруженности сети и обычно измеряется в Gwei (1 Gwei = 0,000000001 ETH).
Трейдеры могут устанавливать свою собственную цену на газ (цену за единицу газа) и лимит газа (максимальное количество газа, которое они готовы заплатить), чтобы регулировать скорость и стоимость своих сделок.
Формула расчета платы за газ в Ethereum выглядит следующим образом:
Цена газа * Лимит газа = Плата за газ.
Цена газа представляет собой удельную цену платы. Если цена газа слишком низкая, приоритет транзакции может быть ниже, и майнеры могут ее проигнорировать.
Лимит газа относится к количеству платы. Если лимит газа слишком мал, это не повлияет на приоритет транзакции, но транзакция может не состояться из-за неполного выполнения, и уплаченная плата за газ не будет возвращена.
Согласно EIP-1559 (Ethereum Improvement Proposal), цена на газ включает базовую плату, которая динамически корректируется в зависимости от спроса на сеть и размера блока. Транзакции с ценами на газ, установленными выше базовой платы, гарантированно будут обработаны, а ETH будут сожжены для уменьшения предложения токенов в сети Ethereum.
Чаевые - это необязательная дополнительная плата, которую пользователи готовы заплатить майнерам или валидаторам. Пользователи могут устанавливать собственные значения для подсказок, что может помочь повысить приоритет их транзакций или ускорить скорость транзакций во время перегруженности сети.
Благодаря газовому механизму Ethereum, вычислительные ресурсы и пространство для хранения данных в сети блокчейн могут быть соответствующим образом оценены, что может предотвратить выполнение смарт-контрактами бесконечных ошибочных циклов или атаки со стороны злоумышленников.
До слияния Ethereum в сентябре 2022 года и Ethereum, и Bitcoin полагались на механизм консенсуса Proof of Work (PoW) для обеспечения нормальной работы своих блокчейн-сетей.
Устройства, участвующие в майнинге, должны были решить сложную криптографическую головоломку, используя вычислительные мощности для расчета хэш-значения, отвечающего определенным требованиям. Этот процесс требовал значительных вычислительных ресурсов и электроэнергии, и сложность головоломки продолжала меняться по мере увеличения вычислительной мощности сети. Пользователей, предоставляющих вычислительные мощности, называли майнерами.
Постоянно пытаясь вычислить хэш-значение, майнеры имели возможность найти хэш-значение, удовлетворяющее требованиям. Затем майнеры могли объединить ожидающие транзакции в блок и транслировать этот блок во всю сеть для проверки и подтверждения. Если блок был подтвержден, майнер получал вознаграждение за блок и комиссионные за транзакцию.
После обновления Ethereum 2.0, Ethereum принял механизм консенсуса Proof of Stake (PoS) для майнинга. Узлы, подтверждающие транзакции, должны внести определенную сумму Эфира в качестве залога, чтобы конкурировать за право производить новые блоки.
Цель стакинга - наложить на узлы экономические риски, чтобы узлы, атакующие сеть, сократили свои стакинг-активы, что приведет к потерям. Это служит сдерживающим фактором против злонамеренного поведения. Чем больше Эфира ставит узел, тем выше вероятность получения права на производство новых блоков.
Узлы, отвечающие за производство блоков, должны упаковывать ожидающие транзакции, генерировать новые блоки и транслировать их в сеть для проверки и подтверждения. Если блок подтверждается, узел получает вознаграждение за блок и комиссионные за транзакции, а также определенную прибыль в зависимости от суммы поставленных активов.
Механизм майнинга играет важнейшую роль в сети Ethereum, что в первую очередь отражается в следующих аспектах:
Обеспечение надежности и безопасности транзакций
Майнинг предполагает добавление новых транзакций в блокчейн, увеличение количества блоков и подтверждение легитимности этих транзакций путем получения доказательства работы (в настоящее время - доказательства доли). Майнинг затрудняет злоумышленникам злонамеренную фальсификацию транзакций, обеспечивая надежность и безопасность транзакций.
Сохранение децентрализации блокчейна
Механизм майнинга может помешать какому-либо одному предприятию или организации контролировать всю сеть Ethereum, поскольку майнинг требует значительных вычислительных мощностей (в настоящее время вместо них используются токены), и злоумышленникам потребуются значительные ресурсы для получения контроля. Это обеспечивает децентрализацию сети и предотвращает монопольный контроль со стороны какого-либо физического или юридического лица
Предоставление стимулов для участия
Mining позволяет участникам зарабатывать вознаграждения, внося ресурсы. Это стимулирует пользователей к участию в строительстве и эксплуатации сети, обеспечивая тем самым ее бесперебойное функционирование.
По сравнению с PoW-майнингом, PoS-майнинг требует значительно меньше вычислительных ресурсов и энергопотребления, что делает его более подходящим для удовлетворения потребностей сети Ethereum в развитии и масштабируемости.
Смарт-контракты Ethereum позволили реализовать множество важных приложений, включая:
DeFi (Decentralized Finance)
DeFi - одно из самых успешных применений смарт-контрактов Ethereum. Он использует смарт-контракты для создания ряда децентрализованных финансовых протоколов, таких как MakerDAO, Compound, Uniswap и др. Эти протоколы позволяют предоставлять такие финансовые услуги, как кредитование, торговля, страхование, управление активами и т.д.
NFTs (Non-Fungible Tokens)
NFTs - это цифровые активы, основанные на смарт-контрактах Ethereum, обеспечивающие уникальность и неделимость благодаря функциональности смарт-контрактов. НФТ находят применение в различных областях, таких как искусство, музыка, игры, виртуальная недвижимость и т.д.
DAO (децентрализованные автономные организации)
DAO - это децентрализованная автономная организация, основанная на смарт-контрактах Ethereum. Она позволяет членам принимать решения по внутренним вопросам путем голосования, таким как распределение бюджета, управление персоналом, инвестиционные решения и т.д. ДАО действуют действительно децентрализованным и демократическим образом и могут применяться в сообществах, компаниях, фондах и других организациях.
Эмиссия токенов
Стандарт ERC-20 в Ethereum определяет эмиссию и торговлю токенами, позволяя создавать собственные токены, которыми можно торговать в сети Ethereum.
Децентрализованное хранилище
На платформе Ethereum также существует несколько распределенных протоколов хранения файлов, основанных на смарт-контрактах. Например, протокол Swarm позволяет пользователям хранить файлы в сети распределенным образом, что делает их более безопасными и надежными.
Облачные вычисления
Существует также несколько децентрализованных вычислительных платформ, основанных на смарт-контрактах на платформе Ethereum, например, Golem и iExec. Эти платформы позволяют пользователям арендовать вычислительные ресурсы для выполнения различных приложений, добиваясь, таким образом, более эффективной вычислительной техники и обработки данных.
Цифровая идентификация
EIP-4361 представляет стандартизированную структуру для входа в систему с помощью Ethereum, позволяя пользователям входить в dApps, используя свои Ethereum-адреса вместо традиционных имен пользователей и паролей. Этот механизм аутентификации повышает уровень конфиденциальности и безопасности пользователей, одновременно снижая участие посредников. \
Помимо вышеупомянутых приложений, смарт-контракты Ethereum могут обеспечить широкий спектр других вариантов использования, таких как игры, социальные сети, управление цепочками поставок и т.д. Благодаря программируемости смарт-контрактов сценарии применения на платформе Ethereum продолжают расширяться, предлагая значительный потенциал для будущего развития.
Ethereum пожертвовал некоторой степенью производительности в погоне за децентрализацией и безопасностью. Из-за технических ограничений время генерации блока в Ethereum составляет примерно 12-15 секунд, при этом размер каждого блока ограничен 15 МБ. В результате Ethereum может обрабатывать только около 15 транзакций в секунду.
Однако, будучи крупнейшей сетью смарт-контрактов с точки зрения экосистемы и сообщества разработчиков, Ethereum пережил значительный рост числа уникальных адресов кошельков с ненулевым балансом на своей блокчейн-цепи, увеличившись более чем в десять раз за последние пять лет. Резкое увеличение количества различных протоколов и активности пользователей перегрузило существующую конструкцию, усугубив проблемы масштабируемости Ethereum.
Для улучшения масштабируемости Ethereum сообщество разработчиков предложило различные решения, включая сайдчейны, роллопы, технологию шардинга и перенаправление трафика на другие EVM-совместимые блокчейн-сети для снижения перегруженности.
В этом уроке мы подробно рассмотрели техническую архитектуру и принципы работы Ethereum, а также то, как инновация смарт-контрактов использует потенциал блокчейна, позволяя создавать разнообразные децентрализованные приложения и экосистемы для удовлетворения различных потребностей бизнеса и выполнения социальных контрактов.
Однако быстрый рост Ethereum высветил проблему низкой масштабируемости. Поэтому решение проблемы масштабируемости стало первоочередной задачей для удовлетворения растущих потребностей пользователей.
В следующем уроке мы изучим различные решения для масштабирования и их применение в экосистеме, включая сайдчейн, роллапы и различных конкурентов EVM. Мы также проанализируем их соответствующие преимущества и недостатки, обеспечив Вам лучшее понимание текущего состояния развития и будущих тенденций технологии blockchain.
🎥・Основное видео
| 📄・Связанные статьи |