Bitcoin, una moneda electrónica P2P

Bitcoin es una moneda digital descentralizada. Sí, puedes cambiar euros, dólares y otras monedas por bitcoins en varios sitios y viceversa. ¿Qué puedes hacer con bitcoins? pues lo mismo que con las otras monedas: comerciar o realizar transacciones entre quienes estén de acuerdo en utilizar la moneda.

Pero, ¿las bitcoins tienen representación física? ¿son la moneda de algún sitio? o ¿hay algún banco central que las soporte?

Bitcoin es una moneda sin representación física, está hecha para el mundo digital, así que se representa con bits. Con las monedas ‘normales’ ocurre lo mismo en gran medida, no hay papel moneda suficiente para representar ‘todo el dinero’, la mayoría del cual no son más que datos en sistemas informáticos.

Tampoco es la moneda oficial de ningún estado, unión económica o similar ya que ninguno se lo ha planteado. Tal vez aspire a ser un sistema monetario de Internet.

Y respecto al banco central no tiene ninguno porque está diseñada para no necesitarlo. De hecho Bitcoin no puede tener un banco central que controle su emisión. Por su diseño funciona en red, de manera descentralizada al margen de cualquier banco, lo que no deja de ser un problema técnico muy interesante.

Precisamente su autor, Satoshi Nakamoto, que es un pseudónimo para mantener el anonimato del autor o colectivo que diseñó Bitcoin, expresa su desconfianza en los bancos centrales con las siguientes palabras:

Se debe confiar en que el banco central no degrade la moneda, pero la historia de las monedas fiduciarias está llena de violaciones de esa confianza. Se debe confiar en que los bancos guarden nuestro dinero y hagan transferencias electrónicas, pero lo prestan mediante la reserva fraccionaria provocando oleadas de burbujas de crédito.

Cuando Satoshi Nakamoto inventó bitcoin pretendía crear una moneda inmune a la avaricia de políticos y banqueros. Una moneda completamente controlada por software.

Sistema monetario Bitcoin

En su corta existencia, comenzó a funcionar en enero de 2009, los bitcoins han sufrido muchas oscilaciones en su valor de cambio. Comenzaron valiendo menos de un centavo pero su valor se fue incrementando hasta que en junio de 2011 superaban los $29. Ahora 1BTC cuesta poco más de $3, pero dado que ahora hay unos 7.8M de bitcoins nos encontramos ante una economía de 23.4 millones de dólares.

Las diferencias monetarias con los sistemas tradicionales son notables. Hoy en día utilizamos dinero fiduciario que no está respaldado por ningún tipo de bien, esto es así desde que en 1971 el dólar dejó de estar respaldado por oro. Los euros, dólares y cualquier otra moneda que se utilice en la actualidad basan su valor únicamente en la confianza de la entidad emisora, su banco central.

El banco central puede emitir dinero cuando quiera, pero existe otro modo por el que aumenta la cantidad de dinero existente: la reserva fraccionaria. En nuestro sistema bancario cuando un banco recibe un depósito únicamente debe reservar una parte (típicamente el 2% en la zona euro) y puede considerar el resto usufructo. Si alguien realiza un depósito de 1000€ el banco guardará como reserva 20€ y considerará que cuenta con 980€ nuevos con los que podrá operar. El titular del depósito mantendrá un saldo de 1000€ mientras el banco opera con 980€, de manera que la cantidad de dinero existente ha pasado de 1000€ a 1980€.

Nada de esto ocurre en el sistema monetario bitcoin. La generación de bitcoins es automática y está controlada por un algoritmo determinista conocido por todos. Ningún actor tiene la posibilidad de cambiar el ritmo de generación de nuevos bitcoins.

Aproximadamente cada diez minutos se resuelve un bloque, después explicaré qué es, y se premia a quien lo ha resuelto con bitcoins nuevos. El premio lo puede ganar cualquiera de los que participan en la red bitcoin y es un incentivo para mantenerla. En la actualidad el premio es de 50 BTC nuevos por bloque, pero cada cuatro años el premio se reduce a la mitad. Está previsto que en 2013 pase a 25 BTC por bloque, en 2017 será 12.5 BTC por bloque y así sucesivamente.

Cantidad de bitcoins a lo largo del tiempo

