Created
April 5, 2014 15:52
-
-
Save yemel/9993627 to your computer and use it in GitHub Desktop.
Trustless Prepaid Service
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Integrantes: C) Cliente, T) ThirdParty, P) Proveedor | |
C genera 3 claves privadas y una bitcoin address que para la que se le pueden retirar fondos con 2 de 3 de esas claves (todo esto client-side) | |
A carga fondos a esa address, entrega una clave privada a T y otra clave privada a P. Los fondos cargados corresponderían al prepago, por ejemplo dinero suficiente para un año de servicio de X. | |
Cuando C le pasa la clave privada a T también informa las condiciones de pago que exigirá P, como pueden ser: gasto máximo en un periodo y la frecuencia de cobro. | |
Finalmente el proceso de pago sería el siguiente: | |
1- P generaría la transacción para cobrar a cada fin de ciclo y se la emitiría a T. | |
2 - T confirmaría que está dentro de las restricciones y terminaría de firmar la transacción. | |
3 - T broadcastea la transacción a la red de bitcoin y el pago se da por confirmado. | |
Nota: Esto funcionaría perfecto hasta que la cuenta quede sin dinero, entonces C tendría que volver a cargar. | |
Si A quiere cancelar la suscripción, puede hacerlo hablando solo con T o guardando algun backup de las claves privadas que generó client side. En cualquier caso puede recuperar todo su dinero. | |
Si hackean a T o a P no hay problema, ellos solo tiene una clave privada y por tanto no podrían retirar los fondos de la cuenta. | |
Otra ventaja de este sistema es que si el servicio de P desaparece, no hay problema con haber pagado 1 año por adelantado. El dinero se puede recuperar. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment