Ej. 2: ¿Cómo Funciona Bitcoin? (parte I)

En este segundo ejemplo vamos a abordar el funcionamiento de la nueva moneda.  Hasta el momento conocemos superficialmente el asunto de transacciones entre Direcciones Bitcoin, pero a continuación vamos a entrar de lleno en la cuestión.

Para componer este ejemplo nos vamos a valer de 5 personajes fícticios: Pepe y Lola que van a hacer una transacción entre unas Direcciones Bitcoin y Manolín, Manolo y Manuela que van a ser lo que en el mundo de Bitcoin se conoce como Mineros, igual tendremos que tirar de algún extra también pero ya lo vamos viendo…  Con fines didácticos, vamos a hacer la abstracción de que  aparte de Pepe y Lola hay más gente haciendo transacciones, pero vamos a suponer que el minado de nuestra red Bitcoin sólo está en manos de nuestros tres mineros.  Una vez comprendido este ejemplo con escenario reducido, resultará sencillo hacer la extrapolación al real.

Pepe lleva unos meses en esto del Bitcoin y tiene 10 BTCs en una Dirección Bitcoin que gestiona desde un monedero que en su día generó siguiendo instrucciones de alguna página web que recomendaba por ser bastante seguros los monederos que pueden crearse desde blockchain.info.  Recordemos que los monederos nos sirven para manejar múltiples parejas de Dirección Bitcoin+Clave Privada.

La Dirección Bitcoin que se le generó en su día en el monedero a Pepe al crearlo fue: 1LCFEu96cNvkmr6AbEabLe7LyY1YmFi5qV.  Además como medida de precaución adicional habilitó la doble autentificación para el acceso a su monedero con Google Authenticator.

Interfaz de Creación de Mondero Bitcoin en blockchain.info

Los monederos creados desde ese site funcionan de la siguiente manera: una vez creados generan automáticamente una pareja Dirección Bitcoin+Clave Privada, esto lo hace nuestro navegador en local, luego nuestro monedero con la pareja Dirección+Clave Privada se encripta con un algoritmo seguro basado en nuestro password y después se envía el fichero resultante de la encriptación a algún lugar para almacenarse vinculado a un identificador.   Cuando volvamos a Blockchain y nos autentifiquemos, se descargará de nuevo el fichero encriptado asociado al identificador proporcionado y nuestro navegador en local lo desencriptará con el password proporcionado y podremos usar la clave privada cuando vayamos a operar.  Como puede verse todo el proceso de acceso a la Clave Privada sucede en local, la gente de Blockchain.info en ningún momento accede a la misma.  Para más detalles del proceso podéis visitar: https://blockchain.info/es/wallet/how-it-works

Por otro lado, Lola está empezando con esto del Bitcoin y ha leído que lo más seguro son las Direcciones Bitcoin en papel.  Entonces lo que ha hecho es que se ha generado varías parejas de Direcciones Bitcoins+Clave Privada desde bitaddress.org.  Para ello ha cargado la pagina de bitaddress.org y la ha guardado como archivo .html en su disco duro, luego ha desconectado su ordenador de internet y ha generado unas cuantas Direcciones Bitcoin cargando en su navegador el archivo previamente guardado.  Desde la pestaña Paper-Wallet obtuvo varios pares Dirección Bitcoin+Clave Privada, los imprimió y luego cerro su navegador.  De esta forma las claves privadas asociadas a sus Direcciones Bitcoin están solamente en los papeles impresos.  Una de las Direcciones Bitcoin generadas ha sido esta:  1KgLnWtpwBUGW4LcafyBhHMuUJ8ReBLR2R.

Pares Dirección Bitcoin+Clave Privada en Papel de http://bitaddress.org

