Fórmula de PoW que han de resolver los mineros cada 10′
Voy a intentar responder de forma sencilla que hacen los mineros para resolver la fórmula para validar y crear los bloques de Bitcoin en la Blockchain.
- Blockchain es una cadena de bloques (cada uno contiene alrededor de 2400 transacciones, las cuales pueden variar, no es fijo). Esos bloques están enlazados porque todo bloque tiene un enlace o puntero al bloque anterior.
- Son los mineros los que resuelven la famosa fórmula (en la prueba de trabajo PoW). ¿Cómo lo hacen?. Todos los mineros construyen el nuevo bloque aún sin validar. Cada minero crea su bloque con transacciones diferentes que obtienen de la Mempool. Ese bloque tiene un HASH, la Merkle root que representa o es la cúspide de todo el árbol de Merkle. Además tienen el HASH del bloque anterior y lo que hacen es ir moviendo un número (se llama NONCE) hasta conseguir un HASH con 68,72,76, etc. CEROS a la IZQUIERDA (esto depende de la dificultad). Gráficamente sería:
Pensemos que en la realidad cada 0 son 4 bits, por eso si vemos 18 ceros, son 18*4 = 72 ceros o bits a cero.
Es decir todos los nodos van moviendo el NONCE 1,2,3,4,…..456789, etc. hasta conseguir 19 ceros a la izquierda. Pueden ser 72, 76 ceros u 80 bits, eso depende de la dificultad, la cual se revisa cada 2 semanas (exactamente cada 2016 bloques). Esa revisión se llama el famoso HASH RATE. https://www.blockchain.com/charts/hash-rate
El minero que resuelva el problema del bloque 631.419, lo primero que ha de hacer es: a) Avisar al resto de nodos de su solución b) el resto de nodos le dan el OK y entonces ese minero y no otro c) crea el siguiente bloque 631.420.
Que ocurre con el premio que recibirá el minero que de con la fórmula. Es decir, ¿cómo y qué cobra, el minero, por dar con dicha fórmula?:
El minero que dio con la fórmula del bloque 631.419 pone su premio de 6,25BTC, en estos momentos, mas las fees de todas las transacciones que van en el bloque, en la primera Transacción. Es decir, el minero que da con la fórmula cobra dos cosas: a) La recompensa de 6,25BTC en estos momentos, mas 2) las fees que se han generado en todas las Transacciones del bloque minado. Es su recompensa por haber minado el bloque 631.419. y en cuanto tiene la confirmación del resto de mineros que ha acertado en la fórmula, crea el Bloque siguiente, el 631.420.
¿Qué ocurre entonces cuando el minero que acierta el bloque 631.419?, el y solo el crea el bloque 631.420. Ya pone en el bloque nuevo el Hash anterior. Envia ese registro a todos. TODOS PONEN SU RECOMPENSA DE 6,25 BTC en la primera transacción. Empiezan a colocar el resto de transacciones y, cuando se acaban de poner todas (hay un tiempo) empieza la fiesta de la formulita. Cada minero lleva su fiesta particular porque el HASH es diferente entre ellos, debido a que la transacción Nº 1 es diferente porque cada uno pone su recompensa de 6,25 BTC a su dirección pública propia, y tambien las fees generadas en todas las Transacciones. Además los mineros no tienen porqué tener las mismas Transacciones.
Es decir el minero que resuelve un bloque y es validado por los otros mineros, crea el siguiente bloque. Todos los mineros ya tiene el bloque minado en su BD y también el bloque siguiente donde irán colocando las nuevas transacciones e irán validándolas hasta completar el nuevo bloque. Cuando se acabe este nuevo bloque, con sus transacciones validadas, comenzará el PoW del bloque.
Mas o menos creo que queda explicado el proceso de creación de bloques y como se crean o minan los Bitcoins (eso es por la recompensa). El minero que encuentra la solución no solo percibe los 6,25BTc actuales sino que también hay que sumar las comisiones (fees) que se cobran por las transacciones. Por ejemplo, mirar este bloque minado:
https://www.blockchain.com/btc/block/0000000000000000000cffa760e54171b5e08290b58b0a0546bae6efc177a6b9
La primera transacción es de 6.37981271 BTC, es decir 6,25 + 0,12981271 que son las comisiones (fees) de las 593 transacciones que hubo.