Cadenas de bloques (‘blockchain’)
Juan Manuel Camargo
Imaginemos un objeto digital (un bloque) que se compone de datos. Esos datos pueden ser cualquier cosa: una imagen, una canción, un tuit, un software, el registro de una transacción, una novela o un contrato.
La primera seguridad del bloque es un código llamado hash. Un hash es “una función matemática que convierte una entrada de longitud arbitraria en una salida cifrada de longitud fija” (www.investopedia.com). En otras palabras, los datos del bloque se convierten en un código alfanumérico de una longitud larga y fija (como 64 caracteres), aplicando una fórmula. No importa el tipo de datos o la cantidad de datos que esté en el bloque, siempre será posible calcularle un hash, y este será único. Así, por ejemplo, al aplicar la fórmula a un contrato de 37.000 caracteres, resulta un hash de 64 caracteres alfanuméricos. Si alguien cambia, aunque sea una coma de ese contrato, el hash también varía.
Es importante aclarar que el hash no impide modificar el contrato; lo que hace es poner en evidencia que los datos han cambiado. El hash es algo así como el número de identidad de los datos del bloque. Si el objeto cambia, automáticamente cambia su número de identificación y pasamos a tener dos objetos, el inicial y el modificado, que no se pueden confundir, porque cada uno tiene un hash distinto. Es como si habláramos de dos gemelos tan idénticos que no podemos distinguirlos, pero ambos tienen una cédula de ciudadanía distinta. En la vida real, los gemelos podrían intercambiar sus cédulas y no podríamos reconocer cuál es cuál. Pero intercambiar los hash es imposible, porque estos están incrustados en el objeto digital.
La segunda seguridad del bloque es su inserción en una cadena, en la cual el bloque será un eslabón unido al bloque anterior y al bloque posterior. El lugar del bloque en la cadena se asegura, porque cada bloque tiene incrustado el hash del bloque que le antecede. Si el bloque es el primero de toda la cadena, el hash del bloque anterior será un código de ceros. El segundo bloque tendrá incrustado su propio hash y el hash del primer bloque. El tercer bloque tendrá incrustado su propio hash y el hash del segundo bloque, y así sucesivamente. Si alguien cambia los datos del segundo bloque, el hash del segundo bloque también va a cambiar, y ya no coincidirá con el hash que el tercer bloque tiene incrustado como hash de aquel segundo bloque. Por tanto, la modificación de un bloque cambia su hash y producirá un mensaje de error en todos los bloques que le sigan, poniendo en evidencia la alteración.
Finalmente, la cadena de bloques no se graba en un solo sistema centralizado, sino que reside en cada uno de los “nodos” de una “red de pares”. Todos los nodos comparan la información que tienen: si la mayoría tiene la misma información, esta se considera válida. Por consiguiente, para alterar una cadena de bloques, uno tiene que (i) modificar uno o más bloques, (ii) recalcular los hash de todos los bloques restantes y (iii) tomar control de más del 51 % de los nodos de la red. Se dice que la red del bitcóin tiene 47.000 nodos. No es inimaginable tomar control de esa red, pero sí muy difícil. Por consiguiente, su seguridad es muy alta.
Opina, Comenta