El Blockchain cambiará tu vida : El contenido

El Blockchain va a cambiar nuestras vidas para siempre. ¿Quieres saber por qué?

Pensemos en las cosas importantes que se hacen en la vida. Nacer, estudiar, casarse, tener hijos, comprarse una casa, pagar la hipoteca, trabajar, cobrar un salario, escribir un libro, crear algo nuevo…

¿Qué tienen todas estas cosas en común? Es curioso que todas necesiten de un tercero que nos certifique que es real. Nuestra identidad está en un registro civil, nuestros estudios en un certificado, nuestro casamiento en un registro eclesiástico o civil refrendado por testigos, la hipoteca en un notario, el salario en la Seguridad Social, en Hacienda y con el banco de por medio. Incluso los hijos, el bebé tiene una pulsera identificativa, y el padre…, en fin.

Lo anterior, de paso sirve para evitar que un pago se realice dos veces, o que otro usurpe nuestra legítima propiedad, etc. Todo esto ha dado lugar a sectores que todos conocemos: bancos, notarios, registradores, patentes, derechos de propiedad, las propias instituciones públicas que certifican desde nuestro título académico, nuestra situación laboral, o los días cotizados.

Todo esto va a cambiar con el Blockchain. Y si no, al tiempo. Los bancos ya se están preparando a marchas forzadas. Si yo perteneciera a alguno de los otros sectores me pondría manos a la obra para incorporar esto a su forma de proceder, y adaptar el modelo de negocio al mismo. El que no lo haga, en mi opinión, desaparecerá.

Cuando se habla de por qué el Blockchain va a sustituir a todo lo anterior, la mayoría de las descripciones que he visto del mismo son muy superficiales. Se limitan a describir el Blockchain como una serie de bloques que contienen algo, que cada nuevo bloque está unido al anterior, que contienen cosas que una vez introducidas no se pueden cambiar y que no necesitan de terceros “de confianza” que den fe de lo anterior. Mi objetivo estaría en tratar de arrojar un poco más de luz sobre estas frases intentando no caer en la típica jerga técnica. Darnos cuenta de la cantidad de tecnología y circunstancias que han confluido en este esquema tecnológico denominado Blockchain y que, en mi opinión, sin duda, nos va a cambiar la vida.

Básicamente necesitamos comprobar que el Blockchain proporciona:

  • Que el contenido sea seguro
  • Que nada se pierda
  • Que ningún cambio pase desapercibido
  • Que no se pueda emplear el mismo contenido (por ejemplo un pago) varias veces (“double spending”)
  • Que no haga falta un organismo “centralizado” que de fe de lo anterior
  • Que sea rápido y barato

Empecemos por el principio, que en mi opinión es lo más importante. Vamos a hablar del Contenido. En futuros artículos escribiremos sobre los otros apartados. En cuanto al contenido, como es lógico, éste no es literal. Está cifrado. En realidad, esto lo forman tres pasos: codificación, encriptación e integridad.

Codificación. Cuando hablamos de estos temas, los conceptos son muy importantes. El contenido original puede ser múltiple y variado, desde texto, imágenes, combinaciones de ambos, y cualquier otra cosa que se pueda digitalizar. En realidad, diríamos que se pueda codificar. Este pues sería el primer paso. No hay ánimo de ocultar, sino simplemente de pasar un lenguaje “humano” a un lenguaje “usable” por los ordenadores y similares. Es reversible y se puede pasar de “humano” a “usable” y viceversa sin problemas. Por ejemplo, el código ASCII con el que la mayoría de los ordenadores funcionan y que asignan un código a cada carácter de escritura sería un ejemplo.

02turing2-superJumbo
Martin E. Hellman, izq., y Whitfield Diffie in 1977. Fuente: Chuck Painter/Stanford News Service NYTimes

Encriptación. Si queremos que nadie, o con mucha dificultad, se entere de lo que hemos puesto, necesitamos encriptarlo. Esto es muy antiguo, de mucho antes que la era digital. Desde que el mundo es mundo, la gente siempre ha tratado de mandar mensajes que sólo pudieran ser descifrados por el destinatario, y no por los demás. La mayoría de los elementos eran ingeniosos (escribir al revés como Leonardo da Vinci) o mecánicos (engranajes, maquina Enigma, etc.). En todos ellos, el emisor y el receptor tenían que tener una clave que les permitiera codificar y decodificar el sistema. La búsqueda de dicha clave por terceras personas ha dado lugar a mucha literatura tanto de la clave directamente como de la deducción de la misma a través de lo ya codificado.

