Electrónico, digital, virtual, criptográfico.

El dinero, como los euros o el dólar (denominado FIAT), es prácticamente digital porque la mayor parte existe solo en formato informático. También es virtual porque aunque no tenga forma física, podemos comprar cosas con él. Es obvia la razón por la que también se define como electrónico. Pero a diferencia de Bitcoin, su distribución y su seguridad dependen de terceras partes.

Bitcoin es una moneda criptográfica porque su seguridad y su distribución dependen de ésta rama de las matemáticas. Las transacciones en su red también se aseguran con la ayuda de la criptografía.

Traducido directamente del documento original, Satoshi explica las transferencias así:

“Definimos las monedas electrónicas cómo una cadena de firmas digitales. Cada propietario transfiere su moneda al siguiente, al firmar digitalmente un hash de la transacción anterior, junto a la llave pública del siguiente propietario que queda añadida al final de la moneda. El que cobra puede verificar las firmas que verifican la cadena de propietarios.”

El gráfico con el que nos ayuda a entender este lío es así:

03-12-2015 - Post05 -Transacciones

La primera transacción de la izquierda ya la ha recibido el propietario del par de llaves 1. Imaginemos que el valor es una moneda electrónica, como se define arriba en la explicación de Satoshi.

El hash que le ha llegado a este propietario 1 contiene la cantidad enviada, la hora a la que se envió y la llave pública que identifica al propietario anterior. Además lleva una representación de su llave privada, en un formato que solo nos indica que ha sido enviada a través de la única llave privada que podría haber enviado esa moneda electrónica. Dicha confirmación se denomina en el gráfico como “Firma propietario 0”.

A través de la criptografía, el hash en este caso, las llaves privadas que han liberado la moneda no se podrán revelar nunca,  pero el sistema y los demás usuarios pueden comprobar que la transferencia ha sido realizada por alguien que está autorizado.

Hasta aquí tenemos una moneda que legítimamente ha llegado al monedero del propietario 1 (El rectángulo grande superior de la izquierda). Los saldos se han ajustado, el del monedero 0 es una moneda menos, y el del usuario 1 una moneda más.

Ahora el usuario 1 puede enviar la moneda a otro usuario, por lo que prepara una transferencia desde su monedero digital. Cuando la envía libera la cantidad con su llave privada (el rectángulo inferior de la izquierda). Del hash resultante de la operación se puede verificar que la firma corresponde a la llave privada que empareja la llave pública del usuario 1, y que su saldo le ha permitido hacer la transferencia; por lo que el usuario 2 puede ahora transferir la moneda con su llave privada, y así sucesivamente.

La moneda en realidad nunca queda identificada como tal. Solo se identifica la parte del saldo disponible que un usuario envía a otro, al pagarle a través de la red. Esto lo explica Satoshi el texto original, a continuación de lo que he traducido arriba, dando paso al sistema por el que funciona el algoritmo Proof o work, mediante el que se asegura el historial de las transacciones, e incentiva a los usuarios que deseen hacer el trabajo de asegurarla: Los mineros.

Cuando efectuamos una transacción y la transmitimos por la red para que le llegue a su destinatario. Éste, en caso de disponer solamente el saldo de esa transferencia que le acaba de llegar, no podrá enviar ninguna cantidad a otro usuario hasta que la transferencia haya sido confirmada.

Durante este tiempo en el que no puede disponer de su saldo positivo, los usuarios que tienen copia de la cadena de bloques comprueban que todo es correcto y se agrupa con otras hasta que forman un bloque de 1Mb. Cuando se une el bloque de nuestra transacción se producen la primera confirmación. El saldo no estará disponible hasta la sexta confirmación, o hasta que se hayan unido cinco bloques más a la cadena.

Hay diversos servicios gratuitos con los que podemos hacer un seguimiento a cualquier transacción y conocer su estado. Esta captura la acabo de hacer en Blocchain.info:

03-12-2015 - Post05 -TransferenciasPorConfRemitente

He marcado en amarillo el hash de la transacción que, como he explicado antes, es el que contiene toda la información relevante. La raya roja está debajo de la dirección, o llave pública, del remitente, y la verde debajo de la del receptor.

Mediante el enlace al que lleva la dirección del receptor he sacado esta otra captura de pantalla:

03-12-2015 - Post05 -TransferenciasPorConfRecept

Esta información es toda la que nos ofrece el monedero del receptor. En color morado he marcado la que corresponde al total las transferencias recibidas, o realizadas, desde este monedero; el total de los bitcoins que ha recibido; y su saldo final. El resto de las señales coinciden con las del cuadro anterior.

Vemos que aunque el monedero afirma tener saldo (maraca morada),  la transferencia todavía está sin confirmar por lo que su usuario no podrá disponer de él (realzado en el cuadro rojo).

Esta otra captura contiene la primera confirmación de que la transferencia es buena:

03-12-2015 - Post05 -TransferenciasConf

Cuando en el recuadro azul marque “6 confirmaciones”, se podrá disponer del saldo del monedero, que en este caso coincide con el de la transferencia, y que ahora está incluida en el último bloque añadido a la cadena. A medida que se vayan sumando bloques encima, la posibilidad de malearla se reduce exponencialmente.

Esta explicación no abarca todo lo que se puede conocer sobre las transferencias, pero espero que ayude a hacerse una idea sobre cómo funcionan.

El programa evita el problema del double spending, que es el problema por el que hasta ahora no se había podido crear un sistema monetario no gubernamental globalizado. La dependencia de una central que garantiza el consenso los convierte a todos vulnerables a ser censurados.

Bitcoin es un mundo. Aunque su diseño y funcionamiento solo permita efectuar transferencias, el hecho de que a su vez sea un protocolo de comunicación, permite añadirle funciones a través de la programación sin comprometer nunca sus características principales ni su seguridad.

Pliego de descargas:

Bitcoin es un experimento y nada de lo que hayas leído representa la intención de aconsejarte, o de influir en tus decisiones respecto a tus inversiones, o a tu economía personal. El propósito de los artículos de este blog es el de explorar un nuevo ecosistema tecnológico, aprendiendo sobre sus posibilidades, sus propiedades y características innovadoras.