Cómo verificar quién es Satoshi Nakamoto

Versió en català

Una de las múltiples ventajas que tiene la criptografía es que permite minimizar la confianza que las diferentes partes de un protocolo tienen entre ellas cuando se ejecuta, asegurando, al mismo tiempo, que todo el mundo habrá actuado correctamente. En ocasiones, no sólo se consigue minimizar la confianza entre las partes sino que incluso se puede eliminar totalmente, creando sistemas en los que el correcto funcionamiento de los usuarios se garantiza gracias a que la confianza en el sistema no recae en puntos concretos (que podrían ser deshonestos) sino que queda distribuida entre todos los participantes del sistema.

No es exagerado decir que el máximo exponente puesto en práctica de estos tipos de sistemas es el de la criptomoneda Bitcoin. Justamente, el carácter distribuido de su modelo de confianza es una de sus fortalezas puesto que no hace falta que sus usuarios confíen en ninguna entidad concreta para usarlos.

Ejemplos de curvas elípticas. Fuente: Wikipedia - Licencia: CC BY-SA 3.0

Ejemplos de curvas elípticas. Fuente: Wikipedia – Licencia: CC BY-SA 3.0

Entender este hecho hace incomprensible que se continúe cayendo en el error de apoyarse en círculos reducidos de confianza para verificar la identidad de Satoshi Nakamoto, pseudónimo utilizado por el creador de los bitcoins. Esto es lo que le ha pasado a la BBC con la identificación de Craig Wright, identificación que se verificó bajo un secretismo que, paradójicamente, la criptografía en ningún caso justifica.

Así pues, gracias al hecho que la identidad de Satoshi Nakamoto va ligada a una moneda que puede funcionar sin ninguna autoridad de confianza, parece obvio que la identidad de Satoshi también se tiene que poder verificar sin ninguna autoridad de confianza. Y evidentemente, así es.

De todas maneras, antes de explicar cómo hacerlo partiremos del supuesto que la identidad de Satoshi Nakamoto va intrínsecamente ligada a la posesión de ciertas claves criptográficas. En efecto, por definición, el creador del Bitcoin es el autor del primer bloque de la blockchain de bitcoins. En este bloque, sólo aparece una transacción de generación la cual contiene una dirección de bitcoins que indica dónde van a parar los primeros 50 bitcoins que se minaron.

En el sistema Bitcoin, toda dirección de bitcoins va ligada a un par de claves de un sistema criptográfico de curvas elípticas. Por lo tanto, el usuario asociado a una dirección de bitcoins tiene en su poder una clave privada y una clave pública relacionadas con esta dirección. La relación entre estos tres elementos es única y tiene las siguientes particularidades:

  1. A partir de la dirección de bitcoins no se puede conocer ni la clave pública ni la clave privada.

  2. A partir de la clave pública no se puede conocer la clave privada pero sí que se puede obtener la dirección de bitcoins.

  3. A partir de la clave privada se puede obtener tanto la clave pública como la dirección de bitcoins.

  4. Utilizando la clave pública se puede demostrar el conocimiento de la clave privada sin necesidad de revelarla.

Así pues, si sólo nos centramos con el primer bloque (este razonamiento se puede extender a la mayoría de los bloques minados en los inicios del bitcoin) una persona, diremos el Sr. X, puede elegir dos métodos para probar, ante un Verificador, que es Satoshi Nakamoto.

El primer método, poco recomendable, sería que el Sr, X proporcionara al Verificador la clave pública correspondiente a la siguiente dirección:

1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

Esta dirección es la que aparece en el primer bloque de la blockchain. Dada la condición a), sólo quien ha creado la dirección de bitcoins puede conocer las claves asociadas y por lo tanto, sería fácilmente verificable. Nadie más que Satoshi conoce la clave publica correspondiente a esta dirección.

Como es evidente, este método presenta un problema importante, y es que una vez que el Sr. X ha realizado la prueba ante el Verificador, el Verificador es el único que puede estar seguro que X es Satoshi. En efecto, en este proceso, el Verificador obtiene el valor de la clave pública correspondiente a la dirección y, por lo tanto, a partir de este momento y utilizando el mismo sistema puede hacer creer a un tercero que él, el Verificador, es el propio Satoshi.

Por eso, la prueba que la comunidad criptográfica espera de un Sr. X para concluir que efectivamente es Satoshi Nakamoto es una firma que utilice la clave privada correspondiente a la dirección del primer bloque. El sr. X podría hacer pública la siguiente información:

Texto

‘Jordi Herrera es Satoshi Nakamoto’

Firma

H3YFma5cd21xW72cNceJwMngqmbvFrZaxCtzaCRp+M5qM2HEnWkek9qWYVu2+XwKUtrUrUwF5N8exASuO1IL6ZI=

Clave pública

0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B23522CD470243453A299HACE9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6

