En MtGox (y presumiblemente en algunos otros sitios), puede retirar dinero en forma de un código canjeable. Estos códigos también se aceptan para depósito en algunos intercambios de Bitcoin.
¿Como funciona esto? Específicamente, ¿hay protección contra el doble gasto? ¿Puedo saber que el código que obtuve sigue siendo válido y que no se le ha dado a otros también?
El código es efectivamente solo una larga cadena aleatoria. Cuando crea un código canjeable, se selecciona una cadena aleatoria, se ingresa en la base de datos en el intercambio y se asocia con una moneda y una cantidad. Esa cadena es su código canjeable. La cadena es lo suficientemente larga como para que sea muy poco probable que alguien pueda adivinarla en un período de tiempo razonable.
La primera persona que intenta canjear el código obtiene el monto acreditado en su cuenta en el intercambio, lo que hace que la entrada de la base de datos en el intercambio para ese código se marque como canjeado.
La forma de saber si un código es válido es intentar canjearlo. Si funciona, eres el primero en probarlo. Si no es así, no eres el primero en intentar usarlo o nunca fue un código válido para empezar.
El intercambio debe evitar el "doble gasto" asegurándose de que la secuencia "buscar si se gastó el código; acreditar en la cuenta; convertir el código en gastado" es una operación atómica. No queremos que dos usuarios ejecuten la misma secuencia al mismo tiempo, donde ambos pasan la verificación "buscar si se gastó el código", luego se acreditan ambas cuentas, etc.
Son instrumentos al portador. Quien canjea el código primero obtiene los fondos asociados con el código.
Están destinados a permitir que se intercambien USD o bitcoins de una cuenta a otra. Los intermediarios de terceros, como BitInstant u otros intercambios, pueden aceptarlos.
Hay riesgos para estos. http://www.bitcoinmoney.com/post/18506669111
david schwartz
tilo
Esteban Gornick