¿Qué sucede si los nodos completos no verifican los gastos dobles o deliberadamente dejan pasar un TX de gasto doble y luego este nodo completo transmite la transacción?

Estoy estudiando sobre tecnología Bitcoin y Blockchain a través del curso de criptografía de Princeton, y menciona que los nodos completos realizan las siguientes comprobaciones:

i) la transacción es válida con la cadena de bloques actual,

ii) si los scripts coinciden con la lista blanca,

iii) la transacción no se ha visto antes y

iv) no entra en conflicto con otros, es retransmitido (para evitar el doble gasto) .

Sin embargo, el disertante también mencionó que estos controles no se aplican en un nodo. Digamos que un nodo completo puede tener un conjunto completo de UTXO, pero aun así decide retransmitir una transacción que se ha gastado antes (ignorando efectivamente el hecho de que el TX no está en el conjunto de UTXO), y finalmente este TX se retransmite y hace en un bloque. Dado que los mineros confían en estos nodos para verificar las transacciones, ¿no se colocaría el TX en la cadena de consenso?

Entiendo que el proceso de minería (POW) y la recompensa del bloque resultante solo se pueden reclamar/cobrar si el bloque termina en la rama de consenso a largo plazo, pero esto no salvaguarda el comportamiento del nodo malicioso, como he explicado, ya que los mineros no lo hacen. t compruebe si hay gastos dobles.

La afirmación de que los mineros confían en estos nodos podría ser incorrecta... un minero querría verificar si sus transacciones y bloques son correctos, de lo contrario, podría ser ignorado por la red (al transmitir tx o bloques incorrectos). ¿También podría perder su recompensa de bloque y habría realizado los cálculos de bloque en vano?

Respuestas (2)

Dado que los mineros confían en estos nodos para verificar las transacciones, ... dado que los mineros no verifican los gastos dobles.

¿Qué te hace pensar que esto? Los mineros también son nodos; son un subconjunto de nodos. Los mineros aún reciben y verifican todas las transacciones, no solo confían ciegamente en lo que les ha dado otro nodo. Los mineros tienen incentivos para verificar las transacciones, ya que incluir transacciones no válidas significa que el bloque también será inválido y, por lo tanto, será rechazado por los otros nodos y mineros en la red.

Si un minero produce una transacción no válida (p. ej., al incluir un gasto doble), el bloque se considerará no válido. Los mineros no determinan qué es válido e inválido, lo hacen los nodos. Entonces, cuando los nodos en la red reciban ese bloque no válido, lo rechazarán como no válido y no lo agregarán a su cadena de bloques. Además, dado que los mineros también son nodos, otros mineros rechazarán el bloque y, por lo tanto, no extraerán encima de él.

Si los mineros extraen encima del bloque inválido, habrá una bifurcación de blockchain. Los nodos de la red se negarán a seguir una cadena que contenga un bloque no válido, incluso si tiene más trabajo. Solo siguen la cadena válida con la mayor cantidad de trabajo, y un bloque no válido hace que esa cadena no sea válida.

Gracias por tu contribución. ¿Cuánto tiempo suele tardar un minero en verificar cada transacción individual en un bloque que está extrayendo contra el conjunto UTXO?
Lleva el mismo tiempo que cualquier otro nodo. Por lo general, toma unos pocos milisegundos. Además, debido a que los mineros son nodos, es probable que hayan recibido y verificado todas las transacciones antes de que aparecieran en un bloque, por lo que pueden omitir la verificación nuevamente cuando las obtengan en un bloque.

Los mineros que no verifican los gastos dobles solo se conectan a los nodos en los que confían plenamente. Y hay una buena razón para esto: cada nodo no roto ignorará un bloque no válido. Entonces, si un minero alguna vez extrajera un bloque que contenía un gasto doble, todos los demás nodos ignorarían ese bloque y nunca se volvería parte de la vista de nadie de la cadena de consenso.