Ethereum и смарт-контракты: газ, EVM и роллапы
Модель счетов, газ и EIP-1559, что на самом деле изменил The Merge, как устроены optimistic- и ZK-роллапы и почему код в блокчейне так трудно исправить.
От денег к компьютеру
Биткоин умеет одну вещь — переводить биткоины, и его язык скриптов намеренно ограничен. Ethereum, запущенный 30 июля 2015 года, предложил другую идею: пусть блокчейн хранит не только балансы, но и программы, а каждый узел сети исполняет их одинаково. Такие программы называют смарт-контрактами, а среду, в которой они работают, — Ethereum Virtual Machine (EVM).
Смарт-контракт — это не «умный договор» в юридическом смысле, а код с собственным адресом и собственным хранилищем данных. Кто угодно может вызвать его функцию, отправив транзакцию. Код выполнится на всех узлах, и все узлы придут к одинаковому новому состоянию. Отменить или «переиграть» результат после финализации нельзя.
Счета вместо купюр
В отличие от биткоина с его UTXO, Ethereum использует модель счетов. Есть два типа аккаунтов:
- Внешние (EOA) — управляются закрытым ключом, как обычный кошелёк. Только они могут инициировать транзакцию.
- Контрактные — управляются кодом. Они не могут начать действие сами, но в ответ на вызов могут вызывать другие контракты, переводить средства и менять своё хранилище.
У каждого внешнего аккаунта есть счётчик транзакций — nonce. Он защищает от повторной отправки одной и той же подписанной транзакции и задаёт порядок: транзакция с nonce 7 не будет включена в блок, пока не прошла транзакция с nonce 6. Если одна транзакция «застряла» с низкой комиссией, за ней встают все следующие.
Газ: почему транзакции стоят денег
Если любой может запустить на всех узлах сети любой код, что помешает запустить бесконечный цикл? Ответ — газ. Каждая операция EVM имеет фиксированную стоимость в единицах газа: сложение стоит 3 единицы, запись нового значения в ранее пустую ячейку хранилища — порядка 20 000. Отправитель заранее указывает лимит газа и платит за каждую потраченную единицу. Если газ закончился посреди выполнения, все изменения откатываются, а потраченный газ не возвращается.
С обновления London (август 2021 года, EIP-1559) цена газа состоит из двух частей:
- Базовая комиссия — устанавливается протоколом автоматически в зависимости от загрузки предыдущего блока и сжигается, то есть не достаётся никому.
- Чаевые (priority fee) — идут тому, кто собрал блок, и позволяют «пролезть» вперёд в очереди.
Сжигание базовой комиссии означает, что при высокой активности сети ETH может уничтожаться быстрее, чем выпускается как награда валидаторам. В такие периоды общее предложение ETH сокращается.
The Merge
15 сентября 2022 года Ethereum перешёл с Proof of Work на Proof of Stake. Технически это было соединение (отсюда название) основной сети с отдельной цепочкой Beacon Chain, которая к тому моменту уже почти два года работала на PoS. Переключение прошло без остановки сети, с сохранением всех балансов и контрактов.
Практические последствия: энергопотребление сети упало на ~99,95%, выпуск новых ETH сократился примерно в десять раз, а время блока стало строго фиксированным — 12 секунд. Комиссии при этом не снизились: The Merge менял механизм консенсуса, а не пропускную способность.
Масштабирование: роллапы
Базовый слой Ethereum обрабатывает порядка пары десятков простых транзакций в секунду. Вместо того чтобы увеличивать эту цифру ценой децентрализации, экосистема сделала ставку на роллапы — сети второго уровня (L2). Роллап исполняет транзакции у себя, а в основную сеть публикует сжатые данные и итоговое состояние. Безопасность средств при этом опирается на Ethereum.
| Optimistic rollup | ZK-rollup | |
|---|---|---|
| Примеры | Arbitrum, Optimism, Base | zkSync, Starknet, Scroll, Linea |
| Как доказывается корректность | Считается верным, пока никто не оспорил (fraud proof) | Каждый пакет сопровождается криптографическим доказательством (validity proof) |
| Вывод в L1 | Около 7 дней — окно для оспаривания | После проверки доказательства — от минут до часов |
| Сложность | Проще, полная совместимость с EVM | Дорогие вычисления доказательств, совместимость с EVM достигалась постепенно |
Обновление Dencun (март 2024, EIP-4844) добавило в Ethereum «блобы» — отдельный дешёвый тип данных, которые хранятся около 18 дней и нужны именно роллапам. После него комиссии в популярных L2 упали в разы, а в спокойные часы опустились до долей цента.
Код — это закон, пока в нём нет ошибки
Контракт после публикации обычно нельзя изменить. Это даёт пользователям гарантию, что правила не поменяют задним числом, но и превращает любую ошибку в постоянную уязвимость. Первый громкий урок случился в 2016 году: из контракта The DAO через ошибку повторного входа (reentrancy) вывели около 3,6 млн ETH. Сообщество приняло решение откатить последствия хардфорком; несогласные остались на старой цепочке, которая существует до сих пор как Ethereum Classic.
Сегодня многие протоколы используют обновляемые контракты через прокси: адрес остаётся прежним, а логику можно заменить. Это позволяет исправлять ошибки, но возвращает доверие к людям, у которых есть ключ обновления. Поэтому при оценке DeFi-протокола важно смотреть не только на аудит, но и на то, кто и с какой задержкой (timelock) может менять код.
Итог
Ethereum — это общий компьютер, где вычисления медленные и дорогие, зато результат нельзя подделать и нельзя отменить. Именно это сочетание делает возможными DeFi, токены и NFT. Основная жизнь пользователей постепенно переезжает на L2, а базовый слой становится «судом последней инстанции» — местом, где хранятся доказательства и разрешаются споры.
Материал носит образовательный характер и не является инвестиционной рекомендацией. Операции с криптовалютами связаны с высоким риском потери средств.