En un blog de tecnología, no podíamos dejar de hablar de Blockchain, sin duda, el “palabro” de moda de 2018, que sigue la estela de los SIG (allá por 1995-2000), o la era del Big Data (entre 2014-2016), y que todo el mundo habla, al amparo de la nueva economía del siglo XXI: las criptomonedas.
Qué es Blockchain
A blockchain is a peer-to-peer distributed ledger forged by consensus, combined with a system for “smart contracts” and other assistive technologies.
Es una base de datos distribuida, formada por cadenas de bloques diseñadas para evitar su modificación una vez que un dato ha sido publicado usando un sellado de tiempo confiable y enlazando a un bloque anterior. Es especialmente adecuada para almacenar de forma creciente datos ordenados en el tiempo y sin posibilidad de modificación ni revisión.
La tecnología blockchain está basada en 3 diferentes aspectos:
- Almacenamiento de datos: se logra mediante la replicación de la información de la cadena de bloques
- Transmisión de datos: se logra mediante redes de pares.
- Confirmación de datos: se logra mediante un proceso de consenso entre los nodos participantes. El tipo de algoritmo más utilizado es el de prueba de trabajo en el que hay un proceso abierto competitivo y transparente de validación de las nuevas entradas llamada minería.
Diferencias entre blockchain y las bases de datos
La tecnología blockchain tiene algunas peculiaridades que la diferencian de lo que se conoce como bases de datos, y que hay que comprender.
Blockchain es una tecnología de solo una escritura de datos, porque los nuevos datos se van incorporando al final del listado, y cada nuevo bloque se incorpora al final de la cadena, enlazando con el previo mediante un hash.
La segunda gran diferencia es que no hay un administrador de permisos que permita la edición o el borrado de datos, porque no están contempladas esas opciones!
En las bases de datos relacionales, los datos y los registros pueden ser modificados e incluso borrados, y además, lo normal es que existan administradores de la base de datos que pueden realizar cambios tanto en los datos como en la estructura. Por el contrario, blockchain fue diseñado para aplicaciones descentralizadas (mientras que las bases de datos fueron diseñadas para aplicaciones centralizadas, donde una unidad principal es la que controla los datos. La siguiente figura muestra gráficamente los dos conceptos.
Blockchain technology has some key differentiators from databases.
A blockchain is a write-only data structure, where new entries get appended onto the end of the ledger. Every new block gets appended to the block chain by linking to the previous block’s ‘hash’ (you can check the Glossary tab for a refresher on hash functions). There are no administrator permissions within a blockchain that allow editing or deleting of data.
In a relational database, data can be easily modified or deleted. Typically, there are database administrators who may make changes to any part of the data and/or its structure. Additionally, blockchains were designed for decentralized applications, whereas relational databases, in general, were originally designed for centralized applications, where a single entity controls the data.
La diferencia entre ambas es bien evidente, por lo que la seguridad en blockchain es una de sus principales características. Asociado a esto, está los smart contracts, o contratos inteligentes, que es lo que permite la realización de transacciones entre partes sin que se revele el contenido.
Quizás, la diferencia más radical entre ambas es la inmutabilidad de los datos de la transacción, es decir, que una vez realizada la transacción, sus datos no serán posibles modificarlos, lo que da seguridad y confianza.
Empezar con Blockchain
Si eres desarrollador y te gusta la tecnología, tendrás que echar un vistazo a esto de blockchain. Yo he empezado por cryptozombies.io, que tienen un curso de Solidity y gratis, para entender un poco mejor cómo funciona blockchain, y que te detallaré en otra entrada.
Un saludo, y happy coding!