Свой узел: зачем он и почему большинству он не нужен

·6 мин. чтения·Автор: SSP Editorial Team
Обложка SSP Academy: как запустить собственный узел блокчейна

Свой узел: зачем он и почему большинству он не нужен

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

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

Что такое узел на самом деле

Узел скачивает блокчейн и сам проверяет каждое правило. Были ли подписи действительны? Не потрачено ли что-то дважды? Соответствовал ли каждый блок цели сложности? Выплатила ли coinbase-транзакция правильную награду?

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

В этом вся суть. Держа узел, вы никого не спрашиваете, действительна ли транзакция. Ваша машина выводит это из правил. Если блок их нарушил, ваш узел его отвергнет — сколько бы других его ни приняли и что бы ни говорил любой обозреватель.

Три вещи, которые вы действительно получаете

Проверку. Вы сами сверяете консенсус, и это важнее всего именно тогда, когда неудобнее всего: при спорной развилке, расколе цепочки или ошибке консенсуса. Сбой консенсуса Ravencoin — событие того рода, когда «что говорит обозреватель» и «что говорят правила» ненадолго расходятся. Узлу никогда не приходится гадать, за какой цепочкой идти.

Приватность — и её недооценивают. Когда кошелёк спрашивает баланс у публичного сервера, он сообщает этому серверу, какие адреса ваши. Хуже того, кошельки, синхронизирующиеся по расширенному открытому ключу, отдают возможность вывести каждый адрес, который счёт когда-либо использует, — ровно ту связность, избегание которой и составляет приватность в цепочке. Спросите свой узел — и сообщать некому. Вы спрашиваете сами себя.

Рассылку, в которой никто не откажет. Ваш узел объявляет транзакцию прямо одноранговой сети, а не передаёт сервису, который мог бы её отбросить.

Затраты, названные честно

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

Начальная синхронизация. Проверка цепочки от генезис-блока занимает часы на хорошем железе и дни на Raspberry Pi с медленным диском. Это делается один раз, и это по-настоящему утомительно.

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

Сбой, о котором никто не говорит. Заброшенный узел хуже, чем никакой. Если он отстаёт на недели, молча завис или работает на версии, отвергнувшей мягкий форк, который приняли все остальные, он уверенно будет давать неверные ответы. Самопроверка помогает, только если проверяющее само исправно.

Честный вердикт

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

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

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

Кто говорит, что самостоятельное хранение требует узла, преувеличивает. Кто говорит, что узел ничего не меняет, преуменьшает. Он покупает конкретные вещи по конкретной цене, и расчёт у каждого свой.

Что SSP действительно позволяет

Вот часть, делающая всё это конкретным, а не теоретическим.

SSP не привязывает вас к нашей инфраструктуре. В настройках можно переопределить бэкенд для каждой цепочкиnode, api и explorer редактируются, а кошелёк во время работы накладывает ваши значения поверх стандартных. Изящная деталь реализации: если сохраняемое значение совпадает с поставляемым по умолчанию, оно удаляется из хранилища, а не записывается, так что хранилище переопределений содержит только настоящие изменения.

Значит, если вы держите собственную инфраструктуру, можно направить SSP на неё и перестать опрашивать нашу.

Теперь честная оговорка, потому что она реальна. Для UTXO-цепочек SSP общается с индексатором в стиле Blockbook, а не с голым узлом. Одного bitcoind мало — понадобится ещё индексирование Blockbook поверх, а это тяжелее простого полного узла: больше диска, больше настройки, больше обслуживания. Для EVM-цепочек планка ниже, поскольку указать собственную точку RPC ближе к прямой замене.

Это ощутимый разрыв между «можно использовать свой узел» и «использовать свой узел легко», и мы предпочитаем назвать его, а не позволить полю настроек намекать на более гладкий путь, чем существует.

И ещё для ясности: свой узел меняет то, что видят серверы данных цепочки. Он не меняет того, что обрабатывает релей, когда ваши два устройства согласуются. Это разные вопросы с разными ответами, и решение одного не решает другой.

Если хотите попробовать

Начните с той цепочки, что важнее всего, а не со всех сразу. Возьмите машину, которую не жалко оставить включённой, с настоящим SSD — начальная синхронизация на механическом диске по-настоящему мучительна. Дайте ей полностью синхронизироваться, прежде чем на неё полагаться. Потом направьте на неё один кошелёк и посмотрите, заметите ли разницу.

Возможно, не заметите, и это законный результат. Вы узнаете нечто конкретное о собственной модели угроз, а это ценнее абстракции, с которой вы начали.

Основную мысль стоит сохранить, даже если вы никогда не запустите узел. Каждый баланс, который вы видели, откуда-то взялся, и его произвёл чей-то сервер. Понимать, что вы доверяете ответу, а не видите цепочку, — большая часть ценности. Держать узел — лишь возможность перестать.

Поделиться статьёй

Похожие статьи

Квадратная обложка SSP Academy: чтение обозревателя блокчейна

Как читать обозреватель блоков и зачем это нужно

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

6 min
Квадратная обложка SSP Academy: приватность в блокчейне и что выдаёт криптоадрес

Что выдаёт ваш адрес: приватность в навсегда публичном реестре

Адрес достаточно связать с вами ровно один раз, и тогда вся его история — прошлая и будущая — тоже оказывается связанной. Как эвристики кластеризации работают без вашего участия, что действительно помогает и каковы честные границы того, что SSP делает сегодня.

6 min
Квадратная обложка SSP Academy: что может видеть сервер релея SSP

Что релей SSP может видеть, а что нет

Релей никогда не хранит ключ и не может подписывать — но по пятнадцать минут кряду он обрабатывает ваш xpub и вашу неподписанную транзакцию. Что на самом деле обеспечивают TTL-индексы и почему кошелёк устроен так, чтобы не доверять нашему же серверу.

6 min