Super guía para entender qué es Blockchain - #spartanhack

Super guía para entender qué es Blockchain

¿Qué es Blockchain?

 

Imaginemos a un reputado abogado, por poner un ejemplo, de nombre Juan. Tiene 55 años, está casado y tiene dos hijos, también abogados, y además trabaja en la asesoría jurídica de una gran editorial a la que, sin darse apenas cuenta, las nuevas tecnologías han llegado sin previo aviso para quedarse y revolucionar los sistemas de trabajo de toda la empresa y el modelo de negocio. Recordemos, además, que Juan maneja Word, Excel e Internet, pero no le saques de ahí, que si le dices “Bitcoin” o “Blockchain”, te contesta: “¿Eso qué es?”.

Juan es consciente de que le pilla el toro y decide realizar un humilde y autodidacta intento para entender un poco qué es eso de las nuevas tecnologías en las que se basan tantas empresitas recién nacidas –o startups como se las conoce comúnmente–, de ideales románticos y compuestas por brillantes jóvenes mejor formados que los de cualquier otra generación y llenos de entusiasmo.

Estas empresas crecen a la velocidad de procreación de las malditas bacterias y han resultado ser pandemias globales con un nada despreciable número de bajas tras de sí, así que, nada de tonterías.

Juan se remanga y se pone manos a la obra para evitar la obsolescencia profesional; algo ha oído sobre que Bitcoin utiliza tecnología blockchain, así que se compra un libro para entender qué es eso del blockchain –o cadena de bloques– de lo que todo el mundo habla como si fueran expertos y que, además, suena muy “yanqui”, muy moderno y muy tecnológico.

Cuando comenzamos a desgranar los entresijos de esta tecnología revolucionaria podemos llegar a sentirnos abrumados por la enorme cantidad de nuevos conceptos que tenemos que asimilar y, como a Juan, la propia definición de blockchain puede resultarnos enrevesada. Pondremos algunos ejemplos de definición de diversas fuentes, algunos más metafóricos y otros más tecnológicos:

  • Una blockchain es una inmensa base de datos que se distribuye entre varios participantes. Es decir, es un libro de registro (ledger, en inglés) inmutable que contiene la historia completa de todas las transacciones que se han ejecutado en la red”.
  • “Registro de transacciones único pero llevado de forma descentralizada o distribuida; un libro de contabilidad, un libro mayor, un ledger –en inglés, que no lleva un solo sujeto, sino a la vez todos los usuarios del sistema”.
  • Blockchain es una tecnología que permite, a través de técnicas criptográficas, la agilización de transacciones complejas. La tecnología está basada en cuatro fundamentos: el registro compartido de las transacciones (ledger), el consenso para verificar las transacciones, un contrato que determina las reglas de funcionamiento de las transacciones y finalmente la criptografía, que es el fundamento de todo”.

 

Como puede verse la cosa se va complicando, por lo que sin querer dar una definición que abarque todas las características de esta tecnología, vamos a tratar de comprender los elementos fundamentales que la caracterizan.

Blockchain como protocolo informático de red de código abierto

 

Blockchain es un protocolo informático de red de código abierto. La cara de Juan –y la nuestra es un poema y la personificación de aquella famosa frase del recientemente difunto Chiquito de la Calzada: “¿Cómor?”.

En el contexto de la informática, una red se define como un sistema o estructura de interconexión entre dos o más ordenadores (nodos) que comparten recursos (hardware o software). A su vez, un protocolo es un conjunto de normas utilizadas por los nodos para poder comunicarse, es decir, es un idioma informático.

Estas cuestiones son objeto de estudio en primero de carrera de ingeniería informática, en una asignatura de nombre quizás demasiado moderno para Juan: arquitectura de redes. ¿Cómo es posible que no lo pille? piensa Juan.

Pues muy sencillo, la informática hay que traducirla por medio de un método analógico para poder asimilar su abstracción. Partimos de una definición más técnica: una red es un sistema o estructura de interconexión entre dos o más ordenadores (nodos), a través de un medio, que comparten recursos (hardware o software) e intercambian información.