La cantidad máxima de bitcoins alcanzará los 21 millones y para garantizar la granularidad monetaria cada bitcoin se puede fraccionar hasta 8 decimales. Así que es posible manejar céntimos de µBitcoin, que reciben el nombre de Satoshis.

Los bitcoins no se multiplican de ningún modo, su cantidad tiende a un valor finito y como son virtuales tampoco se destruyen nunca. Lo que sí puede ocurrir es que queden abandonadas en alguna cartera que ya nunca podrá ser accedida.

Otra diferencia fundamental es el modo en el que se realizan las transacciones. El dinero físico, en billetes o monedas, puede cambiar de manos de forma anónima y secreta. No ocurre lo mismo cuando se realiza una transacción electrónica con cualquier moneda. Existen registros bancarios y electrónicos de todo tipo.

Con los bitcoins cada usuario tiene una (puede tener varias) cartera, la cartera contendrá una (aunque pueden ser varias) dirección. Y a través de su cartera puede enviar una cantidad de bitcoins a cualquier dirección de cualquier otra cartera del mundo. La transacción formará parte de un registro público llamado cadena de bloques sobre el que daré detalles más adelante. Cualquiera puede seguir una a una todas las transacciones que se realizan en el mundo, pero en las transacciones únicamente aparecen las direcciones de origen y destino (además de la cantidad movida). Las direcciones pueden estar asociadas con un usuario de manera pública o no, porque cualquier usuario puede crear cuantas direcciones precise y utilizarlas sin divulgar su titularidad.

Transferir bitcoins de una dirección a otra no precisa de los servicios de ninguna entidad bancaria y estas tampoco son necesarias para depositar el dinero y evitar robos. En el sistema bitcoin se utiliza criptografía fuerte para proteger los ahorros de cada uno.

Así que pese a sus particularidades bitcoin también es una moneda fiduciaria basada en la confianza, pero no en la confianza en un determinado banco central o sistema bancario sino en la elegancia de sus algoritmos y el cifrado fuerte.

Detalles de implementación

La implementación del sistema monetario bitcoin hace uso de una red P2P para establecer conexiones entre los programas que representan las carteras o monederos de los usuarios. La red propaga las transacciones y replica la cadena de bloques que es el registro de todas las transacciones realizadas en la red.

Se utiliza criptografía fuerte (ECDSA y SHA-256) para asegurar la irrevocabilidad de las transacciones y se defiende de clientes maliciosos o del doble gasto sin necesitar un registro centralizado.

En los sistemas monetarios electrónicos suele existir un registro centralizado en el que se mantienen los saldos de los participantes para comprobar la validez de las transacciones. Así se descubre cuando un cliente malicioso, o que está funcionando mal, intenta gastar un saldo que no tiene. O intenta gastar un saldo en un lugar, y con el mismo saldo (no lo actualiza restando lo gastado) intenta una nueva transacción en otro lugar.

Pero un registro centralizado exige la confianza de todos en la entidad que lo gestiona y presenta un único punto de fallo para el sistema. Atacando dicho registro se deja fuera de juego a todo el sistema monetario. Inaceptable para Bitcoin.

Una de las ideas más originales del sistema monetario Bitcoin es la implementación de dicho registro de forma pública y distribuida mediante la red P2P. Dicho registro es la cadena de bloques.

Cuando un usuario quiere realizar una transacción utiliza su programa cartera para enviar determinada cantidad de saldo a una dirección bitcoin destino. La transacción está compuesta por la dirección de entrada, el saldo transferido y la dirección de salida. Realmente una transacción es más flexible pues permite aglutinar saldo de diferentes entradas para ser enviado a diferentes destinos (con posibles diferentes saldos transferidos). También es posible especificar una cantidad mayor de saldo de entrada frente al saldo de salida, diferencia que se interpreta como una comisión por procesar la transacción. En cualquier caso la transacción estará firmada con la clave privada de quien la inicia para garantizar la autenticidad del origen.

El cliente del usuario utilizará la red P2P para transmitir la transacción, de modo que el resto de pares puedan comprobar tanto la validez de las firmas como la disponibilidad de saldo antes de aceptarlo. Cada diez minutos se añade un nuevo bloque a la cadena de bloques, y las transacciones pendientes pueden ser incluidas en dicho bloque. Si no se incluyen en un bloque quedan a la espera de hacerlo en uno futuro.

