Home < Bitcoin Core Dev Tech < Bitcoin Explained < Bitcoin-designs < Bitcoin Magazine < Andreas Antonopoulos < Austin Bitcoin Developers < Advancing Bitcoin < Baltic Honeybadger < Misc < Chaincode Labs < Lets Talk Bitcoin Podcast < Greg Maxwell < Bit Block Boom < Bitcoin's Academic Pedigree

Bitcoin's Academic Pedigree

Oradores: Arvind Narayanan, Jeremy Clark

Fecha: August 29, 2017

Traducción Por: Julien Urraca

Tags: History

Texto original: https://queue.acm.org/detail.cfm?id=3136559

Pedigrí académico de Bitcoin

El concepto de criptomonedas se basa en ideas olvidadas en la literatura de investigación.

Arvind Narayanan y Jeremy Clark

Si has leído sobre bitcoin en la prensa y tienes cierta familiaridad con la investigación académica en el campo de la criptografía, podrías tener razonablemente la siguiente impresión: La investigación de varias décadas sobre el efectivo digital, comenzando por David Chaum,10,12 no condujo al éxito comercial porque requería un servidor centralizado similar a un banco que controle el sistema y ningún banco quería iniciar sesión. Llegó bitcoin, una propuesta radicalmente diferente para una criptomoneda descentralizada que no necesitaba los bancos, y el efectivo digital finalmente tuvo éxito. Su inventor, el misterioso Satoshi Nakamoto, era un forastero académico, y bitcoin no se parece a las propuestas académicas anteriores.

Este artículo desafía esa opinión al mostrar que casi todos los componentes técnicos de bitcoin se originaron en la literatura académica de los años 80 y 90 (véase la figura 1). Esto no es para disminuir el logro de Nakamoto sino para señalar que se puso sobre los hombros de los gigantes. De hecho, al rastrear los orígenes de las ideas en bitcoin, podemos centrarnos en el verdadero salto de conocimiento de Nakamoto, la forma específica y compleja en que se juntan los componentes subyacentes. Esto ayuda a explicar por qué el bitcoin tardó tanto en inventarse. Los lectores que ya están familiarizados con el funcionamiento del bitcoin pueden obtener una comprensión más profunda de esta presentación histórica. (Para una introducción, consulte Bitcoin y Cryptocurrency Technologies by Arvind Narayanan et al.36) La historia intelectual de Bitcoin también sirve como estudio de caso que demuestra las relaciones entre el mundo académico, los investigadores externos y los profesionales, y ofrece lecciones sobre cómo estos grupos pueden beneficiarse unos de otros.

Pedigrí académico de Bitcoins

El libro mayor

Si tiene un libro mayor seguro, el proceso para aprovecharlo en un sistema de pago digital es sencillo. Por ejemplo, si Alice envía a Bob 100$ por PayPal, PayPal cargará 100$ de la cuenta de Alice y abona 100 USD a la cuenta de Bob. Esto es también más o menos lo que ocurre en la banca tradicional, aunque la ausencia de un libro mayor compartido entre los bancos complica las cosas.

Esta idea de libro mayor es el punto de partida para entender bitcoin. Es un lugar para registrar todas las transacciones que ocurren en el sistema, y está abierto a todos los participantes del sistema y confían en él. Bitcoin convierte este sistema de registro de pagos en una moneda. Mientras que en la banca, un saldo de cuenta representa efectivo que se puede exigir al banco, ¿qué representa una unidad de bitcoin? Por ahora, supongamos que lo que se está transaccionando tiene valor inherente.

¿Cómo se puede crear un libro mayor para utilizarlo en un entorno como Internet en el que los participantes no confíen entre sí? Empecemos por la parte fácil: la elección de la estructura de datos. Hay algunas propiedades deseables. El libro mayor debe ser inmutable o, más precisamente, solo anexar: debería poder agregar nuevas transacciones pero no eliminar, modificar ni reordenar las existentes. También debería haber una forma de obtener un resumen criptográfico breve del estado del libro mayor en cualquier momento. Un resumen es una cadena corta que permite evitar almacenar todo el libro mayor, sabiendo que si el libro mayor se alteraba de alguna manera, el resumen resultante cambiaría y, por lo tanto, se detectaría la manipulación. La razón de estas propiedades es que, a diferencia de una estructura de datos regular que se almacena en un solo equipo, el libro mayor es una estructura de datos global mantenida colectivamente por un conjunto de participantes que no confían mutuamente. Esto contrasta con otro enfoque para descentralizar los libros digitales, 7,13,21, en el que muchos participantes mantienen libros de contabilidad locales y corresponde al usuario que consulta este conjunto de libros mayores para resolver cualquier conflicto.

Marca de hora vinculada

La estructura de datos del libro mayor de Bitcoin se toma prestada, con modificaciones mínimas, de una serie de artículos de Stuart Haber y Scott Stornetta escritos entre 1990 y 1997 (su artículo de 1991 tenía otro coautor, Dave Bayer) .5,22,23 Lo sabemos porque Nakamoto lo dice en su libro blanco de bitcoins .34 Haber y Stornetta el trabajo abordó el problema de la tipografía de documentos, cuyo objetivo era crear un servicio de «notario digital». En el caso de patentes, contratos comerciales y otros documentos, es posible que se desee establecer que el documento se creó en un momento determinado y no más tarde. Su noción de documento es bastante general y podría ser cualquier tipo de datos. Mencionan, de paso, las transacciones financieras como una posible aplicación, pero no era su enfoque.

