lunes, 17 de junio de 2019

Blockchain como una gigantesca máquina virtual


Confieso que no se me había ocurrido hasta ahora entenderlo de esa forma.

Blockchain es una tecnología que no resulta sencilla de entender y que, quizá, tampoco ha sido demasiado claramente explicada. Pero en lo que se puede ir entendiendo más fácilmente de blockchain, uno se hace a la idea de cómo son los bloques, cómo se unen formando cadenas, cómo se gestionan transacciones o el uso que se hace de la criptografía.

Pero parecen existir otras perspectivas, quizá más rompedoras, y ligadas al concepto de 'smart contracts' o, mejor aún, de aplicaciones distribuidas.

En las primeras páginas del libro 'Mastering Ethereum' de Andreas M. Antonopoulos y Gavin Wood. me sorprendió que hablasen de Ethereum como una máquina virtual a la que, incluso, ponen nombre: Ethereum Virtual Machine (EVM). De hecho, ya en el segundo párrafo del primer capítulo, nos dicen:

Ethereum is a deterministic but practically unbounded state machine, consisting of a globally accesible singleton state and a virtual machine that applies changes to that state.

Unas páginas más adelante nos dicen:

Ethereum state transitions are processed by the Ethereum Virtual Machine (EVM), a stack based virtual machine that executes bytecode (machine language instructions), EVM programs called "smart contracts" are written in high-level languages (e.g. Solidity) and compiled to bytecode for execution on the EVM.


Es una original forma de entenderlo pero, seguramente, resulte clave. Ethereum, aunque también tiene transacciones e incluso su propia critpomoneda ('ether'), pone mucho foco en los smart contracts y las aplicaciones distribuidas, es decir, sin perder elementos de plataformas anteriores de blockchain, se orienta a la ejecución distribuida de software.

Para que la construcción de esas aplicaciones sea eficiente y, digamos universal, en el sentido de independiente de hardware y sistema operativo, conviene se ejecuten y, por tanto, compilen, en el mismo entorno de máquina virtual. Con la particularidad adicional de que la información que usan las aplicaciones forma parte de ese estado único, conocido y compartido por todos los intervinientes, y que reside en la cadena de bloques.

Y dado que Ethereum es una plataforma pública de blockchain, y muy popular, aspira probablemente a la universalidad y, por tanto, esa máquina virtual y ese estado único sean ubicuos ('pervasive') y, por tanto, hayamos convertido a blockchain en una gigantesca máquina virtual.

Es, desde luego, una forma de entender blockchain muy diferente. al menos a mi me lo parece, y que abre nuevas y ambiciosas perspectivas, quizás el propio futuro de blockchain.

No hay comentarios:

Publicar un comentario