Y tratamos de aplicar una analogía que la haga comprensible: imaginemos una red de personas, a las que denominaremos nodos, conectadas entre sí mediante hilo rojo, el cual constituiría el medio de conexión y el recurso compartido entre los nodos de la red. Y la información que esas personas transmiten se encauza a través del hilo rojo, el medio.

Adicionalmente, un protocolo es un conjunto de normas utilizadas por los nodos para poder comunicarse, es decir, es un idioma informático. Siguiendo con nuestra analogía, el protocolo de la red de personas lo conformarían las normas establecidas por la comunidad para definir la estructura de la propia red y las formas en las que hay que transmitir la información.

Y… ¿Por qué se considera que el protocolo de blockchain es abierto? Porque su código está disponible para cualquier usuario de la red para que pueda verlo o modificarlo, lo cual permite identificar y corregir errores o crear nuevas y mejores versiones del protocolo. Encontraríamos un protocolo cerrado, por contra, en una red interna de una empresa cuya utilización se rija por cierta exclusividad bien para empleados, bien para clientes.

Es justamente esta característica, el que el protocolo sea abierto, lo que ha permitido la aplicación de esta tecnología en prácticamente cualquier ámbito en el que alguien la ha considerado útil.

 

 

Sistema descentralizado basado en tecnología Peer to Peer

 

Asimismo, el protocolo de red blockchain se basa en una tecnología peer to peer (en adelante, “P2P”, por su acrónimo en inglés) o red de pares. De nuevo Juan entra en colapso y abre otras 5 ventanas del buscador de Internet para entender este nuevo término. Encuentra que esa tecnología P2P es un modelo de comunicación descentralizado en el que se crea una red donde cada nodo tiene las mismas capacidades que el resto.

red peer to peer

Las redes pueden clasificarse por las funciones que cumplen los dispositivos (nodos) en la transmisión de la información. Obligatoriamente habrá dos categorías:

  • Los que gestionan el acceso y las comunicaciones en una red (dispositivos de red).
  • Los que se conectan a la red para utilizarla (dispositivos de usuario final) que pueden cumplir, a su vez, la función de servidores brindando un servicio dentro de la red y la de consumidores o cliente.

 

Es decir, en nuestro ejemplo anterior las personas podrían cumplir dos roles: gestionar la red estableciendo quién puede acceder a ella y supervisando las comunicaciones realizadas, o ser usuarios de la red. Lo interesante es, además, que no hay necesidad de que haya clientes o servidores fijos, lo cual dota de mayor flexibilidad a la red.

Imaginemos que dentro de esa red todos brindaran un servicio a la vez que consumen dichos servicios. En ese caso todos los nodos o personas de la red serían iguales y su calificación será tanto de servidores como de clientes.

La primera aplicación de red informática P2P se dio en 1996 con el servicio de intercambio de datos Hotline Connect para el sistema operativo Mac OS, pero para entender bien este modelo debe acudirse a un ejemplo que todos conocemos: los torrent, esos programas que permiten la descarga de archivos por partes (sobre todo, audio y video) de todos los nodos de la red que alberguen dicho archivo. En ese sentido la información está contenida en los nodos y no en un servidor central, de forma que los nodos actúan como servidor y usuario al mismo tiempo. Un ejemplo clásico de torrent es el “Emule”. Ahora Juan ya lo ha pillado, esto sí que lo conoce y nunca lo entendió realmente, hasta ahora.

Pero otras aplicaciones más actuales de este tipo de redes informáticas son BlaBlaCar, Uber o Wallapop las cuales todos conocemos sobradamente y cuyo valor añadido reside en haber utilizado la arquitectura P2P para construir un Marketplace.

Por supuesto, estas redes no hubieran tenido tanto auge de no ser porque aportan grandes ventajas:

  • Dado que no es necesario utilizar un servidor central con espacio de almacenamiento limitado, sino que se utiliza la capacidad de almacenamiento de los diversos nodos para esa función, este tipo de redes resulta muy beneficioso a nivel de recursos. Pero es que, además, cuanto más crezca en número de nodos dicha red, más espacio se consigue.
  • No existen intermediarios, por lo que se abaratan los costes.
  • La red es más flexible y tiene diversos canales de comunicación por existir más de un servidor y, consecuentemente, la velocidad de la red también aumenta.

