¿Qué tan difícil es alterar un bloque después de haberlo encontrado?

Una vez que un minero ha encontrado un bloque, ¿qué tan fácil es para él agregar o eliminar un tx incluido en ese mismo bloque? ¿Tendría que resolver el bloque modificado desde cero o hay algún punto en el que pueda reanudar el proceso de resolución?

Respuestas (3)

Una vez que un minero ha encontrado un bloque, ¿qué tan fácil es para él agregar o eliminar un tx incluido en ese mismo bloque?

Es imposible. El bloque resuelto depende de cada byte de datos de transacción, no se puede cambiar nada. Es importante que sea así. ¿Qué pasaría si pudiera transmitir un bloque resuelto pero omitir la transacción en la que envié monedas a otra persona, esencialmente revirtiendo mi gasto? Eso crearía un sistema inseguro.

¿Tendría que resolver el bloque modificado desde cero o hay algún punto en el que pueda reanudar el proceso de resolución?

Es básicamente como empezar de nuevo. Esto se debe principalmente a la raíz de merkle en el encabezado del bloque. Piense en ello como una función que depende de cada byte de las transacciones, y si alguna de las transacciones cambia, la salida de la función cambia por completo.

Consulte esto para obtener más información sobre los árboles de Merkle en bitcoin: ¿Qué es la raíz de Merkle?


EDITAR: Quería agregar esta analogía minera que encuentro útil.

Cada hash que calcula el minero tiene la oportunidad de resolver un bloque. La minería es básicamente como tomar un video de ti mismo lanzando 256 monedas, tratando de obtener una larga serie de cabezas. La longitud que debe tener la cadena de caras está determinada por la cantidad de otros lanzadores de monedas con los que compites. Si obtiene una cadena de cabezas lo suficientemente larga, muestra la prueba (video) y obtiene la recompensa. De lo contrario, inténtalo de nuevo. Esencialmente, comienza de nuevo cada vez que hace un nuevo hash (por lo tanto, miles de millones de veces), y cambiar los datos de su bloque no lo hace más o menos improbable de lanzar las monedas con éxito.

Observe cómo se necesita mucho trabajo para lanzar las caras con éxito (le tomaría muchos intentos, donde cada intento es realmente fácil), pero muy poco trabajo para verificar que un video de lanzamientos de monedas es legítimo.

"Básicamente es como empezar de nuevo". En realidad, es indistinguible de empezar de nuevo. ;)

Del artículo original de Bitcoin :

... implementamos la prueba de trabajo incrementando un nonce en el bloque hasta que se encuentra un valor que le da al hash del bloque los bits cero requeridos. Una vez que se ha gastado el esfuerzo de la CPU para que satisfaga la prueba de trabajo, el bloque no se puede cambiar sin volver a hacer el trabajo . Como los bloques posteriores se encadenan después de él, el trabajo para cambiar el bloque incluiría rehacer todos los bloques posteriores.

SHA256 es una función hash criptográfica .
Entre otros rasgos, es

  • inviable cambiar la entrada de un CHF sin cambiar la salida hash
  • no hay un patrón perceptible entre los hashes de dos mensajes diferentes

Como el hash del bloque es el producto de aplicar SHA256 a los datos del bloque, y los datos de la transacción se representan en la entrada a través de Merkle Root, es imposible cambiar ni siquiera un bit de un bloque o transacción sin comenzar de cero, y no no es una ventaja al trabajar desde una entrada estrechamente relacionada.