Al extraer Bitcoin, el nonce se incluye en el encabezado, que luego se procesa y se verifica para ver si está por debajo del umbral objetivo.
Todo el mundo puede verificar que el encabezado realmente hace hash por debajo del umbral. Sin embargo, en la minería fusionada, según la wiki , el hash del encabezado de la cadena auxiliar se incluye en el script txin de la base de monedas principal sin la oportunidad de cambiar el nonce en la cadena auxiliar. El nonce del padre se incrementa como de costumbre, pero el hash auxiliar sigue siendo el mismo.
¿Cómo podemos entonces verificar la cadena auxiliar?
¿Es porque el nonce principal se abre paso en la cadena auxiliar a través del hash del encabezado principal? aun así, parece que esto no ayudaría para la verificación porque el hash de la cadena auxiliar ya no necesita cumplir con ningún criterio de umbral.
Para verificar la cadena auxiliar, debe demostrar que se ha realizado cierta cantidad de trabajo en el último bloque de esa cadena auxiliar. Al igual que con cualquier forma de minería, esto implica calcular un hash para que esté por debajo de un umbral.
Sin embargo, no importa que la imagen previa del hash también tenga muchos otros datos irrelevantes, siempre que contenga el encabezado del bloque auxiliar relevante en alguna parte. Es decir, desde una perspectiva de prueba de trabajo, no hace ninguna diferencia si calcula esto:
while(h > aux-threshold) {
h = hash(aux-header + nonce)
nonce++
}
result = nonce
contra esto:
container = hash(hash(aux-header) + other-data)
while(h > aux-threshold) {
h = hash(container + nonce)
nonce++
}
result = nonce
Ambos requerirán la misma cantidad de trabajo y ambos demostrarán que el trabajo se ha realizado en aux-header
. Esto es así porque container
se puede demostrar que contiene el encabezado auxiliar, y dado que aux-header
y other-data
se almacenan en el bloque de la cadena auxiliar y el hash se puede volver a calcular en cualquier momento.
Entonces, para la minería combinada, container
es en realidad el encabezado con hash del bloque de la cadena principal y aux-header
solo debe incluirse en el bloque principal en alguna parte. Realmente podría incluirse en cualquier lugar siempre que el bloque principal pase el proceso de verificación. Por ejemplo, podría incluir el aux-chain-header-hash como una dirección en una transacción multisig, o como un dato que se coloca en la pila pero nunca aparece en una de las transacciones. Sin embargo, el lugar más fácil para colocarlo es en el script txin de la transacción de coinbase. Esto siempre contiene datos arbitrarios de todos modos, y su ubicación en la parte superior de la cadena significa que other-data
puede contener la menor cantidad de ramas de merkle.
Verifica la cadena auxiliar exactamente de la misma manera, excepto que también debe verificar que el encabezado de la cadena auxiliar esté correctamente incluido en la base de monedas principal. Desde el punto de vista de la cadena auxiliar, puede pensar en todo el encabezado de la cadena primaria como parte de un nonce gigante.
mullhausen
muro