Programación

Blockchain para todos los públicos

Seguramente hayas escuchado ya hablar de los “blockchains” tanto si eres informático como si no. Mi intención en este artículo es explicártelo de la forma más sencilla posible, sin muchos tecnicismos y apto para todos los públicos, porque aunque yo sea ingeniero informático, uno ve según qué cosas… a veces creo que es mejor entendernos ya seamos del gremio o no, para extender el conocimiento y al fin al cabo, dar a conocer las bondades de una tecnología que tenemos que vender para trabajar en ella. Si el público no sabe qué es, para qué sirve y qué ventajas tiene ¿cómo nos van a contratar?


Seguramente hayas escuchado también ligado al blockchain el concepto de criptomoneda, o bitcoin, es verdad que actualmente es la aplicación principal que tiene pero creo que explicarlo a través de ahí sería hacerlo más abstracto y es justo lo que no queremos.



¿Qué es un blockchain?

Yendo directamente al grano diré que el blockchain sirve para asegurar la integridad, inmutabilidad y la trazabilidad de “algo” y ése algo será la aplicación que le queramos dar. Y tu dirás ¡¡ala Alberto, qué has soltado por la boca!!, así que comienzo explicándote los términos que son básicos para entender su magnitud. Asegurar la integridad de algo, en el terreno de la informática implica lograr evitar que los datos sean modificados de manera ilegítima o incluso insertar nueva información que sea incorrecta. Cuando hablamos de inmutabilidad, nos referimos a la capacidad de que los datos que almacenamos sean inmodificables. Y la trazabilidad, es el término que corresponde a los pasos que ha seguido en su recorrido ése “algo”.



¿Para qué un blockchain?

¿Y para qué íbamos a querer todo eso? Ahí está la quiz de la cuestión, los blockchains son una herramienta o método que está en alza, es una moda que crece cada vez más y no sólo por el hecho de ser “cool” sino que las posibilidades y ventajas que ofrece está haciendo que se use cada vez más.


Como nombramos anteriormente, la principal aplicación que tiene actualmente el blockchain es con las criptomonedas, esta tecnología logra que todas esas transacciones virtuales sean seguras y nadie pueda “inventarse” y agenciarse alguna cantidad en su monedero.


Pero quedarse ahí es quedarse sólo en la superficie, las posibilidades que tenemos son inmensas. Recientemente se están empezando a implantar en empresas agricultoras y ganaderas para certificar la trazabilidad de la mercancía y que así los diferentes clientes o actores en la venta de carne o fruta por ejemplo sepan en todo momento por dónde ha pasado su género. Incluso puede incluirse información sobre cómo se ha tratado el producto, clave en alimentos biológicos. Otra aplicación puede ser para las empesas de alquiler de vehículos, si incluimos información sobre geolocalización estaremos garantizando ante terceros cada paso que dio el cliente y si cumplió con el contrato en cuanto a zonas transitables. Para ampliar esta información os recomendo como lectura éste artículo en prensa.



¿Cómo logramos que sea tan seguro?

Para eso hacemos algo muy simple y a la vez efectivo, una cadena de bloques. El concepto principal para esto es encadenar toda la información de tal manera que te asegures que un elemento es el posterior al que le precede. Si aseguramos que eso sea totalmente cierto, haremos que la información sea inmutable. Para ello, cada elemento tendrá dos datos que hacen posible esta “magia”, un código hash que se extrae de la información que queremos guardar y otro código hash correspondiente al anterior elemento. Para no entrar mucho en detalle, diremos que ése código asegura que el contenido es el que es, con lo cual si se modifica, sabremos que está comprometida la integridad de nuestra información. Y al añadir de igual forma el hash del anterior elemento aseguramos que no se ha colado ninguna información indeseada de por medio.


Quizás el bocablo minar lo hayas escuchado, pues bien, “minar” es buscar un hash válido según las normas del blockchain. Éste es un cálculo bastante complejo, incluso para un ordenador, tanto que incluso se crean asociaciones de personas -los llamados pools– para trabajar en equipo. Si consigues calcular el hash, podrás añadir un elemento en la cadena de bloques.


[Información técnica] El calcular un hash en sí no es dificil, el motivo de la dificultad a la hora de minar reside en que buscamos un hash concreto para nuestro bloque, y éste debe cumplir con las exigencias del blockchain. Éste código se extrae de la información que queremos almacenar, datos básicos del bloque y el hash del elemento anterior. Para que nuestro hash sea válido cada blockchain tiene sus normas aunque uno de los métodos más usado es concatenar -agregar- un nonce que es un número aleatorio y posteriormente se comprueba el número de ceros que contiene a la izquierda, ésa cantidad de ceros es la que determina la dificultad del proceso. Si nuestro hash tiene el mínimo de ceros que exige el blockchain tendremos un bloque válido para introducir a la cadena. Por el contrario, si alguien se nos adelanta a la hora de calcular un hash válido, insertará su bloque y el nuestro dejará de ser válido aunque lo encontremos un hash ya que estaremos intentando insertar un bloque que contiene información del bloque anterior -el que era último- y éste ya no es el que finaliza la cadena de bloques, nuestro elemento no será el siguiente del predecesor con el que empezamos y deberemos que iniciar de nuevo el proceso de minado.
Esta ilustración de SSauriel nos explica cómo es cada bloque y cómo se relaciona con el anterior: blockchain [Fin Información técnica]

Pero bueno, ¿a nadie se le ha ocurrido coger la cadena de bloques y alterarla en algún punto y crear los siguientes bloques que les corresponden? la respuesta es si, por eso los blockchains tiene una particularidad que los hace inmutables y es que son una base de datos distribuida. Esto quiere decir que la información no está sólo en un sitio, como un servidor donde modificamos eso para todos, sino que la información está replicada -copiada- en cada uno de los miembros -llamados nodos– que trabajan con el blockchain, así que si logramos alterar algo, de nada servirá ya que la copia en el resto de integrantes descartarán nuestros cambios. Para ello se ejecuta el principio de democracia, ya que la información es válida si la posee la mayoría de los nodos.


[Información técnica] Otra estrategia que han usado aquellos que quieren corromper una cadena de bloques es la creación de los nodos necesarios para ser mayoría y de esa forma, cambiar el contenido del blockchain en base al principio de democracia. Sin embargo, los blockchains están configurados para que eleven su dificultad a medida que se agregan nodos, de esta manera, nunca se tiene la capacidad de procesamiento y por ende la velocidad necesaria para introducir los bloques corruptos antes de que lo haga alguien legítimo. [Fin Información técnica]

Y básicamente, ésto es el tan sonado blockchain, espero no haber sido demasiado extenso ni técnico y que de una manera sencilla hayas logrado comprender el concepto de esta tecnología que va camino de revolucionar la menera en la que se tratan los datos más delicados de las empresas.



Bibliografía y lectura recomendable:

https://hackernoon.com/learn-blockchains-by-building-one-117428612f46

https://medium.com/@ssaurel/create-your-own-blockchain-in-30-minutes-dbde3293b390

https://www.danielprimo.io/blog/blockchain-explicado-como-si-se-entendiera

Foto: https://blog.seagate.com

Author


AvatarAvatar

Alberto Roncero Díaz

¡Hola! me llamo Alberto, soy ingeniero informático y diseñador gráfico, dos profesiones que intento llevar a la par. Me gusta todo lo visual, las tendencias, el marketing y el mundo digital, por ello, desde un inicio he ido enfocando mi carrera por ese camino, trabajando con la imagen corporativa, el diseño gráfico, el desarrollo web y las redes sociales.