El Verificador tendrá que realizar dos verificaciones. La primera será comprobar que la clave pública proporcionada genera efectivamente la dirección que hay en el primer bloque de la blockchain. La segunda validación consistirá en validar, utilizando la clave pública de forma estándar, la firma que se proporciona. (Nota: ¡no hace falta que perdáis el tiempo intentando validar este ejemplo con la dirección del primer bloque de la cadena, su validación no es correcta, puesto que ¡quien escribe esta entrada ya se autodescarta como Satoshi!)

Evidentemente, este proceso por el cual se verifica la identidad de Satoshi podría ser totalmente público y transparente, puesto que el Sr. X podría hacer pública esta información a través de cualquier medio (blogs, foros, correo electrónico, etc.) y utilizando esta mínima información, cualquier persona podría verificar su veracidad.

En el supuesto que rodea al artículo de la BBC, el procedimiento por el cual el Sr. Wright demostró ser Satoshi fue probando la posesión de la clave privada del primer bloque, por medio de la realización de una firma digital. Ahora bien, y aquí está el punto clave, las condiciones en las que se realizó el proceso no están claras del todo y no permiten disipar la duda sobre un posible fraude durante la validación de la firma. Además, la irreproducibilidad del proceso en la validación de la firma (todavía no se ha hecho pública la firma) hace que no se pueda dar por buena la validación de la identidad de Satoshi.

En resumen, que en vistas a la facilidad y simplicidad con la que la criptografía permite validar la identidad de Satoshi, parece extraño que los medios todavía continúen “mordiendo el anzuelo” ante posibles pruebas esotéricas en habitaciones cerradas y entornos controlados.

J. Herrera Joancomartí es licenciado en matemáticas por la Universitat Autònoma de Barcelona (UAB) y Doctor por la Universitat Politècnica de Catalunya (UPC). Es profesor del Departamento de Ingeniería de la Información y les Comunicaciones de la UAB y coordina el programa de doctorado de Informática de la UAB. También es profesor colaborador de la asignatura de criptografía en el Grado de Ingeniería Informática de la UOC.

Un dels múltiples avantatges que té la criptografia és que permet minimitzar la confiança que les diferents parts d’un protocol tenen entre elles quan s’executa, assegurant, al mateix temps, que tothom haurà actuat correctament. En ocasions, no només s’aconsegueix minimitzar la confiança entre les parts sinó que fins i tot es pot eliminar totalment, creant sistemes en els que el correcte funcionament dels usuaris es garanteix gràcies a que la confiança en el sistema no recau en punts concrets (que podrien ser deshonestos) sinó que queda distribuïda entre tots els participants del sistema.

No és exagerat dir que el màxim exponent posat en pràctica d’aquests tipus de sistemes és el de la criptomoneda Bitcoin. Justament, el caràcter distribuït del seu model de confiança n’és una de les seves fortaleses ja que no cal que els seus usuaris confiïn en cap entitat concreta per fer-los servir.

Exemples de corbes el·líptiques. Font: Wikipedia - Llicència: CC BY-SA 3.0

Exemples de corbes el·líptiques. Font: Wikipedia – Llicència: CC BY-SA 3.0

Entendre aquest fet fa incomprensible que es continuï caient en l’error de recolzar-se en cercles reduïts de confiança per verificar la identitat d’en Satoshi Nakamoto, pseudònim utilitzat pel creador dels bitcoins. Això és el que li ha passat a la BBC amb la identificació de Craig Wright, identificació que es va verificar sota un secretisme que, paradoxalment, la criptografia en cap cas justifica.

Així doncs, gràcies al fet que la identitat d’en Satoshi Nakamoto va lligada a una moneda que pot funcionar sense cap autoritat de confiança, sembla obvi que la identitat d’en Satoshi també s’ha de poder verificar sense cap autoritat de confiança. I evidentment, així és.

De tota manera, abans d’explicar com fer-ho partirem del supòsit que la identitat d’en Satoshi Nakamoto va intrínsecament lligada a la possessió de certes claus criptogràfiques. En efecte, per definició, el creador del Bitcoin és l’autor del primer bloc de la blockchain de bitcoins. En aquest bloc, només hi apareix una transacció de generació la qual conté una adreça de bitcoins que indica on van a parar els primers 50 bitcoins que es van minar.

En el sistema Bitcoin, tota adreça de bitcoins va lligada a un parell de claus d’un sistema criptogràfic de corbes el·líptiques. Per tant, l’usuari associat a una adreça de bitcoins té en el seu poder una clau privada i una clau pública relacionades amb aquesta adreça. La relació entre aquests tres elements és única i té les següents particularitats:

  1. A partir de l’adreça de bitcoins no es pot conèixer ni la clau pública ni la clau privada.

  2. A partir de la clau pública no es pot conèixer la clau privada però si que es pot obtenir l’adreça de bitcoins.

  3. A partir de la clau privada es pot obtenir tant la clau pública com l’adreça de bitcoins.

  4. Utilitzant la clau pública es pot demostrar el coneixement de la clau privada sense necessitat de revelar-la.

