Ethereum для новичков: как работает сеть, транзакции и почему есть комиссии
12-12-2025, 21:58
Авторизуйтесь или зарегистрируйтесь, чтобы оценивать материалы, создавать записи и писать комментарии.
Авторизоваться© 2026 24k.ru. Все материалы носят исключительно информационный характер и не являются индивидуальной инвестиционной рекомендацией (ФЗ-39 «О рынке ценных бумаг»). Криптовалюты не являются законным средством платежа в РФ (ФЗ-259). Используя сайт, вы соглашаетесь с нашей Политикой конфиденциальности и использованием cookie.
Смарт-контракты Ethereum — это программы в блокчейне, которые выполняются одинаково у всех узлов сети и меняют состояние (балансы, права, параметры протокола) строго по правилам кода. Если коротко объяснить, как работают смарт-контракты: вы отправляете транзакцию, EVM исполняет код, проверяет условия, списывает газ и либо фиксирует изменения, либо откатывает их. И вот здесь главный парадокс: смарт-контракты дают “автоматизацию без посредника”, но ломаются они обычно не из-за “хакерских магий”, а из-за банальных мест в логике — неверные права доступа, опасные внешние вызовы, прокси-апгрейды, оракулы цен и ошибки интеграций.
База терминов, если нужно освежить: смарт-контракт, EVM.
Коротко: смарт-контракт чаще “ломается” не там, где сложная криптография, а там, где люди ошибаются в бизнес-логике: кто имеет право менять параметры, в каком порядке обновляется состояние, что происходит при внешнем вызове, и что будет, если цена/ликвидность/состояние изменится в ту же секунду.
Любое действие со смарт-контрактом начинается с транзакции: вы подписываете её кошельком, сеть принимает, затем валидаторы включают её в блок. Дальше происходит исполнение в EVM (виртуальной машине Ethereum):
Ключевой момент: в блокчейне важен детерминизм. Один и тот же вход (транзакция + текущее состояние) должен давать один и тот же результат у всех узлов.
Gas — это “счётчик ресурсов”, чтобы никто не мог заставить сеть выполнять бесконечные вычисления. Вы задаёте лимит газа и цену, EVM тратит газ на операции. Если газ закончился — транзакция откатывается (изменения состояния не фиксируются), но газ уже потрачен на попытку исполнения. Поэтому типовая боль новичка: “ничего не произошло, но комиссия списалась”. На уровне EVM это логично: сеть работала, вычисляла, и за это берёт плату.
Контракт хранит данные в storage — это “постоянная память” в блокчейне. Кроме этого, контракт может эмитить events — события для логов. Интерфейсы (кошельки, обозреватели, DeFi-дашборды) часто строят отображение именно по событиям, потому что так быстрее. Но важно помнить:
Почти все инциденты можно разложить на повторяющиеся шаблоны. Ниже — самые частые, с объяснением “почему” и “как это выглядит” с точки зрения пользователя.
| Класс проблемы | Почему возникает | Как выглядит у пользователя |
|---|---|---|
| Права доступа | неверные роли/owner, забытый модификатор, опасные админ-функции | кто-то меняет параметры протокола/выводит средства/замораживает операции |
| Внешние вызовы | контракт вызывает другой контракт, а тот ведёт себя неожиданно | сделка проходит “не так”, появляются обходы логики |
| Reentrancy | внешний вызов до обновления состояния позволяет “зайти повторно” | деньги/токены выводятся больше, чем должны |
| Прокси/апгрейды | ошибки upgrade, storage-коллизии, неверная инициализация | после апгрейда “сломалось всё”, баланс/учёт/права стали неверными |
| Оракулы цен | цена берётся из тонкого рынка/манипулируется в одном блоке | ликвидации “на ровном месте”, займы/обмены по неадекватной цене |
| MEV/фронт-ран | порядок транзакций влияет на результат (особенно DEX) | хуже курс, сэндвич-атаки, проскальзывание больше ожидаемого |
| Математика/округления | ошибки decimal, rounding, деление, “пыль” в учёте | перекосы в долях пула, невидимые потери на длинной дистанции |
| Интеграции токенов | не все ERC-20/721 одинаковы: fee-on-transfer, rebase, нестандартные return | депозит/вывод “не сходится”, неожиданные комиссии, зависшие средства |
Самая неочевидная для новичка причина потерь — не хак, а неправильно сконфигурированные права. Типовые сюжеты:
Для пользователя это выглядит так: “протокол внезапно поменял правила” или “выводы остановились”. Технически — это дизайн управления.
Смарт-контракт редко живёт один. Он вызывает токены, DEX, лендинги, оракулы. Как только контракт делает внешний вызов, он сталкивается с тем, что другой контракт может:
Отсюда правило, которое ломали тысячи раз: сначала обнови состояние — потом делай внешний вызов. В противном случае открывается дверь для реэнтрантности и обходов логики.
Reentrancy — это когда контракт отправляет средства/вызывает внешний контракт, а тот “заходит обратно” в вашу функцию до того, как вы обновили внутреннее состояние. В результате можно повторить вывод или повторно воспользоваться “старым” балансом. Это всё ещё один из самых известных классов ошибок в DeFi.
Почему это продолжает происходить в 2025+: потому что реэнтрантность появляется не только в “withdraw()”. Она всплывает в новых местах: в хуках, в колбэках DEX, при работе с ERC-777-подобными механиками, при сложной многоконтрактной архитектуре.
Многие протоколы используют прокси-паттерны: адрес контракта остаётся тем же, но логика может обновляться. Это удобно для развития, но добавляет целый пласт рисков:
С точки зрения пользователя это выглядит как “вчера работало, сегодня — нет” или “после апдейта появились странные условия”. Технически — это риск апгрейдируемости.
Многие механики DeFi зависят от цены: займы, ликвидации, выпуск синтетики. Если протокол берёт цену из источника, который можно сместить в одном блоке (тонкий пул, низкая ликвидность), возникают манипуляции. Частые причины:
Результат для пользователя — неожиданные ликвидации или “выгодные” сделки для атакующего.
MEV — это извлечение прибыли из порядка включения транзакций. Для пользователя это чаще всего проявляется на DEX:
Это не “поломка кода” в чистом виде, но это место, где UX ломается чаще всего: пользователь подписывает то, что формально допустимо, но экономически плохо.
Ошибки округления редко выглядят как “минус все деньги за минуту”. Чаще это:
Особенно опасны места, где смешиваются разные decimal (6/8/18), и где в формулах есть целочисленные деления.
Даже если протокол идеально написан, он может “сломаться” на токене, который ведёт себя необычно:
Для пользователя это выглядит как “депозит не сошёлся”, “вывод меньше”, “контракт завис”. Технически — это несовместимость предположений.
Практичный принцип: чем больше протокол обещает “простоты и доходности”, тем больше времени стоит потратить на понимание его точек отказа: админ-права, апгрейды, оракулы, внешние зависимости и мосты.
Если хотите системно разбираться в качестве кода и отчётах — держите как основу: аудит смарт-контрактов.
Нет. Блокчейн гарантирует неизменность записей и детерминизм исполнения, но не гарантирует, что код написан без ошибок. Уязвимость — это чаще ошибка логики или неверные допущения, а не “взлом блокчейна”.
Потому что сеть всё равно исполняла код и тратила вычислительные ресурсы. Если в ходе исполнения сработал revert или закончился gas, изменения откатываются, но газ за попытку исполнения уже потрачен.
Это разные риски. Баги кода приводят к непредсказуемому поведению и эксплойтам. Админ-ключи — к управленческому риску: правила можно изменить легитимно, но не обязательно в интересах пользователя. Оба риска важны, особенно в новых протоколах.
Нет. Реэнтрантность появляется в любом месте, где контракт делает внешний вызов до обновления собственного состояния. Это может быть вывод, своп, хук, колбэк или сложная последовательность действий.
Потому что после апгрейда может измениться логика, а также есть риск ошибок в инициализации и несовместимости storage layout. Плюс есть вопрос доверия: кто контролирует апгрейды и есть ли задержки/процедуры.
Это ситуация, когда протокол берёт цену из источника, который можно сместить сделкой в одном блоке (например, тонкий пул). Тогда атакующий “рисует” цену, делает действие (заём/ликвидацию/обмен) и возвращает цену обратно.
Не обязательно. Это экономический эффект публичного мемпула и влияния порядка транзакций на результат. Контракт может быть корректным, но пользователь может получить хуже цену из-за сэндвича или фронт-рана.
Аудит снижает риск, но не убирает его. Важно смотреть на объём и глубину аудита, изменения после аудита, апгрейдируемость, историю инцидентов и то, как устроено управление.
Материал носит исключительно информационный характер и не является индивидуальной инвестиционной рекомендацией (ФЗ-39). Криптовалюты не являются законным средством платежа в РФ (ФЗ-259).
12-12-2025, 21:58
13-12-2025, 02:11
26-11-2025, 17:35
13-12-2025, 02:44
13-12-2025, 18:18
Комментариев нет