Para garantizar la integridad de la cadena de bloques evitando que alguien pueda falsearla se utiliza una prueba de trabajo para resolver cada bloque. La dificultad de dicha prueba se adapta dinámicamente a la capacidad de cómputo disponible en la red P2P para que se pueda resolver un bloque cada 10 minutos. Completar un bloque requiere una gran capacidad de cálculo pero le permite obtener dos ganancias a quien lo completa: un incentivo de 50 BTC por bloque y la suma de todas las comisiones de las diferentes transacciones que forman parte del bloque. Por esto hay nodos en la red que únicamente se dedican a intentar completar el próximo bloque, son los llamados mineros pues invierten recursos (hardware más ancho de banda y electricidad) para obtener bitcoins mientras realizan un trabajo esencial, la construcción de la cadena de bloques.

El premio de 50 BTC por resolver cada bloque además de servir como incentivo para los mineros forma el mecanismo de creación y distribución de masa monetaria. Cada vez que se resuelve un bloque se crean 50 nuevos bitcoins que se asignan a quien lo ha resuelto. Pero como he explicado antes este premio no tiene un valor constante, cada 210000 bloques (unos 4 años) el valor del premio se reduce a la mitad. De manera que solo se llegarán a crear 21 millones de bitcoins. Se espera que en la medida en la que se reduzca el premio por resolver un bloque el aumento de transacciones permita que los mineros sigan encontrando un incentivo para su trabajo al ganar comisiones por procesar las transacciones.

Cuando se resuelve el bloque se propaga por la red P2P, donde cada par realiza la verificación de la prueba de trabajo y las transacciones anotadas antes de agregarlo a la cadena. Finalmente, cuando la cartera del destinatario recibe 6 confirmaciones (de diferentes pares) de que la transacción forma parte de la cadena de bloques se considera confirmada e irrevocable y se verá aumentado el saldo del monedero de manera definitiva. Mientras este proceso se lleva a cabo el monedero informará de que se ha recibido una transacción entrante cuyo saldo está pendiente de confirmación.

Puesto que cada uno de los bloques está enlazado con el anterior, realizar una alteración del registro de transacciones implicaría resolver el bloque modificado y todos los posteriores. Y hacerlo en un tiempo extremadamente corto, pues la cadena de bloques real no se detiene y cada 10 min añade un nuevo bloque.

Sobre la prueba de trabajo

La prueba de trabajo que permite dar por resuelto un bloque consiste en encontrar un número que concatenado con las transacciones del bloque permita que al calcular el hash criptográfico SHA-256 sobre el bloque (datos de las transacciones, más número, más referencia al bloque anterior) se obtenga un resultado menor que un valor marcado como objetivo por la red.

Puesto que las funciones hash criptográficas no son reversibles, fijar como objetivo que el hash debe dar un valor menor que X implica exigir cierto número de pruebas, en cada prueba se utilizará un número diferente y se calculará el hash SHA-256 del supuesto bloque.

Cada 2016 bloques resueltos (unas dos semanas), la red ajusta el valor del objetivo para adaptar la dificultad a la capacidad de cómputo de la red. Se fija el nuevo objetivo al valor que mejor ajuste la resolución de los 2016 bloques anteriores a dos semanas.

Hubo un tiempo en el que cualquiera podía resolver bloques con su ordenador personal. Me lamento de no haberme empeñado en ello la primera vez que oí hablar de los bitcoins y pensé que eran interesantes pero algo evitó que me pusiera a ello. Hoy en día no resulta práctico utilizar un ordenador personal, o por lo menos no hacerlo de forma individual. La razón es que la red P2P cuenta con mineros con suficiente potencia de cálculo como para que las posibilidades de resolver un bloque con la CPU de un ordenador doméstico sean ridículas. Una opción consiste en formar pools de máquinas que trabajen en equipo y compartan premios. Pero aún así las CPUs de los ordenadores se han visto reemplazadas por las GPUs de las tarjetas gráficas que permiten muchísima mas velocidad en el cálculo de los hash.

Para que os hagáis una idea de la dificultad de resolución de un bloque podemos mirar el último que ha sido resuelto en el momento de escribir esto: el bloque 158368.

