Как клиент bitcoin SPV знает, что он не пропустил блок из полного узла? - PullRequest
1 голос
/ 27 апреля 2020

A bitcoin Клиент SPV (Упрощенная проверка платежей) не должен доверять ни одному полному узлу. Он отправляет фильтр Блума на полный узел для обработки только небольшого подмножества всех блоков.

Но что, если клиент SPV подключен к вредоносному полному узлу, и этот вредоносный полный узел намеревался не отправлять блок этому клиенту SPV, который фактически содержит транзакцию, в которой заинтересован этот клиент SPV.

Как клиент SPV защищает себя от того, что он не пропустил ни одной транзакции для своего адреса кошелька с полного узла?

1 Ответ

1 голос
/ 27 апреля 2020

Узел SPV подключается к нескольким полудоверенным узлам, чтобы предотвратить эту атаку. Только один узел должен быть честным.

Во-первых, в то время как клиент SPV не может быть легко обманут, думая, что транзакция находится в блоке, когда это не так, обратное неверно. Полный узел может просто пропустить l ie, что заставляет клиента SPV полагать, что транзакция не произошла. Это можно считать формой отказа в обслуживании. Одна стратегия смягчения состоит в том, чтобы соединиться с несколькими полными узлами и отправить запросы каждому узлу. Однако это может быть побеждено разделением сети или атаками Сибил, так как идентификаторы по существу свободны и могут потребовать большой полосы пропускания. Необходимо позаботиться о том, чтобы клиент не был отрезан от честных узлов.

От https://bitcoin.org/en/operating-modes-guide#potential -spv-слабых сторон

...