En una versión simplificada de la propuesta de Haber y Stornetta, los documentos se crean y difunden constantemente. El creador de cada documento afirma un momento de creación y firma el documento, su marca de hora y el documento emitido anteriormente. Este documento anterior ha firmado su propio predecesor, por lo que los documentos forman una larga cadena con punteros hacia atrás en el tiempo. Un usuario externo no puede modificar un mensaje con marca de hora ya que está firmado por el creador y el creador no puede alterar el mensaje sin alterar también toda la cadena de mensajes que sigue. Por lo tanto, si una fuente de confianza le da un único elemento de la cadena (por ejemplo, otro usuario o un servicio de marca de tiempo especializado), toda la cadena hasta ese punto está bloqueada, inmutable y ordenada temporalmente. Además, si asume que el sistema rechaza documentos con tiempos de creación incorrectos, puede estar razonablemente seguro de que los documentos son al menos tan antiguos como dicen ser. En cualquier caso, bitcoin toma prestada solo la estructura de datos del trabajo de Haber y Stornetta y rediseña sus propiedades de seguridad con la adición del esquema de prueba de trabajo descrito más adelante en este artículo.

En sus documentos de seguimiento, Haber y Stornetta presentaron otras ideas que hacen que esta estructura de datos sea más eficaz y eficiente (algunas de las cuales se indicaron en su primer artículo). En primer lugar, los vínculos entre documentos se pueden crear utilizando hash en lugar de firmas; los hash son más sencillos y rápidos de calcular. Dichos enlaces se denominan punteros hash. En segundo lugar, en lugar de enhebrar documentos individualmente, lo que podría resultar ineficiente si se crean muchos documentos aproximadamente al mismo tiempo, se pueden agrupar en lotes o bloques, y los documentos de cada bloque tienen esencialmente la misma marca de hora. En tercer lugar, dentro de cada bloque, los documentos se pueden vincular con un árbol binario de punteros hash, denominado árbol Merkle, en lugar de una cadena lineal. Por cierto, Josh Benaloh y Michael de Mare presentaron estas tres ideas de forma independiente en 1991,6 poco después del primer trabajo de Haber y Stornetta.

Árboles merkle

Bitcoin utiliza esencialmente la estructura de datos en los documentos de Haber y Stornetta de 1991 y 1997, mostrados de forma simplificada en la figura 2 (Nakamoto presumiblemente desconocía el trabajo de Benaloh y de Mare). Por supuesto, en bitcoin, las transacciones sustituyen a los documentos. En el árbol Merkle de cada bloque, los nodos de hoja son transacciones y cada nodo interno consta esencialmente de dos punteros. Esta estructura de datos tiene dos propiedades importantes. En primer lugar, el hash del último bloque actúa como resumen. Un cambio en cualquiera de las transacciones (nodos hoja) requerirá que los cambios se propaguen hasta la raíz del bloque y las raíces de todos los bloques siguientes. Por lo tanto, si conoce el hash más reciente, puede descargar el resto del libro mayor de una fuente que no es de confianza y verificar que no ha cambiado. Un argumento similar establece otra propiedad importante de la estructura de datos, es decir, alguien puede demostrarle eficazmente que una transacción concreta se incluye en el libro mayor. Este usuario tendría que enviarle solo un pequeño número de nodos en el bloque de esa transacción (este es el punto del árbol de Merkle), así como una pequeña cantidad de información para cada bloque siguiente. La capacidad de demostrar de forma eficiente la inclusión de las transacciones es muy deseable para el rendimiento y la escalabilidad.

Estructura del libro mayor con marca de hora vinculada

Los árboles Merkle, por cierto, llevan el nombre de Ralph Merkle, pionero de la criptografía asimétrica que propuso la idea en su documento de 1980 33. Su solicitud pretendía producir un resumen para un directorio público de certificados digitales. Cuando un sitio web, por ejemplo, le presenta un certificado, también podría presentar una breve prueba de que el certificado aparece en el directorio global. Puede verificar eficazmente la prueba siempre que conozca el hash raíz del árbol Merkle de los certificados del directorio. Esta idea es antigua según los estándares criptográficos, pero su poder solo se ha apreciado últimamente. Es el núcleo del sistema de transparencia de certificados recientemente implementado.30 Un documento de 2015 propone CONIKS, que aplica la idea a los directorios de claves públicas para correos electrónicos cifrados de extremo a extremo. 32 La verificación eficiente de partes del estado global es una de las funcionalidades clave proporcionadas por el libro mayor en Ethereum, una nueva criptomoneda.

Bitcoin puede ser la instancia más conocida del mundo real de las estructuras de datos de Haber y Stornetta, pero no es la primera. Al menos dos empresas (Surety a partir de mediados de los 90 y Guardtime a partir de 2007) ofrecen servicios de marca de tiempo de documentos. Un giro interesante presente en ambos servicios es una idea mencionada por Bayer, Haber y Stornetta,5 que consiste en publicar raíces de Merkle periódicamente en un periódico sacando un anuncio. La figura 3 muestra una raíz de Merkle publicada por Guardtime.