⭐️⭐️⭐️⭐️⭐️

¿Quieres aprender a fondo qué es Blockchain?

Curso de Fintech


 

El funcionamiento de blockchain desde sus orígenes

 

Entendemos, por lo tanto, que dentro de la red P2P de blockchain se realizan una serie de transacciones. En particular, se intercambian las denominadas Bitcoins (en adelante, “BTC”) de unos nodos a otros.

Y… ¿Por qué se la denomina blockchain? Porque, tal y como desvela su traducción, se trata de una cadena de bloques, donde la cadena representa el registro de transacciones completo agrupadas en bloques tras pasar por un proceso de cifrado del que se hablará más tarde.

Vamos a ello por partes, despacito y con buena letra. Blockchain nació conjuntamente con su primera aplicación: Bitcoin, siendo éste un sistema de transacción de dinero creado digitalmente sin reflejo líquido en el sistema bancario tradicional.

Su creador, Satoshi Nakamoto, decide crear una moneda puramente virtual para la cual no ha habido transferencia alguna de dinero. No ha existido ninguna transacción previa de X dinero de una cuenta bancaria por X número de BTC.

Entonces: ¿cómo puede haberse creado?

Cuando su inventor creó blockchain en 2009, lo hizo de tal manera que para comenzar la cadena de bloques fuera necesario un primer nodo servidor, el propio Sr. Nakamoto. Su función era la de registrar la primera transacción de la cadena, creando un primer bloque denominado el “bloque génesis”.

Y por realizar dicha acción su recompensa eran justamente los primeros bitcoins. Esa transacción de BTC es la transacción que da origen a la cadena. Es decir, se producen dos acciones simultáneas cuyo efecto son esas propias acciones respectivamente (A = B y B = A).

La filosofía de base es que los “mineros”, aquellas personas con computadoras con capacidad suficiente como para registrar bloques en la cadena, reciben por ese trabajo una compensación en bitcoins y estas, a su vez, se “expiden” o crean por el propio sistema de blockchain.

En palabras del propio Nakamoto en su Libro blanco, Bitcoin: un sistema de dinero en efectivo electrónico peer-to-peer: “[…] la primera transacción en un bloque es una transacción especial con la que comienza una moneda nueva, propiedad del creador del bloque. Esto añade un incentivo a los nodos para soportar la red, y proporciona una forma de poner las monedas en circulación, dado que no hay autoridad central que las distribuya”.

Aquí Juan ya está volando por el hiperespacio preguntándose qué fue primero, si el huevo o la gallina, aunque no importa demasiado. Lo que importa es que la cadena ya se ha creado con el primer registrador o “minero” de la cadena (Nakamoto).

Ahora, Nakamoto tiene la posibilidad de transmitir esas primeras Bitcoins cuyas correspondientes transacciones serán validadas e insertadas en bloques de la cadena y, por supuesto, ahora no tiene porqué ser solamente Nakamoto el único minero dentro de la cadena.

La cadena comenzó a funcionar de esta forma y cada vez se añadían más usuarios, lo cual nutría la propia red y permitía la creación de nuevas Bitcoins. Lo bueno de este sistema, además, es que puede verse cada paso o bloque agregado a la cadena desde sus inicios en diversas páginas de seguimiento de la actividad de esta criptomoneda como en blockchain.info.

Es interesante, además, ver cómo ha ido creciendo el uso de esta red desde 2009 hasta ahora, teniendo en cuenta el hecho de que el límite de Bitcoins que pueden emitirse es de 21 millones en todo el mundo.

 

blockchain

Fuente: www.blockchain.info

 

Finalmente, el público empezó a comprar Bitcoins y estas criptomonedas entraron en el tráfico del dinero, intercambiándose bienes y servicios con ellas. Por ello, comenzó a asignarse un valor de cotización con referencia a la moneda real. Evidentemente esto implica entrar en el juego del mercado financiero, donde estas divisas digitales empezaron a ser objeto de los devenires financieros y de las tendencias del mercado.

 

 

Base de datos o registro de transacciones (Ledger)

 

Llegados a este punto de la investigación Juan se pregunta “¿Qué ha hecho que la tecnología blockchain y su primera aplicación, la criptomoneda Bitcoin, se conviertan en algo tan revolucionario y tan especial?”.

