Я знаю, что такое фильтр Блума (BF), и я в курсе этого поста и этой статьи . Но я не понимаю, как это используется в биткойнах.
Я могу себе представить, что узел SPV кодирует интересующие его транзакции в BF и отправляет их на полный узел. Чего я не понимаю, так это того, что после этого делает полный узел?
Просматривает ли он все предыдущие транзакции и проверяет, какая из них находится в BF, и отправляет ли ее на узел SPV?
Кроме того, неясно, насколько приватным будет этот подход, потому что в конце полный узел получает то, что хочет узел SPV, и отправляет его узлу, чтобы он знал, что его интересует.
Если цель состоит в том, чтобы сохранить конфиденциальность запроса SPV, то необходимо использовать некоторые изощренные подходы, такие как поиск частной информации или забывчивый RAM, но они не эффективны для настройки биткойнов.
Я могу себе представить, что узел SPV кодирует интересующие его транзакции в BF и отправляет их на полный узел. Чего я не понимаю, так это того, что после этого делает полный узел?
Полный узел проходит через каждую транзакцию в блокчейне. (Или, по крайней мере, каждую транзакцию, которая произошла после создания кошелька.) Он проверяет следующие вещи по фильтру Блума.
- Проверьте хэш самой транзакции.
- Для каждого вывода проверьте каждый элемент данных выходного скрипта. Это означает, что каждый хеш и ключ в выходном скрипте тестируются независимо. Важно: если выходные данные совпадают во время тестирования транзакции, узлу может потребоваться обновить фильтр, вставив сериализованную структуру COutPoint. Подробности смотрите ниже.
- Для каждого входа протестируйте сериализованную структуру COutPoint.
- Для каждого ввода проверьте каждый элемент данных входного сценария (примечание: входные сценарии всегда содержат только элементы данных).
- В противном случае совпадений нет.
( Источник .)
Если он совпадает, он отправляется на узел SPV. Узел SPV отбрасывает ложные срабатывания.
Если цель состоит в том, чтобы сохранить конфиденциальность запроса SPV, то необходимо использовать некоторые изощренные подходы, такие как поиск частной информации или забывчивый RAM, но они не эффективны для настройки биткойнов.
Я не знаю ни одного частного протокола, который не требует, чтобы полный узел сканировал всю цепочку блоков для каждого запроса.
Если вы знаете об одном, дайте мне знать. :) Всегда интересно услышать о таких вещах.
4хх
Ник Оделл