Estoy tratando de configurar una forma de aceptar pagos de Bitcoin en situaciones de la vida real, donde esperar confirmaciones generalmente no es una opción. Entiendo que esto nunca está 100% libre de riesgos (especialmente con basura como bitundo.com), solo quiero minimizar el riesgo.
Tengo una billetera Bitcoin Core con un montón de direcciones sin usar. Le muestro una dirección al cliente, él envía el dinero y ahora puedo hacer algunas cosas: (todo automatizado, es decir, a través de algún tipo de aplicación o script)
Si 1 o 2 están bien y 3 no se produce durante, por ejemplo, de cinco a diez segundos, ¿qué tan (in)segura es la transacción en este punto?
Me di cuenta de que los proveedores de pago como bitpay y coinbase pueden aceptar pagos de inmediato, ¿cómo diferencian las transacciones legítimas de los intentos de doble gasto?
Desde http://www.cryptocoinsnews.com/news/the-mathematically-secure-way-to-accept-zero-confirmation-transactions/2014/02/13 , esto es lo que pueden estar haciendo servicios como MyCelium y BitPay:
Más específicamente, con cada segundo adicional, un mayor porcentaje de nodos activos de Bitcoin habrá escuchado la transacción original y todos los que vean la cadena de bloques pueden estar cada vez más seguros de que la transacción se extraerá en el siguiente bloque y recibirán una confirmación, luego dos, y así sucesivamente. Etcétera.
Lo que esto significa es que cualquier transacción de Bitcoin puede aceptarse con cero confirmaciones con un nivel de confianza derivado matemáticamente al que algunos se refieren como "Confianza de transacción". Esta medida de confianza de la transacción nos asegura que, incluso si se intentara un gasto doble, la transacción original y correcta ya está demasiado propagada para ser superada.
Pero como usted señaló acertadamente, no existe una forma 100% libre de riesgo de poder hacer esto si no confía en el remitente. Es por eso que la cadena de bloques existe en primer lugar.
Un riesgo de confiar en la "confianza de transacción" es que no hay nada en la red que impida que alguien envíe una transacción de doble gasto directamente a los mineros, sin transmitirla a la red en su conjunto, según el acuerdo de que cualquier bloqueo que esos mineros find debe elegir su secreto en lugar del que transmiten a la red. Este es un riesgo sin importar cuánto de la red vea la transacción pública, que es una de las razones por las que no puede tener 100% de confianza en una transacción que nunca se convirtió en un bloque.
En particular, si acepta una transacción de confirmación 0 que gasta entradas de otras transacciones de confirmación 0, el riesgo es mucho mayor, porque la transacción directamente para usted o cualquiera de sus entradas de confirmación 0 podría gastarse dos veces, para su detrimento.
Francamente, incluso las transacciones de 1 confirmación no están libres de riesgos. Incluso en circunstancias normales, los bloques quedan huérfanos, lo que podría crear una ventana para el doble gasto, porque es posible que la sucursal ganadora no resuelva las transacciones de la forma en que lo hizo la sucursal perdedora.
Si se toma en serio tratar de minimizar los riesgos de aceptar BTC en situaciones de la "vida real" (también conocidas como físicas) donde la velocidad es importante, no puedo pensar en una mejor idea que ir con un servicio como Coinbase (sin afiliación). Esos servicios operan en una escala en la que pueden darse el lujo de comer pérdidas por gastos dobles, lo que debería ser raro, para que no tenga que preocuparse por eso. Actualmente, tienen un incentivo económico para aumentar la adopción de la moneda al ser muy atractivos para los comerciantes que eligen hacerlo.
Lo primero y más importante: haga negocios solo con personas de su confianza. Eso no significa que tenga que haberlos conocido durante un largo período de tiempo, sino que la persona que está haciendo negocios con usted tiene más probabilidades de optimizar sus ganancias si no lo estafa.
No estoy seguro de las probabilidades de lanzar con éxito un ataque de doble gasto después de esperar unos segundos, pero lo que puede hacer es escribir algún software que se conecte a algunos de los principales grupos de minería y espere si su transacción (o un intento de doble gasto malicioso transacción) aparece. Sería genial si los grupos de minería tuvieran una API web para verificar qué transacciones es probable que se incluyan en su próximo bloque, pero desafortunadamente no es así. Eso significa que tendría que programar dicha aplicación usted mismo (no conozco ninguna biblioteca existente con esta funcionalidad, pero infórmeme si existen).
Por último, siempre se podría trabajar con direcciones verdes . Si su socio acepta confiar en un tercero, las transacciones se pueden liquidar instantáneamente.
knaperek
jose pineda
muro
jose pineda
marcapasos
marcapasos
jangorecki