Bitcoin es una tecnología muy compleja.
La explicación de su funcionamiento no es una tarea fácil debido a dos razones principales:
[a] Bitcoin intenta resolver problemas complejos
[b] Bitcoin está compuesto por múltiples tecnologías que operan conjuntamente, por lo tanto, para entender Bitcoin es necesario comprender el funcionamiento de cada una de sus partes.
Bitcoin es una moneda digital que funciona sobre una red descentralizada y distribuida de ordenadores permitiendo el pago instantáneo a cualquier persona en cualquier parte del mundo.
Bitcoin utiliza la tecnología peer-to-peer que le permite operar sin la necesidad de contar con una autoridad central o de control.
La gestión de las transacciones y la emisión monetaria son llevadas a cabo de forma automática por los miembros de la red. Bitcoin no pertenece a ningún gobierno o empresa. En esencia, Bitcoin no tiene dueño.
En sentido general, la tecnología de Bitcoin está compuesta por tres grandes partes:
[a] La red Bitcoin
[b] Blockchain
[c] La moneda bitcoin.
Cuando hablamos de Bitcoin con “B” mayúscula hacemos referencia a la red. Cuando hablamos de bitcoin con “b” minúscula hacemos referencia a la moneda.
La red Bitcoin es descentralizada y distribuida. El término descentralizada significa que los ordenadores que componen la red, llamados nodos, están dispersos geográficamente y conectados a través de Internet.
El término distribuida significa que la información no está almacenada en un servidor central o localidad principal, sino que todos los nodos de la red comparten y almacenan la misma información. A la mínima modificación y/o adición de información, ésta es replicada entre todos los nodos de la red.
La red Bitcoin está basada en una arquitectura peer-to-peer donde todos los nodos se comunican a través del protocolo gossip.
A diferencia de una arquitectura de red cliente-servidor, la arquitectura peer-to-peer es más resistente a los ataques de hacking debido a que para interrumpir el servicio es necesario apagar todos los nodos, una tarea bastante complicada. Con un solo nodo que quede vivo después de una catástrofe, es suficiente para recuperar la red completa.
Bitcoin no es la primera moneda digital. En la década de los 80’s y 90’s ya se venía experimentando con la creación de “dinero digital”, pero todos estos intentos resultaron fallidos.
¿Por qué?
Todas las tecnologías de dinero digital anteriores a Bitcoin dependían de una autoridad central o de control para la validación, conciallización y emisión monetaria. De alguna forma u otra eran saboteadas por gobiernos y corporaciones con intereses en contra.
La gran innovación de Bitcoin radica en que esta tecnología representa un nuevo medio para la formación de consenso de forma rápida y confiable, sin depender de una autoridad central o de control, y sin limitaciones geográfica.
Bitcoin es un sistema abierto y transparente que permite a los usuarios de una forma ágil y efectiva realizar un acuerdo sobre una transacción y la información almacenada, sin tener que depender de una tercera parte de confianza.
Antes de la existencia de Bitcoin, este tipo de consenso era considerado imposible de lograr. Bitcoin resuelve un dilema viejísimo considerado insoluble denominado el problema de los Generales Bizantinos.
En la red Bitcoin todos los nodos validan y verifican las transacciones que se realizan. La información en la red Bitcoin es colocada en una base de datos (distributed ledger) que es almacenada y compartida por todos los nodos de la red.
Las transacciones, a medida que se van generando, son agrupadas de manera conjunta. Al conjunto de transacciones se les denomina bloques (block). Luego, en una capa superior, los bloques son agrupados en secuencia donde el último bloque hace referencia al anterior formando una cadena de bloques (Blockchain).
La blockchain es en esencia un archivo que contiene la totalidad de las transacciones realizadas en la red Bitcoin. La característica más importante de la blockchain es que la información almacenada es inmutable, no puede ser alterada y/o modificada. A medida que la blockchain se hace más grande, más difícil se hace la modificación de las transacciones.
Los bloques son agregados a la blockchain a través del proceso de minería. Ciertos nodos de la red Bitcoin, llamados mineros, realizan la labor de validar y agregar las transacciones a la blockchain. El proceso de minería consiste en la búsqueda de la solución de un problema matemático impuesto por la misma red Bitcoin.
La red Bitcoin utiliza el algoritmo proof-of-work para establecer el proceso de minería. Proof-of-work es un algoritmo que hace de la búsqueda de ciertos números un proceso computacionalmente costoso, pero al mismo tiempo de fácil verificación una vez encontrada la solución al problema.
Los mineros, para poder ganarse el derecho agregar bloques a la cadena, deben encontrar un número menor en comparación con otro establecido por la red denominado target.
El nodo que primero encuentre la solución al problema matemático anuncia el bloque a los demás nodos de la red incluyendo la solución.
Los demás nodos verifican inmediatamente la validez de las transacciones incluidas en el bloque y que efectivamente la solución al problema de proof-of-work haya sido encontrada, entonces, dicho nodo tiene el derecho de agregar el próximo bloque a la cadena.
Por el trabajo empleado en resolver el problema proof-of-work, la red le brinda una recompensa al minero en forma de bitcoins, de esta forma es que se lleva a cabo la oferta monetaria en el sistema.
Los bitcoins son puestos en circulación a través de las recompensas entregadas a los mineros. Los mineros realizan dos labores importantes:
[a] La validación de las transacciones
[b] Seguridad: protegen la red contra ataques
Cada diez minutos en la red Bitcoin, existan o no transacciones, se agregan bloques a la blockchain.
Los mineros a través del empleo de sus equipos de computación para el proceso de minería validan las transacciones, y simultáneamente, aseguran la integridad de la información almacenada en la blockchain a través del mantenimiento del consenso sobre la “cadena más larga”, asegurando de esta manera que un nodo deshonesto no pueda crear una nueva blockchain para acometer un fraude. De esta forma es eliminado el problema del doble gasto y de la integridad de la información
A medida que más mineros se agregan a la red, ésta automáticamente detecta el poder de computación total de los mineros, ajustando cada cierto tiempo la dificultad del problema proof-of-work.
Con este mecanismo, la red asegura que la minería de bloques sea realizada en un espacio de tiempo de diez minutos, sin importar la cantidad de mineros y el poder de computación que exista.
La dificultad del proceso de minería es un elemento esencial para asegurar la integridad de la blockchain contra ataques perpetrados por nodos deshonestos.
El software de Bitcoin, en su código fuente, establece que la blockchain verdadera, bajo un consenso general entre todos los nodos, es aquella que contiene “la cadena más larga”. “La cadena más larga” no es la que más bloques contiene, sino la que más poder de computación (trabajo empleado en encontrar soluciones proof-of-work) se haya invertido en ella.
Cada bloque de la blockchain contiene referencia al bloque anterior. La referencia entre los bloques es establecida a través un hash.
Un hash es una cadena alfanumérica finita, regularmente 32 bytes, derivada de cualquier información sin importar su tamaño.
Por ejemplo, el hash de la cadena “Donald Trump Presidente” será totalmente diferente a la cadena “Donald Trump Presidente.” Fíjate que la diferencia entre ambas cadenas es solo un punto (.).
Esta característica hace que la falsificación de la blockchain sea prácticamente imposible, ya que el hash que hace referencia al bloque anterior es derivado de la información que contiene dicho bloque, es decir, las direcciones de las transacciones y su orden.
Por lo tanto, falsificar la blockchain requiere modificar todas las transacciones registradas desde el bloque génesis (el primer bloque), un proceso que computacionalmente es muy costoso, y tendría que realizarse en menos de diez minutos a una velocidad superior a la generada por la combinación del poder de computación de todos los nodos honestos que continúan agregando bloques a la “cadena más largas”.
Por esta razón es que se considera la blockchain como un registro de información inmutable, y además de ésta forma se elimina problema del doble gasto.
El problema del doble es el que se presenta cuando alguien intenta gastar la misma cantidad de bitcoins falsificando la información en la blockchain.
Para el envío y recepción de bitcoins entre los usuarios son utilizadas direcciones bitcoin. Las direcciones son derivadas de la llave pública del usuario. Cada usuario cuenta con dos elementos para realizar transacciones:
[a] Una llave privada
[b] La dirección bitcoin.
La llave privada es la pieza de información que brinda el acceso a los registros en la blockchain para poder gastar y/o transferir bitcoins.
Quien tiene la llave privada controla los bitcoins. Los bitcoins no existen físicamente sino más bien son un récord/asiento en la blockchain.
La llave privada sirve para autorizar mediante la inclusión de una firma digital el envío de bitcoins a otro usuario. La dirección de bitcoin es derivada de la llave pública del mismo usuario.
El receptor de la transacción puede verificar fácilmente a través de ciertos algoritmos que la transacción que provino de dicha dirección fue realizada efectivamente por el dueño de la cuenta (el poseedor de la llave privada), y que entonces, la transacción es legítima.
Este proceso criptográfico es lo que permite que a través de Bitcoin no sea necesario la inclusión de un elemento de confianza (por ejemplo, un banco) para realizar transacciones. Aquí la confianza es sustituida por una verdad universal: las matemáticas.
Conclusión
Bitcoin es un grupo de tecnologías:
[a] La red Bitcoin
[b] blockchain
[c] Bitcoin como activo digital.
Bitcoin a través su arquitectura peer-to-peer utilizando un registro universal o verdad única (Blockchain) establece un método efectivo de generación de consenso, y, a través del algoritmo proof-of-work resuelve el problema de la integridad de la información y el doble gasto.
La combinación de todos estos componentes hacen posible la creación del tercer elemento: bitcoin como activo digital.