Qué plataforma de Blockchain / DLT te conviene según tus necesidades

Con más que 5 años de experiencia desarrollando aplicaciones de blockchain, en GFT tenemos una visión global de todas las plataformas/redes de blockchain que hay en el mercado actual. Contamos con algunos clientes que tienen muy claro qué plataforma quieren usar, y con otros que nos requieren ayuda para elegir la tecnología. En GFT hemos trabajado en diversas plataformas de blockchain/DLT (distributed ledger technology) y conocemos a fondo las características y ventajas de cada una.

Es por ello que hemos realizado una comparativa detallada de las diferentes plataformas que sirva de ayuda a los que necesiten elegir la más adecuada a ellos. Es importante tener en cuenta que tratamos de ofrecer una visión actual del mercado para enterprise blockchains (una fotografía de la situación en este momento) y que la evolución de las plataformas DLT es continua y los cambios son constantes.  Si necesitan un estudio más profundo (un informe técnico o de negocio) no duden en ponerse en contacto con nosotros por medio de las personas de contacto de este post.

Comparativa de plataformas

Ethereum

Comenzamos por Ethereum, posiblemente el más conocido de todos los blockchains (después de bitcoin) y el primer blockchain mayor diseñado para usar Smart Contracts desde el inicio, creando una revolución popularmente llamada blockchain 2.0). 

Se trata de un blockchain público (no permisionado) pero que sí soporta la creación de redes privadas para pruebas. Aunque la red de Ethereum es generalmente estable y hay mucho desarrollo (con una comunidad Open Sorche bastante grande), se encuentra bastante saturada por la cantidad de crypto-trading que soporta. Los costes de una transacción en la red son bastantes altos (comparada con otras plataformas) y la velocidad de las transacciones (por segundo) es bastante baja. Se ha planificado que en 2020/2021 introduzcan nuevos sistemas de sharding y de consensus (proof of stake), y una sustitución del EVM (EWASM) para intentar mejorar la cantidad de transacciones por segundo que soporta la red.

Ethereum soporta varios clientes (un cliente es una manera de interactuar con la red). Sin entrar en mucho detalle, hay tres que creemos que son más relevante en el mercado actual: Geth, Parity e Hyperldeger Besu. Geth es el cliente común Ethereum que se usa en la mayoría de casos. Se gestiona toda la interacción con Ethereum blockchain (mining, transferencias, creación de contratos etc.) por una línea de comandos. Es posible usar JavaScript para comunicar con geth programáticamente.  Parity es un cliente que está pensado para posibles casos de uso de producción; es más ligero que muchos otros clientes y muy rápido para ejecutar operaciones. Parity también pone el foco en la calidad de su propio código y promete que es 100% testeado y evaluado por terceros.  Hyperledger Besu (anteriormente Pantheon) es un cliente de Ethereum Java pensado para escalabilidad y seguridad. Hyperledger Besu permite usar diferentes consensus como IBFT y PoW. También posibilita gestionar comunicaciones privadas entre participantes de   red y redes privadas con permisiones de nodo y cuenta.

En esos momentos, Ethereum sólo funciona con un lenguaje de smart contractsSolidity. Al principio, Solidity tenía algunos problemas de seguridad con el lenguaje (que se podía evitar usando work-arounds), pero ahora es bastante seguro y estable.

Es importante saber que hay muchos forks/nuevas versiones de Ethereum, enfocadas en diferentes áreas de interés. A continuación, entramos en detalle sobre uno de ellos: Quorum.

Quorum

Quorum es un forkde Ethereum centrado en la privacidad, la reducción de tiempo y coste de transacción y escalabilidad. Fue creado por JPMorgan, pero es un proyecto Open Source al que puede contribuir cualquier persona. Las redes de Quorum son permisionadas (son privadas – no hay opción publica) y se puede elegir entre un consenso RAFT o IBFT.

 Quorum usa Solidity para sus Smart Contracts, por lo que tenía los mismos problemas de seguridad que Ethereum. Otras dificultades que tenía estaban relacionadas con el hecho de escalar la cantidad de nodos en una red privada. En general, tras el empuje inicial de commits de la comunidad open source en los últimos años, la comunidad no se ha involucrado y esos tipos de problemas se han quedado en el backlog sin que JPMorgan o la comunidad open source los solucione. También en esta área (Enterprise Ethereum) hay muchas otras opciones; las principales son BlockApps y Pantheon.

