Entiendo que Bitcoin se escala en varios significados ( Escalabilidad ), y la poda es un concepto importante ( Pregunta SE ). También entiendo que una "Verificación de pago simplificada" (SPV) necesita confiar mucho en el par del que obtiene la cadena de bloques.
Una poda muy conservadora (por ejemplo, transacciones de más de seis meses y gastadas) no haría mucho daño, especialmente cuando sería solo una opción de configuración para bitcoin-qt. De esa forma, el valor predeterminado es el nodo completo, pero es fácil tener un "nodo pequeño".
Pero no lo veo venir de todos modos pronto. ¿Hay una razón? ¿Es tan importante tener nodos llenos en el momento que los desarrolladores digan "o vas a por todo o nada"? ¿O es el esfuerzo de desarrollo el cuello de botella? En mi humilde opinión, una gran red de nodos que no sean SPV es más importante que una pequeña red de nodos completos.
Editar: Pongámoslo más concreto: ¿Existe un problema de seguridad importante de no tener el historial completo de transacciones del mundo hasta el bloque de génesis?
Se está considerando la poda, de hecho, se tuvo en cuenta al diseñar el formato de base de datos 0.8. Los resultados de transacciones no utilizados (que es el único dato esencial necesario para la validación) ya se guardan en una base de datos separada, por lo que técnicamente es perfectamente posible eliminar bloques antiguos. Es probable que requiera algunos pequeños cambios para asegurarse de que el código no se rompa cuando se soliciten datos de bloque que ya no existen, pero esto es fácil.
La razón por la que no se implementa es por el efecto en la red como un todo. Si una gran cantidad de nodos comienza a eliminar los datos de bloques antiguos, será más difícil para los nuevos nodos que se inician encontrar los datos históricos para verificar. Esto no es un problema como tal; espero que queden suficientes copias para que no sea un verdadero problema, pero necesitamos un mecanismo de descubrimiento para que los nodos no necesiten probar arbitrariamente a los pares hasta que lleguen a uno que tenga los bloques que necesitan. . De hecho, hay una discusión sobre este derecho en la lista de correo de desarrollo de bitcoin.
EDITAR: La poda se implementó en Bitcoin Core 0.11 y es completamente funcional desde 0.12.
AFAIK, todas las salidas de transacciones se eliminan de la base de datos cuando se gastan. Sin embargo, no de la base de datos de bloques, pero simplemente no tiene mucho sentido eliminarlo de la base de datos de bloques, ya que solo empeoraría el rendimiento del nodo.
Y no puede purgar las salidas no gastadas, ahora importa la antigüedad que tengan, por razones bastante obvias.
Borph
Borph
snapfractalpop
pieter wuille