Diego Martín Moreno

Diego Martín Moreno

Diego Martín es Data Engineering Manager en LUCA con más de 15 años de experiencia en computación distribuida y en los últimos años centrado en realización de aplicaciones Big Data y Blockchain.
AI & Data
La tecnología de Blockchain
En el anterior artículo hablamos de los conceptos básicos del blockchain, y en este segundo artículo nos centraremos en las tecnologías actuales para implementar una solución con blockchain. Blockchain y los Smart Contract nacieron en los 90 conceptualmente, pero ha sido en los últimos 9 años cuando han aparecido diferentes soluciones tecnológicas, en este momento existen multitud de implementaciones, pero podemos destacar tres: 1. Por un lado tenemos Corda R3, que es un blockchain creado en 2014, enfocado sobre todo para el sector financiero, donde no existe el concepto moneda y existe el concepto de notario. 2. Tenemos también Hyperledger, es un blockchain que nace en 2015 y es de uso más general, con un diseño modular, sin moneda, y donde la cadena o ledger que creemos está muy pegado al diseño de nuestro smart contract. 3. Y por último podemos hablar de Ethereum, que es un blockchain que también nace en 2015, con un diseño más generalista, con su propia moneda, el ether, y donde la red está enfocado su diseño a los aplicaciones Dapp (decentralized application), para poder crear aplicaciones descentralizadas que se ejecutan dentro de Ethereum. Para la tecnología nos vamos centrar en Ethereum, como ejemplo de cómo podemos construir una aplicación en blockchain, ya que es una red más flexible, y además existen entornos de test públicos, donde podemos construir nuestra aplicaciones sin prácticamente costes. Para empezar debemos hablar de Ethereum, que es una red con su propia moneda, el ether, y que es el elemento clave de todo el sistema. Para poder ejecutar los smart contract necesitamos disponer de Gas, que se consigue a través del Ether, que está en nuestra cuentas dentro de Ethereum, para poder pagar a los mineros que nos minan o ejecuten nuestros smart contract. Además del ether, Ethereum dispone de un segundo componente básico en la red y es la Ethereum Virtual Machine (EVM), que es el software que ejecutan todos los nodos de la red, y que permite ejecutar los smart contract con seguridad. Esta EVM puede estar implementada en diferentes lenguajes, simplemente hace falta cumplir las especificaciones del Ethereum Yellow Paper. En este momento existen dos grandes implementaciones, por una lado Geth, que es la implementación en Go de la EVM y Parity por otro, que es la implementación en Rust. Las grandes ventajas de la EVM son: Es determinista. Siempre nos devolverá el mismo resultado, para los mismos datos y las mismas operaciones, es decir 2 más 2 siempre será 4. Es terminable. Nuestras operaciones no podrán ejecutar indefinidamente, ya que todas las instrucciones ejecutadas en la EVM tienen un coste de gas y tenemos un límite de gasto para cualquier smart contract. Está aislado. Nadie puede manipular la ejecución del smart contract. Los nodos y el ether son la base del sistema, ahora ya podemos desplegar nuestros smart contract, que son programas que pueden desarrollarse en distintos lenguajes aunque todos se ejecutan en la misma red. En este momento en Ethereum, el principal lenguaje de programación de Smart Contract es Solidity, que es una mezcla entre C y Javascript. Ya tenemos todos los elementos para construir nuestra aplicaciones en Ethereum, una red con nodos para ejecutar los contratos, moneda para pagar las transacción y un lenguaje para construir los smart contract, y ahora surge la pregunta, ¿que tipo de blockchain quiero utilizar? AI of Things ¿Qué son Blockchain y los Smart Contracts? 8 de julio de 2019 Cuando hablamos de redes dentro de blockchain tenemos tres tipo de redes dependiendo del tipo de privacidad de las mismas: Redes públicas. Estas son las red donde cualquier persona se puede unir a la red, en el caso de Ethereum se denomina Mainnet, también existiendo redes de pruebas públicas como la red Ropsten. Su principal característica es que la información que esté en esta red será pública. Este tipo de redes está orientado sobre todo a acuerdos públicos, certificados o cual tipo de funcionalidad que necesite ser de dominio público, y donde los costes económicos son más elevados que en otro tipo de redes. Redes semipúblicas. Este tipo de redes son las que están orientadas para el intercambio de información entre distintas organizaciones, y donde los smart contract se encarga de gestionar las relaciones entre los miembros, de un modo automático y sin necesitar supervisión, lo cual mejora los procesos productivos. Una de las ventajas de estas redes es que no necesitan tantos recursos como las redes públicas. Existe ya implementacion sobre Ethereum que es Quorum, de JP Morgan, específico para redes semipúblicas. En el caso de España tenemosAlastria como red semipública implementada sobre Quorum. Redes privadas. El último tipo de red, que sería el desplegado dentro de una empresa y que no se tiene que comunicar con el exterior, donde queremos simplificar procesos y donde además tenemos toda la información auditada. Como vemos tenemos distintos tipos de redes para cada tipo de uso, y donde dependiendo de nuestro caso de uso deberemos ir a un tipo de red. Y todo esto es hoy en día, pero tenemos que estar preparados para los futuros cambios y las mejoras de las tecnologías existentes, como por ejemplo los futuros cambios en la red Ethereum. En Ethereum tenemos varios proyectos para mejorar la red, por un lado Plasma, un proyecto para mejorar la capacidad de Ethereum de tratar más transacciones por segundo, por otro Casper que nace con la idea de disminuir el consumo de la red con un nuevo protocolo que una el algoritmo Proof-Of-Stake (PoS) y Proof-of-Work (PoW). Como hemos visto en estos dos artículos, blockchain es un tecnología joven, que irá mejorando y cambiando con el tiempo, pero que ha venido para quedarse y modificar en muchos casos las soluciones que podemos dar, igual que ocurrió con las tecnologías de Big Data. Para mantenerte al día con LUCA visita nuestra .
16 de julio de 2019
AI & Data
¿Qué son Blockchain y los Smart Contracts?
Blockchain es la nueva tecnología para el tratamiento de los datos de la que más se habla todo el mundo, pero ¿qué es el blockchain? Blockchain es una cadena de bloques en los cuales tenemos información almacenada, y donde para conectar los bloques utilizamos una hash (el hash es una salida de un tamaño fijo, que funciona normalmente por medio de una cadena de texto y que da el mismo resultado con la misma entrada, en ethereum se genera con la función KECCAK-256) que generamos y que nos permite conectar los mismos entre sí. De este modo si alguien quisiera modificar maliciosamente un bloque debería modificar toda la cadena a partir de ese punto, con un coste computacional tan elevado que imposibilita cualquier ataque. Por lo tanto, blockchain sirve para almacenar información que no puede ser manipulada y que no necesita ser validada por una entidad central, sino por los propios miembros de la red. Un poco de la historia de blockchain Antes de continuar, es interesante hablar un poco de la historia de Blockchain, para entender en qué momento nos encontramos. Blockchain tiene varios hitos importantes en su historia: En 1991 Stuart Haber y W. Scott Stornetta publican el primer documento sobre el concepto blockchain (How to time-stamp a digital document). Satoshi Nakamoto en 2008 publica su documento de Bitcoin que sale en Octubre de ese año. "Bitcoin: A Peer-to-Peer Electronic Cash System" Y en 2009 se publica la versión 0.1 de Bitcoin en Sourceforge. Como podemos ver, blockchain conceptualmente viene de los años 90, pero la primera implementación tiene menos de 10 años. Smart Contract o Contratos Inteligentes Por otro lado, tenemos los Smart Contract o Contratos Inteligentes, que es el segundo elemento que ha dado todo el potencia al blockchain. Pero, ¿qué es un smart contract? Un Smart Contract, denominación que usa por primera vez Nick Szabo en 1996 a través de la publicación de su artículo ‘Smart Contracts: Building Blocks for Digital Markets’, es un programa informático que ejecuta un acuerdo entre dos partes en un sistema no controlado por ninguno de los dos. La conjunción de estas dos tecnologías, blockchain y smart contract, nos lleva a las aplicaciones descentralizadas (Dapp); aplicaciones autónomas no controladas por ninguna entidad y donde los datos y las transacciones son guardadas en blockchain. Para los Dapp tenemos tres tipos de aplicaciones: Tipo 1. Dapp con su propio blockchain, como por ejemplo Bitcoin. Sería como el sistema operativo de nuestro ordenador. Tipo 2. Dapp que utiliza los dapp de tipo 1 con sus propios protocolos y fichas como Omni Protocol. Son aplicaciones de tipo general como el Excel. Tipo 3. Dapp que utilizan los dapp de tipo 2. Utiliza el dapp de tipo 2 para su funcionamiento, como µRaiden. Estas aplicaciones serían como una macro de Excel. Todo esto abre un camino que antes no existía y nos permite crear aplicaciones que antes no podían realizarse. Este auge de la tecnología blockchain nos permite distribuir información y asegurarnos de que no pueda ser modificada indebidamente. Además, nos permite ejecutar de forma autónoma condiciones contractuales entre dos partes, sin necesidad de arbitraje o control por parte de una entidad por encima de todas las demás (como un banco en la actualidad). ¿Qué nos ofrece la tecnología blockchain para los modelos de negocio del futuro? Abre la puerta a nuevas formas de integrar modelos de negocio, facilitar intercambios entre diferentes empresas o simplificar procesos funcionales, pero sobre todo, donde las transacciones se ejecutan automáticamente en un entorno que no puede ser manipulado, ni en datos ni en contratos, y con trazabilidad de todo lo que sucede. Piensa en aplicaciones para la trazabilidad de productos, la gestión de activos digitales o la simplificación de procesos entre diferentes empresas.
8 de julio de 2019