La propia Alastria utiliza Quorum para la base de Red T. Red T esta montado para usar tres tipos de nodos:  nodos validadores, nodos boot y nodos regulares. El nodo validador hace correr el consensus (IBFT) y validan las transacciones. Los nodos boot permiten que los nodos pueden conectarse con la red y encontrar otros nodos desplegados en la red. Los nodos regulares son los del cliente. Hay bastantes nodos en la Red T alojados por varias empresas e instituciones (comparado con redes similares). En este momento Red T tiene 17 nodos validadores, 5 nodos boot  y 65 nodos regulares.

Se puede usar redes de Quorum para una gran variedad de casos de uso. En general, se dan muchos casos de proyectos de banca y bolsa, por los beneficios en cuanto a la privacidad que aporta (como pagos o post trade settlement). También hay varias implementaciones de Quorum Networks basadas en casos de uso de cadenas de siniestros ya que, en general, se puede modelar una cadena bastante bien con la pauta que no es posible tener un node de Quorum integrado en un sensor.

Corda

Corda es un DLT, no un blockchain, porque su manea de guardar datos se hace con un DAG. Realmente, no está tan descentralizada como Ethereum (o bitcoin, quorum etc.) porque no era su objetivo principal. En este caso una red Corda tiene cierta centralización basada en nodos validadores que admiten transacciones basadas en un tipo de servicio en particular. Ese tipo de red es muy escalable y perforante. Las redes Corda también son permisionadas/privadas y se les puede aplicar un nivel bastante profundo de permisos programables con relación a quién tiene acceso a datos. Cuenta con una gama de herramientas, creada por el propio Corda, como Corda Modelling Notation, Corda Settler o Corda Token SDK. En general hay dispone de bastante documentación y es una comunidad bastante activa.

Si las comparamos con las demás redes, podríamos decir que Corda cuenta con un nivel medio de dificultad para su creación y mantenimiento y, por ejemplo, operaciones como añadir un nuevo nodo a la red no son muy sencillas. Hay algunos informes (como este: chapter 15) que cuestionan la confidencialidad de nodos en la red. Por otro lado, la cantidad de transacciones por segundo es alta, pero no llegan al nivel de otras plataformas, como DA Platform, IOTA

Corda cuenta con una extensión denominada Cordite (oficialmente es un cordapp), muy muy recomendable si se necesita hacer un DAO o crear redes donde sea necesario trabajar con diferentes monedas (Corda estándar solo admite un tipo de moneda).

Originalmente, Corda nació para casos de uso de banca (especialmente banca de inversión), pero también hay implementaciones de supply chain y trade finance en el mercado.

IOTA

IOTA es una red pública de DLT específicamente enfocado en integraciones con IoT. Es posible tener un nodo de IOTA funcionando en un sensor, o similar, directamente. El IOTA Tangle (su manera de guardar datos) es un tipo de DAG con ciertos cambios y, su manera de hacer consensos en grupos pequeños de nodos, significa que los tiempos de transacciones por segundo son bastante bajos. Otro beneficio que tiene IOTA es que están utilizando una cifra que es resistente a procesadores quantum. Esto era un poco controvertido al principio de su desarrollo porque, generalmente, los DLTs utilizan cifras standard con las garantías que tiene.

Hasta hace un año, IOTA no soportaba Smart contracts. Ahora sí, por medio de un sistema que se llama Qbic y su lenguaje de Smart Contracts ABRA (soportado por extensiones como TOQN). La implementación de tokenisationy Smart contracts es algo nuevo y relativamente limitada cuando lo comparas con lenguajes de Smart Contracts como Solidity y DAML. Hasta Coordicide, la red es centralizada porque usan un coordinador central para gestionar el network.

Cardano

