Что такое Simplified Payment Verification (SPV)?
Simplified Payment Verification (SPV) способ кошелька проверить подлинность платежа без скачивания всех блоков и транзакций. Он опирается на небольшие сводки и краткое доказательство, чтобы подтвердить ваши средства. Представьте, что вы сверяете чек вместо того, чтобы просматривать весь журнал магазина.
SPV обеспечивает ту же безопасность, что и запуск собственного узла. Не совсем так. Он хорош для проверки платежей, но частично полагается на узлы-пиры за некоторую информацию, поэтому это не эквивалент полной локальной проверки правил.
Как работает Simplified Payment Verification (SPV)
Представьте мобильный кошелек, который хочет подтвердить платеж пока вы ждёте кофе. Он общается с узлами, получает небольшие заголовки и запрашивает короткое доказательство, привязанное к вашей транзакции. Краткий обзор:
- Шаг 1: Кошелек подключается к пиринг-узлам и запрашивает заголовки блоков.
- Шаг 2: Затем он запрашивает Merkle Proofs, которые показывают, что ваш платёж содержится в Merkle tree данного блока.
- Шаг 3: Кошелек сверяет доказательство с заголовком и подсчитывает, сколько блоков появилось после него.
- Шаг 4: Если узлы дают разные данные, он сравнивает несколько источников и предпочитает цепочку заголовков с наибольшей работой.
- Шаг 5: Когда число подтверждений достигает заданной настройки, кошелек отмечает платёж как подтверждённый.
Малый объём данных, быстрый результат. Удобно.
Зачем важна Simplified Payment Verification (SPV)
Почему это стоит знать:
- Преимущество: Экономит мобильный трафик и время, так как почти не затрагивает вашу пропускную способность.
- Особенность: Жертвует частью проверок ради скорости, тогда как Full Nodes выполняют основную работу и дают максимальную независимость.
- Применение: Вы встретите его в мобильных кошельках, лёгких клиентах и при повседневных платежах, где важна практичность.
Используйте кошельки, которые подключаются к большому числу узлов, и для крупных сумм ждите несколько подтверждений. Больше источников меньше неожиданностей.
Ключевые характеристики Simplified Payment Verification (SPV)
Что выделяет этот подход:
- Лёгкость: Скачиваются заголовки, а не полные блоки, поэтому запуск быстрый и требует мало места.
- Доказательства: Применяются компактные доказательства вхождения, привязанные к каждому блоку.
- Доверие: Пропускается полная валидация транзакций, то есть предполагается честность большинства майнеров.
- Конфиденциальность: Может раскрывать интересы пользователя узлам, если не применять фильтры или методы сокрытия.
- Синхронизация: Подходит для телефонов и нестабильного WiFi, так как требует небольшого хранилища.
Вариации
SPV бывает в нескольких вариантах, о которых вы услышите:
- Классический: Запрашивает заголовки и доказательства по каждой транзакции у пиров.
- Neutrino: Скачивает компактные фильтры, чтобы кошелек загружал только интересующие блоки с улучшенной приватностью.
- Гибридный: Сочетание фильтров и прямых доказательств для баланса между скоростью и приватностью.
- Watch: Режим наблюдения на десктопе или телефоне, который отслеживает платежи без размещения приватных ключей онлайн.
SPV доказывает вхождение и работу над цепочкой, но не проверяет все правила на вашем устройстве. Для максимальной независимости запускайте собственный полный узел.
Пример
Вы приехали в новый город, открыли мобильный кошелек, он скачал свежие заголовки, проверил доказательство входящего платежа и показал подтверждение до того, как приехал ваш трансфер.
Интересный факт
Сатоши набросал идею SPV в документе о Bitcoin, предложив лёгкий способ для пользователей проверять платежи без тяжёлых загрузок задолго до появления мобильных кошельков.
Итог
Можно представить так: SPV позволяет доверять чековой записи, не перенося весь архив, поэтому ваш телефон может выступать как небольшой, вежливый банк.
