Перейти к содержимому
buybitcoinsmart

Глоссарий / Узлы и ПО

Легкий клиент

Другие названия: Тонкий клиент, SPV-узел, Thin client.

Что такое легкий клиент?
Легкий клиент представляет собой кошелек, который не хранит копию блокчейна и спрашивает чужие серверы о том, что произошло с вашими адресами.

Практически любое приложение для биткоина на смартфоне является таким клиентом. Полная цепь превысила 759 ГБ в августе 2026 года, а это не станет хранить ни один телефон, поэтому кошелек держит в лучшем случае несколько мегабайт заголовков блоков, а остальное перекладывает на других. Удобство реально, и цена тоже: кто-то другой узнает ваши адреса, а вы не можете самостоятельно подтвердить то, что вам сообщают.

Как это работает

Легкие клиенты делятся на три семейства, и каждое выдает о вас разный объем сведений.

Самое старое просит полный узел фильтровать за него. По BIP37 кошелек загружает фильтр Блума, описывающий то, что ему интересно, а пиры присылают обратно совпадающие транзакции вместе с доказательствами Меркла, связывающими их с блоками. Он никогда не был таким приватным, как обещала реклама: научная работа, представленная в 2014 году, показала, что фильтры выдавали адреса, которые должны были скрывать. Bitcoin Core отключил эту функцию по умолчанию в версии 0.19.0, выпущенной в ноябре 2019 года, потому что обслуживание таких фильтров было еще и легким способом исчерпать диск узла.

Самое распространенное семейство просто спрашивает сервер напрямую. Кошельки, говорящие по протоколу Electrum, отправляют на сервер отпечаток каждого адреса, за которым наблюдают, а сервер отвечает историей и балансом. Это мгновенно и работает при плохом мобильном соединении, поэтому такое количество программного обеспечения использует этот способ. Это также означает, что один оператор держит полный список ваших биткоинов, ваших адресов и IP-адреса, с которого вы подключились.

Самое новое семейство переворачивает направление фильтрации. По BIP157 и BIP158 узлы вычисляют компактный фильтр для каждого блока и публикуют его, а кошелек скачивает эти фильтры и сам решает, какие блоки кажутся ему значимыми, прежде чем запрашивать их целиком. Никому не сообщается, что вы ищете. Bitcoin Core умеет отдавать такие фильтры начиная с версии 0.21.0 от января 2021 года, а Neutrino является реализацией, которую использует большинство мобильных кошельков Lightning.

Большинство таких кошельков хранят цепь заголовков блоков по 80 байт, и именно так они узнают, что блок существует и содержит доказательство работы. При примерно 960 000 блоках эта цепь весит около 77 МБ, что достаточно мало для смартфона и бесполезно для проверки того, были ли транзакции внутри этих блоков законными.

Где это встречается

Откройте любой кошелек, который завершил настройку меньше чем за минуту, и вы увидите легкий клиент.

Сбой, которого стоит опасаться, не является кражей. Ваши ключи остаются на вашем устройстве, и сервер не может ничего потратить или выдумать платеж с настоящим доказательством работы за ним. Что сервер может, так это молчать. Он может пропустить полученный вами платеж, показать устаревший баланс или, если он злонамеренный, а не просто неисправный, подсунуть вам цепь, которую настоящий узел отбросил бы. Обнаружение любого из этого требует того, чего у легкого клиента нет.

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

Легкий клиент vs упрощенная проверка платежей

Упрощенная проверка платежей является методикой; легкий клиент представляет собой категорию программного обеспечения, и многие программы второго типа не реализуют первую. Настоящая упрощенная проверка платежей означает построение цепи заголовков из доказательства работы и проверку ветви Меркла по ней, прежде чем чему-либо верить. Настольный кошелек Electrum делает именно это с ответами, которые дают его серверы. Очень многие приложения, использующие сервер Electrum, этого не делают и просто показывают баланс, который им передали, даже если в рекламе сказано "SPV wallet". Если вы хотите знать, какой из двух типов у вас работает, посмотрите, синхронизирует ли он вообще заголовки.

Не путать с

Часто задаваемые вопросы

Может ли легкий клиент украсть мой биткоин?

Сервер не может, потому что ваши приватные ключи никогда не покидают ваше устройство и у него нет способа что-либо подписать. Он может лгать умолчанием, скрыть платеж или показать устаревший баланс, а также он узнает, какие адреса принадлежат вам.

Какие легкие кошельки раскрывают о вас меньше всего?

Те, что используют компактные фильтры блоков по BIP157 и BIP158, потому что кошелек скачивает фильтры и решает локально, что запрашивать, вместо того чтобы называть ваши адреса серверу. Подключение любого кошелька к вашему собственному узлу полностью устраняет утечку.

Читайте далее

Связанные термины

Еще в разделе «Узлы и ПО»

Читать эту страницу на английском