Guardtime en las noticias

Tolerancia a fallas Byzantinas

Por supuesto, los requisitos para una moneda de Internet sin autoridad central son más estrictos. Un libro mayor distribuido tendrá inevitablemente bifurcaciones, lo que significa que algunos nodos pensarán que el bloque A es el último bloque, mientras que otros nodos creerán que es el bloque B. Esto podría deberse a que un adversario intenta interrumpir el funcionamiento del libro mayor o simplemente por la latencia de la red, lo que da lugar a bloques ocasionalmente generado casi simultáneamente por nodos diferentes que no conocen los bloques del otro. La marca de tiempo vinculada por sí sola no es suficiente para resolver bifurcaciones, como demostró Mike Just en 1998.26

Un campo de investigación diferente, la computación distribuida tolerante a fallos, ha estudiado este problema, en el que tiene nombres diferentes, incluida la replicación estatal. Una solución a este problema es aquella que permite a un conjunto de nodos aplicar las mismas transiciones de estado en el mismo orden; normalmente, el orden preciso no importa, solo que todos los nodos sean coherentes. Para una moneda digital, el estado que se va a replicar es el conjunto de saldos y las transacciones son transiciones de estado. Las primeras soluciones, incluido Paxos, propuestas por Leslie Lamport, ganadora del Premio Turing, en 1989,28,29, consideran la replicación estatal cuando los canales de comunicación no son fiables y cuando una minoría de nodos puede presentar ciertas fallas «realistas», como desconectarse para siempre o reiniciar y enviar mensajes obsoletos desde cuando se desconectó por primera vez. Seguido de una prolífica literatura con escenarios más adversos y compensaciones de eficiencia.

Una línea de trabajo relacionada estudió la situación en la que la red es en su mayoría fiable (los mensajes se entregan con retraso limitado), pero se amplió la definición de «fallo» para manejar cualquier desviación del protocolo. Tales fallas bizantinas incluyen tanto fallas naturales como comportamientos creados con fines malintencionados. Fueron estudiados por primera vez en un artículo también por Lamport, coescrito con Robert Shostak y Marshall Pease, ya en 1982,27 Mucho más tarde, en 1999, un artículo histórico de Miguel Castro y Barbara Liskov introdujo PBFT (tolerancia práctica a fallas bizantinas), que acomodaba fallas bizantinas y un poco fiable network.8 En comparación con las marcas de tiempo vinculadas, la literatura sobre tolerancia a errores es enorme e incluye cientos de variantes y optimizaciones de Paxos, PBFT y otros protocolos seminales.

En su libro blanco original, Nakamoto no cita esta literatura ni utiliza su lenguaje. Utiliza algunos conceptos, refiriéndose a su protocolo como mecanismo de consenso y considerando fallas tanto en forma de atacantes como nodos que se unen y salen de la red. Esto contrasta con su confianza explícita en la literatura en la marca de tiempo vinculada (y prueba de trabajo, que se discute a continuación). Cuando se le preguntó en una lista de correo sobre la relación de bitcoin con el problema de los generales bizantinos (un experimento de pensamiento que requiere que BFT resuelva), Nakamoto afirma que la cadena de prueba de trabajo resuelve este problema.35

En los años siguientes, otros académicos han estudiado el consenso de Nakamoto desde la perspectiva de los sistemas distribuidos. Esto sigue siendo un trabajo en curso. Algunos muestran que las propiedades de bitcoin son bastante débiles, 43 mientras que otros argumentan que la perspectiva de BFT no hace justicia a las propiedades de consistencia de bitcoins 40. Otro enfoque consiste en definir variantes de propiedades bien estudiadas y demostrar que bitcoin las satisface .19 Recientemente, estas definiciones fueron sustancialmente afilado para proporcionar una definición de coherencia más estándar que se mantiene bajo suposiciones más realistas sobre la entrega de mensajes.37 Sin embargo, todo este trabajo hace suposiciones sobre el comportamiento «honesto», es decir, que cumple con los protocolos entre un subconjunto de participantes, mientras que Nakamoto sugiere que el comportamiento honesto no tiene por qué no es necesario asumirse ciegamente, porque está incentivado. Un análisis más exhaustivo del consenso de Nakamoto que explica el papel de los incentivos no encaja claramente en los modelos anteriores de sistemas tolerantes a fallos.

Prueba de trabajo

Prácticamente todos los sistemas tolerantes a fallos suponen que una mayoría estricta o supermayoría (por ejemplo, más de la mitad o dos tercios) de los nodos del sistema son honestos y confiables. En una red abierta peer-to-peer, no hay registro de nodos, y se unen y salen libremente. Así, un adversario puede crear suficientes Sybils, o nodos de títeres de calcetín, para superar las garantías consensuadas del sistema. El ataque de Sybil fue formalizado en 2002 por John Douceur14, quien recurrió a una construcción criptográfica llamada prueba de trabajo para mitigarla.

Los orígenes

