Вот что у меня есть до сих пор:
Мобильный телефон может настроить фильтр Блума, чтобы некоторые из включенных ключей не принадлежали ему?
Кроме того, когда узел получает запрос, ему нужно заново сканировать блокчейн, чтобы получить историю транзакций?
Мобильный телефон подключается к узлу с помощью rpc.
Узлы не соединяются друг с другом с помощью RPC. RPC предназначен для владельцев узлов и обычно имеет длинный пароль.
Затем мобильный телефон запрашивает узел, чтобы дать ему набор транзакций для набора открытых ключей.
Не совсем. Прежде всего, в заголовках блоков есть часть под названием «Корень Меркла», которая позволяет клиентам проверять, была ли транзакция в блоке. Теоретически, как описано в технической документации, узлы SPV могут хранить заголовки блоков и запрашивать у других узлов подтверждение Merkle их транзакции. На практике все сложнее. В настоящее время 99% узлов SPV используют BIP 37 . Кроме того, исследуются более совершенные методы SPV, такие как BIP 157 и Neutrino .
Кроме того, когда узел получает запрос, ему нужно заново сканировать блокчейн, чтобы получить историю транзакций?
Узлы должны сканировать всю цепочку блоков на наличие транзакции, если они не знают ее высоту блока, если они не используют txindex=1
и т. д. Если они это делают, доступ к ней тривиален.
Кайл Грэм
MCCCS
gettxout
. Вот что они используют . Кроме того, SPV никогда не раздают открытые ключи, поскольку это может нанести ущерб конфиденциальности.Кайл Грэм
MCCCS
merkleblock
, узлы отправляют хэши [всех транзакций в этих блоках]. Filteradd сообщает узлам, какие публичные ключи интересуют SPV. Если блок не прошел фильтр Блума, узлы могут опустить хэши tx и сохранить данные. Может дать более подробную информацию: bitcoin.stackexchange.com/a/11721/38618Кайл Грэм