Блокчейн/Уровень VII · Эволюция/7.1 Ethereum: мировой компьютер/Урок 1
Ethereum: сила и цена программируемости
Ловушка Тьюринга: что происходит, когда блокчейн может запускать любую программу
МатериалыКопия BIP-341 (Taproot)Whitepaper Ethereum (2014)Статья о BitVM (2023)
Любопытство
- Почему возможность выполнять произвольный код неизбежно расширяет поверхность для краж?
- Как сообщество провело форк собственного блокчейна, чтобы отменить последствия взлома, и почему Биткоин отверг этот прецедент?
- С помощью какого именно механизма Биткоин проверяет тяжёлые вычисления, не выполняя их?
Исследование
- Ethereum запустился в июле 2015 года с иной, чем у Биткоина, целью — программируемостью общего назначения. Если скрипт Биткоина создавался для конкретных финансовых транзакций, поддающихся аудиту, то Ethereum представил Тьюринг-полную виртуальную машину (EVM). Это позволило разработчикам писать и развёртывать любые программы прямо в блокчейне. Результатом стал взрывной рост токенов, протоколов децентрализованных финансов и невзаимозаменяемых токенов, которые было невозможно воспроизвести в ограниченной среде скриптов Биткоина.
- У мощи вычислений общего назначения оказалась своя цена. В июне 2016 года рекурсивная ошибка в смарт-контракте The DAO позволила злоумышленнику вывести примерно треть собранных средств. Сообщество Ethereum оказалось в кризисе: позволить коду исполняться так, как он написан («код — это закон»), или вмешаться? Оно выбрало вмешательство и провело хардфорк, который с помощью нерегулярного изменения состояния перевёл украденные средства на контракт для возврата. Это решение разделило блокчейн на Ethereum и Ethereum Classic и доказало, что социальный консенсус способен взять верх над неизменяемым кодом.
- Инцидент с The DAO выявил структурную уязвимость: выразительность расширяет поверхность атаки. Большинство последующих краж в программируемых блокчейнах были вызваны не взломом криптографии, а сохранёнными административными ключами, обновляемой логикой контрактов или банальными ошибками в коде. Когда блокчейн позволяет запускать любую программу, каждая новая функция добавляет сложность, которую можно эксплуатировать. Бремя безопасности перекладывается с разработчиков протокола на тысячи отдельных разработчиков, у которых может не быть строгого аудита.
- Один из ответов на эту поверхность атаки пришёл изнутри самого языка. Move, созданный в Facebook для впоследствии заброшенного проекта Libra (позже Diem), рассматривает токены как ресурсы — значения, которые система типов не позволит программе скопировать или молча отбросить, поэтому целые классы ошибок двойного учёта и потери средств проваливаются на этапе компиляции, а не в продакшене. Когда в 2022 году Diem закрыли, бывшие инженеры Diem перенесли Move на новые блокчейны. Aptos, основанный Эйвери Чингом и Мо Шейхом, запустил мейннет 17 октября 2022 года с Block-STM — движком параллельного исполнения, который оптимистично выполняет транзакции, затем проверяет, какие из них затронули одни и те же данные, и повторно выполняет только их. Инженерные решения были передовыми; запуск — нет. Биржи залистили токен APT ещё до публикации его распределения, цифры показали, что примерно половина предложения досталась инвесторам, ключевым разработчикам и фонду, ранняя ончейн-активность сильно не дотягивала до заявленной пропускной способности, а команда признала, что всё «могло пройти лучше». Sui, созданный другой группой бывших инженеров Diem, последовал за ним с собственным мейннетом на Move в 2023 году. Этот урок работает в обе стороны: более безопасные языки сужают поверхность атаки, но технологии не спасут запуск, который остаётся непрозрачным для холдеров.
- Ответом Биткоина стало избирательное заимствование, а не копирование целиком. Вместо вычислений общего назначения Биткоин внедрил конкретные возможности, поддающиеся аудиту. Taproot, активированный в ноябре 2021 года, ввёл деревья скриптов, которые позволяют задавать сложные условия расходования средств, сохраняя приватность и эффективность. Кошельки внедрили PSBT (Partially Signed Bitcoin Transactions, частично подписанные биткоин-транзакции) — стандартный формат для передачи транзакции между подписантами. Эти дополнения расширяют функциональность, не вводя виртуальную машину общего назначения, в которой любой код с ошибками может поставить под угрозу всю сеть.
- Для тяжёлых вычислений, которые не под силу простым скриптам, путь вперёд предлагает подход BitVM. Предложенный Робином Линусом в 2023 году, BitVM выносит тяжёлые вычисления офчейн; в Биткоине проверяется только спорный шаг, и лишь в том случае, если кто-то его оспорит. Это сохраняет базовый уровень Биткоина компактным и одновременно открывает дорогу продвинутым приложениям, гарантируя, что основной протокол остаётся простым, проверяемым и устойчивым к каскадным сбоям, которые наблюдаются в средах смарт-контрактов общего назначения.
- Компромисс очевиден: Ethereum ставит во главу угла гибкость ценой усложнения безопасности и рисков, связанных с обновляемостью; Биткоин отдаёт приоритет стабильности и явности, ограничивая вычисления. Для любой новой функции, добавляемой в блокчейн, проверка одна: не вводит ли она скрытое состояние или административные полномочия, которыми можно злоупотребить. Если возможность нельзя проверить с помощью простых прозрачных правил, не полагаясь на доверенных третьих лиц или сложные форки на основе социального консенсуса, она несёт в себе неотъемлемый риск. Именно это различие определяет нынешнее архитектурное расхождение двух ведущих блокчейнов.
Ключевые факты
- Мейннет Ethereum запущен в июле 2015 года с Тьюринг-полной виртуальной машиной.
- Взлом The DAO произошёл в июне 2016 года и привёл к хардфорку, разделившему блокчейн.
- Taproot был активирован в Биткоине в ноябре 2021 года (блок 709,632) и ввёл деревья скриптов.
- Большинство краж из смарт-контрактов связаны с сохранёнными административными ключами или ошибками в коде, а не со сбоями криптографии.
- Move (из проекта Facebook Libra/Diem) моделирует токены как ресурсы, которые нельзя скопировать или отбросить; Aptos запустил мейннет на базе Move 17 октября 2022 года с параллельным исполнением Block-STM.
- BitVM позволяет выполнять вычисления офчейн с разрешением споров ончейн, сохраняя базовый уровень компактным.
- PSBT позволяет выстраивать процессы подписания транзакций несколькими сторонами с явной ответственностью каждой из них.
Упражнение девять, шесть, три, один
9СобратьПеречислите 9 функций или протоколов смарт-контрактов. Укажите, опирается ли каждый из них на вычисления общего назначения, специализированную логику скриптов или внешние оракулы.
6СгруппироватьСгруппируйте эти 9 пунктов в 6 групп по поверхности атаки, которую создаёт каждый из них.
3Выделить главноеСведите 6 групп к 3 основным причинам, по которым вычисления общего назначения повышают системный риск.
1КристаллизоватьНапишите 1 предложение о том, где вы провели бы границу между безопасной и опасной возможностью и почему.
Проверка фактов
Даты, цифры и утверждения были проверены по приведенным ниже опубликованным источникам.
- V. Buterin, Ethereum: A Next-Generation Smart Contract and Decentralized Application Platform (2014)
- P. Wuille, J. Nick & A. Towns, BIP-341: Taproot (2020)
- R. Linus, 'BitVM: Compute Anything on Bitcoin' (2023)
- Contemporary reporting on The DAO hack (June 2016)
- Aptos Foundation, Aptos Tokenomics Overview (2022)
- R. Gelashvili et al., "Block-STM: Scaling Blockchain Execution by Turning Ordering Curse to a Performance Blessing" (2022)
- Contemporary reporting on the Aptos mainnet launch and tokenomics (CoinDesk/Yahoo Finance, October 2022)