Para entender la prueba de trabajo, pasemos a sus orígenes. La primera propuesta que hoy se llamaría prueba de trabajo fue creada en 1992 por Cynthia Dwork y Moni Naor15. Su objetivo era disuadir el spam. Tenga en cuenta que el spam, los ataques Sybil y la denegación de servicio son problemas casi similares en los que el adversario amplifica su influencia en la red en comparación con los usuarios habituales; la prueba de trabajo es aplicable como defensa contra los tres. En el diseño de Dwork y Naor, los destinatarios del correo electrónico procesarían solo aquellos correos electrónicos que iban acompañados de pruebas de que el remitente había realizado una cantidad moderada de trabajo computacional; por lo tanto, «prueba de trabajo». La computación de la prueba tardaría unos segundos en un ordenador normal. Por lo tanto, no supondría ninguna dificultad para los usuarios habituales, pero un spammer que desee enviar un millón de correos electrónicos requeriría varias semanas, utilizando hardware equivalente.

Tenga en cuenta que la instancia de prueba de trabajo (también llamada rompecabezas) tiene que ser específica del correo electrónico, así como del destinatario. De lo contrario, un spammer podría enviar varios mensajes al mismo destinatario (o el mismo mensaje a varios destinatarios) por el costo de un mensaje a un destinatario. La segunda propiedad crucial es que debe suponer una carga computacional mínima para el destinatario; las soluciones de rompecabezas deben ser triviales de verificar, independientemente de lo difícil que sean de calcular. Además, Dwork y Naor consideraron funciones con una trampilla, un secreto conocido por una autoridad central que permitiría a la autoridad resolver los rompecabezas sin hacer el trabajo. Una posible aplicación de una trampilla sería que la autoridad apruebe el envío en las listas de correo sin incurrir en costes. La propuesta de Dwork y Naor consistía en tres acertijos de candidatos que cumplían sus propiedades, y dio inicio a todo un campo de investigación, al que volveremos.

Hashcash

Una idea muy similar llamada hashcash fue inventada de forma independiente en 1997 por Adam Back, un investigador postdoctoral de la época que formaba parte de la comunidad cypherpunk. Los Cypherpunks eran activistas que se oponían al poder de los gobiernos y de las instituciones centralizadas, y buscaban crear un cambio social y político a través de la criptografía. Back estaba prácticamente orientado: lanzó hashcash primero como software,2 y cinco años después, en 2002, publicó un borrador de Internet (un documento de estandarización) y un papel.4

Hashcash es mucho más simple que la idea de Dwork y Naor: no tiene trampilla ni autoridad central, y solo utiliza funciones hash en lugar de firmas digitales. Se basa en un principio simple: una función hash se comporta como una función aleatoria para algunos propósitos prácticos, lo que significa que la única forma de encontrar una entrada que utiliza hash a una salida concreta es probar varias entradas hasta que se produzca la salida deseada. Además, la única forma de encontrar una entrada que incluya hash en un conjunto arbitrario de salidas es volver a intentar hacer hash diferentes entradas una por una. Entonces, si te desafiara a encontrar una entrada cuyo valor hash (binario) comienza con 10 ceros, tendrías que probar numerosas entradas, y verías que cada salida tenía una probabilidad de 1/210 de comenzar con 10 ceros, lo que significa que tendrías que probar el orden de 210 entradas, o aproximadamente 1.000 hash cálculos.

Como su nombre indica, en hashcash Back veía la prueba de trabajo como una forma de efectivo. En su página web lo posicionó como una alternativa a DigiCash de David Chaum, que era un sistema que emitió efectivo digital irrastreable de un banco a un usuario3. Incluso hizo compromisos con el diseño técnico para que pareciera más efectivo. Más tarde, Back hizo comentarios que sugieren que bitcoin era una extensión directa del hashcash. Sin embargo, el hashcash no es efectivo, porque no tiene protección contra el doble gasto. Los tokens hashcash no se pueden intercambiar entre pares.

Mientras tanto, en la escena académica, los investigadores encontraron muchas solicitudes de prueba de trabajo además del spam, como prevenir ataques de denegación de servicio25, garantizar la integridad de la analítica web,17 y adivinar contraseñas con limitación de tasas en línea.38 Por cierto, el término prueba de trabajo fue acuñado solo en 1999 en un documento de Markus Jakobsson y Ari Juels, que también incluye una buena encuesta del trabajo hasta ese punto24. Vale la pena señalar que estos investigadores parecen haber desconocido el hashcash, pero de forma independiente comenzaron a converger en una prueba de trabajo basada en hash, que fue introducida en documentos por Eran Gabber et al.18 y por Juels y Brainard.25 (Muchos de los términos utilizados a lo largo de este párrafo no se convirtieron en terminología estándar hasta mucho después de la publicación de los artículos en cuestión).

Prueba de trabajo y efectivo digital: Un “catch-22”

Es posible que sepa que la prueba de trabajo no tuvo éxito en su aplicación original como medida antispam. Una posible razón es la dramática diferencia en la velocidad de resolución de puzles de diferentes dispositivos. Esto significa que los spammers podrán realizar una pequeña inversión en hardware personalizado para aumentar su tasa de spam en orden de magnitud. En economía, la respuesta natural a una asimetría en el coste de producción es el comercio, es decir, un mercado de soluciones de prueba de trabajo. Pero esto presenta un punto 22, porque eso requeriría una moneda digital que funcione. De hecho, la falta de dicha moneda es una parte importante de la motivación de la prueba de trabajo en primer lugar. Una solución cruda a este problema es declarar que las soluciones de rompecabezas son efectivo, como lo intenta hacer hashcash.

