bitcoin-blockchain-origins Blockchain

El origen de Bitcoin y Blockchain, ¿inventados desde cero por un desconocido?

21/02/19

Desde hace algún tiempo el término “Blockchain” está en todas partes. Los foros y presentaciones en los que se habla sobre Blockchain tienen el lleno asegurado. Los fabricantes comercializan productos idóneos para el desarrollo o basados en Blockchain. Los grandes proveedores Cloud ofrecen Blockchain as a Service.

Pero, ¿cómo y de dónde surge? En este post vas a conocer la historia de Bitcoin y Blockchain desde sus orígenes:

Qué es Bitcoin y qué es Blockchain

Bitcoin es una criptomoneda ideada en 2008 por Satoshi Nakamoto, pseudónimo utilizado por alguien que de momento se mantiene en el anonimato. Se basa en la gestión de un libro de cuentas común de todas las transacciones en Bitcoins mediante consenso de múltiples nodos, denominados mineros. Las transacciones ejecutadas en un determinado intervalo de tiempo se agrupan en un bloque de información que se enlaza al final de una cadena de bloques asegurada mediante técnicas criptográficas. Este mecanismo es Blockchain.

Hasta aquí lo que probablemente ya conozcas si tienes interés en Bitcoin o Blockchain. Qué es, cómo funciona y qué posibilidades tiene son asuntos tratados frecuentemente en cualquier conferencia, artículo o vídeo de Youtube. Pero… ¿cómo hemos llegado hasta aquí?, ¿todo esto fue creado desde cero por un desconocido?

Blockchain es un paso adelante en la larguísima historia de la criptografía aplicada y se apoya en sólidos trabajos previos. Satoshi utilizó hábilmente la investigación desarrollada por numerosos criptógrafos para crear un sistema de dinero electrónico anónimo. Gracias a este esfuerzo nos ha proporcionado una herramienta criptográfica de gran potencial que revolucionará numerosos procesos y aplicaciones en diversos ámbitos.

Desgraciadamente es difícil encontrar referencias sobre los trabajos anteriores a 2008. En este artículo recorreremos la historia previa a Satoshi y honraremos a quienes le permitieron dar su gran paso.

1978: Dinero electrónico sin anonimato

Tras el nacimiento de la criptografía de clave pública, y en concreto de la técnica de firma RSA ideada en 1978 por Rivest, Shamir y Adleman, fue sencillo comprender que las firmas digitales podrían ser utilizadas para la creación de dinero electrónico. Veamos, de forma muy simplificada, cómo:

1.Una entidad emisora de moneda firma un número de serie asignándole un valor como moneda digital. Lo entrega a Alicia.

Blockchain: minting entity signs a serial number to assign value to it as a digital coin

2. Alicia utiliza la moneda digital para pagar un artículo a Benito.

Blockchain: uses the digital coin to pay for an item

3. Antes de aceptar el pago Benito verifica la firma del emisor y le consulta si esa moneda digital es válida.

4. Si la verificación es correcta, Benito cierra la transacción.

Blockchain: before accepting the payment, verifies the mint's signature, asks that particular digital coin is valid and close transaction

Este protocolo tiene algún riesgo importante:

  • Al intervenir en todas las transacciones, el emisor es capaz de conocer muchos detalles acerca del perfil de consumo de Alicia y de los clientes de Benito. En otros términos, tiene trazabilidad completa del flujo de pagos.
  • Si en el paso 3 Benito no verifica la validez de la moneda con el emisor podría ser víctima de fraude por doble gasto. En efecto, puesto que la moneda es una cadena de dígitos, Alicia puede hacer infinitas copias idénticas que producirían una verificación correcta de la firma: Todas las copias serían monedas “criptográficamente válidas”. Por este motivo Benito debe comprobar con el emisor, antes de aceptar el pago, que ese número de serie no ha sido gastado con anterioridad.

1982: Dinero electrónico anónimo online

En el foro Crypto’82, David Chaum (www.chaum.com) presentó la ponencia “Blind signatures for untraceable payments”. En este documento Chaum identificaba el riesgo para la intimidad que supondría un sistema como el descrito. Para resolverlo diseñó un nuevo mecanismo criptográfico, las firmas opacas, que permiten evitar que el emisor conozca el origen de la moneda. Veamos el protocolo con un símil en papel. Este símil es trasladable a operaciones criptográficas.

1. Alicia genera un documento en papel que incluye un número de serie aleatorio.

2. Alicia introduce el documento junto con un papel carbón en un sobre cerrado que entrega al emisor.

Blockchain: paper document with a random serial number , introduced in a closed envelope

