¿Verificación de transacción "instantánea"?

Jan Moritz Lindemann amablemente me enseñó que la dificultad se usa no solo para regular la tasa de creación de una criptomoneda, sino también para permitir la propagación de bloques y así evitar bloques huérfanos .

Dado que se puede suponer que los consumidores de una criptomoneda desean una verificación de transacción instantánea, ¿es posible y segura la verificación de transacción casi instantánea? ¿Si es así, cómo?

Respuestas (1)

Si por "instantáneo" quiere decir "justo en el momento de la transacción", bueno, no. Ni siquiera con Visa et al. Incluso si quiere decir que, después de esperar un tiempo razonable (por ejemplo, menos de 2 minutos) recibe una respuesta definitiva sobre la validez de su transacción, tampoco es posible.

De la forma en que funcionan las criptomonedas, todas las transacciones están "esperando en línea" para ser recogidas por un minero e incluidas en un bloque. Mientras tanto, siempre puedes revertirlo o crear otro que entre en conflicto con el primero. Sin embargo, una vez que una transacción está en un bloque, aún no puede reclamar la victoria porque todavía no son parte del historial oficial de monedas: otros mineros deben aceptar el bloque y comenzar a construir nuevos bloques sobre él , y esta es la parte crítica.

Otro minero, en algún otro lugar del mundo, pudo haber descubierto otra solución para el bloque actual y la transmitió a la red. A partir de ese momento habrá 2 cadenas en competición, ambas válidas, pero finalmente solo una se convertirá en la oficial. ¿Cuál? Lo que sea más largo primero, es decir, lo que la mayoría de los mineros elijan para crear un nuevo bloque después de él; recuerde que cada bloque contiene no solo su hash sino también un hash del bloque anterior, por lo que, en efecto, cada bloque "apunta" a su predecesor. , de ahí el término "cadenas".

También es posible que una parte malintencionada haga esto a propósito: si esa parte tiene acceso a grandes cantidades de potencia informática, podría convencerlo de que le dé algo a cambio de sus bitcoins. Ves su transacción que aparece en 2 bloques y le das las cosas, luego toman el último bloque antes de que apareciera tu transacción y crean rápidamente 3 bloques sin la transacción. Una vez que transmiten sus 3 bloques a la red, ¡voilá! Su cadena se hace cargo debido a la longitud, terminas sin artículos ni monedas.

Por lo tanto, nunca obtiene una respuesta definitiva de sí o no, solo obtiene grados de certeza. Cuantos más bloques aparezcan en su transacción, más probable es que forme parte del historial oficial de transacciones. Es por eso que comúnmente se dice que debe esperar 6 confirmaciones en Bitcoin o 12 en Litecoin para considerar una transacción válida en un 99%; después de ese número, las probabilidades de que un atacante intente superar (por así decirlo) el poder de hash combinado del toda la red se vuelve casi insignificante.

¡Muchas gracias por responder! OK, esto es lo que no entiendo: si son posibles múltiples cadenas con Bitcoin et al, ¿cómo se gestiona eso? (¿Debería estar en otra pregunta?) Entonces, para una criptografía con solo 1 sbst, ¿debería haber ~2700 confirmaciones? ¡Muchas gracias por adelantado!
¡Un bloque por segundo! Puff... demasiado loco! El punto con tiempos más bajos entre bloques es que las velocidades de la red no son infinitas, por lo que se necesita un tiempo finito para que un nodo se dé cuenta de un bloque, y más tiempo si dicho bloque se extrajo en el otro lado del mundo. De ahí la posibilidad de bloques huérfanos: con Litecoin obtienes más bloques huérfanos, por lo que debes compensar esperando más bloques. ¿Cuánto debe esperar en tal moneda? Dado que tendría una orfandad masiva, su número parece razonable... Meni Rosenfeld podría ahora, ha investigado sobre eso.
En cuanto a "¿cómo se gestionan múltiples cadenas en Bitcoin et al.?" Simple - no lo son. La red acepta todas las cadenas de la misma longitud, compuestas de bloques válidos, como válidas y les permite competir. Eventualmente, uno se adelantará a los demás, momento en el cual todos los nodos dejarán de aceptar los bloques de las otras cadenas.
¡Gracias de nuevo por tu conocimiento! Parece que no importa cuán corta sea la verificación inicial, para lograr una confianza de >99%, ¿se debe esperar >30 minutos? ¡Muchas gracias de nuevo por adelantado!
¡De nuevo, gracias por tu ayuda! ¿Le importaría agregar estos datos en la respuesta, para que pueda marcar? Parece que ha presentado la solución: menos dificultad = más verificaciones por transacción para mayor confianza. ¡Muchas gracias de antemano!
No es exactamente la menor dificultad lo que te obliga a esperar más verificaciones, es el tiempo que tarda un bloque recién generado en propagarse a través de la red. Con poco tiempo entre bloques, más mineros seguirán trabajando en un bloque, sin saber que alguien más lo ha resuelto. Además, es más posible que 2 o más soluciones surjan de forma independiente, por lo que compiten en cadenas que finalmente dan como resultado bloques huérfanos. Meni Rosenfeld sugiere un tiempo dinámico como mejor opción que una constante en bitcointalk.org/index.php?topic=79837.0
¡Gracias Joe Pineda por esta valiosa información! En términos que puedo entender más fácilmente, ¿esta propagación, por lo tanto, la cadena competidora/el resultado del bloque huérfano agrega costos a los mineros o a los remitentes/receptores o a ambos? Si ambos, ¿quién recibe más? Excluyendo los costos transferidos a los receptores/remitentes por los mineros, ¿los costos agregados a los receptores/remitentes son bajos? ¡Muchas gracias de antemano, y seguramente leeré sobre el tiempo dinámico!
En términos de costos, creo que podría considerarse una especie de "costo para hacer negocios". Quiero decir, todos los mineros esperan que, de vez en cuando, un bloque que pueden haber descubierto termine huérfano, por lo que no ganan monedas. Dado que la mayoría de las veces no ganan monedas de todos modos, simplemente se suma a los costos operativos para ellos. En este momento, la principal ganancia monetaria de los mineros está en la minería y no en las tarifas que cobran, por lo que los costos no se transfieren directamente a los usuarios finales. Sin embargo, nadie sabe realmente qué sucederá cuando el premio por resolver un bloque sea demasiado bajo.
¡Muchas gracias de nuevo Joe Pineda! Eso era lo que estaba pensando. Si tuvieras que adivinar, sin importar cuán especulativo sea, ¿qué porcentaje del trabajo de un minero en promedio crees que no rendiría nada? ¡Muchas gracias de antemano!
¡Ahora esa es una pregunta muy interesante, que creo que merece ser preguntada por sí sola en este sitio! Desde la parte superior de mi cabeza, diría que normalmente es la mayor parte del trabajo. ¿Cuánto exactamente? No sé... ¿60%? 80%? 90%? Supongo que la respuesta depende de la minería en solitario frente a parte de un grupo, el porcentaje de poder de hash que tiene frente al resto de la red y el promedio. % de bloques huérfanos por día en la moneda...