Al fin y al cabo, parece que las tecnologías de base utilizadas ya existían antes de su invención. Pues bien, el rasgo diferenciador que crea valor añadido al blockchain es el unificar esas tecnologías de base y darles una nueva aplicación.

La idea revolucionaria surge de la comprensión del verdadero valor de que un sistema de comunicación de información descentralizado P2P es en realidad una forma de almacenar información y que la veracidad de dicha información se encuentra en cada uno de los nodos que integran la red, los cuales son capaces de actuar como testigos de la actividad de la red de forma conjunta.

Esta característica, unida al anonimato de los participantes en las transacciones que se realizan dentro de la red y al método de encriptación de la información hacen de esta invención un sistema-patrón útil en incontables campos.

“¡Pum!” así, de golpe y porrazo, a un libre pensador con un nombre ficticio mucho más sonoro que el de Juan, Don Satoshi Nakamoto, se le ha ocurrido que blockchain es un registro –como podría serlo el registro de la propiedad o el registro civil– y que, por ejemplo, puede utilizarse para crear una moneda de origen digital (Bitcoin) cuyo intercambio se registre mediante la tecnología blockchain y, atentos: ¡Sin bancos ni comisiones de por medio!

Es decir, y a riesgo de ser repetitivos, blockchain constituye un registro descentralizado P2P de las operaciones de transmisión de información dentro de una red cuya integridad se asegura mediante diversas formas de cifrado de la información y cuyo “notario o registrador” es el conjunto de integrantes de dicha red que actúan como servidores (registradores o miners) o como clientes.

 

Cifrado de la información

 

Otro de los aspectos fundamentales para el éxito de blockchain es que incluye un sistema de cifrado de la información para aportar seguridad y salvaguardar su integridad, durante las transmisiones entre los diversos nodos.

Juan, guiado por su lógica aplastante de abogado, va de lo “facilito” a lo difícil y así comenzamos por intentar comprender que el cifrado es el proceso de convertir texto legible, denominado texto plano, en un formato ilegible, denominado texto cifrado.

Esto se produce como se indica a continuación:

  • El emisor convierte el mensaje de texto plano en texto cifrado. Esta parte del proceso se denomina cifrado (algunas veces, se denomina codificación) y convierte un texto plano de un determinado número de bits en un texto cifrado con diferente número de bits.
  • El texto cifrado se transmite al receptor.
  • El receptor vuelve a convertir el mensaje de texto cifrado en su formato en texto plano. Esta parte del proceso se denomina descifrado (algunas veces, decodificación).

 

La conversión requiere una secuencia de operaciones matemáticas que cambian el aspecto del mensaje durante su transmisión, pero no afecta al contenido. Las técnicas de cifrado pueden garantizar la confidencialidad y proteger los mensajes contra la visualización no autorizada, ya que un mensaje cifrado no es inteligible.

Las técnicas de cifrado requieren la utilización de un algoritmo general, que pasa a ser específico mediante el uso de claves o llaves que son una suerte de contraseñas.

Para comprender blockchain, a Juan le interesan tres clases de algoritmos:

  • Los que requieren que ambas partes utilicen la misma clave secreta. Los algoritmos que utilizan una clave compartida entre dos nodos que desean interconectarse se conocen como algoritmos simétricos.
  • Los que utilizan una clave para cifrado y una clave diferente para descifrado. Una de estas debe mantenerse secreta o privada pero la otra puede ser pública. Los algoritmos que utilizan los pares de claves pública y privada se conocen como algoritmos asimétricos. Los algoritmos de cifrado y descifrado utilizados pueden ser públicos pero la clave privada compartida y la clave privada individual deben ser secretas.
  • Algoritmos de resumen denominados hash o función de dispersión unidireccional. Este tipo de codificación convierte el texto plano (input) en una salida o respuesta alfanumérica (resultado de la aplicación de la función denominado output, compendio de mensaje o message digest) de longitud fija (determinado número de bits) que hace las veces de resumen de toda la información introducida.

 

