¿Qué precauciones tomar cuando se trabaja con solo una o dos confirmaciones?

Estoy brindando un servicio que acepta Bitcoin. Para acelerar un poco las cosas, planeo reducir el número de confirmaciones que necesito antes de considerar que ha llegado el dinero.

He leído que es bastante seguro trabajar incluso con una sola confirmación si se toman algunas medidas de precaución. ¿Que son esos?

Más específicamente, ¿con qué opciones debo ejecutar bitcoind?

Puede marcar el dinero como llegado de inmediato. Lo que no debe hacer es permitir que el dinero se transfiera mientras la confirmación sea inferior a 3 o 5 o lo que sea. ¿Depende de lo que hace tu servicio? Si está convirtiendo a moneda fiduciaria, desea más confirmaciones. Si está ejecutando un juego de póquer, no importa, ya que su motor puede retroceder cualquier transacción no válida y simplemente no permite transferencias si una cuenta no ha madurado completamente las transacciones. Esto evitará el fraude de golpe y fuga, pero permitirá a los usuarios legítimos experimentar depósitos rápidos.

Respuestas (2)

Por el momento, hay muy pocos bloques huérfanos y casi ninguna aparición de cadenas laterales de dos bloques. A menos que esté tratando con grandes cantidades (probablemente, más de dos bloques de recompensas), sus posibilidades de ataque son increíblemente bajas. Si está tratando con montos inferiores a unos pocos BTC, personalmente me complacería aceptar transacciones de una sola confirmación.

No hay banderas específicas bitcoindque pueda usar para controlar las confirmaciones, todo está en el lado de su software. En general, si es un comerciante, debe evitar tener un nodo de escucha (set listen=0) solo para estar seguro. Asegúrese de utilizar el almacenamiento en frío si su servidor acumula una cantidad de moneda digna de un objetivo, enviándolo a una dirección de la que el servidor no conoce la clave privada.

Si no está utilizando walletnotifypara controlar su sistema contable interno, probablemente debería hacerlo.

Pregunta estúpida, ¿cómo hago para configurar listen=0 ? (¿Cómo) puedo pasar esto como una opción al iniciar bitcoind?

Hay un aumento significativo en el riesgo de ser estafado cuando el comerciante acepta el pago 0/sin confirmar y al mismo tiempo tiene configurado bitcoind para las transacciones entrantes. En esa situación, el atacante puede alcanzar un éxito cercano al 100% en el gasto doble contra el comerciante simplemente haciendo una conexión directa al nodo de ese comerciante y transmitiendo una transacción a él y luego al resto de la red transmitiendo una transacción de gasto doble.

Pero cuando el comerciante espera hasta que haya al menos una confirmación, el riesgo de ataque de esta raza esencialmente desaparece.

Para deshabilitar la escucha, la configuración es "escuchar = 0".

Me gustó mucho tu respuesta, pero solo puedo aceptar una. Lo siento.