# Эфириум, Смарт-контракты и EVM: как устроен мировой компьютер Web3 и экономика газа

> Как устроен Ethereum: смарт-контракты, виртуальная машина EVM, экономика газа и почему комиссии меняются. Основа для понимания DeFi.

Источник: https://bitcoincompass.pro/articles/ethereum-smart-contracts-evm-guide/  
Опубликовано: 2026-08-15 · Обновлено: 2026-08-15  
Издатель: Bitcoin Compass Pro

# Эфириум, Смарт-контракты и EVM: как устроен мировой компьютер Web3 и экономика газа

Если Биткоин был создан как неизменяемое «цифровое золото» и расчетная одноранговая сеть, то **Ethereum (Эфириум)** совершил фундаментальный технологический скачок, превратив распределенный реестр в глобальный **децентрализованный суперкомпьютер (State Machine)**. Благодаря **виртуальной машине EVM (Ethereum Virtual Machine)** и поддержке Тьюринг-полных смарт-контрактов, разработчики получили возможность создавать самоисполняемый программный код без серверов, цензуры и посредников.

В этом фундаментальном руководстве мы разберем внутреннюю архитектуру EVM, трехуровневую систему памяти (Stack, Memory, Storage), трансляцию исходного кода Solidity в байткод, математику расчета газа по стандарту **EIP-1559** и предоставим рабочий Python-симулятор виртуальной машины.

---

## 1. От калькулятора к мировому компьютеру: почему Биткоина было недостаточно

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

Ethereum предложил совершенно иную парадигму — **транзакционную машину состояний (Global State Machine)**:

* **Мировое состояние (World State)**: Единая гигантская база данных, содержащая все аккаунты, балансы, код смарт-контрактов и их внутренние переменные, организованная в структуру **Merkle Patricia Trie**.
* **Транзакция как переход состояния**: Каждая подтвержденная транзакция в блоке математически переводит общее состояние сети из S в S':

    S' = StateTransition(S, Transaction)

Где функция перехода состояния исполняется средой EVM детерминированно на каждом узле сети.

---

## 2. Архитектура Ethereum Virtual Machine (EVM): Стек, Память и Хранилище

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