Los enfoques más coherentes para tratar las soluciones de rompecabezas como efectivo se encuentran en dos ensayos que precedieron a bitcoin, que describen ideas llamadas b-money13 y bit gold42 respectivamente. Estas propuestas ofrecen servicios de marca de tiempo que firman la creación (mediante prueba de trabajo) de dinero y, una vez creado el dinero, firman las transferencias. Sin embargo, si se produce un desacuerdo sobre el libro mayor entre los servidores o nodos, no hay una forma clara de resolverlo. Dejar que la mayoría decida parece estar implícito en los escritos de ambos autores, pero debido al problema de Sybil, estos mecanismos no son muy seguros, a menos que haya un guardián que controle la entrada en la red o la resistencia de Sybil se logre por sí misma con prueba de trabajo.

Armarlo todo

Comprender todos estos predecesores que contienen piezas del diseño de bitcoin lleva a apreciar el verdadero genio de la innovación de Nakamoto. En bitcoin, por primera vez, las soluciones de rompecabezas no constituyen efectivo por sí mismas. En cambio, se utilizan simplemente para asegurar el libro mayor. La resolución de la prueba de trabajo la realizan entidades especializadas llamadas mineros (aunque Nakamoto subestimó cómo se convertiría la minería especializada).

Los mineros están constantemente en una carrera entre sí para encontrar la siguiente solución de rompecabezas; cada minero resuelve una variante ligeramente diferente del rompecabezas para que la probabilidad de éxito sea proporcional a la fracción del poder minero global que controla el minero. Un minero que resuelve un rompecabezas puede aportar el siguiente lote o bloque de transacciones al libro mayor, que se basa en la marca de tiempo vinculada. A cambio del servicio de mantenimiento del libro mayor, un minero que aporta un bloque recibe una recompensa con unidades de la moneda recién acuñadas. Con gran probabilidad, si un minero contribuye con una transacción o bloqueo no válidos, será rechazado por la mayoría de los demás mineros que aportan los siguientes bloques, y esto también invalidará la recompensa por bloque por el bloque defectuoso. De esta forma, debido a los incentivos monetarios, los mineros garantizan el cumplimiento mutuo del protocolo.

Bitcoin evita perfectamente el problema del doble gasto que afecta a los esquemas de prueba de trabajo como efectivo porque evita las propias soluciones rompecabezas que tienen valor. De hecho, las soluciones de rompecabezas están dos veces desacopladas del valor económico: la cantidad de trabajo necesaria para producir un bloque es un parámetro flotante (proporcional a la potencia minera global) y, además, el número de bitcoins emitidos por bloque tampoco está fijo. La recompensa en bloque (que es la forma en que se acuñan los nuevos bitcoins) se reducirá a la mitad cada cuatro años (en 2017, la recompensa es de 12,5 bitcoins/bloque, menos de 50 bitcoins/bloque). Bitcoin incorpora un esquema de recompensas adicional, a saber, los remitentes de transacciones que pagan a los mineros por el servicio de incluir la transacción en sus bloques. Se espera que el mercado determinará las tarifas de transacción y las recompensas de los mineros.

El genio de Nakamoto, entonces, no era ninguno de los componentes individuales del bitcoin, sino la intrincada forma en que encajan para dar vida al sistema. Los investigadores de la marca de tiempo y del acuerdo bizantino no tocaron la idea de incentivar los nodos para ser honestos, ni, hasta 2005, de utilizar prueba de trabajo para acabar con las identidades. Por el contrario, los autores de hashcash, b-money y bit gold no incorporaron la idea de un algoritmo de consenso para evitar el doble gasto. En bitcoin, es necesario un libro mayor seguro para evitar el doble gasto y garantizar así que la moneda tenga valor. Se necesita una valiosa moneda para recompensar a los mineros. A su vez, la fuerza de la minería es necesaria para asegurar el libro mayor. Sin él, un adversario podría acumular más del 50 por ciento de la potencia minera global y así poder generar bloques más rápido que el resto de la red, realizar transacciones de doble gasto y reescribir efectivamente el historial, sobrepasando el sistema. Por lo tanto, bitcoin es bootstrapped, con una dependencia circular entre estos tres componentes. El desafío de Nakamoto no era solo el diseño, sino también convencer a la comunidad inicial de usuarios y mineros de dar un salto juntos a lo desconocido, cuando una pizza costaba 10.000 bitcoins y la potencia minera de la red era menos de una billonésima parte de lo que es hoy en día.

Claves públicas como identidades

