¿Qué son las "confirmaciones" de bitcoin?

Cuando recibo bitcoins veo un cierto número de "confirmaciones" en el cliente. ¿Qué significan estos? ¿Por qué la mayoría de los sitios me hacen esperar 6 "confirmaciones" antes de realizar una compra?

Respuestas (2)

Las confirmaciones de Bitcoin representan la cantidad de bloques en la cadena de bloques que han sido aceptados por la red desde el bloque que incluye la transacción.

En términos más simples, representa la dificultad de un ataque de doble gasto. Con cero confirmaciones, no se ha realizado ninguna prueba de trabajo, por lo que no puede saber si alguien considera que la transacción es válida. Incluso con una sola transacción, es posible que un atacante calcule previamente un solo bloque.

Con cero o incluso una confirmación es muy posible un gasto doble ya que el siguiente bloque que se resuelve puede confirmar un bloque diferente en lugar del que tiene la transacción. Ese bloque diferente muestra que las monedas se gastan en otros lugares. Las probabilidades de que se haya producido un gasto doble se reducen exponencialmente con cada confirmación.

Un atacante debe igualar el poder de toda la red de bitcoin para mantenerse al día con la creación de bloques, por lo que, a medida que pasa el tiempo, se vuelve cada vez más difícil falsificar una transacción.

Generalmente se acepta para la mayoría de las transacciones que 6 confirmaciones representan suficiente seguridad para garantizar que la transición sea válida.

Probablemente debería diferenciar entre "una probabilidad del 50/50 de que sea posible un gasto doble" y "una probabilidad del 50/50 de que se produzca un gasto doble", ya que muchas personas podrían tomar la primera como la segunda.
Esta respuesta podría mejorarse indicando que la posibilidad de un gasto doble no es 50/50. Se basa en el % de poder de hash que tiene el atacante (suponiendo que sea inferior al 50%). Por lo tanto, si el atacante tiene un 10 % de poder de hash, tiene un 10 % de posibilidades de revertir un bloque. Aproximadamente un 0,1 ^ 2 = 1% de probabilidad de revertir dos bloques, etc. Si el atacante tiene un 51% de poder de hash, esto no se aplica, ya que requiere una cantidad infinita de bloques para garantizar que la transacción no se puede revertir y por lo tanto, se necesitan medios alternativos para proteger la cadena de bloques.
La mayor parte de esta publicación responde sucintamente a la pregunta principal, pero la sección 50/50 es completamente falsa. Sería genial si eso pudiera mejorarse.
@Murch, el comentario 50/50 omite intencionalmente la tasa de hash porque es una variable desconocida. NO SABES la tasa de hash que un *posible* atacante *puede* estar empleando al considerar las confirmaciones, pero estoy de acuerdo en que no se explica claramente, así que aclararé la respuesta. No es "francamente falso", simplemente poco claro.
@JoshuaKolden Lo siento, "francamente falso" fue la forma incorrecta de decirlo. Lo que quise decir fue: tal vez la expresión "50/50" se usa de manera diferente coloquialmente, pero leer "alrededor de una probabilidad de 50/50" implicaría para mí oportunidades iguales (50%/50% de 100%) para cada caso. Para alguien en la etapa de conocimiento de preguntar "¿Qué es una confirmación?" parecería que el doble gasto es frecuente, y que es mucho más probable que tenga éxito de lo que es en realidad, y que uno siempre debe esperar seis confirmaciones para recibir los pagos de forma segura. Los párrafos implican más precisión de la que permite el escenario descrito.

Si no comprende el concepto básico, imagine por un segundo que una interrupción de la red dividió la red bitcoin por la mitad. Podría enviar una transacción dando 30 bitcoins a Abel a una mitad y una transacción dando esos mismos 30 bitcoins a Fred a la otra. Cada mitad aceptaría esa transacción y hasta que las dos mitades se vuelvan a conectar, no sabrá qué transacción se cumplirá mañana.

Las confirmaciones son simplemente bloques que se han generado después del bloque que contiene su transacción. Debido a que no existe una autoridad central a la que se pueda consultar para asegurarse de que se realizará una transacción, los destinatarios utilizan la cantidad de confirmaciones como una forma de protección contra los ataques de doble gasto.

La red siempre está tratando de extender la cadena más larga y, eventualmente, alguna cadena ganará. Cuanto más profunda sea la transacción en la cadena, mayores serán las posibilidades de que gane porque la red se esfuerza mucho por no duplicar esfuerzos. (Debido a que los mineros quieren que sus transacciones de base de monedas ganen, todos se esfuerzan mucho por extender la cadena con más probabilidades de ganar, lo que asegura que de hecho gane).

Efectivamente, cuantas más confirmaciones, mayor es la probabilidad de que una transacción permanezca para siempre en la cadena hash pública en lugar de una transacción conflictiva, si la hubiera. Con 6 confirmaciones, quizás sea uno entre mil millones que una transacción no sea permanente, y eso si el remitente está intentando un ataque de doble gasto.

Me gusta este ejemplo, gracias :)
Entonces, si se tarda unos 10 minutos en extraer un nuevo bloque, entonces 6 confirmaciones significan 60 minutos.