Насколько я понимаю, фильтры Блума могут быть определены с некоторыми целевыми хэшами и коэффициентом ложных срабатываний. При фильтрации блокчейна все целевые транзакции гарантированно будут найдены, но многие ложные срабатывания также будут возвращены клиенту по замыслу.
Предположим, что злоумышленник может отслеживать множество спецификаций фильтра Блума, отправляемых клиентом SPV своим одноранговым узлам. Сможет ли он в конечном итоге устранить все ложные срабатывания, выполнив сопоставление подмножеств для всех транзакций, соответствующих фильтрам?
В качестве примера пусть набор всех транзакций представляет собой целые числа от 1 до 100, и предположим, что клиент заинтересован в транзакциях 4, 8 и 15. При первом подключении к сети он передает соответствие фильтра Блума ( 1, 4, 7, 8, 15, 27, 44, 73); во второй раз его фильтр соответствует (3, 4, 6, 8, 15, 27, 66). Злоумышленник сразу сможет сузить количество возможных транзакций до (4, 8, 15, 27); после еще нескольких вызовов он находил правильный ответ.
Я неправильно понимаю, как работают фильтры Блума (например, ложные срабатывания не меняются между соединениями), или это теоретическая или даже практическая проблема?
См. эту статью для хорошего обсуждения:
О положениях о конфиденциальности фильтров Блума в облегченных биткойн-клиентах
Да, вы неправильно понимаете, как работают фильтры ванильного/канонического цветения. Для стандартного определения ложные срабатывания не меняются между подключениями — набор, возвращаемый по второму запросу, если он отличается, будет надмножеством первого набора.
Кроме того, фильтры ванильного Блума не используются в качестве решения проблем безопасности/подслушивания — они представляют собой оптимизацию компромисса между вычислениями и доступом к диску (я думаю о них как о подмножестве алгоритмов кэширования). Вы можете использовать локальный фильтр Блума, чтобы проверить, является ли данный URL-адрес вредоносным, чтобы избежать дорогостоящего сетевого вызова/поиска при каждом доступе к URL-адресу и выполнять сетевой вызов только при получении положительного ответа.
Тем не менее, существуют методы создания структур, подобных фильтрам Блума, которые являются более надежными/имеют более сильные характеристики безопасности. Я не верю, что какие-либо из них применялись к реализации биткойнов.
lxgr
черничные поля