MSTR Cat

Blockchain/Nivel III · La red/3.1 Nodos/Lección 4

Nodos podados y clientes ligeros (SPV)

La arquitectura de la confianza: desde la verificación completa hasta las pruebas Merkle

MaterialesUn nodo de Bitcoin Core configurado con prune=550 (opcional)Una billetera ligeraUn explorador de bloques

Curiosidad

  1. ¿Cómo puede un nodo validar toda la historia de Bitcoin sin almacenar cada bloque para siempre?
  2. ¿Qué mecanismo criptográfico específico permite que una billetera para smartphones verifique su saldo sin descargar cientos de gigabytes de datos?
  3. ¿Por qué los filtros originales de protección de la privacidad para billeteras ligeras filtraron las identidades de los usuarios, y cómo se corrigió ese defecto?

Explorar

  1. La validación completa y el almacenamiento completo son procesos separables. Cada nodo de validación debe procesar cada bloque una vez para construir el conjunto actual de salidas no gastadas, pero no es necesario que conserve los bloques antiguos posteriormente. Algunos clientes van aún más allá y omiten por completo la validación, comprobando únicamente que las transacciones estén incluidas en bloques con suficiente prueba de trabajo. Estas opciones equilibran el espacio en disco, el ancho de banda y la privacidad frente a la independencia.
  2. Un nodo podado realiza esta misma validación inicial de cada bloque desde el origen, pero posteriormente elimina los datos de bloques antiguos para ahorrar espacio en disco. La configuración `prune` en Bitcoin Core mantiene al menos 550 MB de bloques recientes, descartando los más antiguos una vez verificados. Sigue siendo un validador completo, capaz de hacer cumplir las reglas de consenso y proteger la billetera de su propietario con información fiable e independiente. Sin embargo, ya no puede proporcionar datos históricos de bloques a otros nodos ni soportar funciones que requieran búsquedas exhaustivas en la cadena, como `txindex`.
  3. Los clientes ligeros, o nodos SPV, adoptan un enfoque diferente al no validar todo el conjunto de reglas. Solo descargan los encabezados de bloque, que contienen la raíz Merkle de todas las transacciones de ese bloque. Para verificar si una transacción específica está incluida, el cliente solicita una prueba Merkle a un nodo par y la compara con la raíz del encabezado. Esto se basa en la suposición de que la cadena con más trabajo acumulado es válida, sacrificando la aplicación independiente de las reglas a cambio de reducciones drásticas en los requisitos de almacenamiento y ancho de banda.
  4. Las primeras implementaciones de SPV utilizaron filtros Bloom BIP37 para permitir que las billeteras solicitaran solo las transacciones relevantes a los pares. La billetera enviaba un filtro que describía sus direcciones; los pares escaneaban su mempool y enviaban las transacciones correspondientes. Este diseño filtraba la privacidad: al observar los filtros, un par malintencionado podía deducir qué direcciones pertenecían al usuario y rastrear su actividad. Bitcoin Core dejó de ofrecer filtros Bloom por defecto en 2019 (versión 0.19).
  5. Los filtros de bloque compacto (BIP157/158) invirtieron este flujo para restablecer la privacidad. En lugar de que la billetera revele sus direcciones, los nodos completos publican un filtro compacto para cada bloque; el cliente descarga estos filtros y los prueba localmente con sus propias claves. Cuando un filtro coincide, el cliente descarga todo el bloque, ya que solicitar una sola transacción revelaría dicha información al nodo correspondiente. Esto impide que los nodos conozcan qué direcciones monitorea la billetera, mejorando significativamente la privacidad del usuario al mismo tiempo que se mantiene una sincronización eficiente.
  6. Muchas billeteras móviles dependen de un servidor de terceros, como por ejemplo un servidor Electrum, para obtener los datos, mientras verifican las pruebas Merkle contra los propios encabezados de bloque. El compromiso es claro: comodidad y bajo consumo de recursos frente a verificación independiente y privacidad. Un usuario que utiliza un nodo podado mantiene la capacidad total de validación, pero con una capacidad limitada para servir el historial; una billetera SPV tiene un impacto mínimo en los recursos, pero depende de otros nodos para que le muestren todas las transacciones relevantes y asume, sin verificarlo, que la cadena con más trabajo realizado es la válida.

Datos clave

  • Un nodo podado valida todos los bloques desde el origen, pero elimina los datos antiguos, conservando al menos 550 MB de bloques recientes.
  • Los clientes SPV descargan solo los encabezados de bloque y verifican las transacciones utilizando pruebas Merkle con respecto al hash raíz del encabezado.
  • Los filtros Bloom de BIP37 filtraron la privacidad de los usuarios al revelar qué direcciones monitoreaba una billetera a sus pares.
  • Los filtros de bloque compacto (BIP157/158) permiten a los clientes probar localmente los filtros proporcionados por el servidor, preservando la privacidad de las direcciones.
  • Las billeteras SPV confían en que la cadena con más prueba de trabajo acumulada (PoW) es la válida, en lugar de aplicar todas las reglas de consenso de forma independiente.
  • Los nodos podados siguen siendo validadores completos y pueden proteger los fondos de su propietario, pero no pueden proporcionar datos históricos de bloques a otros pares.

Ejercicio nueve, seis, tres, uno

9ReunirEnumera 9 tipos de nodos de Bitcoin o implementaciones de cliente. Indica para cada uno: requisitos de almacenamiento, capacidad de validación (completa vs. SPV) y caso de uso principal.
6AgruparAgrupa los 9 en 6 categorías según su nivel de verificación independiente y retención de datos.
3DestilarReduce los 6 grupos a 3 compromisos distintos entre privacidad, seguridad y consumo de recursos.
1CristalizarEscribe una oración explicando por qué el modelo de confianza de un cliente ligero difiere fundamentalmente del de un nodo completo.

Verificación de hechos

Fechas, cifras y afirmaciones verificadas con las fuentes publicadas que se enumeran a continuación.

Abrir en la academia interactiva →

EN PT ZH JA KO RU DE FR MS