Se caracteriza, en particular, porque la función de dispersión es de tipo unidireccional, lo cual quiere decir que la respuesta o salida no permite su descifrado para acceder a la documentación de texto plano original. Sino que para poder comprobar que la información cifrada no ha sido alterada, habrá de volver a aplicarse la función hash a dicha información y corroborar que la respuesta o output es la misma que la que se recibió.

Esta cualidad otorga mayor seguridad al cifrado realizado de forma que no solo reviste de confidencialidad a la información sino también de integridad lo cual implica que la información no ha sido alterada ni corrompida durante su transmisión.

En la blockchain de Nakamoto, además, se utilizan otros dos métodos que implementan cifrado en diversos momentos del proceso: firma digital y sello de tiempo.

La firma electrónica o digital es el mecanismo criptográfico que permite al receptor de un mensaje firmado identificar digitalmente al emisor que origina dicho mensaje y confirmar que el mensaje no ha sido modificado o alterado desde que fue firmado por el que lo originó.

La firma electrónica en realidad se compone de una serie de documentos que se someten a un procedimiento de encriptación y certificación que se transmite de un emisor a un receptor y entre los cuales se establece un protocolo de comunicación que permite la verificación de la originalidad y fehaciencia de dicha comunicación.

La firma digital en blockchain se utiliza en el momento en el que un usuario realiza una transacción enviando una cantidad de Bitcoins a otro usuario.

El sello de tiempo es la asignación de una fecha y momento concretos a un bloque de transacciones de Bitcoin mediante la aplicación de un algoritmo hash y se utiliza en el momento en el que se crea un bloque y se añade al resto de la cadena.

Ha costado un poco y un par de horas de lectura, para un autodidacta como Juan, el entender a nivel básico estos conceptos, pero esto le permite ascender en su lista de puntos de aprendizaje.


 

 


 

La seguridad en blockchain

 

A continuación, Juan decide abordar la cuestión del funcionamiento específico del cifrado de blockchain y cómo consigue dotar de seguridad a la red. Para ello es necesario tener en mente que se consigue con la aplicación de diversas capas de seguridad en diferentes momentos del proceso que se desarrolla a lo largo de la cadena de bloques.

a) El registro de usuarios en la red

 

La tecnología blockchain implementada en Bitcoin, no identifica a sus usuarios. Es decir: cualquier persona puede acceder a la red sin tener que aportar ningún dato personal que lo identifique.

Por ello, se ha venido diciendo que la red era anónima y que la identidad de las personas no podía ser rastreada. Sin embargo, esta afirmación no es verdadera o exacta y deben hacerse algunas precisiones.

Esta cuestión, en realidad, depende más del comportamiento del usuario que del propio sistema. Cualquier persona, Juan mismamente, puede descargar una aplicación (programa cliente de Bitcoin) y al ejecutarlo se le asigna una dirección de recepción de transacciones.

En primer lugar, el programa cliente asigna una clave privada de 256 bits y una clave pública a la cual se le aplica un algoritmo hash que genera una respuesta o message digest de longitud estándar de 160 bits. Esta respuesta se genera en binario y posteriormente se utiliza un sistema de cifrado que lo traduce a texto plano legible de forma que se crea una respuesta de longitud fija entre 26 y 34 caracteres alfanuméricos.

Simplificando, Juan se descargó el programa cliente Bitcoin Core (un monedero para Bitcoin) y le generó una dirección con esta pinta:

1PKam4Md8P3bJEqHWayApvgCeWdgJ2tuMW

Se recomienda siempre a los usuarios que no utilicen una misma dirección para más de una transacción pues será en ese momento en el que empiece a ser más sencillo rastrear la IP. Sería como ir dejando un rastro de migas de pan, difícil de encontrar, pero no imposible, sobre todo teniendo en cuenta que Bitcoin tiene un sistema de nombres de dominio (“DNS”, por sus siglas en inglés) con el que realiza una nomenclatura jerarquizada de los nodos de la red recavando cierta información de ellos, como la IP.

b) La realización de una transacción

 

Para comprender cómo se codifica la información de las transacciones singulares Juan decide comenzar un ejercicio lógico y cronológico.

Cuando el usuario A decide realizar una transacción al usuario B, en primer lugar, debe conocer la dirección o hash de la clave pública de B para poder enviarle cuantas BTC desee.