Este artículo comenzó con el entendimiento de que un libro mayor seguro hace que la creación de moneda digital sea sencilla. Vamos a revisar esta afirmación. Cuando Alice desea pagar a Bob, transmite la transacción a todos los nodos de bitcoin. Una transacción es simplemente una cadena: una declaración que codifica el deseo de Alice de pagarle algo de valor a Bob, firmada por ella. La eventual inclusión de esta declaración firmada en el libro mayor por parte de los mineros es lo que hace que la transacción sea real. Tenga en cuenta que esto no requiere la participación de Bob de ninguna manera. Pero centrémonos en lo que no está en la transacción: claramente ausentes están las identidades de Alice y Bob; en cambio, la transacción contiene solo sus respectivas claves públicas. Este es un concepto importante en bitcoin: las claves públicas son los únicos tipos de identidades del sistema. Las transacciones transfieren valor desde y hacia las claves públicas, que se denominan direcciones.

Para «hablar por» una identidad, debes conocer la clave secreta correspondiente. Puede crear una nueva identidad en cualquier momento generando un nuevo par de claves, sin autoridad central ni registro. No necesitas obtener un nombre de usuario ni informar a otros que has elegido un nombre en particular. Esta es la noción de gestión de identidades descentralizada. Bitcoin no especifica cómo Alice le dice a Bob cuál es su seudónimo, eso es externo al sistema.

Aunque son radicalmente diferentes de la mayoría de los demás sistemas de pago actuales, estas ideas son bastante antiguas, y se remontan a David Chaum, el padre del efectivo digital. De hecho, Chaum también hizo contribuciones fundamentales a las redes de anonimato, y es en este contexto que inventó esta idea. En su artículo de 1981, «Correo electrónico irrastreable, direcciones de devolución y seudónimos digitales» 9, afirma: «Un seudónimo digital» es una clave pública utilizada para verificar las firmas hechas por el titular anónimo de la clave privada correspondiente».

Ahora, el hecho de que los destinatarios del mensaje solo se conozcan mediante una clave pública presenta un problema obvio: no hay forma de enrutar el mensaje al equipo correcto. Esto lleva a una ineficiencia masiva en la propuesta de Chaum, que se puede negociar con el nivel de anonimato pero no eliminarse. Bitcoin es igualmente ineficiente en comparación con los sistemas de pago centralizados: cada nodo del sistema mantiene el libro mayor que contiene cada transacción. Bitcoin incurre en esta ineficiencia por razones de seguridad de todos modos y, por lo tanto, logra seudonimato (es decir, las claves públicas como identidades) «de forma gratuita». Chaum llevó estas ideas mucho más allá en un documento de 198511 donde presenta una visión del comercio electrónico preservador de la privacidad basada en seudónimos generalizados, así como «firmas ciegas», la idea técnica clave detrás de su efectivo digital.

La idea de las claves públicas como identidades también se ve en b-money y bit gold, los dos ensayos precursores de bitcoin discutidos anteriormente. Sin embargo, gran parte del trabajo que se basó en la base de Chaum, así como el trabajo posterior de Chaum sobre ecash, se alejó de esta idea. Los cypherpunks estaban muy interesados en la comunicación y el comercio que preservan la privacidad, y adoptaron seudónimos, que llamaban nyms. Pero para ellos, las nyms no eran meras identidades criptográficas (es decir, claves públicas), sino más bien, generalmente direcciones de correo electrónico vinculadas a claves públicas. Del mismo modo, la tesis de Ian Goldberg, que se convirtió en la base de muchos trabajos futuros sobre comunicación anónima, reconoce la idea de Chaum pero sugiere que las nyms deberían ser apodos memorables para el hombre con certificados para vincularlo20. Así, Bitcoin resultó ser la instancia más exitosa de la idea de Chaum.

La Blockchain

Hasta ahora, este artículo no ha abordado la blockchain, que, si crees el bombo, es la principal invención de bitcoin. Puede sorprenderte que Nakamoto no mencione ese término en absoluto. De hecho, el término blockchain no tiene una definición técnica estándar, pero es un término general suelto utilizado por varias partes para referirse a sistemas que tienen diferentes niveles de parecido con bitcoin y su libro mayor.

Discutir ejemplos de aplicaciones que se benefician de una blockchain ayudará a aclarar los diferentes usos del término. En primer lugar, considere un backend de base de datos para las transacciones entre un consorcio de bancos, donde las transacciones se compensan al final de cada día y las cuentas las liquida el banco central. Este sistema tiene un pequeño número de partidos bien identificados, por lo que el consenso de Nakamoto sería exagerado. Tampoco se necesita una moneda en blockchain, ya que las cuentas están denominadas en moneda tradicional. La marca de tiempo vinculada, por otro lado, sería claramente útil, al menos para garantizar un ordenamiento global coherente de las transacciones frente a la latencia de la red. La replicación estatal también sería útil: un banco sabría que su copia local de los datos es idéntica a la que utilizará el banco central para liquidar su cuenta. Esto libera a los bancos del costoso proceso de conciliación que deben llevar a cabo actualmente.

En segundo lugar, considere una aplicación de gestión de activos, como un registro de documentos que rastrea la propiedad de valores financieros, bienes raíces o cualquier otro activo. El uso de una blockchain aumentaría la interoperabilidad y disminuiría las barreras a la entrada. Queremos un registro de documentos seguro y global, e idealmente uno que permita la participación pública. Esto es esencialmente lo que buscaban proporcionar los servicios de marca de tiempo de los años noventa y 2000. Las cadenas de bloques públicas ofrecen una forma particularmente efectiva de lograrlo hoy (los datos en sí pueden almacenarse fuera de la cadena, con solo los metadatos almacenados en la cadena). Otras aplicaciones también se benefician de una marca de tiempo o una abstracción de «tablón de anuncios públicos», sobre todo de la votación electrónica.