3. El emisor firma el sobre y lo devuelve a Alicia.

4. Alicia extrae el documento del sobre. Este documento contiene una firma válida del emisor y por tanto es un billete válido, pero el emisor nunca ha visto el número de serie.

Blockchain: the mint signs the envelope and gives it back without seeing the serial number

5. Alicia acude al comercio y paga a Benito con el billete.

Blockchain: paying with the bill

6. Antes de aceptar el pago, Benito verifica la firma y confirma la validez del billete con el emisor.

7. El emisor considerará el billete como válido si la firma es válida y no ha visto anteriormente el número de serie.

8. Si la verificación es correcta, Benito cierra la transacción.

Blockchain: verify the signature and confirm its validity

En el paso 4 de este protocolo se rompe la trazabilidad del pago por el emisor. Él sólo puede estar seguro de que su firma es válida, pero nunca ha conocido el número de serie firmado. Por tanto, no puede trazar el billete que le entrega Benito con el que emitió para Alicia.

Nos queda aún el riesgo del doble gasto, que se sigue resolviendo en el paso 6 mediante una verificación en línea antes de aceptar el pago.

El sistema de Chaum solucionaba los dos grandes riesgos en ese momento: el doble gasto y la trazabilidad.

1988: Dinero electrónico anónimo offline

David Chaum, Amos Fiat y Moni Naor presentaron en Crypto’88  el documento “Untraceable Electronic Cash”. En él se evita la necesidad de verificación en línea previa al pago. Para ello, en la creación del billete queda oculta la identidad de Alicia, de forma que sólo puede ser desvelada por la entidad emisora si Alicia paga dos veces con la misma moneda. Así, si Alicia hace doble gasto el emisor podrá sancionarla. Sigamos con el símil:

1.Alicia genera varios candidatos a billete en forma de documentos en papel, que incluyen: un número de serie aleatorio y un código que oculta su identidad mediante una técnica de compartición de secretos.

2. Alicia introduce los documentos junto con papel carbón en sobres cerrados que entrega al emisor.

Blockchain: bill candidates including random serial number and a code that hide her identity

3. El emisor abre todos los sobres candidatos menos uno y comprueba que todos los documentos se han construido de buena fe e incluyen la identidad oculta de forma correcta. Así, un intento de fraude sería arriesgado. Es improbable que Alicia tenga tanta fortuna como para que el único sobre fraudulento se haya salvado de la revisión. Si cualquiera de los candidatos falla la comprobación, el emisor detiene el proceso puesto que aparentemente Alicia estaría intentando hacer trampa.

4. El emisor firma el sobre restante y lo devuelve a Alicia. Dado que el emisor ha verificado la validez de numerosos candidatos escogidos aleatoriamente, puede estar estadísticamente seguro de que el sobre que firma contiene también un documento válido.

5. Alicia extrae el documento del sobre. Este documento contiene una firma válida del emisor y por tanto es un billete válido, pero el emisor nunca ha visto el número de serie.

Blockchain: the mint signs the lasting envelope and returns it

6. Cuando Alicia va de compras, paga a Benito con el billete. En este proceso Benito pide a Alicia que ejecute una operación aleatoria basada en el código de identidad. El mecanismo de compartición de secretos es tal que dos respuestas distintas permiten desvelar la identidad de Alicia, mientras que una sola respuesta no aporta ninguna información.

Blockchain: secret sharing mechanism allows to calculate a person identity from two different responses

7. Benito verifica la firma y acepta el pago.

Blockchain: verify the signature and accept the payment

8. En algún momento posterior, Benito entrega el billete al emisor.

9. El emisor considerará el billete como válido si la firma es válida y no ha visto anteriormente el número de serie.

Blockchain: the mint consider the bill as valid if the signature is legitimated and the serial number has not been seen

¿Qué ocurre si Alicia duplica el billete en el paso 5?

Podrá pagar con el mismo billete de forma repetida pero, en el segundo pago (paso 6) se generará información suficiente para desvelar su identidad. Las dos respuestas de Alicia estarán disponibles para el emisor en el paso 9. Entonces se podrá conocer su identidad y el emisor podrá iniciar medidas sancionadoras contra ella.

Blockchain: a duplicated bill will disclose her identity and the mint may enact punitive measures against her

Este protocolo introdujo un mecanismo para desincentivar el fraude por doble gasto sin necesidad de verificación en línea. Quizá pueda parecer poca la protección aportada por el hecho de desvelar la identidad del defraudador, pero tengamos en cuenta que las criptomonedas actuales deben ser validadas en línea. Este protocolo es más exigente en ese sentido que las criptomonedas actuales. Hay que tener en cuenta que en los 80 la conexión permanente a Internet no era ni mucho menos habitual. De cara al diseño de un futuro reemplazo digital del efectivo, quizá tampoco deberíamos descartar el riesgo de que nuestra economía requiera conexión permanente…