Pero el motivo por el que la cadena de bloques es peculiar es que no existen direcciones de envío. Lo que sucede es que solo podrá realizarse una transacción cuando se haya recibido, asimismo, una transacción.

Es decir: A recibe 10 BTC de Z y decide enviárselas a B. Para ello se genera un hash a partir del hash de la transacción anterior (A Z) más la clave pública de B y la firma digital de Z. Se firma digitalmente por A con su clave privada y, de esta forma, B puede comprobar que, efectivamente, la transacción se ha realizado por A.

A partir de todo ello se genera un único hash, que será el verdadero identificador de la transacción y esto es lo que recibe B.

En el Libro blanco publicado por Satoshi Nakamoto se hace una representación gráfica de este proceso que resulta muy útil para cu comprensión:

Esto implica que realmente la verificación de que la transacción recibida por B es válida se basa en la validez previa de la transacción recibida por A.

Básicamente, B debe comprobar que la clave privada de A con la que se ha firmado es la correlativa a la clave pública que él recibe. Esto no quiere decir que B conozca la clave privada de A, sino que mediante la aplicación de la clave pública de A el mensaje se desencripta.

Asimismo, la dirección beneficiaria de la operación anterior (A B) tendría que corresponderse con el hash de la clave pública de A. Por ello B, que supuestamente ha tenido que recibir correctamente la clave pública de A, deberá calcular el hash y corroborar que, efectivamente se identifica con la dirección beneficiaria de la transacción anterior.

Este es el punto fundamental de la cadena de bloques, donde no resulta necesario identificar a la persona física y real emisora de una transacción.

El problema relacionado con este punto es que lo que no puede comprobarse es que la transacción de esas mismas BTC se haya realizado por duplicado a otros nodos de la red. Es decir, que el beneficiario necesita una prueba de que los propietarios previos no han firmado transacciones anteriores sobre esas mismas BTC. Este punto se abordará más adelante en el apartado d).

c) La validación de las transacciones

 

Como puede deducirse de la explicación realizada de cómo se realiza una transacción, todas las operaciones que se suceden en el tráfico realmente se encuentran conectadas a través del cifrado encadenado.

Como abogado Juan se lo lleva a su campo: lo que sucede es que el input de una transacción es el output de la inmediatamente anterior. Sigue, por así decirlo, una suerte de regla de tracto sucesivo al uso registral más tradicional para la certificación de la propiedad de un inmueble.

Hay que recordar, sin embargo, que una transacción puede tener varios outputs (direcciones a las que transmite BTC) pero solo un input. Dichos outputs son los hashes calculados de transacciones anteriores, como hemos analizado previamente.

Cada output solo puede gastarse una vez (si no, se daría doble gasto de BTC) así que se los denomina como gastados (TXIDs) y no gastados (UTXOs).

En la página www.bitcoin.org se aporta una representación gráfica de la cadena de transacciones:

Pues bien, una vez se ha realizado todo el proceso de hasheado necesario para poder llevar a cabo una transacción, se transmite toda la información (la operación en sí) y se transmite a la red para que los mineros validen la transacción.

La validación de la transacción por los mineros consiste en verificar la identidad de los hashes con las claves públicas de los beneficiarios de cada una de las transacciones recibidas y en comprobar que las BTC no han sido objeto de doble venta mediante la comprobación de los sellos de tiempo aplicados en cada transacción.

d) La validez de toda la red: la creación de bloques

 

Sin embargo, la validación individual de las diversas transacciones por los nodos de la red no es suficiente para poder incorporarlas al registro general. Para ello habrá de incluir las transacciones dentro de la cadena de bloques.

Para poder crear y añadir bloques a la cadena básicamente habrá de realizarse una operación similar al encadenamiento de transacciones dado que el principio fundamental de la tecnología blockchain es la codificación encadenada como forma de reforzar la seguridad exponencialmente.

Así que, si Juan fuera un minero y se hubiera comprado una de esas maquinas computacionales que le permitirían extraer BTC de la red, lo primero de lo que tendría que preocuparse sería la creación de bloques.

