Blockchain: de la criptomoneda a su aplicación en procesos de negocio
Según muchos expertos, puede que estemos en el amanecer de una nueva revolución, una revolución que empezó con una nueva moneda llamada bitcoin que no estaba acuñada ni respaldada por ningún banco central, sino por el conjunto de usuarios que participan en la red como nodos y donde no es necesario confiar entre ellos porque es el sistema mediante un algoritmo el que evita que exista fraude.
Esa tecnología que hay detrás del bitcoin, Blockchain, se utiliza ahora para hacer más eficientes, rápidos y seguros procesos en las redes y relaciones de negocio tradicionales. Vamos a conocer en las siguientes líneas, la evolución de esa primera aplicación de blockchain, desde la criptomoneda, hasta la aplicación en el mundo de la empresa.
Un poco de Historia
Antes de ver cómo funciona, vamos a repasar un poco de historia. Muchas de las ideas usadas para crear monedas digitales se generaron dentro de un movimiento llamado “cipherpunk” y algunos de los que han propuesto monedas digitales, fueron miembros de este movimiento.
El movimiento nació en 1990 en una serie de encuentros de criptógrafos con posiciones liberales que se oponían a las acciones del gobierno de EEUU contra la investigación y la publicación de ideas criptográficas.
El objetivo del movimiento era utilizar la criptografía para cambiar la sociedad y tiene su origen en los primeros desarrollos criptográficos como las firmas ciegas “blind signatures” en 1982 por David Chaum(1) o la criptografía de clave pública en los 70 por Diffie, Hellman and Merkle(1). Las discusiones del grupo migraron a una lista de correo, que utilizó Satoshi Sakamoto, el creador de Bitcoin para publicar su artículo. No está claro si su nombre es real o pseudónimo o si es una persona, hombre o mujer o un grupo de personas. El “paper” se publicó el 31 de octubre de 2008 en una lista de distribución de correo metzdowd.
Satoshi publicó el código fuente e inició la red peer-to-peer en 2009, empezó a minar el 3 de enero de 2009. Durante esos primeros días había pocos mineros y la dificultad era muy baja. Se calcula que Satoshi llegó a minar 1 millón de bitcoins, Ninguno de esos bitcoins ha sido gastado(2).
El primer bloque (fig. 1), llamado bloque génesis, contenía un mensaje con el titular del Times de ese día: anunciaba un segundo rescate a los bancos.
El contexto en el que nace, como se deduce, es un contexto de crisis económica y de descontento por los controles centrales económicos y políticos.
Innovación
El artículo de Satoshi, no introdujo, nada que no se conociera, representa la culminación de muchos años de investigación en criptografía y computación distribuida, una serie se soluciones, que combinadas, hace de bitcoin un sistema, que como comentábamos, puede revolucionar nuestro mundo. A continuación te mostramos 3 aspectos de innovación que han resultado clave.
- El problema del doble Gasto
La principal innovación que aporta el paper de Satoshi Sakamoto es que el sistema resuelve el problema del doble gasto. Era un problema hasta entonces no resuelto en matemática distribuida conocido como el problema de los generales bizantinos.
El problema consiste, de forma muy resumida, en cómo llegar a un consenso sobre una acción determinada en un entorno distribuido, con participantes en los que no se puede confiar. Su solución estaría en el doble gasto, ya que permite asegurar que la información sea consistente entre todos los nodos que participan en la red, evitando que haya fraude.
Satoshi toma prestada de HashCash, la idea de “proof of Work”, es decir, los nodos en la red participan en una competición por validar las transacciones resolviendo un puzzle matemático, un “hash” con un número de ceros iniciales determinado que va aumentado (la dificultad). A este trabajo se le llama minar, un trabajo muy intensivo computacionalmente y que consume mucha energía. De esta forma, aseguramos que, de forma aleatoria, la probabilidad de validar las transacciones se distribuye en función de la potencia de cálculo entre los nodos que participan en la red.
El minero que gana la competición, realiza un “broadcast”, mediante el protocolo P2P bitcoin del bloque. Con las transacciones confirmadas, el resto de nodos, verifican que el bloque es correcto y que las transacciones también lo son. Una vez comprobado, se empieza la competición para minar nuevos bloques. El minero que gana la competición, recibe un premio, que actualmente es 12,5 bitcoins.
- La cadena de Bloques o “Blockchain”
Los bloques son una estructura de datos que contienen transacciones (fig, 2). Es por lo tanto, un libro de contabilidad público y distribuido, mediante el protocolo bitcoin P2P, una BBDD pública y distribuida de todas las transacciones que se realizan y que mantienen todos los nodos que participan en la red.
Los bloques de información se enlazan mediante punteros hash (dirección criptográfica) que conectan el bloque actual con el anterior y así sucesivamente hasta llegar al bloque génesis (fig. 3). Sólo como apunte y sin entrar en más detalles, los hashes se construyen mediante una estructura llamada “Merkle tree” propuesta por Ralph Merkle en 1982. Satoshi tomó la idea de utilizarlos.
De esta forma se puede verificar fácilmente que la cadena no ha sido modificada, ya que una función hash tiene la particularidad, que ante un pequeño cambio en el mensaje de entrada, el resultado varía totalmente(4), por lo que, si se modificase una transacción en un bloque, variaría su hash y la cadena dejaría de estar enlazada.
En la figura 4 podemos ver algunos ejemplos que demuestran el anterior párrafo.
- El Lenguaje “Scripting”
El lenguaje de “Scripting” utilizado en bitcoin, llamado “script” en un lenguaje basado en pila (fig. 5) similar a “Forth”(5). Es intencionadamente no Turing-completo para evitar que los programas se bloqueen.
El lenguaje proporciona, pocas instrucciones, pero permite verificar la firma del nodo que envía la transacción e introduce, por ejemplo, la opción a transacciones que requieren multifirma para operaciones que necesitan la figura de un fiduciario.
La firma Digital o “digital signature” permite que una persona cree un mensaje firmado con su clave privada y que otras personas puedan verificar este mensaje usando la clave pública que corresponde.
La evolución de Bitcoin: la utilización de Blockchain
Bitcoin y su tecnología subyacente, blockchain, ha evolucionado para mejorar tres aspectos fundamentales, que permiten su aplicación en otros entornos y para otros usos, que van más allá de los simples pagos mediante criptomonedas. Son los siguientes:
- SmartContracts. ;Tienen que ver con el lenguaje de scripting para hacer posible la implementación de reglas más complejas, mediante los llamados contratos inteligentes. Es el caso de HyperLedger o Ethereum donde se utilizan lenguajes de programación de alto nivel como Solidity, JavaScript, Python, Java, etc.
- De la criptomoneda a toda clase de activos. La primera aplicación de blockchain, fue la criptomoneda bitcoin pero existen otros activos: los tangibles, como las propiedades o mercancías y, los intangibles financieros, como los futuros o los forwards o los no financieros como la propiedad intelectual. De hecho, ese es uno de los primeros procesos que se lleva a cabo cuando uno afronta un proyecto blockchain, como por ejemplo, digitalizar los activos que queremos representar en transacciones y regular con smartcontracts.
- Escalabilidad. En este caso, la utilización del consenso mediante la competición “Proof of Work” limita el número de transacciones por segundo (fig. 1) que puede soportar la red. Eso hace, que para ciertas aplicaciones, la utilización de blockchain, no se pueda llevar a la práctica (Fig. 6).
Conclusión: Blockchain 3.0
Como hemos podido leer en los anteriores párrafos, con blockchain, una base de datos distribuida, un libro de contabilidad que se comparte por todos los nodos que participan en la red (fig. 2), y con la inclusión de reglas de negocio mediante contratos inteligentes, que también están distribuidos, podemos aplicar la tecnología blockchain a muchos procesos y relaciones, tanto en las empresas públicas para mejorar su interrelación con el ciudadano, como en las empresas privadas en múltiples ámbitos, que explicaremos en próximos artículos.
En un próximo post explicaremos, las diferencias de los tipos de tecnología Blockchain que se están utilizando y su aplicación en un ámbito privado-público, con y sin permisos de acceso.
Bibliografía
(1) Understanding Bitcoin, “Cryptography, engineering, and economics” Willey
(2) Satoshi Nakamoto: “Bitcoin: A peer-to-peer Electronic Cash System
(3) Mastering bitcoin. O’Reilly
(4) https://www.xorbin.com/tools/sha256-hash-calculator
(5) Bitcoin internals