Así por tanto, Pepe y Lola están listos para poder comenzar a usar la nueva moneda.  Lola habla con Pepe por teléfono y le consulta como puede comenzar a tener algún Bitcoin.  Pepe le dice que le compra su bicicleta de montaña por 5 BTCs.  Lola acepta y entonces Pepe le transfiere sus 5 primeros Bitcoins.   Hasta el momento hemos visto lo necesario para poder operar, que básicamente en el caso de recibir BTCs se reduce a contar con al menos una pareja de Dirección Bitcoin+Clave Privada, y en el caso de enviar BTCs además hace falta algún software que se conecte a la red y pueda operar según el protocolo Bitcoin, esto habitualmente lo hace un Monedero Bitcoin, o en el caso de blockchain.info una API desarrollada por ellos para interactuar con la red Bitcoin.   A continuación vamos a ver el flujo que sigue una Transacción Bitcoin hasta que es confirmada.

En nuestro caso Pepe es el que genera la transacción y la firma con su Clave Privada.  Ahora necesitamos añadir unos actores extra a nuestros personajes, serán Juan y Elena son los que en su momento le transfirieron a Pepe 3 y 7 BTCs respectivamente que suman los 10 BTCs con los que cuenta Pepe en la actualidad.  Este sería un diagrama de la Transacción Bitcoin asociada al pago de la bicicleta de Lola:

Ejemplo de Transacción 1

Cuando se efectúa una transacción se especifica en los inputs de que transacciones anteriores procede el dinero que va a ser transferido.  Se generan los Outputs de destino, y como puede verse si sobra algo respecto a los Inputs, se genera un Output de cambio que devuelve el sobrante a una nueva dirección del emisor que se encarga de generar y gestionar automáticamente el software de monedero Bitcoin con el que se esté operando.  Posteriormente se genera un codigo HASH de la misma y se firma con la clave privada del Emisor.  Se le añade la Clave Pública del Emisor para que pueda comprobarse la firma y nuestro monedero la suelta a la red Bitcoin para que sea procesada.

Para el caso del cambio podemos considerar que la Dirección Bitcoin se comporta como un billete.  Y cuando vas a transferir parte de su valor, es como si parte la transfieres a un billete de alguien (Dirección Bitcoin destino) y otra parte es como si emitieras un nuevo billete que contiene el cambio.  El billete original deja de usarse, y de esta forma nadie puede saber a quien pertenece la nueva Dirección Bitcoin a donde ha ido a parar el cambio.  Así se consigue garantizar el anonimato en las transacciones.  Ya no se podría afirmar con rotundidad si el dinero del cambio a vuelto a la persona propietaria de la Dirección Bitcoin origen o a otra persona, puesto que ha ido a una Dirección Bitcoin nueva que ya nadie sabe a quien pertenece.

Un dato importante a tener en cuenta con las parejas de claves en papel, como la de Lola, es que son, por así decirlo, de usar y tirar con respecto a transacciones de salida, precisamente por lo de mantener el anonimato.  Podemos enviar todos los fondos que queramos a ellos, pero la primera vez que hagamos una transacción desde un billete de papel hacía otra Dirección se quedará vacío.  Con lo cual mucho cuidado con deshacerse del monedero desde el que se haya hecho la transacción, porque si la transacción no ha sido por el valor total que contenía el billete, y se ha producido cambio, el cambio estará en una nueva Dirección Bitcoin que tendrá y gestionará el monedero con el que hemos operado y no en la Dirección del billete.  Muchos monederos vienen ya con Direcciones ocultas o pueden generarlas y las utilizan para cosas como el cambio.  Si se opera desde blockchain.info el cambio es devuelto a la primera Dirección del monedero.  Lógicamente si se transfiere el total del billete, no hay este problema, ya que no se generará cambio.

Más info: Problema del cambio en Billetes Bitcoin en Papel

Para seguir afianzando el asunto de las transacciones vamos a suponer que ahora Lola le envía 1 BTC a Manolo, uno de nuestros mineros.  Como ella tiene sus Bitcoins en una Dirección Bitcoin en papel, para poder operar con ellos previamente tendrá que abrirse cuenta en blockchain.info, por ejemplo, e importar la Clave Privada de su billete allí.  Una vez hecho esto, y realizado el pago, el diagrama de la transacción quedaría de la siguiente forma:

Ejemplo de Transacción 2 (click en imagen para ampliar)

