Cuándo preocuparse por los pagos de 1 confirmación

Un cliente me envía un pago por un bien digital a mi servicio, donde la entrega retrasada es un factor decisivo, por lo que solo espero 1 confirmación de la red antes de liberar los enlaces del artículo digital comprado.

Los precios de estos artículos van desde los 0,0001 XBT hasta los 50 XBT.

Me doy cuenta de que probablemente debería configurar mi servicio para esperar más confirmaciones de artículos más caros, y dado que la recompensa actual para los mineros por un nuevo bloque es 25 XBT, ¿sería seguro asumir que ningún hacker tendrá ningún incentivo de realizar un ataque al nuevo bloque (que contiene las transacciones que pagaron los artículos digitales de mi tienda) cuando la suma del valor del total de artículos que he vendido que tienen 0 pagos confirmados es menor que 25 XBT?

Del mismo modo, ¿se considerarían 2 confirmaciones (recompensa total del minero: 2 x 25 XBT) como un umbral seguro para artículos que cuestan 50 XBT?

Esta respuesta puede ser útil.
Gracias @RickyDemer, sin embargo, las direcciones verdes son más aplicables en escenarios b2b, mi servicio es b2c puro.
Este documento: bitcoil.co.il/Doublespend.pdf podría arrojar algo de luz sobre su problema.

Respuestas (1)

Lo que hay que tener en cuenta es, "¿a qué tiene que renunciar el atacante para atacarme?" Si el costo de esa cosa es menor que la recompensa de un ataque exitoso, entonces atacar es racional desde un punto de vista puramente económico. (Obviamente, atacar a alguien tiene un costo moral no económico).

Un minero que controla más de la mitad de la tasa de hash de la red y espera mantener ese control indefinidamente, no perderá nada si lo ataca. Este es el llamado ataque del 51 por ciento.

Un minero que controla menos de la mitad de la tasa de hash probablemente perderá la oportunidad de obtener una cierta cantidad de ingresos, pero cuánto depende de qué tan cerca se acerque a la mitad de la tasa de hash de la red. Creé la siguiente imagen hace unos meses para ilustrar esto:

Costo del ataque en la pérdida de ingresos

Si observa el cuadro de grupos de minería de BlockChain.info , verá que hay varios que pueden realizar ataques asequibles contra transacciones confirmadas una vez y confirmadas seis veces. Sospecho que todo lo que les impide hacerlo es su reputación en la comunidad.

Los otros factores son:

  1. ¿Cuánto puede obtener el atacante de usted en un solo ataque? Por ejemplo, ¿pueden pedir varios artículos de 50 BTC al mismo tiempo?

  2. ¿Con qué facilidad puede el atacante beneficiarse de un ataque en su contra? Por ejemplo, ¿por cuánto pueden revender esos artículos de 50 BTC? La mayoría de los atacantes no van a querer 20 copias digitales de Plan 9 From Outer Space, pero les encantaría 20 veces el valor de 50 BTC de otra moneda criptográfica.

Desafortunadamente, estos factores no se aplican solo a usted: se aplican a todos los que el atacante puede atacar al mismo tiempo. Por ejemplo, si pueden ganar 10 BTC estafándote y 190 BTC estafando a otras personas, entonces un ataque que cueste menos de 200 BTC vale la pena económicamente. Esto significa que no puede analizar completamente su riesgo mirando solo sus artículos.

Esperar más confirmaciones siempre aumentará sustancialmente su seguridad, y espero que haya pocas cosas en este mundo que vale 50 BTC que la gente no pueda esperar una hora o dos para que lleguen. (Pero bueno, tal vez no soy lo suficientemente rico como para gastar $ 20,000 USD regularmente).

Si todo esto es muy deprimente, lo siento. A largo plazo, el objetivo de la comunidad será disminuir la centralización de los mineros. Si ningún minero o pool de minería controla más del 1 % de la tasa de hash de la red, los ataques contra las transacciones confirmadas una vez se vuelven costosos e impredecibles, y los ataques contra las transacciones confirmadas por seis se vuelven prácticamente imposibles.

Nota al pie: Matemáticas

En la imagen de arriba, el costo promedio de un ataque exitoso aquí es

r * h * b / p(h,b) - r * (b-1)

Donde r es la recompensa del bloque (25 BTC), h es el porcentaje de la tasa de hash de la red, b es el número de bloques para crear (confirmaciones más uno) y p() es la calculadora de probabilidad de Satoshi de bitcoin.pdf página 7. r * h * b es el valor promedio de trabajo utilizado por intento; p(h,b) es la probabilidad de éxito por intento; r * (b-1) es la recompensa en bloque que el atacante habría recibido si minara honestamente.

Como referencia, el tiempo (número promedio de bloques transcurridos) que toma un ataque es simplemente

1 / p(h,b)
Gran respuesta :) ¿Qué significa cen la última fórmula?
Entonces, ¿prácticamente no le cuesta nada a un minero realizar tal ataque si su poder de hash es mayor al 10% del poder de hash total en la red?
@DougPeters Whoops c== b( cera para confirmaciones, pero luego me di cuenta de que la fórmula era confirmaciones más uno, así que la cambié a bbloques). Para una conf al 10%, p(0.10,2) == 0.050978entonces el costo es de 48.8 BTC. El costo en realidad no es igual a 0 BTC hasta el 50%, pero la escala del gráfico no permite mostrar cantidades tan "pequeñas".
¿Ha intentado dejar que el eje de costos sea de escala logarítmica?
¡Gran idea de @RickyDemer! Sin embargo, cuando lo miré más de cerca, encontré un error en mi fórmula (devolvía resultados negativos). Solucioné el error y ahora el diagrama regular muestra la cola larga esperada (y la salida numérica coincide perfectamente con el modelo de 50% == 0 costo). Actualicé la respuesta en consecuencia y no creo que se necesite más un eje de registro. ¡Gracias por hacerme prestar más atención!
@DavidA.Harding Me preguntaba si tiene una matriz en su lugar que se presente cost of attackcontra hash power, me encantaría observar más de cerca el costo estimado para el poder de hash <25%.
@DougPeters aquí está el código utilizado para generar la trama . licencia del MIT. Tenga en cuenta que si tuviera que hacerlo todo de nuevo, usaría algo además de bash & bc para las matemáticas. :-)