Pago de Bitcoin basado en un evento de la vida real

Acabo de empezar a aprender secuencias de comandos de bitcoin. ¿Alguien puede explicar cómo pagar en función de algún evento de la vida real?
Actualmente pruebo desde la línea de comando con bitcoind -regtest

¿Podría aclarar qué quiere decir con condicional? Cuando uso un script de transacción normal , incluye dos declaraciones condicionales: OP_EQUALVERIFYy OP_CHECKSIG.
En la forma más simple, si se cumple una condición al verificar un "oráculo" externo, entonces pague, si no, no pague y continúe verificando hasta que se cumpla la condición.
No hay uno, eso es intencional. Si permitiera un oráculo externo, ese oráculo podría decirle a una parte de la red que la transacción es válida y decirle a otra que la transacción no es válida.
Entonces, ¿cómo se haría con un script condicional que se basa en un evento de la vida real para activar un pago?
Haga que un servidor de confianza supervise el evento de la vida real y luego haga que envíe el pago cuando suceda.
@NickODell Ese parece ser un buen comienzo para una respuesta. :)
Estoy esperando la respuesta de Murphy como una colegiala.
Puede usar un servicio como ifttt o tasker para vincular la API de BitCoin con un servicio de monitoreo de eventos de la vida real.

Respuestas (1)

Bitcoin no puede verificar directamente el resultado de los eventos de la vida real. Sin embargo, es posible realizar transacciones condicionales con la ayuda de terceros. Esto se puede lograr con direcciones de múltiples firmas. Una dirección multifirma es una dirección controlada por varias personas diferentes. Para gastar el dinero de dicha dirección, se requieren las firmas de un número específico de esas personas. Por ejemplo, para gastar desde una dirección de 2 de 3 firmas múltiples, al menos dos de los tres propietarios deben estar de acuerdo con una transacción.

¿Cómo se puede usar esto para hacer pagos condicionales? Bueno, hay tres partes: el remitente, el destinatario y la parte que determina el resultado del evento, que llamaremos el oráculo. El oráculo proporciona una clave pública que corresponde al evento que es la condición del pago. De ocurrir el evento, el oráculo revelaría la clave privada correspondiente, por lo que cualquiera podría utilizarla para realizar firmas.

Ahora, supongamos que el remitente envía su dinero a una dirección multifirma 2 de 3 siendo los propietarios él mismo, el destinatario y la clave pública proporcionada por el oráculo. Hasta que el oráculo revele su clave privada, el destinatario solo puede gastar el dinero con la ayuda del remitente. Posteriormente, el destinatario puede usar la clave revelada por Oracle para gastar el dinero como desee.

Este esquema, sin embargo, tiene algunos problemas. En primer lugar, si el evento no ocurre, el remitente solo puede recuperar su dinero con la asistencia del destinatario. En segundo lugar, si el evento ocurre, el remitente puede recuperar su dinero si el destinatario no es lo suficientemente rápido como para moverlo primero. El primer problema se puede resolver haciendo que el destinatario firme una transacción que devuelva el dinero al remitente antes de que el remitente transmita la primera transacción. Aquí hay un ejemplo de cómo se puede usar esta función. El segundo problema se puede resolver usando un script más complejo que 2 de 3. Por ejemplo, es posible crear un script que permita que el dinero sea gastado por remitente+destinatario y destinatario+oráculo, pero no remitente+oráculo.

Por cierto, al investigar sobre esta pregunta, encontré un sitio web real que ofrece revelar claves privadas basadas en el resultado de eventos de la vida real.