Un bloque se crea agrupando una serie de transacciones ocurridas en un lapso de tiempo determinado y creando lo que se denomina un “árbol de Merkle”: las operaciones se agrupan formando parejas y se calcula el hash de cada una de ellas. Este proceso se repite cuantas veces sea necesario para poder llegar a un único hash (raíz de Merkle).

Así, el bloque se compone de la raíz de Merkle de un grupo de transacciones, el hash del bloque anterior y el nonce, término que se explicará más adelante.

De toda esa información, se calcula otro hash y se añade a la cadena.

e) El servidor de sellado de tiempo

 

Dado que las transacciones están encadenadas las unas a las otras y siguen un orden cronológico para ello, la forma de identificar un ataque con intenciones fraudulentas en dicha cadena es conseguir detectar el punto en el que ese orden cronológico se quebranta por la falta de una transacción.

Para comprobar dicha ausencia es necesario tener conocimiento de todas las transacciones existentes en la cadena y que todos los participantes de la red estén de acuerdo en el orden cronológico que siguen. Así que se aplica un sello de tiempo al hash de cada bloque y se publica o transmite a toda la red.

Como sucedía con las transacciones y los bloques, los sellos de tiempo también se encadenan, puesto que el sello de tiempo del bloque inmediatamente anterior viene incluido en el hash del bloque que se sella.

f) El encadenamiento de bloques: nonce y prueba de trabajo

 

Juan pasa a investigar qué es eso del nonce, ese elemento que se incluye dentro de un bloque.

Pues bien, hay que pensar que en el tráfico de la red hay muchos mineros actuando a la vez, tratando de añadir bloques a la cadena para conseguir una recompensa de BTC. Pero todos trabajan simultáneamente para poder añadir el próximo bloque a la cadena, así que, ¿cómo selecciona la red al minero en cuestión?

La red no selecciona, sino que propone un pequeño reto matemático a los mineros, un juego. El que primero lo resuelva será el que consiga añadir el bloque calculado.

Cada minero añade una transacción a la raíz de Merkle que están creando: la suya propia, en la que ellos son beneficiarios de las nuevas monedas que van a crearse si consiguen cerrar el bloque. De esta forma, los bloques de cada minero son por definición diferentes (aunque sea por algunos bits de información).

Pues bien, ya sabemos que el minero debe calcular el hash del bloque a partir de la información contenida en él, pero tiene que superar la prueba de la red para ello. Las normas de blockchain establecen que el primer minero en calcular el hash del bloque con una cantidad de ceros determinada a su izquierda, será el que consiga añadir el bloque a la cadena.

La dificultad reside, precisamente, en conseguir encontrar un hash con esa cantidad de ceros a la izquierda y se consigue añadiendo un número de bits específico al bloque, lo que se denomina nonce.

Los mineros no saben cuál es el número de bits que necesitan añadir y, dado que es un número totalmente aleatorio y dependiente de los bits de partida de la información introducida en el bloque, tienen que ir probando uno a uno. Puede hacer falta 1 o 1.000.000 de intentos, no puede saberse de antemano.

Cuando se encuentra ese número, el nonce, se resuelve el hash del bloque correctamente y se añade a la cadena de bloques.

No por tener un equipo con más capacidad computacional que otros nodos significa que el mismo minero será capaz de calcular el bloque antes que otros, puesto que puede necesitar 1.000 intentos más que un minero con menos capacidad. De ahí que funcione el sistema descentralizado de registro.

En realidad, se trata, simplemente, de aportar una prueba de trabajo (proof of work), es decir: una prueba de la cantidad de trabajo (computación) que se ha invertido en la creación de un bloque para asegurar que los nodos deshonestos que tienen la intención de corromper la cadena tengan que invertir, al menos, toda esa cantidad de trabajo para conseguir sus fines.

g) El consenso en la red P2P

 

En términos lógicos se entiende que, si alguien quisiera beneficiarse del sistema de remuneración en BTC de forma fraudulenta, realmente necesitaría recrear toda una cadena alternativa de bloques partiendo desde el punto o altura en el que interviene cambiando la información contenida y verificada. Al fin y al cabo, la validación de los bloques se produce de la misma forma en que se validan las transacciones: se transmiten a todos los nodos de la red para que comprueben su validez de forma generalizada.

