Esta es una guía muy elemental, dirigida a las personas que desean comenzar a educarse sobre la tecnología más innovadora aparecida en las últimas décadas: blockchain. Sobre todo para quienes son ajenos al mundo de la computación, las explicaciones acerca de qué es blockchain pueden parecer difíciles de digerir. En este post presentamos los conceptos básicos de las cadenas de bloques, apoyados por unas animaciones de reuters.com que hacen realmente fácil para todos entender los principales elementos que intervienen en su funcionamiento.
Blockchain explicado y animado
La palabra blockchain se refiere a una base de datos que se comparte en una red de computadoras. Una vez que se ha agregado un registro a la cadena, es casi imposible modificarlo. Con “cadena” queremos decir el almacén total de la información, donde los registros se hallan agrupados en estructuras llamadas “bloques”, enlazados entre sí uno tras otro. Para garantizar que todas las copias de la base de datos sean iguales, la red realiza comprobaciones constantes. Hasta ahora, las cadenas de bloques son conocidas más que todo por ser la tecnología que hace posible el funcionamiento de las monedas virtuales, como Bitcoin, AVA o Ethereum, pero sus casos de uso ya se han diversificado y siguen encontrándose más.
La base de datos
Como se dijo antes, los registros se agrupan en bloques y éstos van siendo agregados a la cadena (que es la base de datos) uno tras otro. Entonces, una blockchain presenta tres elementos básicos:
• El registro: puede ser cualquier tipo de información, las más comunes son del tipo transacción, donde quedan almacenados los detalles de un intercambio de valor (compra-venta).
• El bloque: es la estructura de datos primordial de una blockchain y de la cual deriva su nombre. Cada bloque es un conjunto de registros.
• La cadena: Todos los bloques unidos entre sí forman una base de datos, representada en la gráfica como una especie de cinta.
Cómo se va construyendo una cadena de bloques
Paso uno: creación del registro
Lo primero que debe suceder es el registro de un hecho o evento. En el caso de una transacción, podemos suponer que el señor Vitalik Buterin está vendiendo monedas de ETH por el equivalente a US$ 6.500 al señor Craig Wright. En el registro se enumeran los detalles de esta operación, incluida una firma digital de cada parte.
Paso dos: verificación
El registro es verificado por la red. Las computadoras en la red, llamadas “nodos”, verifican los detalles de la operación para asegurarse de que sea válida.
Paso tres: llenando el bloque
Los registros que la red aceptó se agregan a un bloque. Cada bloque contiene un código único llamado hash. Cada bloque también contiene el hash del bloque que le precede en la cadena.
Paso cuatro: agregar a la cadena
El bloque se añade a la base de datos (blockchain). Los códigos hash actúan como el pegamento que conecta los bloques en un orden específico.
Modificar una blockchain es algo muy difícil de lograr
Los códigos hash son creados por una función matemática que toma información digital y genera una serie de letras y números a partir de ella. Prestemos atención a dos características importantes de los códigos hash:
Primero, no importa de qué tamaño sea la información original, una función hash siempre generará un código de la misma longitud. Por ejemplo, si calculamos el hash para la palabra “blockchain” y el correspondiente a los dos últimos párrafos de este artículo (que incluye el presente) obtendríamos dos códigos de igual longitud (64 caracteres en cada caso).
Hash para la palabra “blockchain”:
ef7797e13d3a75526946a3bcf00daec9fc9c9c4d51ddc7cc5df888f74dd434d1
Hash de los dos párrafos mencionados:
9369e334e38471953fe68bf6d60b0828222da6867cd91bbacbb84105b46c6582
En segundo lugar, cualquier cambio en la información original generará un nuevo hash completamente distinto. Vamos a hacer la prueba con este mismo párrafo. Calculamos el valor del hash para el texto tal y como está, y luego lo hacemos eliminando solamente los dos puntos al final del mismo.
Hash del párrafo original:
3163bbe6a2922fc4a92cfd9d0edae2a3a2e957171e08215aab87d20a8efd1490
Hash del texto modificado:
b89f3325f73f48d21bccc02c5601160884dd5e6378d1a883d4c3c0306ed62b9b
Notará que, en el segundo caso, el hash obtenido es totalmente diferente del primero, evidenciando que ha ocurrido una alteración en el contenido original.
El nuevo hash acaba con la continuidad de la cadena
El siguiente bloque en la cadena aún tiene el hash antiguo, así que, para restaurar la cadena, un hacker tendría que recalcularlo. Y el hash del bloque anterior, el del anterior a ése y hacer lo propio con todos los demás. Para recalcular todos esos hashes haría falta un enorme de poder de cómputo y una cantidad considerable de tiempo.
Sin autoridad ni control central
A diferencia de los libros de contabilidad tradicionales, blockchain es una base de datos descentralizada donde no existe un libro “maestro”. En una red centralizada la autoridad está en manos de un nodo central, mientras que en una descentralizada todos los nodos pueden acceder a la información y competir para ser los siguientes en añadir información a la base de datos.
Confiar en los otros, sin conocerlos
Sin un control centralizado en la red, aparece el problema de la confianza. Una alternativa es permitir que sólo las entidades conocidas, como los empleados de una empresa, se unan. Pero las cadenas de bloques como la red Bitcoin son públicas, es decir, están abiertas para todos. Sus miembros son anónimos y no hay manera de saber si son confiables.
Para resolver esto y generar confianza, estas cadenas de bloques establecen pruebas para los nodos que buscan unirse y agregar registros a la cadena. Estas pruebas son conocidas como los modelos de consenso. Los modelos de consenso requieren que los nodos participantes en una cadena de bloques se “prueben” ellos mismos. Dos de las formas de consenso más conocidas son:
La Prueba de Trabajo (PoW)
Para que se les permita agregar un bloque a la cadena, los nodos deben demostrar que han hecho “trabajo” al resolver un problema matemático de dificultad creciente. Para realizar dicho proceso, llamado minería, se hace necesario disponer de una gran cantidad de potencia de cálculo. A cambio de su trabajo, los miembros (mineros) pueden recibir recompensas denominadas en la moneda de la red en la cual funcionan sus nodos. En el presente, un minero de Bitcoin recibe 12,5 BTC por cada bloque agregado a la cadena, lo que vendrían siendo unos US$ 99.000 al precio del 23/05/2019.
La Prueba de Participación (PoS)
Los interesados compran tokens que les permiten unirse a la red. Cuantos más tokens posean (participación), más podrán minar.
Casos de uso para blockchain
La tecnología de las cadenas de bloques sigue recibiendo mucha publicidad, pero, dado lo reciente de su aparición, es una innovación cuyos casos de uso están apenas comenzando a ser explorados, aunque ya se aplica en los siguientes escenarios:
• Criptomonedas: las cadenas de bloques son la base de Bitcoin y otras monedas digitales.
• Banca: algunas instituciones financieras han estado invirtiendo sumas importantes en blockchain para simplificar su registro de pagos y agilizar sus sistemas de transferencia de dinero.
• Cadena de suministro: el registro de la cadena de custodia en una blockchain ofrece una forma de verificar el historial de un producto. Por ejemplo, las compañías de joyería esperan poder asegurar a los clientes que sus diamantes no provienen de lugares donde su venta se emplea para financiar conflictos armados.
• Servicios de salud: con blockchain, el historial médico puede ser almacenado y controlado de forma segura por los pacientes.
• Procesos electorales: los registros de blockchain podrían crear actas electorales a prueba de fraudes.
• Registros de propiedad: el almacenamiento de registros de tierras en una cadena de bloques podría reducir la costosa investigación de títulos y seguros. En lugares políticamente inestables, podría ayudar a demostrar la propiedad.