Bitcoin, Terra Incognita. ¿Cómo?

¿Cómo funciona Bitcoin?

Jesús Collado Andino
10 min readMay 8, 2018

Nota previa: si en algún momento este artículo te resulta difícil de seguir, ¡no te preocupes! El ¿cómo? es interesante para los curiosos o los aficionados a la tecnología, o sea, para los que también se han preguntado alguna vez ¿cómo funciona internet? o ¿cómo funciona un teléfono móvil? Para el resto, lo realmente importante de Bitcoin es el ¿Qué? y sobre todo el ¿Por qué?

Los requisitos que debe cumplir el sistema

El enorme reto intelectual y tecnológico de crear la nueva forma de dinero que propone Bitcoin puede enunciarse resumidamente con tres requisitos:

  • evitar la falsificación de moneda (no deben emitirse más monedas de las previstas inicialmente).
  • asegurar que nadie puede apropiarse de la moneda que pertenece a otro.
  • evitar que una misma moneda pueda gastarse dos veces (problema del doble gasto).

Para resolver estos retos, otros diseños previos a Bitcoin habían tenido que recurrir invariablemente a la existencia de un servidor de referencia, una especie de “banco central” que coordinase el sistema para impedir, por ejemplo, el doble gasto. Pero la existencia de un elemento central hacía que el diseño fuera vulnerable a diversos tipos de ataques, por lo que a los tres requisitos anteriores, se añade uno más de vital importancia:

  • no debe existir un elemento centralizado, el sistema debe ser distribuido.

La genialidad de Bitcoin consiste en combinar herramientas ya existentes en ciencias de la computación (criptografía de clave pública, redes P2P, algoritmo de Proof-of-Work, …), integrándolas mediante un elemento que no es puramente tecnológico, y que permite la coordinación de todas ellas: el incentivo económico, calibrado con la teoría de juegos. De esta forma la red Bitcoin consigue ser completamente distribuida y no depender de ninguna institución, empresa o gobierno.

Pero, ¿cómo lo consigue?

La transacción, la pieza básica del sistema

En Bitcoin no existe el concepto de cuenta con saldo, en el sentido en el que estamos acostumbrados en la banca actual. El elemento básico y fundamental sobre el que se construye el sistema es la Transacción (en jerga de computación suele usarse la abreviatura TX).

La forma más simple de transacción se define por:

  • una dirección Bitcoin de Origen
  • la cantidad de bitcoins enviada
  • una dirección Bitcoin de Destino
  • una firma

Puede entenderse cada dirección Bitcoin como una dirección de correo electrónico, y la clave privada asociada como la contraseña de la dirección de correo. Una dirección de email puede recibir múltiples correos pero sólo quien tenga la contraseña asociada podrá leerlos. De forma análoga, una dirección Bitcoin puede usarse como destino, y por tanto recibir bitcoins, en diferentes transacciones. Pero esos bitcoins sólo podrá usarlos quien controle la clave privada asociada.

Sólo puede firmar una transacción quien controle la clave privada asociada a la dirección Bitcoin de origen. Las técnicas de criptografía de clave pública permiten que cualquier participante de la red Bitcoin compruebe si una transacción es válida, es decir, que está correctamente firmada, sin necesidad de conocer la clave privada.

Cadena de transmisión de bitcoins (fuente A.Antonopoulos)

El importe de bitcoins asociado a una dirección Bitcoin destino, y que aún no ha sido gastado en una transacción posterior, son los bitcoins disponibles, lo que técnicamente se denomina UTXO (abreviatura de Unspent Transaction Output). Estos bitcoins disponibles podrán usarse como origen en una transacción posterior. De esta forma se va creando una “cadena de transmisión de propiedad” de bitcoins, de forma análoga a la transmisión de propiedades inmuebles mediante escrituras ante notario.[NOTA 1]

