En el último post nos quedamos un poco a medias y dejamos algunas preguntas sin contestar. En primer lugar, faltaba concretar cómo funcionaba Bitcoin para poder crear un sistema de transacciones que no dependiese de ningún intermediario y que aun así ofreciera confianza, y después, por qué nunca antes había existido una tecnología como Bitcoin. Así que este será el tema de hoy, empecemos.
El primer motivo por el cual Bitcoin ha sido la única solución hasta ahora es debido a que siempre hemos tenido dos grandes retos que nunca antes se habían podido solventar sin tener que introducir un órgano de control centralizado. El primer problema trata de una vulnerabilidad que puede darse fácilmente en cualquier tipo de pago electrónico: que una cantidad de dinero digital pueda ser gastada más de una vez. También conocido como problema del doble gasto.
El segundo nació como un problema de informática distribuido presentado por Leslie Lamport, Robert Shostak y Marshall Pease en 1982. El llamado "problema de los generales Bizantinos" viene a cuestionar lo siguiente: ¿Cómo consigues que una red de ordenadores distribuidos y descentralizados lleguen a estar de acuerdo sin la necesidad de un poder central?
Hemos dicho que Bitcoin era una red descentralizada, que permitía transferir valor sin intermediarios. Para que esto suceda, la primera norma es que todos los participantes de la red (los nodos que tienen el software de Bitcoin instalado) deben tener una copia del libro de contabilidad para poder llevar las cuentas y estar de acuerdo sobre quién tiene qué, ya que no haya ningún control central que imponga sus criterios. Cada nodo verifica la información por sí solo, comparando los datos con su copia de la Blockchain (libro de contabilidad distribuido).
En este caso, si Juan quiere hacer una transferencia de 1 BTC a María, este no irá al banco, sino que notificará a todo la red (nodos) que quiere enviar 1 BTC a María. Esta transacción llegará a todos los nodos que irán verificando (individualmente) si esta transacción es correcta. Es decir, que Juan es realmente Juan (esto se consigue a través de la criptografía de doble clave, algo que veremos en otro post) y que tiene el dinero suficiente para hacer la transacción. Como todos los nodos tienen una copia del libro de contabilidad que recoge todas las transacciones hechas desde el primer día les es fácil comprobar si tiene el dinero (1 BTC), ya que pueden trazarlo hasta el momento en que fue creado (llegaremos luego para ver como se crean los Bitcoins).
Aclaraciones: la red identifica sus usuarios de forma pseudoanónima a través de su clave pública. Su clave privada es lo que permite mover los BTCs y ser su propietario. Los usuarios no hablan entre sí, son ordenadores que utilizan el protocolo Bitcoin para poderse comunicar. Por último, hay varios tipos de participantes:
- Los wallets, que son simples usuarios que usan la red sin tener descargado el protocolo de Bitcoin en un nodo
- Los full nodes, que son los ordenadores que tienen el software de Bitcoin y una copia entera de la Blockchain de Bitcoin
- Los nodos mineros, que además de ser un nodo full node (y por tanto verificar transacciones) aportan de fuerza computacional y a cambio la red les otorga el poder de escribir en la Blockchain (libro de contabilidad que todos los nodos tienen guardado) recibiendo además una recompensa en Bitcoins. Así es como se crearon cada uno de los tokens de la red; en algún momento todos fueron recibidos por un minero gracias a su aporte de fuerza computacional.
En el momento en que más de la mitad de los nodos de la red verifica la transacción, esa ya esta lista para que se lleva a cabo. Ahora bien: esto aún no ocurrirá, ya que si se hiciese sería imposible mantener un libro de contabilidad compartido que sea el mismo para todos los miles de nodos del planeta. Principalmente porque cada nodo recibirá las transacciones en un orden diferente.
Para solucionar esto, las transacciones aprobadas por más de la mitad de los nodos se envían a un pool de transacciones. Un lugar donde se van guardando las transacciones para que se vayan anotando al libro de contabilidad. Aquí es donde entran los mineros, la Blockchain y los algoritmos de consenso.
Las transacciones son recogidas por los mineros, que las agrupan en bloques para después añadirlos (formando una cadena de bloques) en la Blockchain. Estos mineros, para que podamos confiar en ellos solucionan un problema matemático. Es decir, aportan fuerza computacional para solucionar un cálculo complejo, el cual tiene un coste elevado. De esta manera se crea una premisa esencial en Bitcoin: los ataques resultan económicamente no convenientes. Si haces lo incorrecto, no obtienes recompensa, así que no es conveniente no ser honesto. Como si fuera una lotería, cada 10 minutos los mineros alrededor del mundo utilizan fuerza computacional para solucionar este problema y generar un nuevo bloque. El que obtenga la solución y esta la verifiquen más de la mitad de los mineros tendrá el poder de incluir el nuevo bloque a la Blockchain (libro de contabilidad distribuido organizado en forma de bloques de transacciones conectados matemáticamente) y cambió recibe Bitcoin como recompensa.
Aclaro un par de ideas; los bloques tienen un tamaño de 1MB y caben alrededor de 2000 transacciones (5-6 transacciones por segundo). Cada bloque una vez creado se HASHEA (se encripta con el algoritmo SHA-256 usado por Bitcoin creando una “huella digital” de ese bloque). Actualmente la recompensa es de 12,5 BTC cada diez minutos, esta se reduce a la mitad cada 210.000 bloques, aproximadamente 4 años. Este evento se conoce como Halving, algo con mucha trascendencia para la red y para la comunidad. Sobre todo porque si la demanda se mantiene y la oferta se divide en dos provoca un aumento considerable del precio. Este escenario alcista ha durado alrededor de un año y ha generado grandes beneficios para Bitcoin y otras criptomonedas en los últimos halvings. El próximo halving tendrá lugar entre el mes de Mayo y Junio de 2020.
Es mucha información, lo sé, pero aún nos queda un poco para entender al 100% el funcionamiento de Bitcoin. Tendremos que poner un poco más de empeño. En el siguiente post profundizaremos en al algoritmo de consenso y el cálculo del problema matemático que deben realizar los mineros para poder entender ¿porqué es tan segura la red de Bitcoin? ¿Cómo consigue realmente hacer económicamente inconvenientes los ataques? ¿Cómo evita que se cambie información de la Blockchain introducida en el pasado? y por último ¿Qué es y cómo consigue hacer exageradamente difícil un ataque al 51% de la red? De esto y mucho más, por cierto, discutimos y tratamos en profundidad en el Máster de Blockchain en Barcelona :-)
Nos vemos en el próximo post!
Descubre más artículos en el Criptoblog sobre...