Entendí que cuando entra una nueva transacción, los mineros tienen que empezar de nuevo, o al menos cambiar su merkle-tree para incluir la nueva transacción, esencialmente comenzando desde cero nuevamente.
Si miro las transacciones en tiempo real en https://blockchain.info/ , ¿cómo podrían los mineros hacer un bloque cuando nunca hay un descanso?
A menos que defina una ruptura como unos pocos microsegundos, y dado que cada segundo puede calcular, creo, miles de millones de hashes posibles, todavía me resulta difícil comprender cómo se "elige" o verifica un nuevo bloque en términos humanos comprensibles.
La minería se basa en la computación, pero no es constante, es aleatoria. Esencialmente, cada hash calculado genera un número aleatorio. Si el número aleatorio está por debajo del objetivo, es válido para crear un bloque. La probabilidad de que un único hash sea lo suficientemente bajo es minúscula (tiene más posibilidades de ganar la lotería varias veces seguidas), pero es por eso que necesita calcular muchos hash. El árbol merkle real no hace ninguna diferencia siempre que el árbol en sí sea válido. Los mineros no tienen ninguna obligación de incluir todas las transacciones en el mempool, por lo que normalmente enviarán bloques cada vez que encuentren un hash válido.
Entonces, en realidad, las actualizaciones del árbol merkle en realidad no importan. De hecho, puede ser útil ya que hay más nonces para probar.
Los mineros eligen qué transacciones incluir en sus bloques. Por lo tanto, no tienen que incorporar continuamente transacciones recién llegadas a los bloques que están probando. Pueden, si lo desean, por ejemplo, aprovechar el cobro de tarifas de transacción posiblemente más altas asociadas con nuevas transacciones.
Nate Eldredge
Cambio de bloque
Nate Eldredge
Nate Eldredge
Cambio de bloque
Nate Eldredge
Cambio de bloque
Cambio de bloque