Existe un tipo de transacción especial, llamada “coinbase”, en la que no hay dirección de origen. Estas transacciones, que solo está permitidas bajo ciertas condiciones que explicaremos más adelante, son las que permiten la creación de nuevos bitcoins y constituyen el origen de toda “cadena de transmisión” de bitcoins. Es decir, cualquier importe de bitcoins disponibles (UTXO) puede rastrearse hacia atrás, de transacción en transacción, hasta una transacción coinbase en la que fueron creados los bitcoins.

Un registro público para evitar el fraude

Por lo explicado hasta ahora, nada impediría a un usuario golfo crear dos transacciones válidas gastando dos veces los mismos bitcoins disponibles. Lo que falta es el mecanismo para evitar el doble gasto. Para ello, todos los integrantes de la red Bitcoin, conectados un una gran red P2P (análoga a una red tipo bitTorrent), comparten un gran archivo electrónico en el que quedan registradas todas las transacciones que se han producido en la historia. De esta forma cualquiera, en cualquier momento, puede comprobar que no se produce fraude ni falsificación, y que todo bitcoin transferido tiene una cadena legítima de transacciones originada en una transacción coinbase válida.

Este archivo o libro de registro tiene una forma peculiar: está formado por páginas que se van añadiendo consecutivamente, una detrás de otra, al ritmo de una página cada 10 minutos aproximadamente. Cada nueva página contiene todas las transacciones que se han producido en la red Bitcoin en ese periodo. La función de esta forma de ordenar las páginas es precisamente establecer un criterio de precedencia que evite el doble gasto: una nueva transacción que utiliza unos bitcoins disponibles (UTXO) no será válida (aunque su firma sea correcta) si ya existe una transacción en una página anterior que haya utilizado esos mismos bitcoins.

Cada página (técnicamente se denomina ‘bloque’) contiene un “resumen criptográfico” de la anterior. Esto evita la manipulación de las páginas ya escritas, ya que si una página se altera, su resumen criptográfico varía, y todas las páginas posteriores deberían rehacerse para ser válidas. De esta forma todas las páginas o bloques van quedando enlazadas formando una cadena, y de ahí que al libro de registro de todas las transacciones Bitcoin se le denomine ‘cadena de bloques’ o ‘Blockchain’ en inglés.

Un concurso que consigue el consenso descentralizado

¿Y cómo se consigue mantener el registro Blockchain sin que haya una entidad central? El encargado de añadir la nueva página cada 10 minutos se elige por concurso entre todos los que libremente participan en la red Bitcoin. Gana el concurso el primero en resolver un acertijo matemático [NOTA 2] que tiene una peculiaridad: es muy difícil resolverlo, pero es muy fácil para el resto de los participantes comprobar que la solución es correcta. Como recompensa por haber contribuido a mantener la red, creando la nueva página del Blockchain, el ganador del concurso recibe bitcoins como incentivo, al permitírsele incluir una transacción de tipo coinbase en la que él figura como beneficiario.

El algoritmo del concurso se denomina Proof-of-Work, porque todo participante demuestra que está trabajando para la red Bitcoin, al dedicar sus recursos (computadoras, electricidad, etc.) a resolver el acertijo matemático. Al proceso se le denomina minería (por analogía con la extracción de oro), y a los participantes mineros.

El resultado del proceso de minería es el Blockchain, un libro de registro virtualmente inmutable ya que, para falsificar una página ya escrita, es necesario rehacer todo el trabajo computacional de todos los acertijos matemáticos resueltos por toda la red de mineros, y crear cada página posterior y encadenarla criptográficamente con todas las siguientes hasta el momento presente. Puede calcularse que, dado el precio de mercado de las unidades de computación y la electricidad que se necesitarían para hacerlo, alterar páginas del Blockchain creadas hace unas horas es económicamente inviable. O lo que es lo mismo, la teoría de juegos muestra que a un minero le resulta más rentable colaborar con la red y obtener su legítima recompensa en bitcoins que tratar de atacar a la red intentando falsificar el registro para lucrarse.

