Lenguajes de programación para aplicaciones blockchain

La tecnología blockchain va ganando cada vez más adeptos. Cada vez son más los desarrolladores que con el objetivo de aportar un valor distintivo a sus clientes optan por formarse en desarrollo de aplicaciones descentralizadas con esta tecnología.

El problema es que hay centenares de blockchain distintas y algunas de ellas con sus propios lenguajes de programación. Por lo tanto la pregunta más lógica que se hacen los programadores es ¿Por dónde empiezo?

Claro está que el primer paso es entender el panorama general para evaluar cuál es la tecnología que puede encajar más con las necesidades de los clientes.

La primera diferenciación importante es el concepto de blockchain pública y blockchain permisionada. La primera consiste en un tipo de blockchain a la que todo el mundo puede tener acceso y consecuentemente cualquier persona puede contribuir en la creación de bloques y el poder de administración de la red se distribuye entre todos los participantes de la red. De esta manera nadie tiene la capacidad de tomar decisiones unilaterales sobre la información que se registra en la blockchain o sobre la administración de los programas descentralizados instalados en la red. Esto es lo que les hace tan especiales, ya que se obtiene una plataforma en la que puedes instalar programas y estos pasan a ser de dominio público sin un administrador que pueda alterar el código por beneficio propio o que pueda manipular la información registrada. Esto lo hace ideal para crear nuevas aplicaciones con propuestas de valor que hasta día de hoy no se podían ofrecer.

Desarrollo de DApps sobre blockchain pública

La plataforma blockchain más conocida para el desarrollo de aplicaciones descentralizadas (DApps) es Ethereum. Dicha blockchain cuenta con su propio lenguaje de programación (Solidity) para desarrollar los Smart Contracts. Estos Smart Contract incluyen la lógica de la aplicación descentralizada que debe ser registrada en la blockchain por motivos de seguridad, garantizando así la inmutabilidad del código. Otros elementos de la DApp se pueden desarrollar en otros lenguajes y frameworks de programación como por ejemplo HTML, JavaScript, Meteor, Ionic, etc.

Solidity

Es un lenguaje de programación con una sintaxis parecida al de JavaScript o al C, con lo que no es muy difícil de aprender y mucho menos para desarrolladores experimentados. Es el lenguaje más usado para desarrollar los Smart Contracts en Ethereum. El compilador de Ethereum traducirá el código de nuestros Smart Contracts a un código llamado Bytecode que es con el que trabaja la Máquina Virtual de Ethereum, o como se conoce por sus siglas en inglés, la EVM.

Una característica importante es que es un lenguaje de programación “Turing Complete”. Es decir es un lenguaje de programación de alto nivel que tiene un poder computacional equivalente a lo que se denomina una “Máquina de Turing Universal”.

La Máquina Virtual de Ethereum es considerada una Máquina de Turing Universal, o lo que es lo mismo, un software capaz de ejecutar cualquier código definido por el desarrollador.

 

Desarrollo de DApps sobre blockchain permisionada

Muchas organizaciones están interesadas en aprovechar las ventajas que aporta la tecnología blockchain pero no les gusta perder el control de manera total sobre una base de datos con información sensible. Otras empresas les preocupa el exceso de transparencia en la información que otorgan las blockchain públicas. Y también hay otras entidades que necesitan registrar muchas transacciones y no pueden permitirse pagar una comisión por cada transacción. Para resolver estos problemas aparecieron las conocidas como blockchain permisionadas. En pocas palabras sería una blockchain con un número limitado de nodos, los cuales se conocen entre ellos. Para formar parte de esta red permisionada se tiene que solicitar permiso a un administrador o al conjunto de los miembros.

Cómo todos los nodos son identificados y conocidos por los demás (normalmente empresas colaboradoras) se pueden usar protocolos mucho más sencillos ya que en estos casos se garantiza la legitimidad de los registros a través de la reputación de cada nodo y en muchos casos a través de contratos privados que imponga sanciones a los autores de un intento de manipulación de la blockchain.

La tecnología más usada para la construcción de estas infraestructuras permisionadas y sus aplicaciones descentralizadas es Hyperledger.

Hyperledger

Hyperledger es un tecnología de código abierto que intenta promover proyectos con la tecnología Blockchain. Nace en 2015 bajo la tutela de Linux Foundation y ayudado por empresas líderes en diferentes sectores. La idea detrás de Hyperledger es desarrollar estándares y protocolos abiertos. En resumen, se centra en el desarrollo de tecnología blockchain privada orientado al mundo empresarial.

Hyperledger permite hacer una blockchain a la carta, ofreciendo la posibilidad de conectar de manera modular todo tipo de componentes y herramientas. Es una tecnología muy versátil que puede ser configurada de manera muy diferente en función del caso de uso que se desea poner en práctica, permitiendo la configuración de diferentes consensos posibles, sistemas de almacenamiento, servicios de identidad, etc.

Una de las principales características es la posibilidad de crear canales privados entre varios miembros dentro de una red, lo cual puede resultar interesante para compartir información i restringirla para únicamente con algunos de los participantes.

Además se deberán usar otros lenguajes de programación como Go, JavaScript o HTML para poder desarrollar una aplicación descentralizada al completo.

 

El primer paso es la formación

Para poder desarrollar soluciones basadas en esta tecnología es necesario primero formarse en una escuela especializada. Desde que empecé a trabajar como docente en Blockchain School for Management, una escuela con varios cursos de blockchain para distintos perfiles profesionales, me di cuenta que sin una buena formación es muy complicado dedicarse profesionalmente en este sector.

Muchas empresas podrán beneficiarse de proyectos basados en esta tecnología. Por este motivo animamos a todos los interesados en el blockchain a que estudien la tecnología y que posteriormente colaboren con empresas para desarrollar aplicaciones descentralizadas. Otra opción es imaginar una nueva propuesta de valor y crear un nuevo negocio disruptivo que aproveche las ventajas del blockchain para aportar un beneficio al conjunto de la sociedad.