![Архитектура виртуальной машины Ethereum EVM: Стек, Память, Байткод и Дерево состояний Merkle Patricia Trie](https://bitcoincompass.pro/images/articles/ethereum-evm-bytecode-architecture.png)

### Трехуровневая модель данных EVM:

| Уровень памяти | Тип | Время жизни | Стоимость газа | Описание и назначение |
|---|---|---|---|---|
| **Stack (Стек)** | LIFO (Last-In, First-Out) | В рамках текущей инструкции | Минимальная (3-8 газа) | Массив из 1024 ячеек разрядностью 256 бит для математических операций |
| **Memory (Память)** | Линейный байтовый массив | Только на время вызова функции | Средняя (растет квадратично) | Временный буфер для формирования строк, массивов и параметров вызовов |
| **Storage (Хранилище)** | Персистентный ассоциативный массив | Навсегда (записывается в блокчейн) | Высокая (до 20 000 газа за SSTORE) | Постоянное состояние смарт-контракта (балансы пользователей, маппинги) |

### Опкоды (OpCodes) и байткод

Смарт-контракты компилируются из языка высокого уровня (Solidity, Vyper) в 16-ричный **байткод**. Байткод состоит из элементарных инструкций (OpCodes):

* `PUSH1..PUSH32` — помещение данных на вершину стека.
* `ADD`, `SUB`, `MUL`, `DIV` — арифметические операции над элементами стека.
* `SLOAD` / `SSTORE` — чтение и запись в постоянную память Storage.
* `CALL` / `DELEGATECALL` — вызов внешних контрактов с сохранением или передачей контекста.
* `REVERT` — откат всех изменений состояния с возвратом оставшегося газа при ошибке.

---

## 3. Жизненный цикл смарт-контракта: от Solidity до деплоя

Процесс создания и исполнения децентрализованного приложения проходит 4 обязательные фазы:

```
[Исходный код Solidity] 
          │
          ▼ Компиляция через solc
[Application Binary Interface (ABI)]  +  [Hex-байткод контракта]
          │
          ▼ Транзакция с data = init_bytecode на адрес 0x0
[Развертывание в сети (Деплой)] ──► Формирование уникального адреса контракта
          │
          ▼ Входящие вызовы пользователей
[Исполнение функций в EVM] ──► Изменение Merkle Patricia Storage Trie
```

* **ABI (Application Binary Interface)**: JSON-схема функций и событий контракта, позволяющая клиентским интерфейсам кодировать вызовы в формат `0x + Method_ID (4 байта) + Parameters (32 байта каждый)`.
* **Детерминированный деплой (CREATE2)**: Позволяет рассчитать точный будущий адрес смарт-контракта еще до его отправки в сеть, используя хэш `keccak256(0xff ++ deployer_address ++ salt ++ keccak256(init_code))`.

---

## 4. Экономика газа и механизм EIP-1559

![Экономика газа Ethereum и механизм сжигания базовой комиссии EIP-1559](https://bitcoincompass.pro/images/articles/ethereum-gas-eip1559-mechanics.png)

В Тьюринг-полной системе существует фундаментальная математическая **проблема остановки (Halting Problem)**: невозможно заранее узнать, завершится ли произвольная программа или зависнет в бесконечном цикле.

> **Газ (Gas)** — это расчетная единица вычислительной сложности операций в EVM, предотвращающая DoS-атаки и зацикливание сети. Каждый опкод имеет строго фиксированную стоимость в единицах газа (например, базовый перевод ETH стоит ровно 21 000 единиц газа).

### Формула комиссии стандарта EIP-1559:

    TotalFee = GasUsed × (BaseFee + PriorityFee)

Где:
* **Base Fee (Базовая комиссия)**: Автоматически регулируется протоколом в зависимости от заполненности предыдущего блока. **100% Base Fee безвозвратно сжигается**, сокращая эмиссию ETH (Ultra Sound Money).
* **Priority Fee / Tip (Чаевые валидатору)**: Премия, стимулирующая валидатора включить транзакцию в следующий блок в приоритетном порядке.
* **Gas Limit**: Максимальное количество газа, которое отправитель готов потратить на выполнение транзакции. Неизрасходованный газ возвращается пользователю.

---

## 5. Главные стандарты токенов Ethereum

Благодаря стандартизации интерфейсов смарт-контрактов экосистема Web3 обладает идеальной интероперабельностью:

| Стандарт | Назначение | Ключевые функции | Примеры активов |
|---|---|---|---|
| **ERC-20** | Взаимозаменяемые токены (Fungible) | `transfer()`, `approve()`, `transferFrom()`, `balanceOf()` | USDT, UNI, LINK, SHIB |
| **ERC-721** | Невзаимозаменяемые токены (NFT) | `ownerOf()`, `safeTransferFrom()`, `tokenURI()` | CryptoPunks, BAYC |
| **ERC-1155** | Мульти-токены (Гибридные) | Пакетные переводы `safeBatchTransferFrom()` | Игровые предметы, GameFi |
| **ERC-4337** | Абстракция аккаунта (Account Abstraction) | Смарт-кошельки, оплата газа любыми токенами, сессионные ключи | Safe, Biconomy |

---

## 6. Ончейн-анализ активности Ethereum и применение в терминале

Для профессионального трейдера активность в сети Ethereum является прямым индикатором фазы рынка:

1. **Динамика сжигания ETH и Gas Gwei**: Высокие значения Gwei (>50-100) указывают на фазу максимальной рыночной эйфории, всплеск ончейн-ликвидности и активный фарминг в DeFi. Падение Gwei ниже 5-10 часто сопровождает фазы глубокой рыночной аккумуляции.
2. **Арбитражные спреды между DEX и CEX**: В периоды волатильности смарт-контракты пулов ликвидности Uniswap и Curve временно отстают от книги ордеров Binance/Bybit, создавая окна для высокочастотного арбитража.
3. **Отслеживание активности китов (Whale Wallets)**: Крупные перемещения токенов ERC-20 на биржевые кастодиальные смарт-контракты позволяют заранее прогнозировать продажи.

Используйте передовые инструменты Bitcoin Compass Pro для систематизации анализа:
* Контролируйте ключевые активы экосистемы Ethereum в реальном времени через [Воч-лист](https://bitcoincompass.pro/features/).
* Оценивайте допустимый риск и размер плеча в [Калькуляторе риска](https://bitcoincompass.pro/features/).
* Отслеживайте аномальные всплески ликвидности и плотности ордеров в [Торговом терминале](https://bitcoincompass.pro/features/).

---

## 7. Алгоритмическая реализация и программный модуль (Python)

Ниже представлен полноценный Python-модуль, моделирующий ядро стека EVM, выполнение базовых опкодов и расчет комиссии EIP-1559:

```python
from typing import List, Dict

class EVMSmartContractEngine:
    # Симулятор виртуальной машины EVM и калькулятор газа EIP-1559

    def __init__(self):
        self.stack: List[int] = []
        self.memory: bytearray = bytearray()
        self.storage: Dict[int, int] = {}
        self.gas_consumed: int = 0

    def push(self, val: int) -> int:
        if len(self.stack) >= 1024:
            raise OverflowError("EVM Stack Overflow (макс 1024 элемента).")
        self.stack.append(val & ((1  int:
        if len(self.stack)  int:
        self.storage[key] = val
        self.gas_consumed += 20000
        return self.gas_consumed

    @staticmethod
    def calculate_eip1559_fee(gas_used: int, base_fee_gwei: float, priority_fee_gwei: float) -> Dict[str, float]:
        effective_gas_price_gwei = base_fee_gwei + priority_fee_gwei
        total_fee_eth = (gas_used * effective_gas_price_gwei) / 1e9
        burned_eth = (gas_used * base_fee_gwei) / 1e9
        validator_reward_eth = (gas_used * priority_fee_gwei) / 1e9

        return {
            "gas_used": gas_used,
            "total_fee_eth": round(total_fee_eth, 6),
            "burned_eth": round(burned_eth, 6),
            "validator_reward_eth": round(validator_reward_eth, 6)
        }

if __name__ == "__main__":
    evm = EVMSmartContractEngine()
    evm.push(100)
    evm.push(250)
    result = evm.add()
    evm.sstore(key=1, val=result)

    print(f"[*] Результат вычислений на стеке: {result}")
    print(f"[*] Значение в Storage[1]: {evm.storage[1]}")
    print(f"[*] Потрачено единиц газа: {evm.gas_consumed:,}")

    fee_metrics = EVMSmartContractEngine.calculate_eip1559_fee(
        gas_used=evm.gas_consumed + 21000,
        base_fee_gwei=25.0,
        priority_fee_gwei=2.0
    )
    print(f"[✓] Метрики EIP-1559: {fee_metrics}")
```

---

## Заключение

Экосистема Ethereum заложила фундамент современной цифровой экономики — от автоматизированных бирж Uniswap до кредитных рынков Aave и решений масштабирования Layer 2 (Arbitrum, Base, Optimism).

**Ключевые выводы:**
* Смарт-контракты неизменяемы после развертывания — аудит кода критически важен.
* Механика EIP-1559 делает транзакции предсказуемыми, сжигая часть комиссий при повышенной нагрузке.
* Для прибыльной торговли отслеживайте ончейн-потоки смарт-мани в [Торговом терминале](https://bitcoincompass.pro/features/) и защищайте капитал с помощью [Калькулятора риска](https://bitcoincompass.pro/features/) Bitcoin Compass Pro.

## Частые вопросы

**Что такое виртуальная машина EVM и зачем она нужна?**

EVM (Ethereum Virtual Machine) — это децентрализованная программная среда исполнения (песочница), работающая на тысячах независимых нод сети. Она отвечает за строго детерминированное исполнение байткода смарт-контрактов и обновление глобального состояния балансов и данных.

**В чем разница между памятью Memory и Storage в смарт-контрактах?**

Memory — это временная энергонезависимая память вызова функции (очищается после завершения транзакции, дешевый газ). Storage — это постоянное хранилище переменных контракта, которое навсегда записывается в структуру Merkle Patricia Trie блокчейна (высокая стоимость газа).

**Почему при ошибке выполнения транзакции газ все равно списывается?**

Валидаторы сети уже потратили реальные вычислительные мощности и ресурсы серверов на обработку инструкций до момента вызова опкода REVERT. Списание газа защищает сеть от DoS-атак с бесконечными намеренными ошибками.

**Как работает механизм сжигания ETH в стандарте EIP-1559?**

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

**Что такое Абстракция Аккаунта (Account Abstraction, ERC-4337)?**

ERC-4337 превращает обычный криптокошелек в программируемый смарт-контракт. Это позволяет оплачивать газ любыми стейблкоинами вместо ETH, настраивать автоматические лимиты, использовать социальное восстановление без seed-фразы и биометрию WebAuthn (Passkeys).
