He leído que lo anterior llevó a un double spending, pero también he leído lo contrario. Por otro lado, no me ha quedado claro si el bloque se llegó a confirmar e introducirse en la cadena, para luego ser rechazado posteriormente (¿tras cuántas confirmaciones?).
BlackHatCoiner lo explico en esta respuesta:
They did include both the parent and child transaction in the same block. It's just that they included the child before the parent in transaction data. So, when the nodes would verify the child, they'd deem it invalid as it'd spend missing UTXOs. That is called an orphaned transaction.
No fue un doble gasto como tal, aunque algunos lo podrian interpretar de dicha manera, como lo mencionan Ambas Transacciones fueron incluidas en el bloque pero se incluyeron en el orden incorrecto.
Es decir Transaccion A (Gasta un UTXO ya confirmado)-> Transaccion B Gasta el UTXO generado por la Transaccion A. Sin embargo en la data del bloque primero estaba contenida la transaccion B y posteriormente la Transaccion A. Cuando los nodos leen la Transaccion B, inmediatamente marcan el bloque como invalido ya que la transaccion A aun no estaba confirmada.
El bloque no fue un bloque valido y nunca fue confirmado.
El doble gasto se da cuando tratas de gastar 2 veces un mismo UTXO.
Aqui mas bien fue que trataron de confirmar una transaccion con un UTXO aun no minado.
Otra cosa que no me queda clara (y así seguimos demostrando mi desconocimiento) es si técnicamente el bloque rechazado sería considerado como un bloque huérfano.
Nuevamente citando BlackHatCoiner
- Stale blocks are successfully mined blocks which aren't included in the most-worked chain.
- Orphaned blocks are blocks whose parent hasn't ever been processed by the node, so they cannot be validated.
Yo pensaba que los bloques huerfanos eran los llamados "Stale", pero al parecer tambien estaba equivocado. Y ahora leyendo la defincion me parece interesante pensar en que situaciones se da un bloque huerfano en un escenario real, lo unico que me imagino poniendo un ejemplo de bloques por minar [A->B->C] es que algun nodo reciba primero un bloque C, en lugar de un Bloque B or A, en dado caso el nodo not tiene forma de validar que el bloque C sea valido ya que no a recibido la informacion de A o de B.