Skip to main content

Verificación Simplificada de Pagos (SPV) | Bitcoin Glossary | Mapping Bitcoin

Verificación Simplificada de Pagos (SPV)

Protocolo

Also known as: SPV

Simplified Payment Verification: método para verificar transacciones Bitcoin descargando solo cabeceras de bloque, sin almacenar la blockchain completa.

Descripción General

La Verificación Simplificada de Pagos (SPV) es una técnica descrita originalmente en la Sección 8 del whitepaper de Bitcoin por Satoshi Nakamoto. Permite a los clientes verificar que una transacción ha sido incluida en un bloque sin descargar toda la blockchain, reduciendo drásticamente los requisitos de ancho de banda y almacenamiento para los usuarios que no necesitan ejecutar un nodo completo.

Cómo Funciona

Un cliente SPV descarga solo los encabezados de bloque (80 bytes cada uno) en lugar de los bloques completos. Para verificar una transacción, el cliente solicita una prueba de Merkle de un nodo completo, que demuestra que el hash de la transacción está incluido en la raíz de Merkle del bloque.

         Encabezado de Bloque
         (80 bytes)
              |
         Raíz de Merkle
        /           \
      H(AB)        H(CD)
     /    \        /    \
   H(A)  H(B)  H(C)  H(D)
    |      |     |      |
   TxA   TxB   TxC   TxD
                 ^
          (transacción objetivo)

Prueba de Merkle para TxC: [H(D), H(AB)]

El cliente hashea TxC, lo combina con H(D) para obtener H(CD), luego combina H(CD) con H(AB) para verificar que coincide con la raíz de Merkle en el encabezado del bloque.

Consideraciones de Seguridad

SPV proporciona garantías de seguridad más débiles que la validación completa:

  • Los clientes SPV confían en que la cadena más larga contiene solo transacciones válidas, ya que no verifican las reglas de consenso más allá de la prueba de trabajo.
  • Son vulnerables a ciertos ataques donde los mineros incluyen transacciones inválidas en bloques.
  • Los filtros de Bloom (BIP37), históricamente utilizados para la privacidad en SPV, han demostrado filtrar información significativa sobre las direcciones del usuario.

Las alternativas modernas como los servidores Electrum y los filtros de bloque compactos (BIP157/BIP158) ofrecen mejor privacidad y eficiencia para clientes ligeros en comparación con el diseño SPV original.

Conceptos Erróneos Comunes

SPV no significa "sin verificación". Los clientes SPV aún verifican la prueba de trabajo en los encabezados de bloque y confirman la inclusión en Merkle. El compromiso es que no validan de forma independiente cada transacción y script en cada bloque.