A través del proceso de minería también se controla la emisión de moneda, pues los bitcoins se van poniendo en circulación al entregarse a los mineros como recompensa por mantener la red. La cantidad de bitcoins que existirán está limitada a 21 millones, está prefijada y no puede alterarse. Además de la recompensa en forma de bitcoins emitidos, los mineros reciben también una recompensa de los usuarios de la red, una tarifa que paga todo el que emite una transacción Bitcoin. Inicialmente el coste de transacción era insignificante, pero el sistema prevé que esta recompensa por uso vaya siendo más significativa con el tiempo, hasta sustituir por completo a las recompensa por emisión de moneda. Recientemente ha empezado a darse el caso de que, en algunos bloques, los mineros obtuvieron tanta recompensa por tarifas de transacción como por emisión de moneda.

El punto de vista de un usuario

Por lo visto hasta ahora, se puede deducir que ser dueño de bitcoins significa, técnicamente, controlar la clave privada (un número aleatorio muy largo) asociada a una dirección Bitcoin, que figura como destino en una transacción válida (UTXO) registrada en el Blockchain.

Las claves privadas pueden almacenarse de diferentes maneras, incluso anotadas en un papel. Lo más habitual para un usuario es disponer de un software o app (llamada ‘monedero’ o ‘wallet’) que oculta toda esta complejidad, facilitando la gestión de las claves privadas que controla.

Un software monedero de Bitcoin rastrea por nosotros la Blockchain, identifica todos los importes de bitcoins disponibles correspondientes a claves privadas que controlamos (y que por tanto tenemos derecho a gastar), y nos muestra la suma en forma de nuestro saldo disponible.

Para enviar dinero a otro usuario basta que éste nos proporcione una dirección de destino (en forma de código QR o de ristra de caracteres alfanuméricos). La app monedero se encarga de crear la transacción Bitcoin, firmarla y volcarla a la red para que sea verificada y escrita en el Blockchain. En ese momento todos pueden leerla, incluido el software monedero del usuario destino, que la mostrará como transacción recibida.

Bitcoin no es completamente anónimo, sino más bien pseudónimo. Todo el mundo ve todas las transacciones, pero en principio no puede asociarse fácilmente una dirección Bitcoin con una persona concreta. Hacer que Bitcoin sea todavía más anónimo y seguro es uno de los retos tecnológicos objeto de los avances en próximas versiones, ya que esto redundará en una mejor fungibilidad y por tanto mayor calidad de la moneda.

El papel de los mineros y de los nodos “completos”

Un nodo Bitcoin con las cuatro funciones: monedero, minería, Blockchain y enrutamiento de red (fuente A.Antonopoulos).

El software original de Bitcoin, que cualquiera podía descargarse e instalarse en su ordenador para formar parte de la red, incluía cuatro funciones: Monedero, Minería, Blockchain y Red P2P.

El software de referencia, conocido como Bitcoin Core, todavía conserva las cuatro, pero al ir creciendo el sistema, algunas de estas funciones fueron especializándose y desgajándose, pasando a ser proporcionadas de forma más eficiente por otros elementos de software y/o hardware más específicos.

Por ejemplo, según bitcoin ha ido aumentando su cotización, el incentivo económico ha hecho que la función de minería se haya especializando notablemente. En los días iniciales de Bitcoin cualquiera podía minar en una computadora casera. Hoy día las principales instalaciones de minería son grandes centros de datos ubicados en lugares con acceso a energía eléctrica barata y preferiblemente en climas fríos, para ahorrar en la refrigeración del hardware altamente especializado que utilizan.

Por otra parte, al crecer el incentivo económico, espontáneamente más mineros deciden participar de la red. Esto es muy importante, ya que cuantos más mineros participen, aportando más poder computacional, más difícil de falsificar es la Blockchain y por tanto más segura es la red Bitcoin en su conjunto.

