El concepto Blockchain ha aparecido por todas partes en los últimos años, en especial por la aparición de las criptomonedas, la cual es su principal aplicación. Pero su implementación se está dando cada vez en más tipos de aplicaciones. Lo que nos lleva de manera indirecta a la creación de hardware especializado para acelerar los procesos con la blockchain. ¿Cuál es este hardware y en qué se diferencia del resto?
A todas horas no paramos de ver noticias que nos hablan de la Blockchain cómo base para nuevas soluciones. Lo cual, desde la perspectiva del hardware nos debería dar igual a simple vista por el hecho de ser un concepto más bien venido del mundo del software. No obstante, esto abre la oportunidad para cambios en el hardware a la hora de tratar la cadena de bloques. Os contamos cómo el uso de la Blockchain está afectando al desarrollo del hardware a corto, medio y largo plazo.
¿Qué es la Blockchain?
La Blockchain o cadena de bloques es lo que llamamos en informática una estructura de datos. Por lo que es una forma de organizar un grupo de datos de manera ordenada. Cómo su nombre indica, la Blockchain son una serie de bloques encadenados, para ello utilizamos tres variables para definir lo que es cada bloque:
- Un hash, clave o huella, lo cual es un código único para cada uno de los bloques. Cuando se genera un bloque en la cadena de bloques, este código se genera una única vez y no puede ser cambiado jamás.
- Los datos que incluye cada uno de los bloques de la blockchain en su interior. En el caso de una criptomoneda, el bloque puede almacenar la información de una transacción entre dos personas. Los datos en el interior de un bloque hará que el hash, clave o huella cambie por completo, por lo que literalmente se convertirá en un nuevo bloque.
- La clave del bloque anterior en la cadena. Esto significa que si modificamos un bloque en una parte de la cadena, entonces el siguiente bloque de la cadena ya no apuntara a nada, porque habremos cambiado el hash y por tanto todos los bloques posteriores quedará completamente invalidado.
¿Cómo mantiene íntegra su información?
El problema existente en la actualidad es que los procesadores son lo suficientemente rápidos como para poder adaptar todos los hashes de la cadena y hacer que los datos sean válidos. Es por ello que se requiere lo que se llama una «Proof-of-work» o prueba de trabajo. Esta no es más que un tiempo de espera para validar el bloque de varios minutos. Por lo que si quieres modificar un bloque en los inicios de la cadena entonces se tendrán que modificar el resto de bloques que forman la Blockchain y que vayan después del bloque modificado.
La otra forma en la que la Blockchain asegura la integridad de sus datos es a través de estar distribuida entre sus diferentes usuarios. En los que cada usuario que haga uso de una cadena de bloques tiene una copia actualizada. La cual se ha de mantener coherente con la cadena de bloques de los otros usuarios.
Para ello se crea una red peer to peer o P2P en la que cualquiera puede sumarse y formar parte de la misma. En la que cuando un nuevo usuario de la Blockchain entra a esta red distribuida él recibe una copia entera de la cadena de bloques hasta el momento y cuando alguien añade un nuevo bloque entonces inmediatamente este es añadido en el resto de participantes. De tal manera que si un usuario hace un cambio offline entonces su cadena de bloques dejará de ser válida y se actualizará con la información del resto de usuarios de la red.
Hardware dedicado a la Blockchain
El primer tipo de hardware dedicado a la blockchain es el más obvio de todos y no es otra cosa que las carteras que utilizamos para almacenar las transacciones de nuestras criptomonedas. Y si, lo habéis adivinado, lo que hacen las llamadas cryptowallets es almacenar la cadena de bloques de nuestra criptomoneda.
Ahora bien, si lo pensamos bien la Blockchain se convierte en una forma de almacenar cualquier tipo de información de manera segura que por su naturaleza evita cualquier tipo de cambio. Eso sí, el problema es la llamada proof-of-work. ¿Verdad que antes hemos comentado que al añadir un nuevo bloque de la cadena se generaba su hash a partir de un cálculo? Pues bien, el sistema que consigue descifrar antes dicha clave es el que se convierte en el poseedor del bloque que contiene dicha clave.
Para ello se utiliza un algoritmo para generar la nueva clave, pero dicho algoritmo puede ser acelerado de diferentes maneras. Dependiendo del hardware que se utilice la velocidad a la hora de generar la misma clave varía y se puede decir que hay tipos de hardware mucho más eficientes que otros a la hora de generar dicha clave. Lo cual se puede ver en el mundo de las criptomonedas donde no todo el tipo de hardware tiene el mismo valor de cara a la minería.
¿Cómo se aplica al almacenamiento?
Otra de las aplicaciones de la Blockchain tiene que ver con la integridad de los datos en los sistemas de almacenamiento utilizados en nuestros PCs. Hasta el momento hemos almacenado los datos en bloques o páginas de memoria que tienen una correlación con los sectores de un disco duro. La aparición de las unidades de estado sólido permiten nuevas formas de organizar la información y la cadena de bloques es una buena forma de hacerlo de manera segura y mantener los datos.
El acceso a los datos utilizando una clave es algo que forma parte del estándar NVMe 2.0, pero no tiene que ver con la Blockchain, ya que no utiliza los mecanismos de comprobación de la integridad de los datos de esta misma. Además que el uso de la Blockchain para almacenar datos supone que ninguno de los datos anteriormente existentes se puede modificar, ya que cualquier modificación anula los bloques posteriores.
Lo ideal en este caso es que cada nuevo programa o archivo creado acabe por generar una nueva cadena de bloques. En el caso de la instalación de los programas sería tan sencillo como bajarse una cadena de bloques base que corresponda a los archivos esenciales de la aplicación. Esto permite comprobar la integridad del programa. Pero al mismo tiempo les permite a los desarrolladores luchar contra la piratería. Ya que cualquier crack aplicado sobre un programa es un cambio en su cadena de bloques.
De ahí a que la blockchain sea tan importante, por el hecho que en un futuro con el contenido almacenado utilizando una clave y no una dirección de memoria virtual esto hace posible que las tiendas de aplicaciones virtuales se hagan mucho más seguras para la distribución de las aplicaciones.
Los SmartNIC son importantes de cara a la Blockchain
¿El problema del planteamiento anterior? El hecho que vamos a necesitar hardware que se encargue de verificar el contenido de los nuevos bloques de la cadena. De ello se encargarán los SmartNIC, los cuales formarán parte integral de las CPUs del futuro. No solo para gestionar las transacciones dentro del PC, sino también para comprobar las diferentes cadenas de bloques de los programas. Cualquier aplicación nos pedirá estar siempre conectados con tal de asegurarnos que su cadena de bloques corresponde con la del resto de usuarios y la del servidor base.
La idea de que los diferentes componentes de un PC se comuniquen entre sí como si fuese una red permite la comunicación P2P entre los diferentes participantes de una misma cadena de bloques. Por lo que en un futuro la mayoría del almacenamiento en nuestro PC será totalmente «compartido» en el sentido que cada uno tendrá la Blockchain de una aplicación o documento en concreto.
Cualquier cosa que se comparta con la Blockchain pasa a ser única, incluso las copias. Esto nos lleva a un futuro en el que nuestro PC va a poder buscar cualquier dato con conocer solamente la clave e independientemente de donde este se encuentre. De manera totalmente transparente y con la seguridad de que la información que se recibe es la adecuada. Dicho de otra manera, nos movemos hasta la Internet of Everything, donde todo estará interconectado entre sí.