El bloque contiene 26 transacciones y alcanza los 8.809KB. El número que ha sido añadido para que al calcular el hash se obtenga un valor inferior al objetivo es 2814646153. Eso quiere decir que primero se añadió 1 y se calculó el hash, luego 2, luego 3 y así sucesivamente. Es decir se han tenido que calcular más de 2800 millones de hash del bloque para encontrar la solución.

Mientras una CPU que utilice las instrucciones SSE para calcular el hash puede ejecutar 4 instrucciones de 32 bit por ciclo, una GPU como la Radeon HD 5970 puede ejecutar 3200 instrucciones de 32 bits por ciclo. Nada que ver.

¿Y de dónde saco bitcoins para rellenar mi cartera?

Ah! si yo lo supiese iba a ser pobre.

Bueno, ahí van algunas ideas:

  1. Trabaja. Haz algo productivo y encuentra a alguien que quiera pagarte por ello. No lo he explorado mucho pero seguro que en los MMORPG de más éxito puedes encontrar a jugadores que te pagarían por objetos o porque los acompañes como mercenario.
  2. Compra bitcoins en cualquier mercado de cambio, claro que esto exige que gastes euros y tal y como están las cosas no parece buena idea.
  3. Acude a Bitcoin Faucet y te regalarán 5mBTC = 0.005 BTC

Por último, si lo que quieres es vaciar tu cartera seguro que encuentras muchas más opciones. Por ejemplo puedes donar a WikiLeaks (en la dirección: 1HB5XMLmzFVj8ALj6mfBsbifRoD4miY36v ). Lo que es especialmente gracioso pues WikiLeaks está sometida a un bloqueo por parte de Visa, Mastercard y PayPal. EEUU puede pedir a esas compañías que bloqueen los pagos a WikiLeaks pero no puede hacer lo mismo con el sistema monetario Bitcoin. ¿No vale la pena solo por eso?

Otras cuestiones

Ya me he extendido mucho y todavía quedan muchas cuestiones pendientes: la capacidad de la red para escalar el número de transacciones por segundo, la reducción del consumo de ancho de banda/cpu de la cartera simplemente para mantenerse actualizada con los mensajes de la red P2P, las críticas (como las de Ingo Molnar) o los mitos más frecuentes. Un sistema monetario como bitcoin es necesariamente complejo y no precisamente por los hashes o las firmas digitales que para algunos pueden ser la parte más clara.

Siento predilección por las obras que funcionan y el sistema monetario Bitcoin se ha ganado mi admiración tenga o no algún futuro. Lamento no contar con suficientes conocimientos económicos para vislumbrar los cambios que el uso de un sistema como este podría traer, pero sospecho que economistas de tendencias enfrentadas podrían encontrar artimañas para salirse con la suya. Para montar todos los castillos en el aire que quieran.

Podemos leer que “en el mundo real” el BCE presta 489000 millones de euros a 523 bancos europeos, 489×1012€ creados de la nada y que se seguirán multiplicando gracias al multiplicador monetario. ¿De qué manera el mundo físico es distinto antes y después de inyectar semejante masa monetaria? De ninguna, pero jugamos a creernos las reglas que nos hemos inventado y tal operación realmente marca una gran diferencia, después de la operación el tesoro logra colocar su deuda con unos intereses menores que antes.

El sistema monetario bitcoin es diferente a lo que tenemos, pero alguien tiene que innovar y a fin de cuentas a mí tampoco me parece tan disparatado.

Si quieres probarlo solo tienes que instalar una cartera, en Ubuntu puedes escribir:

sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt-get update
sudo apt-get install bitcoin-qt

 

Fobos-Grunt en situación crítica o cómo unos turistas con billete a Fobos se quedan en la órbita terrestre

Fobos-Grunt (Фобос-Грунт, literalmente ‘Fobos-Suelo’) es una ambiciosa sonda rusa que se ha lanzado este 8 de noviembre desde Baikonur.

Sonda Fobos-Grunt

La misión, que no es tripulada aunque transporta turistas vivos, pretende llegar a la órbita de Marte. Dejar allí el orbitador chino Yinghuo-1 (‘Luciérnaga-1’) que entre otros objetivos pretende estudiar el campo magnético de Marte y sus tormentas de arena. También debería desplegar en la superficie del planeta dos sondas MetNet, de fabricación finlandesa, que tendrán por objetivo estudiar la meteorología.

