¿Qué es la Blockchain?
El Blockchain (o cadena de bloques) es una base de datos compartida que funciona como un libro para el registro de operaciones de compra-venta o cualquier otra transacción. Es la base tecnológica del funcionamiento del bitcoin, por ejemplo.
Ni los smartphones, ni las redes sociales, ni la realidad virtual, ni los coches autónomos. La tecnología más importante surgida en lo que va de siglo es la cadena de bloques o blockchain. Lo afirma Nicolas Courtois, especialista en seguridad informática y criptógrafo de la University College de Londres. No está solo. El Banco Central Europeo sostiene en un reciente informe que este invento “podría protagonizar una inminente revolución”. Y algunos expertos creen que su impacto será similar al de internet.
La blockchain es la tecnología que hay tras la criptomoneda bitcóin. Una criptomoneda es una moneda digital que usa el cifrado como sistema de seguridad y de lucha contra la falsificación. El bitcóin se erige en la más conocida y común, ya que fue la primera de este tipo que puede operar sin bancos o una autoridad central, y sin revelar datos sobre la identidad de quienes realizan las transacciones.
Puede hacerlo porque su funcionamiento se basa en la tecnología blockchain: una base de datos compartida, descentralizada y segura. Compartida y descentralizada porque hay copias de esa base de datos en millones de ordenadores del mundo; segura porque esas copias están protegidas criptográficamente: no se pueden atacar, prohibir o borrar. Y si hubiera discrepancia en los registros, un mecanismo de consenso hace de autoridad central y permite detectar cuál es el correcto.
La blockchain funciona como un registro de acontecimientos digitales compartido entre múltiples usuarios, y solo puede actualizarse con el acuerdo de la mayoría de estos. Esta cadena de bloques es como una contabilidad transparente de todas las transacciones que se han hecho en la historia de Bitcóin. Así, la blockchain permite que personas que no se conocen colaboren sin necesidad de acudir a una autoridad central neutral o un intermediario que aseguren que sus intercambios son seguros.
Pero lo más interesante de esta herramienta radica en que representa mucho más que un efectivo método de asegurar las transacciones monetarias con bitcoines. “Nos hemos dado cuenta de que es útil en sí misma, y de que puede solucionar muchos problemas”, asegura Óscar Delgado, experto en seguridad informática y profesor e investigador en la Universidad Autónoma de Madrid. Los ejemplos del empleo de esta tecnología resultan innumerables, e incluyen “cualquier actividad que pueda beneficiarse de una descentralización del almacenamiento de datos”, precisa Delgado.
Blockchain es la palabra de moda en el mundo de las finanzas, ríos de píxeles se han escrito sobre la tecnología bajo la que funcionan las criptomonedas y que va a revolucionar el mundo de la finanzas, pero creo que nadie ha sido capaz de explicarlo bien o al menos de una manera amena que te permita llegar hasta el final de artículo y enterarte de que va todo esto.
Afortunadamente siempre hay alguien que hace un buen trabajo y crea el artículo definitivo sobre blockchain que no es un coñazo.
Vamos a intentar explicar que es eso del blockchain y de paso, el funcionamiento de las criptomonedas. Es un pelín largo, pero hay que pasar por este trauma para estar en la onda.
Imagina que tienes un amigo. En este caso vamos a llamarle Joe. Y como buen amigo cuando está de viaje se acuerda de ti y te escribe un Whatsapp.
“Tío, necesito algo de dinero. Me he quedado sin blanca”.
Como es tu único amigo, le respondes que le envías dinero de inmediato.
En ese momento vas al banco y le dices al cajero:”Por favor señor cajero, transfiera $1000 de mi cuenta a la cuenta de Joe”.
Hace click click con el ordenador, revisa el saldo, ve que estás forrado y procede a realizar la transferencia.
Así que le envías a Joe este Whatsapp “Hola tio, ya te he enviado la pasta. La próxima vez que vayas a tu banco, puedes retirar los 1000€ que acabo de transferir. Emoticono, Emoticono.”
¿Qué acaba de pasar?
Joe, tú y en general todo el mundo confiamos en los bancos para que manejen nuestro dinero. Vale, realmente no confiamos mucho pero no nos queda otra.
En este caso no hubo un movimiento real de billetes físicos para transferir el dinero. Todo lo que se necesitaba era una inscripción en el registro. O más precisamente, una entrada en un registro que ni tú ni Joe controlas ni posees.
Y ese es el problema de los sistemas actuales. Para establecer la confianza entre nosotros, dependemos de terceros individuos, en los que muchas veces no confiamos y que además nos cobran por ello.
Así que irremediablemente nos viene esta pregunta a la cabeza ¿Podría haber un sistema en el que podamos transferir dinero sin necesidad de un banco?
Para responder a esta pregunta, necesitaremos profundizar más y hacernos una pregunta mejor. ¿Qué significa transferir dinero? Sólo una entrada en el registro. Por tanto, la mejor pregunta sería
¿Hay alguna manera de mantener el registro entre nosotros en vez de que alguien más lo haga por nosotros?
Esa es una pregunta que vale la pena explorar. Y la respuesta es lo que ya podrías haber adivinado. Blockchain.
Es un método para mantener ese registro entre nosotros mismos en vez de depender de que alguien más lo haga por nosotros.
¿Cómo funciona?
El requisito de este método es que debe haber suficientes personas que no quieran depender de terceros. Sólo entonces este grupo podrá mantener el registro por su cuenta.
¿Cuántos son suficientes? Al menos tres. Para nuestro ejemplo, asumiremos que diez individuos quieren renunciar a los bancos o a terceros. Acuerdan poner en común los detalles de las cuentas de los demás pero para mantener la privacidad, sin conocer la identidad del otro.
1. Una carpeta vacía
Cada uno tiene una carpeta vacía con la que empezar. A medida que progresemos, estos diez individuos seguirán añadiendo páginas a sus carpetas actualmente vacías. Y esta colección de páginas formará el registro que rastrea las transacciones.
2. Cuando una transacción sucede
A continuación, todos en la red se sientan con una página en blanco y un bolígrafo en sus manos. Todo el mundo está listo para escribir cualquier transacción que ocurra dentro del sistema.
Si el #2 quiere enviar 10 dólares al #9 grita muy fuerte “Quiero transferir 10 dólares al #9. Así que, todos, por favor anoten en sus páginas, no vaya a haber líos”
Todo el mundo verifica que #2 tiene saldo suficiente para transferir 10 dólares a #9. Si tiene suficiente saldo, todos anotan la transacción en sus páginas en blanco.
Ya está. Transacción finalizada.
3. Las transacciones continúan sucediendo
A medida que pasa el tiempo, más personas en la red sienten la necesidad de transferir dinero a otros. Siempre que quieren hacer una transacción, lo anuncian a todos los demás. Tan pronto como una persona escucha el anuncio, lo escribe en su página.
Este ejercicio continúa hasta que todos se quedan sin espacio en la página actual. Suponiendo que una página tiene espacio para registrar diez transacciones, tan pronto como se hace la décima transacción se quedan sin espacio y llega la hora de guardar la página en la carpeta, sacar una nueva página y continuar con las trasacciones.
4. Cómo pasar página
Antes de guardar la página en nuestras carpetas, necesitamos sellarla con una clave única que todos en la red estén de acuerdo. Al sellarlo, nos aseguraremos de que nadie pueda hacer cambios en ella una vez que sus copias hayan sido guardadas en la carpeta de todos – no hoy, ni mañana ni pasado un año. Una vez dentro de la carpeta, ésta permanecerá siempre en la carpeta – sellada. Además, si todos confían en el sello, todos confían en el contenido de la página. Y este sellado de la página es el quid de este método. Esta es la llave de la caja fuerte y lo que nos hace confiar en el sistema.
Interesante! ¿Cómo sellamos la página entonces?
Antes de saber cómo podemos sellar la página, sabremos cómo funciona el sello, en general. Y como prerrequisito para ello es aprender sobre algo que me gusta llamar… La Máquina Mágica (Hash Function)
Esta máquina tiene un funcionamiento muy sencillo. Le metes una caja con un número y te devuelve unos caracteres. Parece una máquina inútil, pero veremos que es la clave de este sistema.
Imaginemos que a esa máquina le metemos una cajita con el número 4, lo procesa y nos devuelve la palabra ‘dcbea’.
¿Cómo convirtió el número 4 a esta palabra? Nadie lo sabe. Además, es un proceso irreversible. Si le damos la palabra’ dcbea’, es imposible saber cuál era el número original. Pero cada vez que le demos a la máquina el número 4, siempre, nos devolverá la palabra “dcbea”.
Vamos a probarla de nuevo ¿Qué tal si le metemos una cajita con el número 26?
Esta vez tenemos’ 94c8e’. Interesante! Por lo tanto, las palabras también pueden contener los números.
Ahora te propongo un acertijo
“¿Puedes decirme qué número tengo que meter en la cajita para que reciba una palabra que empiece con tres ceros a la derecha? Por ejemplo, 000ab o 00098 o 00098 o 000fa o cualquier cosa entre los otros.”
iensa en la pregunta por un momento.
Hemos comentado que la máquina tiene una propiedad y es que solo funciona de “izquierda a derecha”. Con el resultado que recibimos, es imposible saber el número original.
Así que la pregunta que te hice, tiene algo de trampa.
Se me ocurre un método, un poco burro. ¿Por qué no intentamos cada número del universo uno por uno hasta que tengamos una palabra que empiece con tres ceros a la cabeza?
Siendo optimistas, después de varios miles de intentos, acabaremos con un número que dará el resultado deseado a la derecha.
La propiedad más importante de esta máquinas es que – “Dada una salida, es extremadamente difícil calcular la entrada, pero dada la entrada y la salida, es bastante fácil verificar si la entrada conduce a la salida”.
¿Cómo utilizar estas máquinas para sellar una página?
Usaremos esta máquina mágica para generar un sello para nuestra página. Como siempre, empezaremos con una situación imaginaria.
Imagina que te doy dos cajitas. La primera cajita contiene el número 20893. ¿Puedes calcular que número tiene que tener la segunda cajita para que cuando se sume al número de la primera (20893) y pase por la máquina no sé una palabra que comience con tres ceros?”
sta es una situación similar a la que vimos anteriormente y hemos aprendido que la única manera de calcular tal número es probando cada número disponible en el universo entero.
Después de varios miles de intentos, encontraremos un número, digamos 21191, que cuando se añade a 20893 (es decir, 21191 + 20893 = 42084) y alimentado a la máquina, dará una palabra que satisfaga nuestros requisitos.
En tal caso, este número, 21191 se convierte en el sello para el número 20893. Supongamos que hay una página con el número 20893 escrito en ella. Para sellar esa página (por ejemplo nadie puede cambiar el contenido de la misma), pondremos una placa con la etiqueta’ 21191′ encima. Tan pronto como el número de precinto (es decir, 21191) está pegada en la página, la página está sellada.
Si alguien quiere verificar si la página ha sido alterada, todo lo que tendría que hacer es sumar el contenido de la página al número de sellado y pasarlo por la máquina mágica. Si la máquina da una palabra con tres ceros a la izquierda, el contenido no fue tocado. Si la palabra que sale no cumple con nuestros requisitos, podemos tirar la página porque su contenido está comprometido y no sirve de nada.
Utilizaremos un mecanismo de sellado similar para sellar todas nuestras páginas y eventualmente colocarlas en nuestras respectivas carpetas.
Finalmente, sellando nuestra página…
Para sellar nuestra página que contiene las transacciones de la red, necesitaremos calcular un número que cuando se agrega a la lista de transacciones y se alimenta a la máquina, recibimos una palabra que comienza con tres ceros.
En este ejemplo, a nivel ilustrativo hemos puesto como condición que la palabra saliente tenga 3 ceros a la izquierda, la realidad del blockchain es mucho más complicada y segura.
Ahora que sabemos como se sella la página, volveremos al momento en el que nos habíamos quedado sin hojas para escribir más transacciones.
Cada uno, se ha ido a su máquina mágica para sacar el sello que tiene que poner a la página, esto lleva su tiempo así que el primero en hacerlo, se lo grita a los demás “Oye! Que me sale que tenemos que firmar la hoja con el número 912574 ¿Os sale lo mismo a vosotros?”
Como seguramente al resto les lleve mucho tiempo calcular este número, simplemente lo meten por la máquina y comprueben que es correcto. Si es así, todos dicen “Sí, es correcto” y firman.
Pero, ¿qué pasa si para alguien, digamos al #7, no le sale ese número? Estos casos no son inusuales. Las posibles razones de esto podrían ser:
- Podría haber oído mal las transacciones que se anunciaron en la red
- Pudo haber escrito mal las transacciones que fueron anunciadas en la red
- Podría haber tratado de engañar o ser deshonesto al escribir transacciones, ya sea para favorecerse a sí mismo o a alguien más en la red
No importa cuál sea la razón, #7 tiene sólo una opción – descartar su página y copiar la del resto. Si no hace esto, no puede seguir escribiendo más transacciones.
Cualquiera que sea el número de sellado que la mayoría acuerde, se convierte en el número de sellado honesto.
Entonces, ¿por qué todo el mundo gasta recursos haciendo el cálculo cuando sabe que alguien más lo calculará y se lo anunciará? ¿Por qué no se sienta y espera el anuncio?
Gran pregunta. Aquí es donde los incentivos entran en escena. Toda persona que sea parte de la cadena de Blockchain es elegible para recibir recompensas. El primero en calcular el número de precinto es recompensado con dinero por sus esfuerzos (realmente por el esfuerzo de ceder parte de su CPU y electricidad, es la recompensa que reciben los “mineros”).
Simplemente imagínese, si #5 calcula el número de sellado de una página, él es recompensado digamos que con un dólar y el saldo de su cuenta se incrementa con con esa cantidad sin disminuir el saldo de la cuenta de nadie más.
Así es como Bitcoin entró en existencia. Fue la primera moneda que se negoció en una cadena de bloques (es decir, el registros distribuidos). Y a cambio, para mantener los esfuerzos en la red, la gente recibió Bitcoins.
Cuando hay suficiente gente que posee Bitcoins, ellos crecen en valor, haciendo que otras personas quieran Bitcoins; haciendo que Bitcoins crezca aún más en valor; haciendo que aún más gente quiera Bitcoins; haciéndolos crecer en valor aún más; y así sucesivamente.
Las recompensas hacen que todos sigan trabajando en la red.
Y una vez que todos guardan la página en sus carpetas, sacan una nueva página en blanco y repiten todo el proceso de nuevo, haciéndolo para siempre.
Y así, amigos míos, es como funciona Blockchain.
Ahora vamos a intentar asaltar la banca. Imagínate que ya hay cinco páginas en la carpeta – todas selladas con un número de sellado. ¿Qué pasa si vuelvo a la segunda página y modifico una transacción para favorecerme? El número de sellado permitirá a cualquiera detectar la inconsistencia en las transacciones, ¿verdad? ¿Qué pasa si sigo adelante y calculo un nuevo número de sello también para las transacciones modificadas y etiquete la página con eso en su lugar?
Para evitar este problema de que alguien vuelva atrás y modifique una página (bloque) así como el número de sellado, hay un pequeño giro en la forma de calcular el número de sellado.
¿Recuerdas cuando te dije que te había dado dos cajas – una conteniendo el número 20893 y otra vacía para que la calculases? En realidad, para calcular el número de sellado en una cadena en bloque, en lugar de dos cajas, hay tres: dos previamente calculadas y una a calcular.
Una caja contiene la lista de transacciones y una caja contendrá el número de precinto. La tercera caja contiene la salida de la máquina mágica para la página anterior.
Con este pequeño truco, nos hemos asegurado de que cada página depende de su página anterior. Por lo tanto, si alguien tiene que modificar una página histórica, también tendría que cambiar el contenido y el número de sellado de todas las páginas después de eso, para mantener la cadena coherente.
Si un individuo, de los diez que imaginamos al principio, intenta hacer trampa y modificar el contenido de la cadena de bloques (la carpeta que contiene las páginas con la lista de transacciones), tendría que ajustar varias páginas y también calcular los nuevos números de sellado para todas esas páginas. Sabemos lo difícil que es calcular los números de sellado. Por lo tanto, un tipo deshonesto en la cadena no puede vencer a los nueve tipos honestos.
Lo que sucederá es que, desde la página que el tipo deshonesto trata de engañar, estaría creando otra cadena en la red, pero esa cadena nunca podría alcanzar a la cadena honesta – simplemente porque los esfuerzos y la velocidad de un tipo no pueden superar los esfuerzos acumulativos y la velocidad de nueve. Por lo tanto, garantizar que la cadena más larga de una red es la cadena honesta.
Y creo que ya sé lo que estás pensando. ¿Y si en vez de uno, seis tipos se vuelven deshonestos e intentan sacar el dinero a los otros cuatro?
En ese caso, el protocolo se quedará sin efecto. Y se conoce como “El ataque del 51%”. Si la mayoría de los individuos en la red decide volverse deshonesto y engañar al resto de la red, el protocolo fallará su propósito.
Y esa es la única razón vulnerable por la que los Blockchains podrían colapsar si alguna vez lo hacen. Es muy poco probable que suceda, pero todos debemos conocer los puntos vulnerables del sistema. Se basa en la suposición de que la mayoría de la gente es siempre honesta y que realizar un ataque requiere una inversión que seguramente no salga rentable.