Cardano es relativamente nuevo y su testnet (Shelley) en breve estará disponible.  Lo incluimos aquí porque es una plataforma muy avanzada y tal vez se convierta en una de las plataformas open source/gratis líderes en el futuro. Es muy escalable (no hay límites de escalabilidad en teoría), y soportara side chainspara coger información off-chain de otras redes. Una de las mayores mejoras que tiene Cardano es la separación de las capas de administración (gestión de nodos/red) y computación (smart contracts). Tiene su propio lenguaje de Smart Contracts, denominado Plutus.

Hay un par de dificultades con Cardano. La primera es el tiempo que ha tardado en crear su primer testnet. Es un proyecto open source con una comunidad bastante activa, pero debido a la complejidad de la plataforma se ha tardado bastante tiempo en desarrollarlo. El segundo es la falta de privacidad en el subcontrato (hay privacidad de red, pero no hay una privacidad programable en el Smart Contract). En este caso, si quieres más  privacidad de la que hay en una red permisionada/privada, tendrás que usar una sistema como zCash sobre Cardano (ver los detalles aquí), que no será nada fácil.

VMware Blockchain

VMware blockchain también es una novedad en el mundo DLT y en este momento se encuentra en Beta (surelease GA está prevista para el primer trismestre de 2020). Lo incluíamos en la lista por su potencial en el mercado. VMware ha estado creando su propia plataforma de Blockchain desde 2015 y ha publicado un consenso nuevo (Concord) como desarrollo Open Source. Además, están haciendo un BAAS (Blockchain As A Service) que se puede comprar.

La plataforma VMware blockchain está enfocada en escalabilidad y seguridad. Se usa infraestructura VMware para desplegar su red y monitorizarla. Es posible utilizarla en cloud (ofrecen soporte para la mayoría de proveedores de servicios cloud) y on-premise. Soporta DAML y Solidity en esos momentos y hay planes también para integrar Golang Chaincode. Tiene integrado un modelo de privacidad que soporta subcontrato de privacidad.

Usar esta plataforma tendrá sentido cuando se desee emplear una solución SAAS. Muchas acciones de mantenimiento como montar la red y hacer actualizaciones las realiza el mismo servicio. VMware Blockchain Tiene un coste por nodo, por lo que tendría sentido usarlo cuando nos encontremos un caso de uso o proyecto donde  el ROI es muy claro y se cuenta con presupuesto  para pagar este servicio.

VMware Blockchain DAML y Canton

DAML es un lenguaje de Smart Contracts que se integra en diferentes plataformas (ahora Hyperledger y VMware Blockchain Beta, pero en el futuro en Corda, Amazon QLDB, entre otras). Lo mencionamos aquí porque es, tal vez, uno de los lenguajes de Smart Contracts más eficientes y seguros. Se basa en Haskell, pero se evita la complicación de lenguajes funcionales y, además, cuando utiliza DAML no es necesario pensar en cómo comunicar la red (se abstrae todo eso para el desarrollador). DAML es muy legible y compacto y generalmente se puede hacer un Smart Contract en DAM con un 75% menos de código de Smart Contracts de Solidity o Go Chaincode.

Canton es la plataforma de referencia para DAML – la implementación perfecta del sistema. Propietarios de plataformas se la pueden bajar para averiguar cómo integrar DAML con su sistema. Además, los desarrolladores pueden usarlo para experimentar con DAML sobre Canton (no es para uso comercial). Se trata de una plataforma muy escalable, con diversos niveles de privacidad (incluyendo subcontrato), que cumple con GDPR.

Diagramas de la comparativa

Conclusión

Hay diferentes tipos de redes disponibles para un proyecto. Antes que tomar una decisión sobre qué plataforma utilizar, es muy importante saber lo que se a nivel funcional. Hoy en día, la tendencia consiste en tener diferentes plataformas y ninguna domina el mercado. Ya veremos si esto cambia en los próximos años aunque, por ahora, no parece que vaya a pasar a corto plazo.

En GFT hemos ayudado a nuestros clientes a elegir su plataforma adecuada para sus proyectos de DLT.  Si tu compañía necesita ayuda para considerar diferentes opciones, ponte en contacto con nosotros y pondremos nuestra experiencia a tu servicio.

Este artículo se publicó originariamente en el blog de Alastria en medium.

GreenCoding

Con GreenCoding el desarrollo de software se convierte en parte integrante de tu programa de sostenibilidad

Más información