Vamos a basarnos en el ejemplo de gestión de activos. Supongamos que desea ejecutar operaciones de activos a través de la blockchain, y no simplemente registrarlas allí. Esto es posible si el activo se emite digitalmente en la propia blockchain y si la blockchain admite contratos inteligentes. En este caso, los contratos inteligentes resuelven el problema del «intercambio justo» de garantizar que el pago se efectúe si el activo se transfiere y solo si se transfiere el activo. De forma más general, los contratos inteligentes pueden codificar una lógica empresarial compleja, siempre que todos los datos de entrada necesarios (activos, sus precios, etc.) estén representados en la blockchain.

Este mapeo de las propiedades de la blockchain a las aplicaciones nos permite no solo apreciar su potencial, sino también inyectar una dosis de escepticismo muy necesaria. En primer lugar, muchas aplicaciones propuestas de blockchain, especialmente en la banca, no utilizan el consenso de Nakamoto. En cambio, utilizan la estructura de datos del libro mayor y el acuerdo bizantino, que, como se muestra, datan de los 90. Esto desmiente la afirmación de que las cadenas de bloques son una tecnología nueva y revolucionaria. En cambio, el rumor en torno a las cadenas de bloques ha ayudado a los bancos a iniciar acciones colectivas para desplegar tecnología de libros compartidos, como la parábola de la «sopa de piedra». Bitcoin también ha servido como una prueba de concepto muy visible de que el libro mayor descentralizado funciona, y el proyecto Bitcoin Core ha proporcionado una base de código conveniente que se puede adaptar según sea necesario.

En segundo lugar, las cadenas de bloques se presentan con frecuencia como más seguras que los registros tradicionales, una afirmación engañosa. Para ver por qué, la estabilidad general del sistema o la plataforma debe separarse de la seguridad de los endpoints, es decir, la seguridad de los usuarios y dispositivos. Es cierto que el riesgo sistémico de las cadenas de bloques puede ser inferior al de muchas instituciones centralizadas, pero el riesgo de seguridad de los puntos finales de las cadenas de bloques es mucho peor que el riesgo correspondiente de las instituciones tradicionales. Las transacciones de blockchain son casi instantáneas, irreversibles y, en las cadenas de bloques públicas, son anónimas por diseño. Con un registro de existencias basado en blockchain, si un usuario (o corredor o agente) pierde el control de sus claves privadas, lo que no requiere más que perder un teléfono o obtener malware en una computadora, el usuario pierde sus activos. La extraordinaria historia de hacks, robos y estafas de bitcoin no inspira mucha confianza; según una estimación, al menos el seis por ciento de los bitcoins en circulación han sido robados al menos una vez.39

Lecciones finales

La historia descrita aquí ofrece lecciones ricas (y complementarias) para profesionales y académicos. Los profesionales deben ser escépticos ante las afirmaciones de la tecnología revolucionaria. Como se muestra aquí, la mayoría de las ideas en bitcoin que han generado entusiasmo en la empresa, como libros contables distribuidos y acuerdos bizantinos, se remontan a 20 años o más. Reconozca que su problema puede no requerir avances; es posible que haya soluciones olvidadas desde hace mucho tiempo en los documentos de investigación.

La academia parece tener el problema opuesto, al menos en este caso: una resistencia a las ideas radicales y extrínsecas. El libro blanco de bitcoin, a pesar del pedigrí de muchas de sus ideas, fue más novedoso que la mayoría de las investigaciones académicas. Además, a Nakamoto no le importaba la revisión académica por pares y no la conectó completamente con su historia. Como resultado, los académicos ignoraron esencialmente el bitcoin durante varios años. Muchas comunidades académicas argumentaron informalmente que Bitcoin no podía funcionar, basándose en modelos teóricos o experiencias con sistemas anteriores, a pesar de que funcionaba en la práctica.

Hemos visto en repetidas ocasiones que las ideas de la literatura de investigación pueden olvidarse gradualmente o no ser apreciadas, especialmente si están adelantadas a su tiempo, incluso en áreas populares de investigación. Tanto los profesionales como los académicos harían bien en revisar las viejas ideas para obtener información sobre los sistemas actuales. Bitcoin fue inusual y exitoso no porque estuviera a la vanguardia de la investigación sobre cualquiera de sus componentes, sino porque combinaba ideas antiguas de muchos campos antes no relacionados. Esto no es fácil de hacer, ya que requiere unir una terminología, suposiciones, etc. dispares, pero es un valioso plan para la innovación.

Los profesionales se beneficiarían de poder identificar tecnología sobrealimentada. Algunos indicadores de exageración: dificultad para identificar la innovación técnica; dificultad para fijar el significado de términos supuestamente técnicos, debido a las empresas que desean adjuntar sus propios productos al carro; dificultad para identificar el problema que se está resolviendo; y finalmente, afirmaciones de resolución tecnológica problemas sociales o de convulsión económica y política.