Així doncs, si només ens centrem amb el primer bloc (aquest raonament es pot estendre a la majoria dels blocs minats en els inicis del bitcoin) una persona, en direm el Sr. X, pot triar dos mètodes per provar, davant d’un Verificador, que és en Satoshi Nakamoto.

El primer mètode, poc recomanable, seria que el Sr, X proporcionés al Verificador la clau pública corresponent a la següent adreça:

1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

Aquesta adreça és la que apareix en el primer bloc de la blockchain. Donada la condició a), només qui ha creat l’adreça de bitcoins en pot conèixer les claus associades i per tant, seria fàcilment verificable. Ningú més que en Satoshi coneix la clau publica corresponent a aquesta adreça.

Com és evident, aquest mètode presenta un problema important, i és que una vegada el Sr. X ha realitzat la prova davant del Verificador, el Verificador és l’únic que pot estar segur que X és en Satoshi. En efecte, en aquest procés, el Verificador obté el valor de la clau pública corresponent a l’adreça i, per tant, a partir d’aquest moment i utilitzant el mateix sistema pot fer creure a un tercer que ell, el Verificador, és el propi Satoshi.

Per això, la prova que la comunitat criptogràfica espera d’un Sr. X per concloure que efectivament és en Satoshi Nakamoto és una signatura que utilitzi la clau privada corresponent a l’adreça del primer bloc. El sr. X podria fer pública la següent informació:

Text

‘En Jordi Herrera és en Satoshi Nakamoto’

Signatura

H3YFma5cd21xW72cNceJwMngqmbvFrZaxCtzaCRp+M5qM2HEnWkek9qWYVu2+XwKUtrUrUwF5N8exASuO1IL6ZI=

Clau pública

0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B23522CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6

El Verificador haurà de realitzar dues verificacions. La primera serà comprovar que la clau pública proporcionada genera efectivament l’adreça que hi ha en el primer bloc de la blockchain. La segona validació consistirà en validar, utilitzant la clau pública de forma estàndard, la signatura que es proporciona. (Nota: no cal que perdeu temps intentant validar aquest exemple amb l’adreça del primer bloc de la cadena, la seva validació no és correcta, ja que qui escriu el post ja s’autodescarta com a Satoshi!)

Evidentment, aquest procés pel qual es verifica la identitat d’en Satoshi podria ser totalment públic i transparent, ja que el Sr. X podria fer pública aquesta informació a través de qualsevol mitjà (blogs, fòrums, correu electrònic, etc.) i utilitzant aquesta mínima informació, qualsevol persona podria verificar-ne la veracitat.

En el cas que envolta l’article de la BBC, el procediment pel qual el Sr. Wright va demostrar ser en Satoshi va ser provant la possessió de la clau privada del primer bloc, per mitjà de la realització d’una signatura digital. Ara bé, i aquí hi ha el punt clau, les condicions en les que es va realitzar el procés no estan clares del tot i no permeten dissipar el dubte d’un possible frau durant la validació de la signatura. A més, la irreproducibilitat del procés en la validació de la signatura (encara no s’ha fet pública la signatura), fa que no es pugui donar per bona la validació de la identitat d’en Satoshi.

En resum, que en vistes a la facilitat i simplicitat amb la que la criptografia permet validar la identitat d’en Satoshi, sembla estrany que els mitjans de comunicació encara continuïn “picant l’ham” a possibles proves esotèriques en habitacions tancades i entorns controlats.

J. Herrera Joancomartí és llicenciat en matemàtiques per la Universitat Autònoma de Barcelona (UAB) i Doctor per la Universitat Politècnica de Catalunya (UPC). És professor del Departament d’Enginyeria de la Informació i les Comunicacions de la UAB i coordina el programa de doctorat d’Informàtica de la UAB. També és professor col·laborador de l’assignatura de criptografia al Grau d’Enginyeria Informàtica de la UOC.

CC BY-NC-SA 4.0 Cómo verificar quién es Satoshi Nakamoto por Colaborador UOC está licenciado bajo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional.

1 Comment

  1. Muy buena explicación Sr Herrera.
    El juego de claves públicas y privadas para su utilización, no sólo como herramienta para emitir pagos es muy útil.
    Ya sea para verificar textos como poseedor de una dirección determinada, como para utilizarlas como proof of existence, firmando un hash de un documento y así poder garantizar que ese documento estaba en tu poder X día a X hora, y todo gracias a la firma digital en la que se basa Bitcoin.

    Reply

Comentar

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Leer entrada anterior
Optimización de código: un código más eficiente

En los primeros tiempos de la informática, programar exigía utilizar lenguajes muy próximos a la plataforma de ejecución. El código máquina o...

Cerrar