Autor: Gonzalo García-Marcos Mendoza, Ingeniería de Clientes, Telefónica
La tecnología Blockchain ha irrumpido en la escena mundial en poco tiempo como algo novedoso y revolucionario. Si bien posee aspectos que reúnen estas características, la realidad es que en su mayor parte se conforma de otras muchas tecnologías que llevan mucho tiempo en uso. Es por ello que es habitual encontrar explicaciones obsoletas o parciales de su funcionamiento o características.
En este artículo se pretende desgranar y explicar su funcionamiento para aportar una visión general de cómo trabaja realmente Blockchain. Además se analizarán las características que se derivan de este desempeño, haciendo hincapié en las que más se publicitan cuando se habla de “la cadena de bloques”.
Este artículo queda enmarcado dentro de un trabajo de un ámbito más global, realizado junto a Elena del Moral Moreno y Ramón Pérez Hernández, compañeros de Ingeniería de Clientes especializados en Cloud en Telefónica, que se titula “Encadenados al Blockchain”. En él, además de analizar el funcionamiento de Blockchain, se definió a partir de sus tecnologías habilitadoras, y se presentaron los casos de uso más relevantes del mismo.
Los 3 elementos clave de la cadena de bloques
La cadena de bloques es una base de datos distribuida que puede almacenar cualquier tipo de información, en unidades mínimas de información validada denominadas “bloques”. Aunque Blockchain no es bitcoin, ya que bitcoin es sólo una forma de utilizar la cadena, usaremos un ejemplo basado en una transferencia de la criptomoneda por ser el caso de uso más conocido. En este ejemplo intervienen todos los elementos de la tecnología que explicaremos en detalle posteriormente.
Pongamos por caso un usuario de bitcoin que quiere pagar un café en una cafetería. En su móvil tiene una cartera de bitcoins y realiza una transferencia a la cuenta de la cafetería. A continuación el terminal emite la reseña de la transferencia a los nodos de la red Blockchain más cercanos. Éstos la retransmiten a sus nodos conocidos y así sucesivamente hasta llegar a toda la red. Cada nodo que recibe la información de la transferencia realiza unas comprobaciones para evitar informaciones falsas. Cuando esta reseña llega a un nodo minero de la red, la meterá en un bloque e intentará “minar” el bloque el primero para introducirlo en la cadena y ganar la recompensa.
La unidad básica de esta cadena es el bloque, que está formado por diversos campos. El más relevante es el que contiene la información (de cualquier tipo), que tiene un tamaño aproximado de 1 megabyte. El campo número identifica el bloque dentro de la cadena en orden consecutivo. La recompensa por minar el bloque se establece en el campo “coinbase”.
El campo “nonce” es clave para introducir el bloque en la cadena y puede ser cualquier número natural, explicaremos este campo con detalle cuando hablemos del “minado”. Por último, el campo “hash” es un código que se obtiene a partir de la información del bloque, único para ese bloque. El bloque contiene el hash del último bloque de la cadena (su predecesor si se acaba introduciendo en la cadena) y el suyo propio, calculado a partir de todos los demás campos.
Volviendo al ejemplo, una vez que la información de la transacción se ha transmitido a la red, ésta llega a diferentes nodos. La mayoría realizarán tres operaciones para comprobar que es verdadera: comprueban su formato, su firma y con la información disponible en la cadena se aseguran de que la cuenta del cliente tiene fondos para realizarla.
Otros nodos, los llamados “mineros”, recopilarán transacciones y las juntarán en un bloque. Posteriormente intentarán “minarlo” para introducirlo en la cadena, validando definitivamente la información que contiene y haciéndola inmodificable y accesible para todos. ¿Y en qué consiste “minar”? Consiste en generar el hash del bloque, antes mencionado, con un número “nonce” determinado. Este número es desconocido y los “mineros” deben ir probando aleatoriamente hasta encontrar uno válido. Aquel con el que se obtenga un hash que empiece de una determinada manera (18 ceros para el caso de la cadena de bitcoin), será el correcto. En cada cadena el hash tiene un formato determinado, y es el que deberán conseguir los “mineros” variando el número ”nonce” para “minar” el bloque.
Si son los primeros en “minar” un bloque completo (con información nueva que no esté en la cadena), reciben una recompensa (el “coinbase”) y el bloque se añade a la cadena. Esta nueva incorporación se propaga a toda la red, confirmando las transacciones. ¿Y cómo se realiza esa propagación por la red? Como todos los nodos de la red tienen una copia de la cadena de bloques, todos actualizan su información para evitar ser engañados y para las futuras comprobaciones a la hora de examinar transacciones.
La cadena Blockchain en el caso de bitcoin es de tipo público, pero existen otras variantes. El tipo depende de qué usuarios pueden leer y aportar información en la cadena. Así, existen las cadenas públicas, las privadas y las híbridas. En las públicas no hay restricciones ni para leer los datos de la cadena de bloques (los cuales pueden haber sido cifrados) ni para enviar transacciones para que sean incluidas en la cadena de bloques. La cadena privada es aquella en la que tanto el acceso a los datos de la cadena de bloque como el envío de transacciones para ser incluidas, están limitadas a una lista predefinida de entidades.
La principal característica de la cadena es que constituye una relación entre bloques que impide que se modifique la información por nodos interesados. Como cada bloque incluye el hash del bloque anterior para calcular su propio hash, si se modifica un bloque, se tiene que recalcular el hash de todos los bloques posteriores. Esto requeriría una capacidad de cómputo imposible de alcanzar hoy en día. Además, incluso si se consiguiese, además habría que incorporar esa versión falsa de la cadena al 51% de los nodos de la red.
Características de Blockchain
Estos elementos de la tecnología y su forma de funcionar conforman unas características propias de Blockchain, tanto positivas como negativas. Como características positivas destacan la veracidad, la transparencia, la rapidez y el anonimato. Como negativas figuran la no escalabilidad, cierto aspecto del anonimato y la regulación legislativa, escasa y dispar.
Gracias a la naturaleza de la cadena, explicada anteriormente, una vez que la información se añade a ésta, sólo puede ser consultada pero no modificada. Por ello y porque todo el mundo posee esa información, ésta es veraz y no puede ser manipulada interesadamente por un solo ente que la posea en su totalidad. Además, esto proporciona transparencia sobre la información, ya que todos los entes participantes pueden saber todos los movimientos realizados.
Una vez que la información está en la cadena, la rapidez de acceso a los datos es otra característica positiva. Al guardar la cadena en local, se puede consultar rápidamente sin intermediarios ni burocracia.
Las operaciones se firman con una clave privada, lo que proporciona anonimato a quien añade datos a la cadena. Pero no es un anonimato completo, ya que si alguien averigua la clave de un usuario sabría todos los movimientos de éste en la cadena. Es por ello que esta característica puede englobarse tanto en aspectos positivos como negativos.
Por último, y hablando de debilidades de la tecnología, hay que analizar sobre todo la no escalabilidad. La cadena de bloques contiene cada vez más información (actualmente la cadena de bitcoin ocupa unos 155 Gigas), con lo que cada vez menos usuarios podrán tenerla guardada en sus dispositivos convencionales, con todo lo que implica para el funcionamiento de esta tecnología basado en el número de usuarios. Una solución adoptada es que ciertos nodos contengan el grueso de la cadena y el resto los consulten.
La minería en bitcoin también se ve afectada por este problema; ya que para ser el primero en encontrar el hash adecuado de un bloque y añadirlo a la cadena, el equipo utilizado debe tener una capacidad de cómputo competitiva. Esta capacidad ha aumentado desde la creación del bitcoin y seguirá haciéndolo, permitiendo que sólo pocas entidades puedan minar bloques. Actualmente la gran mayoría de la capacidad de cómputo de la red reside en 4 equipos de minado, la mayoría chinos. Esta tendencia haría que el poder de añadir información dependa de unas pocas entidades, acabando con la esencia de Blockchain.
Encadenados al Blockchain, funcionamiento y características derivadas https://t.co/YSQIR69bbH #cloudcomputing https://t.co/QHsyvZTuxE
Encadenados al Blockchain, funcionamiento y características derivadas https://t.co/sXdvrJQW5J https://t.co/ZwIhfZ5E7X
Encadenados al Blockchain, funcionamiento y características derivadas https://t.co/bX6PvweUEe https://t.co/rFo5l4t4gh
RT @revistacloud: Encadenados al #Blockchain, funcionamiento y características derivadas: Autor: Gonzalo… https://t.co/zYRFUhBp06
RT @revistacloud: Encadenados al #Blockchain, funcionamiento y características derivadas: Autor: Gonzalo… https://t.co/zYRFUhBp06
Encadenados al Blockchain, funcionamiento y características derivadas – Revista Cloud Computing https://t.co/w3i5Dl9BIM
RT @revistacloud: Encadenados al #Blockchain, funcionamiento y características derivadas: Autor: Gonzalo… https://t.co/zYRFUhBp06
RT @StackedCloud: Encadenados al Blockchain, funcionamiento y características derivadas https://t.co/bX6PvweUEe https://t.co/rFo5l4t4gh