He visto videos en donde dicen que la prueba de trabajo que hace un minero para descubrir un bloque se basa en el hash del bloque anterior, el nonce, pero también en el orden de las transacciones que van dentro del bloque. Es en esto último lo que no me cuadra.
La prueba de trabajo se basa en las cabeceras del bloque que se quiere confirmar. En dichas cabeceras está el hash del bloque anterior, el nonce y hay una especie de hash que depende de las transacciones que se van a incluir en el bloque, y en su orden. Si sabes lo que es un hash, sabrás que el hash de "foo bar" no es el mismo que el de "bar foo". Esa especie de hash que se incluye no es exactamente un hash, pero a efectos de que comprendas que el orden importa, ya te llega.
Como bien dices, una transacción que ha llegado 2 segundos antes de encontrar el bloque, puede ser incluido en él. ¿Entonces dicha transacción no ha sido considerada en la prueba de trabajo?
Sí se considera. Cuando un minero recibe una nueva transacción, la incluye en esa especie de hash que depende de las transacciones (llamado "merkle tree") y a continuación sigue trabajando. Puede darse el caso de que resuelva el bloque 1 nanosegundo después, pero eso no hace que la última transacción recibida haya "merecido menos trabajo" o "no se considere en la prueba de trabajo". Simplemente forma parte del bloque y ya está.
En otras páginas dicen que primero se descubre el bloque, y luego, más tarde, el minero decide qué transacciones mete dentro del bloque. Con lo cual, las transacciones no juegan ningún papel en la prueba de trabajo.
Fail. Ni p*** caso.
Tampoco entiendo bien el por qué 6 confirmaciones pueden tardar media hora, cuando cada bloque se genera cada 10 minutos.
Resolver un bloque es un ataque de fuerza bruta. Haz una cosa: ve a
esta página y prueba a meter palabras y pulsar en "Generate" hasta que el hash resultante empiece por 0. Sigue probando cosas y mira cuánto tiempo tardas cada vez. Si lo haces suficientes veces, te darás cuenta de que tardas un tiempo promedio en encontrar una, pero a veces coincidirá que un hash empieza por 0 en dos palabras seguidas que pruebes, y otras veces ocurrirá que te tiras un rato largo sin encontrar ninguna. Bien, a grandes rasgos esto es la minería
. A veces los bloques se encuentran rápido e incluso a veces varios bloques se encuentran seguidos en un período corto de tiempo, mientras que otras veces puede pasar una hora, o más, hasta que aparece el siguiente bloque (desatando el pánico en el foro
). A esto se refería Shawshank con lo de "proceso probabilístico" y "distribución de Poisson".
Edito: coñe, ¿nunca has jugado al parchís? ¿A que a veces pasa rato y rato hasta que te sale un 5 y puedes empezar? Pero otras veces te sale a la primera
.