Sin embargo, la era digital cambió todo esto de una manera no vista jamás antes. Y cambió en 1976, es decir, no hace tanto. En noviembre de ese año, Whitfield Diffie y Martin Hellman publicaron su estudio “New Directions in Cryptography” en el IEEE (https://www-ee.stanford.edu/~hellman/publications/24.pdf ). Desde entonces nada fue igual. Fueron capaces de demostrar que uno podía enviar una clave públicamente delante de las narices de cualquiera que lo quisiera ver, y sin embargo ésta sólo les serviría a los dos partícipes en la transmisión (emisor y receptor). Parece cosa de magia, ¿no? Déjenme explicarles el truco.

Recordemos, la información se manda encriptada. Se necesita algo que permita al que lo manda encriptarla y al que lo recibe des-encriptarla. Ese algo es una o varias claves que permitan realizar este proceso. Algo así como la llave que me permite abrir la puerta. Pensemos que dicha clave tiene que ser el resultado de un proceso de cálculo. Imaginemos que la clave así obtenida y que mando de manera pública a mi interlocutor, se denomina Clave Pública, y la variable que me ha permitido calcularla, y que sólo se yo, la denominamos Clave Privada. Imaginemos algo simple, mi clave pública es el doble de clave privada: . Esta función es fácilmente reversible. Si X=1, entonces Y=2, pero como sé la función, si me dicen el resultado Y=2; no me resulta muy difícil deducir que X=1.

Sin embargo, qué pasaría si la potencia de cálculo necesaria para pasar de la Privada a la Pública fuese muy diferente de la necesaria para pasar de la Pública a la Privada. Es más, qué pasaría si fuesen tan diferentes que hicieran este último paso absolutamente inviable. Aquí es donde entran a jugar las funciones logarítmicas (elípticas en concreto). No voy a entrar en la parafernalia matemática que hay detrás, pero si en destacar la asimetría del proceso. Imaginemos que mi clave pública, Y, se deriva de mi clave privada X mediante la siguiente fórmula :  (siendo a el llamado generador, q un número primo. La función mod es el resto que queda en la división entre  y q ). Mi clave privada X sería por tanto una función logarítmica tal que:

Para resaltar la asimetría del asunto, si q lo elegimos adecuadamente (por ejemplo , si b=200), para sacar Y a partir de X harían falta unas 400 multiplicaciones. Sin embargo para el reverso, es decir,  sacar X a partir de Y harían falta algo así como  operaciones, una burrada de veces más que 400.

Imaginemos dos amigos, María y Pepe, que quieren transmitirse información sensible utilizando el método descrito. Imaginemos que quieren transmitirse un número secreto. Imaginemos que existe otra persona, Carlos, que está observando sus comunicaciones. María y Pepe se intercambian sus claves públicas, pero sin la clave privada el mensaje seguirá siendo prácticamente imposible de descifrar. Acabamos de demostrar que, si Carlos ve la Clave Pública, lo tiene muy difícil encontrar a partir de ella la Clave Privada que le permita descifrar el mensaje. Veamos ahora cómo María y Pepe pueden comprobar cuál era ese mensaje secreto. Este va a ser un ejemplo extremadamente simplificado, pero espero que ilustre el punto.

BlockchainPartamos de la misma fórmula de creación:

Imaginemos que q es el número primo 17. Que  es 3. X es la Clave Privada e Y es la Clave Pública.

María elige como Clave Privada el 15 (que sólo sabe María). Pepe, que no es supersticioso, elige el 13 (que sólo sabe Pepe).

La Clave Pública de María será  = (3)^15 mod 17 = 14.348.907 mod 17 = 6

La Clave Pública de Pepe será  = (3)^13 mod 17 =1.594.323 mod 17 = 12

De una manera pública (que Carlos ve) María le envía el 6 a Pepe y Pepe le envía el 12 a María. Ya hemos visto lo difícil que es sacar la clave privada (15 y 13 respectivamente) partiendo del 6 o el 12. Veamos cómo además Pepe puede comprobar qué le ha mandado María y viceversa. Pepe recibe el 6 y para chequear el origen lo utiliza como α , es decir, calcula su Ymensaje como (6)^¹³ mod 17. Recordemos que ese 6 salía (por María) de 6 =(3)^¹5 mod 17 , por lo tanto y sustituyendo 6 por su origen, su Ymensaje es (6)^¹³ mod 17 = ((3)^¹5)^13 mod 17

En el caso de María, el cálculo sería Ymensaje = (12)^15 mod 17 . O lo que es lo mismo, repitiendo el mismo proceso que Pepe = ((3)^¹3)^15 mod 17. Como vemos el número es exactamente el mismo: ((3)^¹5)^13 es lo mismo que ((3)^¹3)^15.  Si alguien tiene ganas de calcularlo, el resultado es 10, que era el número secreto que querían intercambiar delante de las mismas narices de Carlos.

Integridad. Finalmente, María y Pepe quieren estar seguros que lo que se han mandado no sufre una alteración. En inglés a esto se le denomina “Hashing”. Imaginemos un texto cualquiera como el siguiente: “Este texto es una prueba de que no se puede alterar sin consecuencias.”. Si utilizamos un método simple de Hashing, el resultado sería: “14484a953ee645c59017d35a700df61f”. Si simplemente cambiamos la mayúscula inicial por minúscula, el resultado sería “b1022567a41d40deda80618d20df019d”. Vemos que una ligera modificación implica un resultado completamente diferente.

blockchain-bitcoin-criptomonedasEs evidente que el contenido a transmitir está protegido y solo descifrable a través del intercambio de claves públicas y el mantenimiento en secreto de la clave privada. Hemos visto finalmente que cualquier cambio en el contenido del bloque provocaría un cambio en la codificación (Hash).

En próximos artículos hablaremos de los otros aspectos, es decir, introduciremos los conceptos de “descentralización”, sus implicaciones, y explicaremos como estos métodos redundan en rapidez y economía y una gran cantidad de posibles aplicaciones, desde las cryptomonedas (Bitcoin), hasta los contratos (Smartcontracts) pasando por transacciones bancarias (Fintech), o incluso censos y votaciones.

 

Francisco Canos

Artículo publicado el 12 de Agosto de 2017 en:diario-abierto-logo

Leave a Reply