¿Cuáles son los hashes que deben hacer los mineros para crear un bloque? [duplicar]

Estoy un poco atascado en el concepto de minería.

¿Cuáles son los hashes que se deben crear en cada bloque y en la cadena? Digamos que tenemos el bloque A - B - C formando una cadena.

Una fuente dijo que necesitamos crear el hash de A y combinarlo con el hash del bloque anterior para formar otro hash, en otras palabras: hash (A + hash del bloque anterior).

Otra fuente simplemente dice que es solo el hash del bloque en sí, y en ese bloque especificamos el hash del hash del bloque anterior.

El concepto de Prueba de trabajo es que tiene X y tiene una salida de Z, ¿cuál es la Y necesaria, entonces hash (X + Y) = Z.

Si ese es el caso, ¿podemos decir que X es el hash del bloque anterior e Y es el hash del bloque actual? ¿O estoy viendo esto mal?

Fuentes: https://www.investinblockchain.com/what-exactly-is-blockchain/ https://www.youtube.com/watch?v=SSo_EIwHSd4&t=1sY otras fuentes.

Respuestas (1)

Otra fuente simplemente dice que es solo el hash del bloque en sí, y en ese bloque especificamos el hash del hash del bloque anterior.

Esto es correcto. Los otros son diversos grados de correctos e incorrectos. Pero esta es la única que es absolutamente correcta.

El concepto de Prueba de trabajo es que tiene X y tiene una salida de Z, ¿cuál es la Y necesaria, entonces hash (X + Y) = Z.

Si ese es el caso, ¿podemos decir que X es el hash del bloque anterior e Y es el hash del bloque actual? ¿O estoy viendo esto mal?

Un poco.


El bloque consta de varios campos. Primero se puede dividir en dos partes principales: el encabezado del bloque y las transacciones mismas. Todo el bloque tiene hash de alguna manera.

El hash del encabezado del bloque es lo que llamamos el hash del bloque. El hash del encabezado del bloque también se usa para la prueba de trabajo. Cuando interpreta el hash del encabezado del bloque (también conocido como hash del bloque) como un número entero little endian de 256 bits, debe ser menor que un objetivo calculado (también un número entero de 256 bits).

El encabezado del bloque en sí se puede dividir en varias partes. Contiene el número de versión del bloque, el hash del bloque anterior, el hash de todas las transacciones del bloque, una marca de tiempo, una representación compacta del valor objetivo y un nonce.

Dado que el encabezado del bloque incluye el hash del bloque anterior, el hash del encabezado del bloque es realmente solo el hash del bloque (ya que contiene el hash de todas las transacciones del bloque) en el que se especifica el hash del bloque anterior.

Para extraer bloques, los mineros modificarán los campos en el encabezado del bloque hasta que obtengan uno que cumpla con el objetivo. Por lo general, cambian el valor de nonce (es solo un número) y el hash de todas las transacciones en el bloque (cambiando la transacción de la base de monedas, eligiendo nuevas transacciones y cambiando el orden de las transacciones). Los mineros también pueden cambiar la marca de tiempo y el número de versión.

¡Gracias por la respuesta! Si obtuve esto correctamente: un bloque contiene el número de versión del bloque, el hash del bloque anterior, información (transacciones, marca de tiempo y otros datos) y un nonce. Los mineros intentan modificar el nonce (por lo general) o las transacciones internas para cumplir con el hash deseado. ¿Es eso correcto? ¿Quién puede elegir el hash que se debe cumplir para que se pueda minar el nuevo bloque?
@NelsenLiu sí, ¡estás en el camino correcto! No se requiere que el hash tenga un valor determinado, sino que debe estar dentro de un rango de valores predefinido. Ese rango está definido por la dificultad actual de la red, que establece un valor máximo para un hash de bloque válido.
El valor objetivo se determina individualmente por cada nodo. Es un algoritmo determinista, por lo que todos los que usan la misma cadena de bloques terminarán calculando la misma dificultad para cada altura de bloque.