Blockchain
La génesis
1. La creación de Bitcoin
El 31 de octubre de 2008, en una lista de correo de Internet dedicada a la criptografía se publicó un documento de nueve páginas titulado Bitcoin: un sistema de dinero en efectivo electrónico peer-to-peer [1] (https://bitcoin.org/files/bitcoin-paper/bitcoin_es.pdf), acompañado de un mensaje que decía: "He estado trabajando en un sistema de dinero electrónico nuevo totalmente peer-to-peer, sin terceros de confianza". El texto, redactado al estilo de un artículo académico y firmado por Satoshi Nakamoto describe en términos muy concisos el principio de bloques de transacciones encadenados entre sí. Se basa en investigaciones realizadas y soluciones propuestas a partir de la década de 1990, como la prueba de trabajo, los bloques con marca de tiempo y encadenados, y las redes peer-to-peer, así como en intentos de monedas electrónicas como Bit Gold, B-Money y DigiCash. En este documento fundacional se utiliza el término «cadena de bloques», pero la palabra blockchain se impuso un poco más tarde entre los desarrolladores y los primeros usuarios.
El 3 de enero de 2009 a las 18:15 GMT, la red Bitcoin entró en funcionamiento. Satoshi Nakamoto generó el primer bloque, conocido como «bloque Génesis». Contiene un texto, «The Times 03/Jan/2009 Chancellor on brink of second bailout for Banks», extraído de la edición del 3 de enero de 2009 del periódico The Times. En aquel momento, la crisis de las hipotecas de alto riesgo hacía estragos y los gobiernos hacían esfuerzos por salvar a los bancos. El 8 de enero de 2009, Satoshi Nakamoto publicó un mensaje en el que anunciaba que la versión 0.1 del código fuente de Bitcoin estaba disponible y podía descargarse libremente en Internet. Durante 2010 siguió desarrollando el software de Bitcoin e interactuando en foros con la creciente comunidad de usuarios y desarrolladores interesados en este sistema. Pero el 13 de diciembre de 2010 publicó su último mensaje público en el foro de desarrolladores de Bitcoin. En abril de 2011, en un correo electrónico a un miembro de la comunidad Bitcoin anunció: «He pasado a otros proyectos». Después no dio más señales...
Vamos al consenso
1. Los ataques del 51 %
Hemos visto que Bitcoin logra sus objetivos (no duplicar el gasto y no tener una autoridad central) gracias, en particular, a un mecanismo de prueba de trabajo que consiste en sortear el nodo que valida el bloque para impedir los ataques de tipo Sybil. Sin embargo, existe una condición para que este mecanismo sea eficaz. Se recuerda en la conclusión del artículo de Nakamoto: «Para resolver esto, hemos propuesto una red peer-to-peer usando proof-of-work para realizar un registro público de las transacciones que rápidamente se hace computacionalmente inviable de cambiar para un atacante si la mayoría de la potencia CPU está controlada por nodos honestos [5]». Para que Bitcoin funcione, la mayoría de los nodos deben ser honestos, o mejor dicho, la mayoría de la potencia de cálculo debe estar controlada por nodos honestos. Si esta condición no se cumple, los nodos deshonestos trabajando juntos pueden conseguir minar bloques fraudulentos. Es el famoso ataque del 51 %.
En la práctica, el atacante comienza minando bloques, pero no los comunica inmediatamente a los otros nodos. Así construye en secreto una cadena «paralela» a la legítima. A continuación, realiza una transacción en la cadena legítima, como una compra de bienes o una conversión de criptoactivos en moneda. Esta transacción se incluye en un bloque, que se mina y se añade a la cadena legítima. Una vez recuperada la moneda o los bienes, el atacante continúa minando bloques en la cadena paralela hasta que esta es más larga que la cadena legítima. A continuación, el atacante distribuye los bloques de la cadena paralela a los demás nodos, que aplican la regla de la cadena más larga.
La cadena maliciosa se establece en unos segundos o decenas de segundos en todos los nodos y los bloques legítimos minados después del primer bloque fraudulento desaparecen, incluido el bloque que contiene la transacción en la que el atacante intercambia criptoactivos por bienes o divisas. Sin embargo, el bloque malicioso es perfectamente válido según las reglas de blockchain. Este fenómeno se conoce como reorganización de la cadena. Por lo tanto, todo sucede como si las criptomonedas en cuestión nunca...
Las claves del paraíso
1. Cifrado asimétrico y firma
En 1977, Ronald Rivest, Adi Shamir y Leonard Adleman publicaron un artículo titulado A Method for Obtaining Digital Signatures and Public-Key Cryptosystems (Un método para obtener firmas digitales y criptosistemas de clave pública), que aportaba una solución eficaz a un viejo problema. Hasta entonces, los algoritmos utilizados para cifrar datos con el fin de protegerlos durante su almacenamiento o transmisión eran simétricos. Se utilizaba la misma clave para cifrar y descifrar los datos. Por lo tanto, un emisor que desee enviar un mensaje a un destinatario y protegerlo mediante cifrado durante la transferencia debe asegurarse de que el destinatario conoce la clave de cifrado/descifrado. Es cierto que la clave puede haberse comunicado previamente durante una reunión cara a cara, pero se trata de una restricción muy fuerte que apenas se aplica en la práctica. El envío de la clave a través de un canal protegido está descartado porque plantea el problema de la transmisión segura de datos, que se supone que la criptografía debe resolver.
La solución especialmente elegante de los investigadores consiste en considerar dos claves: una privada, que solo conoce su propietario, y otra pública, que puede conocer cualquiera. Las dos claves están vinculadas por propiedades matemáticas que significan que los datos cifrados por una de las claves solo pueden ser descifrados por la otra y viceversa. Si el tamaño de las claves pública/privada es suficientemente grande, el conocimiento de la clave pública no puede, en la práctica, utilizarse para deducir la clave privada. El término criptografía asimétrica se utiliza para describir este modo de funcionamiento. Gracias a estas propiedades es posible resolver el problema de la criptografía simétrica. El destinatario del mensaje comunica su clave pública al emisor a través de un canal que no tiene por qué ser seguro. El emisor cifra los datos con la clave pública del destinatario y le envía los datos cifrados. A continuación, el destinatario descifra los datos utilizando su clave privada que solo él conoce.
Es posible ir más allá creando firmas electrónicas. Imaginemos que alguien quiere...
Contratos tontos
1. Contratos inteligentes
En enero de 2014, Vitalik Buterin, de 19 años, publicó un artículo [27] en el que describía una blockchain nueva llamada Ethereum. Una de las ambiciones de Vitalik Buterin, que llevaba dos años trabajando en el ecosistema Bitcoin, era dotar a su blockchain de un lenguaje de programación que permitiera desarrollar programas que se ejecutaran en la blockchain, llamados smart contracts o contratos inteligentes (en el resto del libro nos referiremos a ellos simplemente como contratos). Bitcoin tiene un lenguaje de programación, pero es relativamente limitado. Vitalik Buterin se unió a otros desarrolladores y el proyecto tomó forma. Ethereum se lanzó el 30 de julio de 2015 y rápidamente se estableció como la segunda blockchain más importante después de Bitcoin.
Una de las promesas de los contratos es que pueden ejecutarse de forma autónoma, sin intervención humana ni modificaciones. Un contrato es inmutable porque su código está incluido en la blockchain. Por lo tanto, no puede modificarse ni borrarse una vez desplegado, pero puede llegar a autodestruirse si el desarrollador lo ha previsto. También es posible construir arquitecturas compuestas por un contrato de tipo proxy y un contrato de tipo implementación. El contrato proxy actúa como intermediario entre los usuarios y el contrato de implementación. Los desarrolladores pueden desplegar un contrato de implementación nuevo y actualizar su dirección en el contrato proxy para que las peticiones de los usuarios al contrato de implementación se transmitan al contrato nuevo. En la práctica, esto permite mantener y actualizar los contratos.
Un contrato garantiza a las partes implicadas que se seguirá la lógica de su código pase lo que pase, sin demora, error o fraude, y que una de las partes no puede cambiar unilateralmente sus términos. Por ejemplo, un contrato podría utilizarse como parte de un testamento para garantizar el pago de una suma a un heredero al cumplir los 18 años, sin necesidad de notario, banquero o albacea. En las transacciones de blockchain es posible ver cuándo y cómo se utiliza el contrato y quién interactúa con él. En Ethereum, los contratos, al igual que los usuarios, tienen una dirección...
Atacar a DeFi
1. DeFi
Lanzado en 2014, el proyecto MakerDAO fue el precursor de las finanzas descentralizadas o DeFi, en auge desde 2017. Los proyectos y plataformas DeFi ofrecen múltiples servicios financieros para prestar, intercambiar, comerciar, invertir, asegurar, cubrir, etc. Los servicios DeFi, también conocidos como protocolos, se implementan sin intermediarios y a través de contratos. Son del tipo no custodial, lo que significa que sus usuarios conservan la propiedad efectiva de los criptoactivos que manejan, en el sentido de la blockchain. No requieren que los usuarios conozcan su verdadera identidad. Por lo tanto, pueden ser utilizados por cualquier persona, en cualquier momento y desde cualquier lugar, sin necesidad de un proceso KYC. Son componibles, lo que significa que los contratos de un protocolo DeFi pueden interactuar con los contratos de otro, y que los productos o servicios financieros complejos pueden construirse del mismo modo que los ladrillos de Lego. Por ejemplo, los tokens de un proyecto DeFi pueden depositarse como garantía en una plataforma de préstamos DeFi. En el momento de escribir este libro hay más de 44.000 millones de dólares de criptoactivos invertidos en proyectos DeFi.
Los oráculos son uno de los componentes de DeFi. Se utilizan para obtener precios de criptoactivos con el fin de comprar, vender, intercambiar o pedir prestado aportando una garantía. Los oráculos pueden ser de tipo off chain o fuera de la cadena, por ejemplo, obteniendo precios de las plataformas de intercambio tradicionales. También pueden ser on chain, en cuyo caso se basan en los datos disponibles en las plataformas de intercambio descentralizadas, como los volúmenes de compra y venta o las reservas de criptoactivos. Otro elemento de DeFi es el flash loan, que apareció a principios de 2020. En este enfoque, un jugador toma prestados criptoactivos, los utiliza para una o más transacciones y los reembolsa, todo en una única transacción. Los fondos solo se prestan de manera efectiva si se llevan a cabo todas las acciones insertadas en la transacción, incluido el reembolso. Si el prestatario no reembolsa el préstamo incluido en la transacción, se cancela toda la transacción. Todo sucede entonces como si el préstamo nunca se hubiera realizado. Por lo tanto, el prestamista tiene garantizado...
El panóptico de los bloques
1. Análisis de las transacciones
El 8 de septiembre de 2020, Alon Gal, experto en ciberseguridad y criptoactivos, anunció en Twitter que estaba en posesión de un monedero que contenía una clave privada con 69.000 bitcoins, o 693 millones de dólares. Estos bitcoins no han cambiado de propietario desde 2013. Afirmó que actores maliciosos llevan años intentando romper la contraseña que protege este monedero. El 3 de noviembre de 2020, Alon Gal tuiteó que una transacción acababa de vaciar el monedero de todos sus bitcoins. Las especulaciones se dispararon. ¿Habría conseguido alguien romper la contraseña del monedero? La respuesta llegó unos días después: el Departamento de Justicia de Estados Unidos había realizado la operación. Los fondos del monedero procedían de Silk Road, un mercado de la dark web o Internet oscura. Por lo tanto, la transacción del 3 de noviembre fue una incautación judicial. Con la subida del precio del Bitcoin entre septiembre y noviembre de 2020, la cantidad superaba los 1.000 millones de dólares.
¿Cómo supo Alon Gal que este monedero tan sensible había sido vaciado? Simplemente examinó las transacciones en la blockchain Bitcoin. Todo lo que necesitaba saber era la dirección correspondiente a la clave privada almacenada en el monedero y analizar los datos directamente en un nodo Bitcoin o consultar un sitio web especializado del tipo explorador de blockchain. De hecho, todas las transacciones insertadas en una blockchain pública son accesibles a cualquiera, sin ningún filtro. Cualquiera puede observar una transacción, averiguar la dirección del emisor, la del destinatario, el importe de la transferencia, la fecha y la hora. Se pueden escribir programas para analizar las transacciones incluidas en cada nuevo bloque minado y pueden centrarse en direcciones o importes concretos. Por ejemplo, la cuenta de Twitter @whale_alert, operada por un programa informático, vigila las transferencias más importantes en Bitcoin, Ethereum y otras blockchains.
Las blockchains públicas son libros abiertos, en los que cualquiera puede observar con lupa todas las transacciones pasadas. Por lo tanto, explotar estos datos con herramientas y algoritmos sofisticados...
Externalidades de blockchain
1. El gasto energético
La huella medioambiental de las tecnologías blockchain, y de Bitcoin en particular, es un tema que lleva años siendo objeto de acalorados debates entre defensores y detractores. Blockchain no es una tecnología que se caracterice por su sobriedad en términos de capacidad de procesamiento y almacenamiento. Uno de los fundamentos de la seguridad de una blockchain es que se aloja en miles o decenas de miles de nodos y que todas las transacciones se almacenan allí sin límite de tiempo. En comparación con los sistemas de pago o procesamiento de datos más tradicionales, esto significa que los requisitos de almacenamiento, memoria, conectividad y capacidad informática se multiplican. En el momento de escribir estas líneas, el tamaño de la blockchain Bitcoin es de 494 GB y el de Ethereum es de 14.700 GB.
El tema más controvertido es el consumo de energía de los protocolos de consenso de tipo prueba de trabajo. Veamos cómo funcionan, utilizando Bitcoin como ejemplo. Cuando una transacción llega a un nodo de minería, se coloca en un bloque en construcción y entonces el nodo mina el bloque en un intento de encontrar la solución a un complejo problema matemático. Todos los nodos de minería de la blockchain compiten entre sí, por lo que la producción de un solo bloque de Bitcoin implica una enorme cantidad de cálculos durante un periodo de unos diez minutos. En el momento de escribir este libro, el hashrate de Bitcoin es de 372 EH/s, lo que significa que todos los nodos de minería de Bitcoin están calculando 372 billones de hash por segundo. Esta potencia de cálculo está garantizada por varios millones de equipos especializados que consumen una enorme cantidad de electricidad.
La polémica comenzó en 2014 tras la publicación del primer estudio [52] que abordaba el tema del consumo energético de Bitcoin. La mayor parte de este breve análisis se centraba en la eficiencia de los diferentes equipos de minería. Su principal conclusión era que, para ser rentables, los mineros necesitaban equipos cada vez más potentes y eficientes. El último párrafo del documento ofrecía una estimación del consumo total de electricidad...
Cadenas eternas
La historia demuestra que ni siquiera las tecnologías más innovadoras son inmortales. Un ejemplo de ello es la red de correos neumáticos que existió en París durante 117 años. Creada en 1868, permitía enviar mensajes contenidos en pequeños cilindros en unas decenas de minutos, mediante aire a presión insuflado en conductos subterráneos. En su apogeo, la red cubría 472 km de París y sus suburbios. Pero el 30 de marzo de 1984, el Ministerio de Correos, Telégrafos y Teléfonos puso fin oficialmente al servicio ante los costes de mantenimiento y la competencia de los faxes.
Es legítimo preguntarse por la promesa de inmutabilidad de una blockchain, los bloques que la componen y las transacciones que contiene. ¿Cuánto tiempo sobrevivirá una transacción insertada en una blockchain? ¿Seguirá ahí dentro de diez años o más? Los casos de uso comercial, bancario o notarial pueden requerir que los datos se almacenen durante varias décadas. ¿Una blockchain ofrece una garantía de continuidad suficiente para satisfacer estas necesidades?
1. Los actores que dan vida a una blockchain
Un nodo se ejecuta en un ordenador. Si el ordenador se estropea o se destruye, otros miles de nodos siguen albergando la blockchain. Por lo tanto, la obsolescencia del hardware, los sistemas operativos, el software o los lenguajes informáticos no son una amenaza. Los nodos alojados en hardware nuevo y sistemas operativos nuevos con software nuevo escrito en lenguajes informáticos nuevos sustituirán gradualmente a los nodos más antiguos. Se sincronizarán con la última versión de la blockchain, garantizando la continuidad de la cadena, los bloques y las transacciones. Pero aún es necesario motivar a un número suficiente de personas y organizaciones para que alberguen nodos. Y también es necesario que un número suficiente de actores participen en el protocolo de consenso, asumiendo los costes que conlleva, que pueden ser especialmente elevados, sobre todo en el caso de las pruebas de trabajo. El día en que los últimos nodos dejan de funcionar, una blockchain desaparece.
¿Cuáles pueden ser las motivaciones de las personas u organizaciones que implantan nodos...
Cómo proteger blockchain
1. Análisis de riesgos
En unos diez años han aparecido miles de cadenas de bloques con objetivos, principios, ámbitos de aplicación, implementaciones y capacidades muy diversos. Los protocolos de consenso, los mecanismos de protección contra el doble gasto, los tipos y el número de actores y partes interesadas, los métodos de gobernanza, los algoritmos criptográficos, los volúmenes de transacciones, los tipos y cantidades de criptoactivos manejados, los modelos de negocio, las infraestructuras subyacentes y las capacidades de los contratos ejecutados en la blockchain son características que contribuyen a la enorme diversidad de proyectos y soluciones basados en las tecnologías de blockchain. El ecosistema en el que existen las blockchain se ha vuelto mucho más complejo, con mineros o validadores, plataformas de intercambio centralizadas o descentralizadas, contratos, tokens, oráculos, puentes, etc.
Muchas soluciones y proyectos basados en tecnologías blockchain se han alejado del caso práctico de Bitcoin, su modelo de amenazas y los protocolos, algoritmos y mecanismos diseñados o seleccionados para controlar los riesgos identificados. Bitcoin se creó para satisfacer una única necesidad, el dinero electrónico, con un modelo de amenazas deliberadamente muy simple: los usuarios de Bitcoin no quieren depender de un tercero y no quieren tener que confiar en otros participantes.
En cuanto se añaden casos prácticos, como los notarios, en cuanto se integran nuevas capas tecnológicas, como los contratos, en cuanto aparecen nuevos componentes, como los oráculos, el modelo de amenaza y la eficacia de los medios puestos en marcha para cubrir los riesgos se modifican considerablemente. Por lo tanto, disminuye la seguridad de que las características y cualidades específicas de la blockchain concebida por Satoshi Nakamoto permitan controlar los riesgos. Además, el número de escenarios de riesgo se multiplica si se considera el ecosistema que rodea a blockchain, en lugar de blockchain por sí sola. La corta historia de las tecnologías blockchain descrita en las secciones anteriores es testigo de los numerosos fallos, incidentes, efectos secundarios y consecuencias imprevistas que han sido explotados por individuos malintencionados....
Notas
[1] Bitcoin: A Peer-to-Peer Electronic Cash System, S.Nakamoto
[2] «A purely peer-to-peer version of electronic cash would allow payments to be sent directly from one party to another without going through a financial institution».
[3] «Digital signature provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending».
[4] A Quantitative Analysis of the Impact of Arbitrary Blockchain Content on Bitcoin, R. Matzutt, J. Hiller, M. Henze, J. H. Ziegeldorf, D. Müllmann, O. Hohlfeld, K. Wehrle.
[5] «To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if hones nodes control a majority of CPU power».
[6] Botcoin: Monetizing Stolen Cycles, D. Y. Huang, H. Dharmdasani, S. Meiklejohn, V. Dave, C. Grier, D. McCoy, S. Savage, N. Weaver, A. C. Snoeren, K. Levchenko.
[7] Jenkins Miner: One of the Biggest Mining Operations Ever Discovered, Checkpoint
[8] A First Look at the Crypto-Mining Malware Ecosystem: A Decade of Unrestricted Wealth, S. Pastrana, G. Suárez-Tangil
[9]:
-
Low-cost attacks on Ethereum 2.0 by sub-1/3 stakeholders, M. Neuder, D. J. Moroz, R. Rao, D. C. Parkes
-
Three Attacks on Proof-of-Stake Ethereum, C. Schwarz-Schilling, J. Neu, B. Monnot, A. Asgaonkar, E. Nusret Tas, D. Tse
-
Two Attacks on Proof-of-Stake GHOST/Ethereum, J. Neu, E. Nusret Tas, D. Tse
[10] Are Blockchains Decentralized? Unintended Centralities in Distributed Ledgers, E. Sultanik, A. Remie, F. Manzano, T. Brunson, S. Moelius, E. Kilmer, M. Myers, T. Amir, S. Schriner
[11] Cryptocurrency Anti-Money Laundering Report - Q3 2018, CipherTrace
[12] Art of Steal: Satori Variant is Robbing ETH BitCoin by Replacing Wallet Address, Qihoo 360
[13]...