Entiendo... me surge una pregunta, ¿es obligatorio confirmar por segunda vez las transacciones ya confirmadas?, es decir, ¿no se puede dar el caso en que un minero decida no confirmar por segunda vez las transacciones, dejando que transacción se confirme por segunda vez en otro bloque en el futuro?, o ¿la transacción confirmada (una vez) queda obligatoria de procesar de alguna manera en el siguiente bloque? (debido a que ahora forma parte de la cadena de bloques)... sé que suena a pregunta rebuscada, pero me sirve para resolver alguna línea de mis pensamientos xD en donde tengo dudas...
A ver cómo te explico esto para que no suene complicado.
Un minero no puede modificar la composición de los bloques anteriores porque entonces la nueva cadena sería rechazada por el resto de los nodos. Y tienes que tener en cuenta que las transacciones forman parte indisoluble e inalterable de cada bloque en el que han sido incluidas. Si un minero intentase eliminar una transacción de un bloque, la cadena sería rechazada. El diseño de Bitcoin es tan ingenioso que ni siquiera se puede alterar el orden de las transacciones validadas en un bloque de la cadena. Por eso son transacciones "confirmadas", porque es matemáticamente muy improbable el poder alterar el orden de los bloques validados o las transacciones que contienen.
La forma que tiene el protocolo para garantizar que se respeta el orden adecuado de los bloques que forman la cadena es obligando al minero a incorporar el hash del bloque anterior en la generación del nuevo bloque que está intentando minar ahora. De esta forma, aquel minero que consigue minar el bloque actual está indicando que el bloque actual va justo después del aquel a cuyo hash hace referencia.
Así que puedes imaginar lo que pasa si cambias alguna cosa de algún bloque de la cadena. Si cambias aunque sea una coma, eliminas una transacción o la alteras, entonces el hash del bloque modificado no coincidiría con su "contenido". Y así es como el protocolo se protege frente al intento de fraude en las transacciones.
Si el minero estafador intentase cambiar el orden de los bloques, o directamente, intentase eliminar un bloque de la cadena, no podría porque en la formación de cada bloque participa el hash del bloque precedente. Si no coincidiese el hash con su bloque significaría de nuevo el rechazo. Así es como el protocolo se protege frente al intento de manipulación de los bloques o de su eliminación de la cadena.
Me surge otra duda, la fee de la transacción, si no es obligatorio confirmarla por segunda vez, ¿el sistema se la otorga completa al minero que confirma la transacción la primera vez?, o ¿la reparte entre cierto número de confirmaciones? (para estimular a que la sigan confirmando).
Las comisiones se las lleva el minero que incorpora la transacción al bloque que acaba de minar. No se reparte. El minero que mine el siguiente bloque tendrá la estimulación de quedarse con las transacciones que incorpore él.
Interesante, justo ésta mañana me percaté de un bloque resuelto que constaba de sólo una transacción, de valor 25 BTC, me imaginé algo parecido a lo que explicaste, pero ya me lo confirmaste. Me surge una duda, resolver sólo la recompensa, ¿por qué hacer esto? ¿tiene alguna ventaja considerable en términos de facilidad de resolver el bloque o de menor carga de trabajo de cómputo para los mineros?.
Tiene una ventaja. Muchas veces dos mineros minan el bloque actual prácticamente al mismo tiempo, aunque en dos lugares diferentes del mundo. En teoría el primero que "publica" el nuevo bloque minado tiene ventaja sobre el otro, ya que los nodos recibirán antes la actualización de la cadena y éstos a su vez la irán publicando en la red. Sin embargo, si dos mineros minan el mismo bloque a la vez, o con una pequeña diferencia de tiempo, la versión de la cadena de bloques que se extenderá más rápido entre los nodos será la que tenga un menor tamaño de bloque, porque el tiempo de transmisión de los datos será menor. Así que esa versión será la aceptada por la mayoría.
Todo esto ocurre porque los usuarios aportan pocas comisiones en relación con la recompensa de bloque. Y algunos mineros, los muy competitivos, deciden que no les merece la pena arriesgar la velocidad de propagación del bloque minado frente al peso que puede suponer incorporar transacciones en él.
Una última duda por ahora, con la entrada de los ASICs, ¿se esperaría que los bloques sean resueltos a una tasa más rápida? supongo que los ajustes en la dificultad precisamente moderan eso, pero quiero estar seguro, ¿esperaríamos el mismo promedio de tiempo en que se confirme una transacción? o ¿todas las transacciones se podrían confirmarán mas rápido?.
Puedes estar seguro. Con los ASICs la dificultad aumentará en órdenes de magnitud respecto a la actual, pero los bloques seguirán generándose a un promedio de 10 minutos.