Encontré una discusión aquí ¿Cómo obtengo el número de confirmaciones en una transacción en geth o cualquier otra herramienta? que dan la solución como:
web3.eth.blockNumber-web3.eth.getTransaction(<txhash>).blockNumber
Probé esta fórmula y comparé el valor con el recuento de confirmación devuelto por http://testnet.etherscan.io/api?module=account&action=txlist& address=0x4c ... Ambos parecen coincidir.
Mi pregunta es ¿cómo se puede considerar este número como una confirmación? ¿Será el caso de “cuanto más tiempo permanezca, mayor será la confianza en que es genuino”?
Las cadenas de bloques utilizan un sistema de prueba de x para confirmar la validez de una transacción realizada por un minero aleatorio. El minero confirma que la fuente de la transacción es válida. Lo hace al mirar el bloque anterior al bloque real y ver si la transacción es válida. Después de que se extrae el bloque, todos los mineros siguientes lo confirman y, siempre que la mayoría no esté coludida, la probabilidad de que el bloque sea válido aumenta con cada bloque extraído siguiente. Por lo tanto, cuanto más antigua es una transacción en términos de número de bloque, más validada es.
getTransactionReceipt()
solo para asegurarse de que la transacción todavía está allí. Si es así, entonces podemos estar seguros de que no hubo bifurcación y dado que se agregaron más bloques, ahora es casi imposible borrar la transacción y podemos aceptarla.
Richard Horrocks