1992: Cypherpunks

Las ideas de David Chaum tuvieron una gran influencia en el mundo de la criptografía aplicada y los derechos sociales. Sobre la base de las firmas opacas se diseñaron numerosos protocolos mejorando las propuestas originales de David Chaum y se reutilizaron los mismos conceptos para desarrollar otras aplicaciones donde el anonimato era importante, como por ejemplo el voto electrónico.

El interés por la protección de la intimidad y otros derechos sociales y su defensa mediante el uso de la criptografía dio origen a Cypherpunks.

We the Cypherpunks are dedicated to building anonymous systems. We are defending our privacy with cryptography, with anonymous mail forwarding systems, with digital signatures, and with electronic money.

A Cypherpunk’s Manifesto

Cypherpunks era una lista de correo electrónico a la que se suscribían criptógrafos, activistas políticos e investigadores interesados en la protección de la intimidad personal en la evolución digital. En esta lista se desarrollaban protocolos, propuestas técnicas, políticas y filosóficas en un ambiente abierto y colaborador con personas de todo el mundo. Cualquiera que tuviera interés en este asunto en los 90 estaba en Cypherpunks. Y, seguramente, Satoshi Nakamoto también.

2001: BitGold, reduciendo la necesidad de confianza

Por lo general, todas las propuestas relacionadas con el dinero electrónico se centraban en mejorar las propuestas originales de David Chaum protegiendo el anonimato de los participantes al tiempo que evitaban fraudes como el doble gasto. Pero todas tenían un punto en común: se basaban en la CONFIANZA en un tercero. Era necesario involucrar a un tercero que no participaba en el pago: habitualmente el emisor de la moneda. De forma genérica este rol se denomina “tercero de confianza” (de Trusted Third Party, o TTP).

Al cabo de un tiempo surgió inquietud por la necesidad de este rol. Nick Szabo fue el primero que formalizó esta preocupación en “Trusted Third Parties Are Security Holes” de 2001. Aquí Szabo propone desterrar la tendencia de trasladar a soluciones tradicionales los aspectos más complejos de resolver en el diseño de un sistema de seguridad.

The best “TTP” of all is one that does not exist, but the necessity for which has been eliminated by the protocol design, or which has been automated and distributed amongst the parties to a protocol.

Nick Szabo. Trusted Third Parties are Security Holes. 2001.

En 2005 Szabo propuso Bitgold, un primer modelo de dinero electrónico anónimo que no precisa de confianza en un sujeto particular. En Bitgold se introducen muchos elementos que formarán parte posteriormente de Bitcoin:

  • el dinero es acuñado por los participantes del sistema en vez de por un emisor,
  • el uso de pruebas de trabajo, y
  • el registro de transacciones en una red distribuida de nodos.

La creación de dinero en Bitgold sigue este protocolo:

1.Se crea una cadena de bits pública. (Ver paso 4 ya que se trata de un proceso cíclico).

2. Alicia genera una prueba de trabajo basada en esa la cadena de bits. Una prueba de trabajo consiste en realizar un cálculo complejo que requiera un consumo de recursos para resolver un puzle. La solución debe ser sencilla de verificar.

Blockchain: Bitgold protocol required a proof of work string based on the bit string

3. Alicia registra su prueba de trabajo en un registro distribuido de propiedad. Esto constituye su nuevo Bitgold. Este registro, también un diseño de Nick Szabo en 1998, consiste en un conjunto de servidores que mantienen el histórico de transacciones de Bitgold.

4. La última cadena de Bitgold creada por Alicia sirve para generar la siguiente cadena de bits pública del paso 1.

Blockchain: the proof of work string is register to a distributed property title registry

El protocolo de pago es sencillo:

1. Para pagar, Alicia solicita un cambio de titularidad de su Bitgold en el registro, poniéndolo a nombre de Benito. Para ello, firma su cadena de Bitgold junto con la clave pública de Benito y envía el mensaje al menos a un número mínimo (determinado por el diseño) de servidores del registro distribuido de propiedad.

Blockchain: payment protocol with Bitgold

2. Benito verifica que al menos ese número mínimo de servidores ha aceptado la transacción y le consideran por tanto el propietario actual de la cadena de Bitgold transferida.

3. Benito acepta el pago.

Blockchain: Bitgold payment protocol successfull

Bitgold consigue eliminar la necesidad de confianza en un único participante reemplazándola por confianza en un conjunto de nodos que no tienen por qué estar sometidos a una única administración. El sistema es seguro si una mayoría de los nodos es honesta.

