¿Qué es un doble gasto?

¿Qué es un doble gasto?

Como alguien que usa Bitcoin, ¿qué debo saber acerca de cómo el sistema de Bitcoin evita los gastos dobles? ¿Todavía hay circunstancias en las que pueden ocurrir?

Respuestas (4)

Un gasto doble es un ataque en el que el conjunto dado de monedas se gasta en más de una transacción. Hay un par de formas principales de realizar un gasto doble:

  • Envíe dos transacciones en conflicto en rápida sucesión a la red de Bitcoin. Esto se llama un ataque de carrera .
  • Extraiga previamente una transacción en un bloque y gaste las mismas monedas antes de liberar el bloque para invalidar esa transacción. Esto se llama un ataque de Finney .
  • Posea más del 51 % del poder de cómputo total de la red Bitcoin para revertir cualquier transacción que desee, y tenga el control total de qué transacciones aparecen en bloques. Esto se denomina ataque del 51 % .

Para evitar daños desde el primer ataque, espere a que aparezca una confirmación en una transacción determinada. Para evitar daños por el segundo ataque, espere a que aparezcan 6 confirmaciones en una transacción, o menos si la transacción es pequeña (pero aún requiere al menos 1). El daño del tercer ataque puede paralizar toda la red de Bitcoin, así que no se preocupe: lo más probable es que su negocio no sea el objetivo principal (es poco probable que suceda sin que haya mucho dinero involucrado).

Para obtener más información sobre todos esos ataques, puede consultar mi tesis de maestría sobre la seguridad de Bitcoin .

Esta respuesta podría mejorarse explicando que las monedas solo se pueden gastar una vez y cómo el ataque de doble gasto podría ser perjudicial para el destinatario.
"Lo más probable es que su negocio no sea el objetivo principal (es poco probable que suceda sin que se involucre mucho dinero)". Eso no es particularmente cierto, porque si tienes mucho poder minero, el costo del ataque se vuelve realmente pequeño para ti, por lo que puedes arruinar a muchas personas con poco costo. Además, no necesitas mucho dinero para hacer eso. Todo lo que necesitas es hackear uno de los pools de minería más grandes.
@iYalovoi, "Todo lo que necesitas es hackear uno de los pools de minería más grandes"... eso, o ser un administrador de sistema deshonesto de un pool de minería lo suficientemente grande...
Para evitar daños por el primer y segundo tipo de ataque, ¿quién se supone que debe esperar la confirmación? ¿El destinatario o el remitente? Preguntar porque suena como si estuviera diciendo que el destinatario puede "prevenir daños" al esperar, pero en realidad está a merced del remitente en estas situaciones. Un remitente malicioso ciertamente no estaría interesado en esperar si el ataque requiere que se haga algo en rápida sucesión.

Como comerciante, puede reducir la probabilidad de pérdidas por un doble gasto de un ataque de carrera si tiene su nodo configurado correctamente (sin transacciones entrantes, conexiones salientes explícitas a nodos bien conectados). Todavía existe un pequeño riesgo de ser engañado incluso con esta configuración, pero es raro y relativamente aleatorio. Por lo tanto, el desincentivo para el atacante es que si el éxito en el gasto doble rara vez ocurre, cada intento fallido es una venta rentable para el comerciante y, por lo tanto, a la larga no es rentable para el atacante y sí rentable para el comerciante.

Hay circunstancias en las que un comerciante es más vulnerable. Una máquina de cambio de monedas desatendida en una lavandería, por ejemplo, sería el peor de los casos para el comerciante. El atacante no pierde nada por los intentos fallidos (suponiendo que la máquina no obtenga ningún beneficio de cada "venta"), obtiene las ganancias en los intentos exitosos ocasionales y no es probable que lo atrapen por cometer fraude, ya que en el momento en que el operador de la lavandería está consciente de que algo sucedió, el ladrón se fue hace mucho tiempo. (Por supuesto, contrarrestar esto es la probabilidad de que el monitoreo de blockchain haya identificado los numerosos intentos de doble gasto y, por lo tanto, el operador de la lavandería puede evitar que esto ocurra).

El ataque de Finney también tiene costos que lo hacen menos amenazante de lo que parece. Sostener un bloque cuesta alrededor de un dólar por segundo. Entonces, si una vez que se extrae un bloque pero no se transmite y luego el ladrón tarda cuarenta segundos en completar la transacción con el comerciante, es mejor que haya una ganancia mucho más de $ 40 por hacerlo, de lo contrario, el intento termina siendo antieconómico en el largo plazo. largo plazo. Nuevamente, el comerciante sabría eventualmente que se ha producido el doble gasto (medido en segundos, si se monitorea la cadena de bloques), por lo que esto no funciona bien en circunstancias en las que el ladrón corre el riesgo de ser atrapado. Por lo tanto, la prevención de esto es simplemente no realizar transacciones de gran valor (por ejemplo, cien dólares o más) en 0/sin confirmar sin demora en las que esté atento al doble gasto.

El ataque del 51% que revertiría las transacciones confirmadas es tan costoso y, por lo tanto, existe una posibilidad tan remota de que ocurra, que ni siquiera es motivo de preocupación para un comerciante típico. (es decir, alguien que gasta millones de dólares para duplicar el gasto usando este vector de ataque, si alguna vez sucede, buscará intercambios donde se produzcan grandes intercambios de valor; piense en lingotes de oro intercambiados por bitcoins debajo de un puente a la medianoche. Son no están tratando de comprar sus productos electrónicos de consumo que envía a través de UPS ni se encontrarán con usted en Starbucks con la esperanza de defraudarlo con sus $ 200).

Si todos pudieran gastar el mismo Bitcoin dos veces, todo el sistema colapsaría porque los Bitcoins no escasearían.

Sin embargo, eso no es lo que significa "doble gasto". Un ataque de doble gasto en realidad no crea nuevas monedas y no tiene ningún efecto sobre la oferta monetaria. Más bien, le permite recuperar monedas de alguien a quien se las dio anteriormente (para que ya no las tenga). Sin ofender, pero no entiendo cómo esta respuesta llegó a +4.

Gasto doble cuando un usuario puede gastar sus monedas más de una vez. Esto normalmente sucede cuando puede crear dos versiones diferentes del libro mayor de blockchain, y ambas eran válidas en diferentes momentos.

Para entender, lea este ejemplo del mundo real, donde un atacante capaz de gastar el doble de 807K ETC.

Atacante robó 807K ETC en Ethereum Classic 51% Attack