Легкие клиенты
Последнее обновление страницы: 25 февраля 2026 г.
Запуск полного узла это самый надёжный, приватный, децентрализованный и устойчивый к цензуре способ взаимодействия с Ethereum. С полной нодой вы храните свою собственную копию блокчейна, к которой можно обращаться мгновенно для получения прямого доступа к одноранговой сети Ethereum. Однако, запуск полной ноды требует значительное количество памяти, место на жёстком диске и мощный процессор. Это значит, что не каждый может обслуживать свой собственный узел. Есть несколько решений, изложенных в дорожной карте Эфириума, включая клиенты без отслеживания всего состояния, но ещё потребуется несколько лет, прежде чем они будут реализованы. На ближайшее время нужно найти компромисс, чтобы пожертвовать некоторыми преимуществами использования полного узла ради значительного повышения производительности, что позволит узлам работать с очень низкими требованиями к оборудованию. Узлы, которые находят этот компромисс, называются легковесными узлами.
Что такое легкий клиент
Лёгкий узел — это узел, использующий софт легковесного клиента. Вместо хранения локальных копий данных блокчейна и независимой верификации всех изменений, они запрашивают необходимые данные у отдельных провайдеров. Провайдер может быть в прямой связи с полным узлом, или через централизованный RPC сервер. Затем дата верифицируется лёгким узлом, позволяя ему оставаться синхронизированным с последним блоком в цепочке. Легковесный узел обрабатывает только заголовки блоков, скачивая полное содержимое блоков лишь на некоторое время. Узлы могут быть разными по своей «лёгкости», в зависимости от того, какие комбинации лёгкого и полновесного клиента они используют. Например, самая лёгкая конфигурация — это запуск лёгкого исполнительного клиента и лёгкого консенсусного клиента. Также вероятно, что многие узлы будут обслуживать лёгкие консенсусные клиенты в связке с полными исполнительными клиентами, и наоборот.
Как работают легковесные клиенты?
Когда Ethereum начал использовать механизм консенсуса на основе доказательства владения, была представлена новая инфраструктура специально для поддержки легковесных клиентов. Принцип работы заключается в случайном выборе подгруппы из 512 валидаторов каждые 1,1 дня, которые будут действовать как комитет синхронизации. Синхронизирующий комитет подписывает заголовки последних блоков. Каждый заголовок блока содержит агрегированную подпись валидаторов из комитета синхронизации и «битовое поле», которое показывает, какие валидаторы подписали, а какие нет. Каждый заголовок также включает список валидаторов, которые, как ожидается, примут участие в подписании следующего блока. Это означает, что легковесный клиент может быстро увидеть, что комитет синхронизации одобрил полученные ими данные, а также проверить подлинность комитета синхронизации, сравнив текущий комитет с тем, который ему было сказано ожидать в предыдущем блоке. Таким образом, легковесный клиент может постоянно обновлять свою информацию о последнем блоке Ethereum, фактически не загружая сам блок, а только заголовок, содержащий итоговую информацию.
На уровне исполнения не существует единой спецификации для легковесного клиента исполнения. Область применения легковесного клиента исполнения может варьироваться от «облегченного режима» полного клиента исполнения, который обладает всеми функциями EVM и сети, как полный узел, но проверяет только заголовки блоков, не загружая связанные с ними данные, или же это может быть более упрощенный клиент, который в значительной степени полагается на пересылку запросов поставщику RPC для взаимодействия с Ethereum.
Почему важны легковесные клиенты?
Легковесные клиенты важны, поскольку они позволяют пользователям проверять входящие данные, а не слепо доверять тому, что их поставщик данных корректен и честен, используя при этом лишь малую часть вычислительных ресурсов по сравнению с полным узлом. Получаемые легковесными клиентами данные можно проверить по заголовкам блоков, которые, как известно этим клиентам, подписаны как минимум 2/3 из случайного набора 512 валидаторов Ethereum. Это очень убедительное доказательство того, что данные верны.
Легковесный клиент использует лишь небольшое количество вычислительной мощности, памяти и хранилища, поэтому его можно запускать на мобильном телефоне, встроить в приложение или использовать как часть браузера. Легковесные клиенты — это способ сделать доступ к Ethereum с минимальным уровнем доверия таким же простым, как и при доверии стороннему провайдеру.
Давайте рассмотрим простой пример. Представьте, что вы хотите проверить баланс своего счета. Для этого вам необходимо сделать запрос узлу Ethereum. Этот узел проверит свою локальную копию состояния Ethereum, чтобы найти ваш баланс и сказать его вам. Если у вас нет прямого доступа к узлу, то существуют централизованные операторы, которые предоставляют эти данные как услугу. Вы можете отправить им запрос, они проверят свой узел и отправят вам результат. Проблема в том, что вам приходится доверять поставщику и полагаться на то, что он предоставляет вам правильную информацию. Вы никогда не сможете быть уверены в правильности информации, пока не проверите ее самостоятельно.
Легковесный клиент решает эту проблему. Вы по-прежнему запрашиваете данные у какого-то внешнего поставщика, но когда вы получаете данные обратно, они сопровождаются доказательством, которое ваш легковесный узел может проверить на соответствие информации, полученной из заголовка блока. Это означает, что корректность ваших данных проверяет Ethereum, а не какой-то доверенный оператор.
Какие новшества дают легкие клиенты? Какие инновации делают возможными легкие клиенты?
Основным преимуществом легковесных клиентов является то, что они позволяют большему количеству людей получать доступ к Ethereum независимо, с незначительными требованиями к оборудованию и минимальной зависимостью от третьих лиц. Это хорошо для пользователей, поскольку они могут проверять свои собственные данные, и это хорошо для сети, поскольку увеличивает количество и разнообразие узлов, проверяющих цепочку.
Возможность запускать узлы Ethereum на устройствах с очень малым объемом памяти и вычислительной мощности — одна из основных инноваций, которую дают легковесные клиенты. Если сегодня узлы Ethereum требуют больших вычислительных ресурсов, то легковесные клиенты могли бы быть встроены в браузеры, работать на мобильных телефонах и, возможно, даже на небольших устройствах, таких как умные часы. Это означает, что кошельки Ethereum со встроенными клиентами могли бы работать и на мобильных телефонах. Это означает, что мобильные кошельки могут быть гораздо более децентрализованными, поскольку им не придется доверять свои данные централизованным поставщикам данных.
Расширением этой концепции является поддержка устройств Интернета вещей (IoT). Легкий клиент можно использовать для быстрого подтверждения владения балансом токенов или NFT со всеми гарантиями безопасности, предоставляемыми комитетами синхронизации, что инициирует определенное действие в сети IoT. Представьте себе сервис по прокату велосипедов (opens in a new tab), который использует приложение со встроенным легким клиентом, чтобы быстро проверить, владеете ли вы NFT этого сервиса, и если да, то разблокировать велосипед, на котором вы сможете уехать!
Ролл-апы Ethereum также выиграют от использования легких клиентов. Одной из серьезных проблем ролл-апов были взломы мостов, которые позволяют переводить средства из основной сети Ethereum в ролл-ап. Одна из уязвимостей — это оракулы, которые ролл-апы используют для обнаружения того, что пользователь внес депозит в мост. Если оракул передает неверные данные, он может обмануть ролл-ап, заставив его думать, что в мост был внесен депозит, и некорректно высвободить средства. Легкий клиент, встроенный в ролл-ап, может использоваться для защиты от скомпрометированных оракулов, поскольку депозит в мост может сопровождаться доказательством, которое ролл-ап сможет проверить перед высвобождением токенов. Эту же концепцию можно применить и к другим межсетевым мостам.
Легковесные клиенты также могут использоваться для того, чтобы улучшить кошельки Ethereum. Вместо того чтобы доверять данным, предоставляемым провайдером RPC, ваш кошелек может напрямую проверять представленные вам данные с помощью встроенного легкого клиента. Это добавило бы безопасности вашему кошельку. Если ваш RPC-провайдер был нечестен и предоставил вам неверные данные, встроенный легковесный клиент мог бы сообщить вам об этом!
Каково текущее состояние разработки легких клиентов?
В разработке находится несколько легких клиентов, включая легкие клиенты уровня исполнения, консенсуса и комбинированные легкие клиенты исполнения/консенсуса. Ниже приведены реализации легких клиентов, о которых нам известно на момент написания этой страницы:
- Lodestar (opens in a new tab): легкий клиент консенсуса на TypeScript
- Helios (opens in a new tab): комбинированный легкий клиент уровня исполнения и консенсуса на Rust
- Geth (opens in a new tab): легкий режим для клиента исполнения (в разработке) на Go
- Nimbus (opens in a new tab): легкий клиент консенсуса на Nim
Насколько нам известно, ни один из них еще не считается готовым к использованию в производственной среде.
Также ведется большая работа по улучшению способов доступа легких клиентов к данным Ethereum. В настоящее время легкие клиенты полагаются на RPC-запросы к полным узлам, используя модель «клиент-сервер», но в будущем данные можно будет запрашивать более децентрализованным способом с помощью выделенной сети, такой как Portal Network (opens in a new tab), которая сможет обслуживать легкие клиенты, используя одноранговый протокол gossip.
Другие элементы дорожной карты, такие как деревья Веркла и бессостоятельность, в конечном итоге обеспечат гарантии безопасности легких клиентов наравне с полными клиентами.