Виртуальная машина Ethereum
В субботу исполнилось 7 лет со дня публичного дебюта Ethereum, блокчейн-сети 30 июля 2015 года добыла свой первый блок и начала революцию в крипто-экосистеме. После Bitcoin и его предложения о передаче стоимости между людьми с помощью криптовалют, Ethereum адаптировал эту технологию и создал «распределенный глобальный компьютер», способный передавать данные и запускать программы децентрализованным способом.
Без Ethereum, web3, децентрализованные финансы (DeFi) и невзаимозаменяемые токены (NFT) не имели бы той формы и силы, которую они имеют сегодня, а многие из их технологий и протоколов не существовали бы. Одним из основных вкладов являются смарт-контракты: способ программирования сети и всех видов приложений, построенных на ее основе — DApps.
Эти смарт-контракты настолько фундаментальны для Ethereum, что для них даже существует специальный инструмент — Ethereum Virtual Machine, распределенная вычислительная машина. От этой EVM зависит все: эмиссия токенов, создание NFT и существование их маркетплейсов, DApps, DeFi, блокчейн-видеоигры, спортивные токены и poaps. Каждый продукт или услуга в экосистеме, которая зависит от смарт-контрактов, предоставляется через виртуальную машину Ethereum.
Что такое виртуальная машина Ethereum (EVM)?
Виртуальная машина Ethereum — это вычислительная среда, в которой реализуются и выполняются смарт-контракты этой сети и миллионы созданных в ней dapps. Другими словами, этот EVM является крупнейшей платформой для программирования во всей крипто-экосистеме.
Ее часто называют «децентрализованным компьютером», хотя на самом деле это вовсе не устройство, а виртуализация или симуляция. Виртуальные машины, которые уже существовали за пределами Ethereum, позволяют создать операционный уровень над базовой системой или программным обеспечением. Это создает искусственную среду, которая может быть использована для тестирования или запуска конфиденциального программного обеспечения безопасным способом. Все это крайне важно для децентрализованной экосистемы, такой как блокчейн и криптовалюты.
Как устроена виртуальная машина Ethereum
Виртуальная машина Ethereum не имеет собственного оборудования, но имитирует работу вычислительного центра и создает среду для разработки и внедрения программного обеспечения с использованием смарт-контрактов. Отсюда и компьютер. А децентрализованным его называют потому, что это не конкретная машина, расположенная в одном месте, а эмуляция, доступная с множества терминалов, которые, в свою очередь, подают мощность на этот EVM, подобно живому разуму.
Виртуальная машина устраняет необходимость в гигантском ангаре, заполненном сверхвысокопроизводительным оборудованием, и заменяет его цифровой средой, в которую пользователи сети могут добровольно добавлять вычислительную мощность в обмен на получение некоторых стимулов, которые предлагает Ethereum. Разработчики могут использовать его для реализации и запуска смарт-контрактов, которые являются основой их dapps.
Что делает виртуальная машина Ethereum
Цель EVM — определять и контролировать состояние каждого блока в сети. Это может звучать как инструмент мониторинга, но относится к чему-то другому: к изменениям состояния, которые являются индикаторами или триггерами для действий во всех видах вычислительных систем. Например, когда что-то включается или выключается, активируется или деактивируется, когда что-то отправляется или принимается, или перемещается файл или документ, происходит изменение состояния.
Эти изменения состояния порождают модификации в структуре данных компьютерных систем. EVM может проверять изменения состояния сети и dapps, чтобы Ethereum и установленное на нем программное обеспечение работали децентрализованно, учитывая такие моменты, как насыщение сети или приоритеты операций.
Таким образом, EVM позволяет любому разработчику выполнять код в рамках экосистемы, в которой нет необходимости полагаться на доверие к третьим лицам, и где выполнение программного обеспечения и результат взаимодействия гарантированы и предсказуемы.
Как работает виртуальная машина Ethereum
Виртуальные машины существуют вне Ethereum и представляют собой программы, эмулирующие компьютерную систему с ее аппаратным (центральный процессор, память, блок хранения данных) и программным (операционная система, приложения, файлы) обеспечением. EVM может запускать программы, создавать файлы и общаться с узлами в рамках сети, но у него есть свои специфические свойства.
Когда в dapp происходит транзакция или соответствующая операция, это вызывает выполнение смарт-контракта. Именно здесь в игру вступает EVM, который отслеживает изменения состояния, необходимые для продолжения работы, и заносит их в генерируемые блоки.
EVM полностью изолирован, как независимая часть, код которой не работает из сети. Это позволяет программной реализации не препятствовать и не вызывать сбоев в транзакционной работе сети или в работе со счетами (в данном случае адресами Ethereum), а также защищает EVM от вредоносных атак.
Более того, базовый протокол Ethereum обеспечивает непрерывную, бесперебойную и неизменную работу этой специальной машины, которая, однако, может давать сбои, поскольку имеет внутреннюю систему регулирования.
Виртуальная машина и экономика Ethereum
EVM может выполнять любые программы, разработанные на совместимом с ним языке программирования Solidity. Но эта свобода означает, что спрос растет, поскольку экосистема dapps продолжает развиваться. Чтобы регулировать и определять приоритет транзакции, а также предотвратить бесконечное выполнение программы, EVM регистрирует затраты на внедрение и выполнение смарт-контрактов, которые измеряются в единицах Gas — тип платы, как в других сетях blockchain.
В Ethereum Gas используется для «упорядочивания» трафика, а также является частью системы поощрения сети. Когда на Ethereum существует большой операционный спрос, заряжается больше газа. Если кто-то хочет получить приоритет обработки, он также может заплатить за большее количество газа. Этот газ оплачивается с помощью ETH, криптовалюты Ethereum, которая является токеном с переменной ценой.
Эти два факта в совокупности означают, что практически никогда две одинаковые сделки, совершенные в разное время, не принесут одинаковой комиссии, измеряемой в долларах, что необходимо учитывать при расчете торговых издержек.
EVM и газ на Ethereum
Управляя платой за газ, EVM консолидирует децентрализованную экономическую систему Ethereum с ее затратами и стимулами (например, оплата труда майнеров и ставка на производительность). За каждую операцию кода взимается плата за газ: чем сложнее код, тем выше плата за газ.
Эта плата взимается и используется для компенсации валидаторов блоков, в текущей системе proof-of-work, все еще используемой в сети Ethereum. Но он также выступает в качестве защиты или страховки от возможных атак, поскольку операционные расходы в случае массированной атаки на сеть становятся недоступными.
И не только с денежной, но и с технологической точки зрения существуют лимиты, обозначающие максимальное количество газа, которое может быть потреблено во всех транзакциях, содержащихся в блоке, что определяет, сколько транзакций входит в один блок. В настоящее время стоимость составляет 8 миллионов Gwei за блок, что эквивалентно примерно 380 единичным переводам ETH из одного направления в другое.