Se observan muchas cosas interesantes en este diagrama, una de ellas es que los Outputs que tienen flecha de salida corresponden a moneda gastada y los outputs sin flecha son moneda disponible.  Por otro lado,  las monedas habituales a las que estamos acostumbrados normalmente están hechas de algún material, conocemos que hay monedas de barro, de oro, de plata, de otras aleaciones metálicas, etc.  Con lo que conocemos hasta ahora, ya podemos intuir el material del que está hecha nuestra moneda electrónica, que como puede verse no es más que una cadena de firmas digitales, y el material es lo que sustenta a esa cadena…  Más adelante descubriremos de que material se trata.

Sigamos profundizando en las transacciones.  De momento sabemos ya algo de como se mueven los Bitcoins de unas Direcciones a otras, pero aún no hemos hablado de como se generan nuevas monedas.  En el siguiente post nos centraremos más en la minería y será allí donde entremos en detalle en cuanto a la generación, pero en este más dedicado a las transacciones veamos que pasa con ellas cuando se generan nuevas monedas: como era de esperar se generan mediante una transacción creada por un minero, ya veremos cuando y cómo, de momento no preocuparse por eso.  Veamos un diagrama de una transacción que le hace Manolo a Manuela de 26 Bitcoins, 1 de ellos se lo había pasado Lola en nuestra transacción anterior y los otros 25 los habría conseguido con su actividad de minería.

Transaccion3

Ejemplo de Transacción 3 (click en imagen para ampliar)

Fijaros que la regla de los outputs sin flecha y con flecha se sigue cumpliendo.  Ahora sólo tienen Bitcoins para gastar: Pepe, Lola y Manuela.

Hay cuestiones y matices que quedarían pendientes, pero en líneas generales creo que con lo expuesto uno se puede hacer una idea bastante aproximada de lo que sucede, en cuanto a la generación de transacciones se refiere.  Para profundizar en el tema recomiendo dirigirse a las fuentes expuestas a continuación…

En el próximo post continuaremos viendo como se siguen procesando las transacciones, su inclusión en lo que se llama la Cadena de Bloques y como afecta esto a la generación de nueva moneda.

Fuentes:
http://bitcoin.org/bitcoin.pdf
https://es.bitcoin.it/wiki/Transacción
http://es.wikipedia.org/wiki/Criptografía_asimétrica
https://en.bitcoin.it/wiki/Change
Publicado en General Etiquetado con:
2 Comentarios en “Ej. 2: ¿Cómo Funciona Bitcoin? (parte I)
  1. Para una persona que se inicia en este mundo, son un poco extensas las explicaciones, pero sin dudas que aportan muchísimo.

  2. First of all, thank you for the info, and your point of view.
    I can appreciate this blogging site and most importantly suggestions.
    At this point, Personally i think I trash far too enough time online, perusing rubbish, effectively.
    This was a refreshing differ from that experience.
    Nonetheless, I believe examining other’s thoughts is a valuable investiture of
    at minimum a few of my weekly allotment of amount of time in my routine.

    It’s much like searching into the junk heap to obtain the wheat.
    Or sometimes, whatever analogy performs best for you. Still, sitting
    in front of the computer system is probably as bad for you
    as smoking cigarettes and deep-fried potato chips. http://Njmassages.com

2 Pings/Trackbacks para "Ej. 2: ¿Cómo Funciona Bitcoin? (parte I)"
  1. […] la parte I de este ejemplo intuíamos el material de nuestra moneda, dijimos que estaba hecha de una cadena […]

  2. […] Como primer paso recordemos que el Proof of Work se basa en cálculos masivos de Hashes de Bloques, miles o millones de Hashes por segundo, dependiendo de la potencia de cálculo de los aparatos de minería utilizados, hasta dar con el Hash que cumpliera el criterio de Dificultad fijado para todos los nodos mineros de la red.  No olvidemos que la Dificultad fija el número de ceros que tiene que tener el Hash al principio para considerar que se ha “descubierto” un Bloque.  Una vez descubierto el Hash del Bloque, se incorpora a la Cadena de Bloques y se propaga por toda la red, tal y como veíamos en el ejemplo de ¿Cómo funciona Bitcoin? […]

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*