Blockchain: almacenamiento de transacciones distribuido, fiable e inmanipulable
2017/12/01 Leturia Azkarate, Igor - Informatikaria eta ikertzaileaElhuyar Hizkuntza eta Teknologia Iturria: Elhuyar aldizkaria
El propio creador de la criptotxanpona Bitcoin también ha inventado la tecnología de los blockchain, personas o grupos desconocidos como Satoshi Nakamoto. En el mismo artículo describió el concepto de bitcoina y describió la tecnología de las cadenas de bloques en 2008, y en 2009 se puso en marcha la primera implementación junto con la bitcoina. Esta tecnología es el sistema utilizado para almacenar y certificar las transacciones de la moneda.
La creación de esta moneda digital se basaba en la premisa de que funcionara por su cuenta sólo con tecnología, sin la participación o supervisión de ninguna organización. Y, por supuesto, el sistema debía ser fiable y protegido contra el fraude. Todo ello avalado por el diseño de las cadenas de bloques, que se ha puesto de manifiesto durante los ocho años de funcionamiento.
Características de las cadenas de bloques
Cuando hay que guardar digitalmente un registro de cualquier cosa, las bases de datos centralizadas controladas por alguien son las más habituales. Sin embargo, la tecnología de las cadenas de bloques es un sistema distribuido y descentralizado. El sistema está formado por varios nodos conectados a través de una red, cada uno de los cuales dispone de una copia de la cadena de bloques y del software Blockchain que se utiliza para su almacenamiento. Esto hace que el sistema sea fiable, ya que en el caso de que ocurra algo a un nodo, hay otros muchos para mantener el sistema en marcha.
El sistema distribuido también garantiza la inmanipulabilidad. Y es que para hacer fraude en una base de datos sólo es necesario acceder a ella. Además de que los atacantes pueden acceder a este acceso, son varias las personas que lo integran, por lo que el sistema es bastante débil. Sin embargo, en un sistema distribuido de cadenas de bloques, habría que conseguir el control de todos los nodos (o al menos de la mitad) y realizar el cambio en todas las cadenas de bloques. Es mucho más difícil.
Es más, el propio funcionamiento de las cadenas de bloques hace que sea prácticamente imposible estafar. Cuando alguien quiere registrar una transacción en las cadenas de bloques, todos los nodos aseguran que la transacción es legítima. En concreto, en el caso de la vitcoina, si hay que introducir una cantidad en un monedero, aseguran que esa misma cantidad se deducirá de otro monedero o que el propietario de dicho monedero ha adquirido dicho dinero a través de la minería (la minería en monedas digitales suele consistir en resolver problemas criptográficos complejos a través de ordenadores).
Pero, además, las transacciones se organizan en bloques en los que se asigna a cada uno de ellos una firma digital o hash que depende del contenido del bloque y que tiene un coste computacional considerable para su cálculo, y cada bloque también guarda la firma del bloque anterior (por ello, la cadena de bloques, ya que cada bloque guarda relación con el anterior). De este modo, una persona con una capacidad computacional relativamente elevada podría modificar una transacción del último o del penúltimo bloque antes de que llegue el siguiente bloque (aunque para ello debería contar con el control de todos los nodos), pero una transacción de bloque de cierta profundidad en la cadena de bloques no podría ser modificada por la capacidad de todos los ordenadores del mundo.
Múltiples aplicaciones
Por todas estas características, la tecnología de las cadenas de bloques es muy interesante para otras muchas aplicaciones. Y es que han empezado a usarse en muchas otras cosas y que en el futuro se usará en muchas más cosas.
Aunque las redes de criptotxanponen son públicas y abiertas, también se pueden hacer redes privadas con cadenas de bloques. Por ejemplo, el registro de operaciones entre empresas de un grupo de empresas se puede guardar en una cadena de bloques, cada uno con un nodo y con acceso exclusivo. O incluso una sola empresa puede crear una cadena de bloques con varios nodos instalados. Su uso en el ámbito financiero y/o logístico es cada vez más generalizado, ya que en el primero de ellos es importante que no haya posibilidad de fraude y en el segundo porque garantiza la trazabilidad de alimentos, medicamentos, etc.
También puede utilizarse para guardar registros de información ciudadana: registros médicos, de nacimientos, matrimonios y defunciones, etc. O como sistema de notaría: registros de ventas de tierras y casas, contratos... O para guardar y contar los votos electorales. Por ejemplo, si se hubiera utilizado en el referéndum del 1 de octubre de Cataluña, una vez votada, no se hubiera podido anular de ninguna manera ese voto, a diferencia de lo que sucedía con el robo posterior de urnas por parte de la policía española. Por supuesto, hay que garantizar la confidencialidad en estos casos, pero para ello se pueden implementar mecanismos en la tecnología de las cadenas de bloques.
Ya se ha mencionado que para aceptar una transacción todos los nodos deben garantizar en primer lugar la legitimidad de la misma. Lógicamente, el algoritmo que determina la legitimidad debe ajustarse a cada caso de aplicación. Por ejemplo, en el caso de las criptotxanponen, hemos dicho que se comprueba si se ha realizado la minería o si se ha eliminado la cantidad de otra cartera. Pero si se quiere utilizar para guardar registros de nacimiento, muerte y matrimonio, por ejemplo, se asegurará que la orden ha sido dictada por un funcionario autorizado para ello. O en un sistema de votación, el sistema asegurará que el votante está empadronado y que ya no ha votado.
Si se quiere montar una aplicación que utilice la tecnología de las cadenas de bloques, existen varios sistemas comerciales o libres a elegir: Hyperledger, Openchain, IBM Blockchain... Todo apunta a un futuro inmejorable en la tecnología de las cadenas de bloques.
Gai honi buruzko eduki gehiago
Elhuyarrek garatutako teknologia