Blockchain

De ALDEA Wiki
Ir a la navegación Ir a la búsqueda

¿Qué es una Blockchain? (cadena de bloques)

En palabras sencillas, es una tecnología que nos permite mover información sobre el valor (algo que tiene demanda en la sociedad humana), de manera similar a como el internet nos permite mover información general, o como el papel moneda nos permite mover informacíon sobre valor (los numeros en la esquina del billete) de mano en mano.

Especificamente es una red entre iguales que comparte una base de datos distribuida y de descentralizada de registros encadenados por medios criptograficos que asegura la veracidad, inmutabilidad e integridad de los datos registrados, permitiendo una relativamente sencilla validación y constante autoverificación.

Adicional se tiene la capacidad de realizar cambios en el estado de la base de datos, en otros terminos se puede realizar transacciones, y dichas transacciones utiliza también criíptografía para validar el origen de una transacción y destino de una transacción.

Estos procesos de la blockchain como sistema permiten la primera, eficiente, eficaz y económica solución para el problema de redes conocido como el problema de los Generales Bizantinos, que implica la capacidad de mandar información si necesidad de confíar en los pares de la red.

Historia del Blockhain

La cadena de bloques

La primera descripción del uso de una estructura de datos de bloques encadenados por medios criptográficos de esta forma se atribuye a Stuart Haber y W. Scott Stornetta que publicaron en el año 1991 una solución practica de estampado digital de documentos de manera que no pudieran ser modificados una vez "encadenados". La estructura haría las veces de notario validador de la veracidad de cada documento registrado. En 1992 se incluyo el uso del árbol de Merkle para una mayor eficiencia en el mecanismo de verificación de los hashes.

HashCash - Prueba de Trabajo (PoW)

La idea de requereri la realizaci´de una computación moderadamente dificil fue pressentada en 1992 por Cynthia Dwork y Moni Naor en su ensayo "Precios a través del procesamiento o la lucha contra el correo no deseado"

BitGold - Nick Szabo

Nick Szabo diseño un mecanismo para una modenda digital descentralizada a la que llamo "Bit Gold" en 1998.

Prueba de Trabajo Reutilizable (RPoW) - Hal Finney

Prueba de Trabajo Reutilizable fue inventado por Hal Finney en 2004, como un prototipo de dinero digital basado en la Teoria de lso coleccionables de Nick Szabo. RPoW es considerado una pieza de software sofistifcada y precursos de Bitcoin, dado que fue Hal Finney el primero que colaboró en el desarrollo del software de Bitcoin, y la primera prueba en producción el 3 de enero de 2009.

Bitcoin

Primer caso de la tecnologia Blockchain tal cual como la conocemos hoy integrando vario varios avances anteriores en criptografía y redes para mover información sobre valor en medios digitales. Presentado en 2008 por Satoshi Nakamo (pseudonimo) con el ensayo "Bitcoin: A peer to peer electronic cash system" (Bitcoin: Un sistema de moneda electronica de igual a igual.)

Ethereum

Introducido por el papel blanco de Vitalik Buterin en 2013, y con el papel amarillo de Gavin Woods en 2014, finalmente implementada si primera red principal (mainNet) en 2015. Introduce la capacidad de utilizad la red distribuida para la ejecución de instrucciones, i.e. programas que permite tener blockchains programables, contratos inteligentes y aplicaciones descentralizadas en blockchain.

HyperLedger

Nace como una colaboración de codigo abierto, propuesta en 2016, implementada en 2017 y gestionada por la Fundacion Linux (The Linux Foundation), que incluye nombres como Guartime, SWIFT, R3, ConsenSys, VMware, Blockchain e IBM, entre otros. Se presenta con el objetivo de mejorar la tecnología blockchain y hacerla mas accesible. De alli nace Hyper Ledger Fabric, indudablemente uno de los proyecto blockchain para empresas en mayor uso. La mayoria de las variantes de Hyperledger usan protocolos de consenso menos descentralizados que PoW, y son la base de la mayoria de los proyectos proyectos blochchain permisionados.

¿Cómo se conforma una Blockchain?

Redes entre pares (Peer to Peer)

Una blockchain empieza con una red entre iguales, o red entre pares (P2P, por sus siglas en inglés) cuyos nodos son los que llevan una copia de "la cadena de bloques", son los que pueden participar en el mecanismo de consenso.

Estructura de datos (la cadena de bloques)