Teniendo en cuenta que los bloques se crean con, aproximadamente, una frecuencia de 10 minutos, que la moneda lleva circulando desde 2009 y que, a fecha de febrero de 2018, la cantidad de bloques ronda los 510.000, la tarea de la falsificación de la cadena se complica.

El trabajo requerido para llevar a cabo el fraude es tal que no compensaría simplemente a nivel energético por el consumo de los ordenadores que haría falta, porque debe apuntarse que, además, entra otra cuestión en juego y que es absolutamente fundamental: la cadena de bloques se valida mediante el consenso de los nodos que componen la red.

Es decir, que haría falta que, al menos, el 50 % de los nodos de la red fueran deshonestos y apoyaran la cadena alternativa fraudulenta (Problema de los Generales Bizantinos).

 

Por qué se creó Bitcoin

 

Definitivamente, blockchain se pensó muy detenidamente cuando se creó. Pero no es de extrañar, porque lo que se buscaba era crear dinero efectivo alternativo al ya existente.

Se proclama de esa forma en el Libro blanco publicado por Satoshi Nakamoto en el año 2008, donde se explica que el sistema ideado permitiría evitar pasar por una institución financiera.

Al fin y al cabo, la motivación tras este proyecto es hacer temblar uno de los fundamentos del sistema financiero mundial: evitar tener que confiar en una institución ajena que controle la creación y el flujo del dinero.

Si, justamente por el año 2008, no se hubiera dado uno de los acontecimientos de crisis económica más sangrante para la sociedad de todo el mundo (las hipotecas subprime y la caída de Lehman Brothers), entonces quizás nadie hubiera prestado tanta atención a esta nueva tecnología.

Pero la realidad es que era el momento perfecto para que el común de la sociedad comenzara a desconfiar nunca mejor dicho y a poner en tela de juicio si las instituciones que controlaban el tráfico del dinero eran tan necesarias. Al fin y al cabo, ¿hasta qué punto el control ejercido sobre ellas es efectivo?

Con una nueva moneda controlable únicamente de forma colaborativa, siempre y cuando su seguridad no fuera comprometida, podría quizás evitarse que se dieran crisis como la que comenzó el mismo año del nacimiento del Bitcoin.

El valor de blockchain

 

Juan siente que ha tenido una epifanía porque al fin ha comprendido qué puñetas es eso del blockchain (nuestras disculpas por la palabra malsonante pero el momento requiere énfasis lingüístico). Que no será ingeniero informático, pero como cualquier profesional con una trabajada experiencia a sus espaldas, es capaz de comprender el valor de esta tecnología y, de hecho, es justamente dicha experiencia la que puede permitirle a cualquier profesional llegar a encontrarle nuevas aplicaciones dentro de sus respectivos campos.

Esto es justamente lo que ha estado sucediendo mientras dormíamos en los laureles, que esos chavalillos de los que antes hablábamos lo han pillado a la primera y no les está yendo nada mal. La velocidad de extensión de esta tecnología es proporcional, además, al surgimiento de todas estas nuevas empresitas. Estas bacterias no son nada tontas… Ahora Juan les tiene más respeto, puede que incluso una pizca de admiración reprimida.

Resulta que son una amenaza para el sector bancario, pues ha surgido todo un nuevo sector de banca digital al que se le denomina Fintech. Pero su uso se da en absolutamente todos los ámbitos de nuestra vida, desde la sanidad hasta la seguridad ciudadana, pasando por el sector energético.

 

Llegados a este punto, no queda sino preguntarse, como bien ha hecho Juan: ¿Cómo va a afectar esto a mi sector? ¿Qué puedo hacer para no quedarme atrás? o, incluso… ¿Cómo puedo yo mejorar mi sector con esta tecnología?

2 Comments
  • Pilu López a.k.a Eliariea
    Posted at 17:20h, 19 June Reply

    Me encanta el tono del artículo, ¡ahora todo este mundo ya no me suena a chino! jaja Gracias, muy buen artículo.

    • spartanhack
      Posted at 07:55h, 21 June Reply

      Nos alegra muchísimo que te haya resultado de utilidad.

Post A Comment

Share This