¿Cómo (número de bloque actual - número de bloque de una transacción determinada) proporciona el recuento de confirmación?

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”?

Cuanto más tiempo permanezca, más poder de hash se necesitaría para revertirlo, por lo que se vuelve más seguro. (En lugar de un caso de que sea genuino).

Respuestas (1)

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.

Entonces es algo como esto: la idea es que, si mi transacción se incluyó en el bloque número 100 (simplemente asuma) y el número de bloque actual es 160, significa que 60 mineros aleatorios aceptaron el bloque 100 como válido y lo agregaron a esa cadena y entonces puedes decir que tengo 60 confirmaciones. Todo esto es cuestión de consenso. Consulte también [Cobertura de confirmación de transacciones de la red Ethereum] ( ethereum.stackexchange.com/questions/6453/… )
exactamente, esto es lo que quiero decir
De ¿Cómo puede una DApp detectar una reorganización de bifurcación o cadena usando web3.js o bibliotecas adicionales? , creo que uno debería llamar 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.
¿Se puede medir el nivel de confianza en función del número de bloques extraídos desde la transacción? En caso afirmativo, ¿cuál es exactamente la función?