La cadena de bloques se crea usando la función criptográfica hash de los datos del bloque anterior con la función criptográfica hash de los datos del bloque local, a manera de "huella dactilar" del bloque, de manera que cualquier modificación en un bloque puede ser contrastado contra las copias distribuidas en la red. Esto se realiza por medio de un mecanismo de consenso, que define las reglas a seguir para establecer lo que se considera veraz en la red.

Mecanismo de Consenso

Considerado el corazón de una blockchain, son las reglas acordadas entre los pares de la red, combina el algoritmo a través del cual se genera el consenso entre los mismos. Adicional incluye los mecanismos de creaciòn, validación, distribución y verificación por pares del siguiente bloque de la blockchain. Estos mecanismos incluyen los correspondientes algoritmos de hash, encriptación y firma digital que se utilice en el blockchain.

Ejemplos de estos son:

  • Prueba de Trabajo (PoW - Proof of Work)
  • Prueba de Participación (PoS - Proof of Stake)
  • Prueba de Autoridad (PoA - Proof of Authority)
  • Tolerancia Practica a la Falla Bizantina (PBFT - Practica Bizantine Fault Torelacnce)
  • Acuerdo Bizantino Federado (FBA- Federated Bizantine Agreement)

Características de una Blockchain

Operaciones automáticas

Salvo ciertas excepciones las operaciones de un blockchain sucede automaticamente, 24horas al dia, 365 dias al año, siempre y cuando la infraesctura de los nodos este siendo gestionanada apropiadamente.

Basada en consenso

Las acciones de la blockchain son regidas por el mecanismo de consenso entre pares, y los procesos relacionados con este mecanismos forman parte de las operaciones automáticas anteriormente mencionadas.

Globalmente accesible

Mientras exista acceso a la red, existirá acceso a la blockchain. Esto convierte a redes publicas no permisionadas como Bitcoin en redes realmente de caracter global, pues donde haya internet, puede haber un nodo. Como el celebre caso del nodo de bitcoin que fue ejecutado en estación espacial internacional.

Distribuida

La naturaleza de la red convierte a la blockchain en un sistema distribuido, adicionada la descentralización, y se eilimina el riesgo del "punto unico de fallo".

Seguridad, Integridad y Verificación

Por medio de encriptación asincrónica la blockchain da acceso a la información del valor solo a quien tiene la correspondiente llave privada (de alli la frase "Si no son tus llaves no son tus criptomonedas". El uso de los hash de cada registro de información, de cada bloque y la cadena de bloques en sí, aseguran la integridad de los datos registrados, estos no pueden ser adulterados sin que los nodos no lo noten. Adicional las transaciones son firmadas digitalmente, lo que implican, ademas de la seguridad, el "no repudio", que quiere decir que quien haga una transacción, no puede negar que la hizo. Si Alice le paga a Bob 10 bitcoin, Alice tendra 10 bitcoin menos en su cuenta y no puede negar que fue desde su cuenta que se realizó el pago

Formas de clasificiar las Blockchain

Privadas o Publicas

Si los datos en los bloques son de libre acceso al público, se dice que es una blockchain pública, de lo contrario, es una blockchain privada. Ejemplos de las mismas serian Cardano y Monero respectivamente.

Centralizadas o Descentralizadas

Dependiendo del mecanismo de consenso, este puede ser más o menos descentralizado, o centralizado vs descentralizado, como en el caso de los consensos por consorcio, listas de nodos conocidos, o prueba de participación delegada. En contraste con las pruebas de trabajo y prueba de participación, que pueden maximizar la descentralización a medida que permiten una mayor variedad y distribución de los nodos. La centralización está generalmente asociada con las blockchains de implementaciones por entidades centralizadas.

Permisionadas o No Permisionadas

Si la participación como un nodo requiere de autorización de algun tipo, o identificación de algun tipo, que puede ser de una entidad centralizada o de todos los nodos existentes de manera descentralizada, se dice que se una red permisionada. Si, por el contrario, no hay restricciones para convertirse en nodo de la red, excepto correr el software del nodo correspondiente, se dice que es no permisionada. Como nota curiosa, se puede ser publica y permisionada (como VeChain) o privada y no permisionada (como Monero).

Programables o No Programables

Encabezado por Ethereum, una generación de blockchains fue creada con la capacidad de ejecutar programas que pueden condicionar las transacciones de manera automatizada, en algunos casos creando una verdadera computadora de acceso global. Esta es comparada con Bitcoin y simliares que tenian niveles limitados de intrucciones para validar condiciones para realizar las transacciones.