Введение в технологию Блокчейн - стр. 58
Фактически, подавляющее большинство узлов в сети Биткойн – это легкие узлы.
Они отличаются от полностью проверяющих узлов тем, что они не хранят полную цепочку блоков.
Они хранят только те части, которые им необходимы, чтобы проверить конкретные транзакции, которые им интересны.
Если вы используете программу кошелька, она обычно включает узел Simple Payment Verification (SPV).
Узел загружает заголовки блоков и транзакции, которые представляют платежи на ваши адреса.
У узла SPV нет уровня безопасности полностью проверяющего узла.
Поскольку узел имеет заголовки блоков, он может проверить, что блоки были добыты, но он не может проверить, что каждая транзакция, включенная в блок, действительно валидная, так как узел не имеет истории транзакций и не знает набор неизрасходованных транзакций.
Узлы SPV могут только проверять транзакции, которые на самом деле влияют на них.
Поэтому они, по сути, доверяют полностью проверяющим узлам, которые подтвердили все остальные транзакции, которые там есть.
Это не плохой компромисс.
Они предполагают, что существуют полностью проверяющие узлы, которые выполняют тяжелую работу, и что, если майнеры добыли этот блок, что является очень дорогостоящим процессом, они, вероятно, также выполнили проверки, чтобы убедиться, что этот блок не будет отброшен.
Экономия затрат на создание узла SPV огромная.
Заголовки блоков составляют примерно 1/1000 размера цепочки блоков.
Поэтому вместо хранения нескольких десятков гигабайт, это всего несколько десятков мегабайт.
Даже смартфон может легко выступать в качестве узла SPV в сети Bitcoin.
Так как биткойн опирается на открытый протокол, в идеале должно быть много разных реализаций, которые легко взаимодействуют друг с другом.
Таким образом, если в одной из них есть ошибка, это вряд ли приведет к разрушению всей сети.
Хорошей новостью является то, что протокол успешно реализуется.
Есть реализации на разных языках, таких как C ++ и Go, и люди создают много других реализаций.
Плохая новость заключается в том, что большинство узлов в сети работают с базовой библиотекой биткойнов, написанной на C ++, поддерживаемой базовыми разработчиками Bitcoin, а некоторые из этих узлов используют предыдущие устаревшие версии, которые не были обновлены.
В любом случае большинство из узлов используют некоторые вариации этого стандартного общего клиента.
Ограничения протокола
Поговорим о некоторых встроенных ограничениях протокола Bitcoin и почему их сложно улучшить.
Есть много ограничений, жестко закодированных в протоколе биткойнов, которые были определены, когда Биткойн был предложен в 2009 году, прежде чем кто-либо действительно подумал, что он может превратиться в глобально важную валюту.