Este modelo tiene, también, algunos problemas:

  • El dinero se crea por los usuarios a voluntad en función de su capacidad para resolver la prueba de trabajo.
  • Cualquier operación (acuñado o pago) necesita ser procesado por más de la mitad de los nodos del sistema, lo que representa un problema de escalabilidad.
  • Los participantes deben confiar en el registro distribuido de propiedad y su honestidad no está garantizada por el protocolo.
  • El anonimato y la no-trazabilidad dependen de la implementación.

2008: Bitcoin, reemplazando confianza por consenso

El 31 de octubre de 2008 Satoshi Nakamoto publicó en la lista de correo “The Cryptography Mailing List”, heredera de Cypherpunks, un mensaje que empezaba así:

Message from Satoshi Nakamoto to "the cryptography mailing list"

Con el diseño de Bitcoin, Satoshi conseguía eliminar definitivamente la necesidad de confianza en cualquier entidad participante. En Bitcoin se sustituye la CONFIANZA por CONSENSO. Se trata de un cambio sutil, pero fundamental.

Con el diseño de Bitcoin, la confianza se sustituye por consenso.

Los participantes de Bitcoin más susceptibles sólo necesitan verificar en el protocolo y su implantación. No necesitan fiarse de nadie. En Bitcoin se aúnan:

  • Un mecanismo de creación de monedas definido universalmente por el sistema,
  • Un protocolo que incentiva que los nodos participantes actúen honestamente, y
  • Un modelo relativamente escalable en el que las transacciones requieren comunicación con pocos nodos.

Conclusión

He abordado en este artículo la cuestión del pasado de Blockchain. La pregunta original era: ¿Blockchain fue inventado desde cero por un desconocido?

¿Un desconocido?

No sabemos quién es Satoshi. Si ha permanecido en el anonimato hasta ahora no parece muy probable que vaya a querer salir a la luz pública ahora o en el futuro. Personalmente creo que debe ser alguien que participó en Cypherpunks o The Cryptography Mailing List desde hacía tiempo y con más asiduidad de la que demuestra su pseudónimo. Satoshi construyó Bitcoin sobre las inquietudes y conocimientos existentes allí. La inteligencia con la que aunó distintos conceptos para generar Bitcoin demuestra una destreza que no se consigue fácilmente.

Uno de los candidatos a Satoshi más nombrados es Hal Finney. Tuve la suerte de tratar un poco con Hal a mediados de los 90. Le conocí en Cypherpunks y pronto me ofreció su ayuda en mis estudios vía chat o email. Hal explicó su relación con Bitcoin y Satoshi en varias ocasiones. Si el espíritu de Cypherpunks era la colaboración, Hal era su máximo exponente. Para mí es perfectamente coherente que ante las propuestas de Satoshi en The Cryptography Mailing List, fuera Hal quien estuviera ahí en primera fila prestando ayuda. Siempre tuve la sensación de que Hal era una persona extraordinariamente bondadosa y honesta. Por todo esto creo que sus explicaciones son sinceras.

Hal Finney, one of the most rumored candidates to be Satoshi Nakamoto

Si el espíritu de Cypherpunks era la colaboración, Hal era su máximo exponente.

¿Desde cero?

Espero haber podido aportar algo de luz histórica sobre la evolución de las investigaciones sobre el dinero electrónico anónimo. Una faceta que, con tanto interés por el presente y futuro de Bitcoin y Blockchain, queda a menudo olvidada.

Satoshi diseñó la técnica de Blockchain para abordar problemas no resueltos por quienes antes que él se esforzaron por desarrollar sistemas de dinero electrónico anónimo. La gran virtud de Blockchain y del trabajo de Satoshi es conseguir eliminar la necesidad de confianza en la interacción entre participantes del sistema gracias al propio diseño del protocolo.

Bitcoin y otras criptomonedas son ejemplos de la utilidad de Blockchain en una aplicación específica, pero desde una perspectiva más amplia el nuevo paradigma que representa Blockchain está permitiendo revolucionar numerosas aplicaciones y procesos gracias a la posibilidad de ofrecer seguridad y automatización sin depender de la confianza en individuos o entidades.

En este sentido, Blockchain es un paso en la evolución de la criptografía aplicada y, en concreto, en el esfuerzo por llevar los ideales Cypherpunk a la realidad.

Autor: Jaime Gómez García

Ilustraciones: María José Ruiz Félez

Gracias: Cynthia Serna Box, Alba Molina López, John Whelan and Steven Roose

Santander Global Tech

 

Otros posts