A los participantes de la red Bitcoin, que no necesariamente ejercen como mineros, pero que sí mantienen una copia completa de Blockchain, se les denomina nodos completos, o “full-nodes” en inglés. Los nodos completos también tienen una función muy importante, ya que se encargar de verificar que todas las transacciones que se vuelcan a la red cumplen con las reglas de consenso, y por tanto que nadie hace trampas. Ejemplos de reglas que se encargan de verificar son: que la firma de una transacción sea válida, que no se use como origen de transacción unos bitcoins disponibles (UTXO) ya usada en un bloque previo, que el acertijo resuelto por un minero sea correcto, que la emisión de moneda en forma de transacción coinbase sea la prevista, etc.

El papel de los nodos completos es un buen ejemplo para ilustrar el complejo equilibrio que existe en Bitcoin entre los aspectos púramente técnicos de ciencias de computación y los aspectos económicos y de teoría de juegos. Ante la necesidad de ir aumentando la capacidad de la red, una propuesta simple era aumentar el tamaño de cada página de Blockchain para dar cabida a más transacciones. Sin embargo, un análisis detallado muestra que esta medida hubiera significado incrementar notablemente los requerimientos de hardware de un nodo completo y por tanto su coste de mantenimiento. Atendiendo a la máxima de que la red debe ser descentralizada, y visto el peligro de centralización si aumentaban los costes, se ha optado por priorizar otro tipo de soluciones.[NOTA 3]

En resumen

Los cuatro elementos clave que Bitcoin coordina para funcionar son:

  • Una red P2P descentralizada.
  • Un registro de transacciones público, el Blockchain.
  • Un conjunto de reglas de consenso para validar transacciones y emitir moneda.
  • Un mecanismo para alcanzar un consenso global descentralizado sobre el registro de transacciones válido, el algoritmo de Proof-of-Work.

[NOTA 1] Una transacción Bitcoin es análoga a una escritura de transmisión de propiedad, en la que se da fé pública de validez del acto (firma criptográfica correcta), se identifica el bien que se transmite (cantidad de bitcoins), se identifica el origen, validez del título e identidad del transmisor del bien (dirección origen) y se establece la identidad del nuevo propietario (dirección de destino).

[NOTA 2] Aunque su estructura base es siempre la misma, el acertijo es diferente cada 10 minutos, pues para resolverlo hay que involucrar la información de todas las transacciones que se incluyen en el bloque en cuestión. Por otra parte la dificultad del acertijo se va ajustando automáticamente de tal forma que resolverlo cuesta aproximadamente 10 minutos: si va aumentando la potencia de computación que compite por resolverlo, la dificultad se aumenta.

[NOTA 3] Bitcoin está manteniendo un tamaño de bloque limitado que permite mantener nodos completos económicamente asequibles. La mejora en la capacidad de red se está logrando con la introducción de una segunda capa de red, que funciona sobre la red Bitcoin, conocida como red Lightning y que permitirá velocidades en el orden de los cientos de miles de transacciones por segundo, compitiendo con la red VISA.

El agrio debate sobre si esta era la solución mejor llevó a un grupo de personas a escindirse del proyecto y crear una criptomoneda alternativa, Bitcoin Cash (también conicida como BCash), que propone aumentar indefinidamente el tamaño de bloque y que sólo empresas especializadas puedan mantener un nodo completo. Los partidarios de Bitcoin Cash han sido acusados de prácticas fraudulentas, por tratar de inducir a los nuevos usuarios a creer que su criptomoneda alternativa es la verdadera Bitcoin, mediante técnicas de marketing abusivas.

--

--

Jesús Collado Andino

Belleza y libertad. Ing. Telecomunicaciones, microempresario, Bitcoin maximalist, escritor autor de Crónica de acá (https://cronicadeaca.com) @JessCollado4