Pero Yinghuo-1 y MetNet no son más que agregados a la sonda principal. Fobos-Grunt pretende el más difícil todavía:

  1. Orbitar Fobos (una de las lunas de Marte)
  2. Aterrizar en su suelo
  3. Recoger 200g de regolito (200g de material de Fobos)
  4. Volver con las muestras a nuestro planeta

Y puesto que sería la primera vez que una sonda se acerca hasta Marte y vuelve se llevará a cabo el experimento LIFE. En el que se transportarán microorganismos para ver qué ocurre con ellos en un viaje de varios años lejos de la tierra.

Lanzamiento

La decadencia en la que ha caído la exploración espacial, saber que Marte siempre fue un infortunio para el programa espacial soviético y ahora para el ruso (curiosamente con Venus las sondas Venera tuvieron mucho más éxito) y lo ambicioso del proyecto ha creado muchísima expectación.

Los vídeos de Roskosmos en los que se puede ver el manipulado de la sonda para cargarla en el cohete Zenit-2SB. O la preparación del cohete para el lanzamiento permiten hacerse una idea de la dificultad técnica del proyecto.

Así es que cuando a las 21:16h se lanzó con éxito el cohete yo pensé buen viaje y me quedé tan contento.

Siguiente día

Pero la realidad es obstinada y al día siguiente nos encontramos con la noticia de que la sonda, una vez que el cohete la ha dejado en órbita terrestre, no ha logrado iniciar su camino hacia Marte.

Todavía no todo está perdido. Parece que existe un plazo entre 72 horas y un par de semanas durante el que sería posible intentar reparar el problema desde la tierra y reprogramar la sonda de manera remota.

Así es que en algún punto de Rusia debe haber científicos/técnicos rascándose la cabeza para intentar solucionar el problema y lamentando no tener la sonda más a mano. Sinceramente deseo que lo puedan solucionar y finalmente Fobos-Grunt continúe su viaje. El fallo, como siempre, algo relacionado con el software o la substitución de la computadora de Fregat (una de las etapas del cohete) por otra en la propia sonda.

¿Y los pasajeros?

Pues los pasajeros del experimento LIFE de momento siguen tan panchos en sus 30 contenedores del biomódulo.

Se trata de 10 tipos de organismo que viajan en 30 cápsulas (cada organismo está triplicado) y cubren los tres dominios de la vida: bacterias, eukariotas y arqueas. Se trata de organismos bien conocidos que tienen su genoma secuenciado y estudiado, de manera que (si logran volver) se puedan percibir anomalías causadas por su viaje. Evidentemente en la selección de los pasajeros se han primado aquellos extremófilos que tienen mayores posibilidades de sobrevivir. Wikipedia tiene una lista con los organismos en la que no pueden faltar los tardígrados.

Incertidumbre

¿Y a partir de ahora? pues expectación a ver si con muchísima suerte logran solucionar de forma remota el problema y Fobos-Grunt retoma su camino hacia Marte. Que la misión sea un más difícil todavía no evitará una gran frustración ante un fracaso tan temprano, y en tal caso además de quedarnos sin la información científica que hubieran aportado todos esos experimentos probablemente nos quedemos sin otros futuros que serán cancelados.

Muchas personas piensan que no tenemos recursos para la exploración espacial, que los recursos están mejor empleados en sistemas financieros basados en fraudes piramidales que deben ser rescatados. Yo creo que lo que no tenemos es voluntad de explorar el espacio y, ya puestos, de enviar a Fobos a unos cuantos responsables de que el mundo sea como es.

Y tú, ¿piensas que Fobos-Grunt continuará su camino? ¿Qué o a quién enviarías a Fobos en lugar de tardígrados?

 

 

Tecnologies

L’expansió del món de les tecnologies de la informació i la comunicació continua dia a dia. Aquesta expansió, però, no és uniforme ni neutra (presenta determinades fractures, per exemple, l’anomenada bretxa digital)  ni té el mateix significat per a tothom.

Per aquest motiu, perquè hi ha molts d’interessos, punts de vista crítics i moltes opinions diferents, obrim aquesta secció del blog del Puig, per contribuir al contrast, a l’aclariment i a l’intercanvi d’idees sobre les noves tecnologies.