¿Qué le sucede a un nodo si .bitcoin/chainstate está dañado?

Traté de buscar respuestas a mis preguntas, pero no encontré ninguna, pero perdónenme si esta es una pregunta duplicada.

Supongamos que de alguna manera .bitcoin/chainstatese corrompe, por ejemplo, se elimina un UTXO. Supongo que este nodo intentará rechazar cualquier bloque que contenga una transacción que intente usar el UTXO eliminado.

¿O el nodo detectará de alguna manera que se chainstateha dañado y volverá a escanear la cadena de bloques? Si este es el caso, ¿cómo lo detectaría el nodo?

Finalmente, suponga que todos los nodos chainstatese corrompieron exactamente de la misma manera, se eliminó un UTXO. Entonces, este UTXO se ha ido efectivamente, a pesar de que permanece en la cadena de bloques.

Gracias.

Respuestas (1)

Encontré una respuesta de Pieter Wuille a otra pregunta que parece ser relevante aquí. La parte pertinente dice:

"Sin embargo, no descargue un estado de cadena de un lugar aleatorio en Internet. Pueden introducir arbitrariamente muchas monedas asignadas a sí mismos, y su cliente las aceptaría. Si muchas personas comenzaran a ejecutar nodos usando el mismo estado de cadena, 'copiarían' tales transacciones podría incluso meterse en bloques y causar bifurcaciones en el mejor de los casos, y robo en el peor de los casos".

Entonces, esto parece indicar que un nodo simplemente no se dará cuenta de que se modifica su estado de cadena.

Eso es correcto. Se realiza una verificación de consistencia al inicio comparando el UTXO con los últimos bloques, pero si la corrupción ocurre en un UTXO que no fue tocado por esos bloques, no tendrá suerte.
@PieterWuille ¡Gracias por la confirmación!
@PieterWuille Supongo que el estado de la cadena incluye una suma de verificación como parte de la verificación de coherencia, que básicamente detectaría cualquier corrupción accidental.
@Jannes Es una base de datos LevelDB, que tiene sumas de verificación internas.