En cambio, el mundo académico tiene dificultades para vender sus inventos. Por ejemplo, es lamentable que los investigadores originales de la prueba de trabajo no reciban crédito por bitcoin, posiblemente porque el trabajo no era bien conocido fuera de los círculos académicos. Actividades como la publicación de código y el trabajo con profesionales no son recompensadas adecuadamente en el mundo académico. De hecho, la rama original de la literatura académica de prueba de trabajo continúa hoy sin reconocer la existencia de bitcoin. El compromiso con el mundo real no solo ayuda a obtener crédito, sino que también reducirá la reinvención y es una fuente de ideas nuevas.

Barras laterales

Redes resistentes a Sybil

En su artículo sobre los ataques de Sybil, John Douceur propuso que todos los nodos que participan en un protocolo BFT fueran necesarios para resolver rompecabezas de hashcash. Si un nodo se disfrazara de nodos N, no podría resolver N rompecabezas a tiempo y las identidades falsas se purgarían. Sin embargo, un nodo malicioso podría obtener una ventaja moderada sobre un nodo honesto que solo reclamaba una identidad única. Un documento de seguimiento de 20051 sugirió que los nodos honestos deberían imitar el comportamiento de los nodos maliciosos y reclamar tantas identidades virtuales como puedan permitirse afirmar computacionalmente. Con estas identidades virtuales ejecutando un protocolo BFT, la suposición de que «Como máximo una fracción f de nodos son defectuosos» puede reemplazarse por la suposición «La fracción de la potencia computacional total controlada por nodos defectuosos es, como mucho, f». Por lo tanto, ya no es necesario validar identidades y las redes abiertas peer-to-peer pueden ejecutar un protocolo BFT. Bitcoin usa exactamente esta idea. Pero Nakamoto hace otra pregunta: ¿Qué motiva a los nodos a realizar pruebas de trabajo costosas desde el punto de vista computacional? La respuesta requiere otro salto: la moneda digital.

Contratos inteligentes

Un contrato inteligente toma la idea de colocar datos en un libro mayor seguro y los amplía al cálculo. En otras palabras, es un protocolo de consenso para la correcta ejecución de un programa especificado públicamente. Los usuarios pueden invocar funciones en estos programas de contrato inteligente, sujeto a las restricciones especificadas por el programa, y los mineros ejecutan el código de función en conjunto. Los usuarios pueden confiar en la salida sin tener que rehacer el cálculo y pueden escribir sus propios programas para actuar sobre la salida de otros programas. Los contratos inteligentes son especialmente potentes cuando se combinan con una plataforma de criptomonedas, porque los programas en cuestión pueden manejar el dinero: poseerlo, transferirlo, destruirlo y, en algunos casos, incluso imprimirlo.

Bitcoin implementa un lenguaje de programación restrictivo para contratos inteligentes. Una transacción «estándar» (es decir, una que mueve moneda de una dirección a otra) se especifica como un script corto en este idioma. Ethereum ofrece un lenguaje más permisivo y poderoso.

La idea de contratos inteligentes fue propuesta por Nick Szabo en 199441 y así nombrada porque los veía como análogos de contratos legales, pero con aplicación automatizada. (Esta opinión ha sido criticada por Karen Levy31 y Ed Felten.16) Presencialmente, Szabo presentó contratos inteligentes como extensiones de protocolos de efectivo digital y reconoció que el acuerdo bizantino y las firmas digitales (entre otros) podrían utilizarse como componentes básicos. El éxito de las criptomonedas ha hecho que los contratos inteligentes sean prácticos y la investigación sobre el tema también ha florecido. Por ejemplo, los investigadores de lenguajes de programación han adaptado sus métodos y herramientas para detectar automáticamente errores en contratos inteligentes y escribir correctos de forma verificable.

Blockchains autorizadas

Si bien este artículo ha enfatizado que las cadenas de bloques privadas o autorizadas omiten la mayoría de las innovaciones de bitcoin, esto no pretende disminuir el interesante trabajo que está ocurriendo en este espacio. Una cadena de blockchain autorizada impone restricciones a quién puede unirse a la red, escribir transacciones o bloquear minas. En particular, si los mineros se limitan a una lista de participantes confiables, la prueba de trabajo puede retirarse a favor de un enfoque BFT más tradicional. Así, gran parte de la investigación es un renacimiento de BFT que plantea preguntas tales como: ¿Podemos utilizar hash trees para simplificar los algoritmos de consenso? ¿Qué pasa si la red puede fallar solo de ciertas maneras?

Además, hay consideraciones importantes en torno a la identidad y la infraestructura de clave pública, el control de acceso y la confidencialidad de los datos almacenados en la blockchain. Estos problemas no surgen en gran medida en entornos públicos de blockchain, ni se estudian en la literatura tradicional de BFT.

Por último, también está el trabajo de ingeniería de escalar cadenas de bloques para lograr un alto rendimiento y adaptarlas a diversas aplicaciones, como la gestión de la cadena de suministro y la tecnología financiera.

Agradecimientos

Los autores están agradecidos a Adam Back, Andrew Miller, Edward Felten, Harry Kalodner, Ian Goldberg, Ian Grigg, Joseph Bonneau, Malte Möser, Mike Just, Neha Narula, Steven Goldfeder y Stuart Haber por sus valiosos comentarios sobre un borrador.