Blockchain en profundidad, aspectos técnicos y consecuencias.

Blockchain en profundidad, aspectos técnicos y consecuencias.

Autor:
Eduardo Juan Fórneas Lence.
Ingeniero en Informática desde 1987 RedHat Engineer – LPIC instructor – Fundador de Software Research SL y IAD Software SLCofundador de Seaceptanideas.com

Todo el mundo vive hoy sumido en el denominado dinero fiat (1)  o fiduciario, sistemas que no paran de imprimir billetes, deuda creciente, inflación…, pero ¿y si esto cambiara definitivamente?
En el siglo XIII se usaban «tally sticks» para registrar deudas financieras, en 1965 Lawrence G. Roberts del MIT conectó dos ordenadores a través de una línea telefónica conmutada y en 2008 alguien que usó el pseudónimo de Satoshi Nakamoto creo un nuevo tipo de moneda: el Bitcoin.

El Bitcoin es la demostración más exitosa de que blockchain funciona y ha llegado para quedarse, y, es más, para llevarnos a un cambio de paradigma.

¿En qué se basa Bitcoin y por que usablockchain?
Actualmente todo el sistema financiero se basa en un intermediario, un banco, Visa, Mastercard, PayPal, etc., estos intermediarios realmente controlan el sistema y adquieren un poder basado en la confianza, y que ocurriría si estos intermediarios fallan: el sistema actual colapsará.

Los componentes de un sistema blockchain son los siguientes:
++ Una base de datos
++ Un sistema de criptografía de clave pública
++ Un algoritmo de consenso o recompensa y la clave de confianza
El lector pensará que tanto un banco, como Visa o PayPal usan una base de datos y su información está cifrada, es cierto,
pero blockchain tiene unas diferencias que hacen de ella una tecnología única.

Blockchain se sustenta en una base de datos distribuida, es decir que nadie posee ni la propiedad ni la totalidad de los datos, Marc Andreessen (2)  , definió la tecnología como
«un libro mayor de acontecimientos digitales que se comparten entre diferentes partes», cada sistema que participan en esa cadena de la base de datos se conoce como nodo, y no se incluye nada en la base de datos sin el consenso de la mayoría y para ello se basan en una clave de confianza, blockchain es un registro permanente e inmutable, su seguridad está garantizada por consenso, si todos tenemos la información significa que esta es verdadera.

Blockchain es capaz de almacenar información de cualquier tipo, aunque es uso actual es básicamente financiero, cada transacción o grupo de información se incluye en la cadena como un bloque de información cifrada y firmada, por lo que no se conocen los datos de los participantes de la transacción, solo su clave pública, en el caso de un pago con Bitcoin el sistema solo almacena que desde una cartera digital o wallet se a transferido una cantidad a otra cartera pero no se conocen los datos de las personas a las que pertenecen, esto dota a blockchain de privacidad y anonimato, todo lo contrario a los sistemas tradicionales, la banca por ejemplo, donde lo importante es el remitente y el destinatario, así empresas como PayPal colectan datos de usuarios y sus transacciones y comercian con estos datos, lo que supone una restricción a la privacidad y por lo tanto a la libertad.

Una vez definida en qué consiste la tecnología, debemos saber cómo funciona. El proceso no es complicado, pero involucra a más personas. Ya no es el banco en el que deberá certificar las transacciones, sino un grupo de usuarios.

Todo comienza cuando desde A se quiere hacer una transacción para B. En la red esta transacción se representa como un bloque. Este se transmite a todas las partes de la red, es decir, a los nodos que están conectados, para que aprueben su validez. Hecho esto el bloque ya podrá añadirse a la cadena, convirtiéndose en un registro transparente e imborrable. Finalmente, el dinero se mueve desde A hasta B.

En este proceso los nodos lo que hacen es confirmar que en efecto quien quiere hacer la transferencia tiene los fondos suficientes para hacerlo. De ser así, todos anotan la transacción y certifican que puede pasar a formar parte del bloque de transacciones. Este bloque va a ir haciéndose más grande hasta el punto en el que no admita más transacciones.

Una vez que se hace esto, los bloques quedarán registrados permanentemente en la cadena de bloques. Esto significa que no podrán modificarse sin que se alteren los demás bloques que están enlazados con él, algo prácticamente imposible porque para concretar una operación así se necesitaría que la mayoría de los nodos la validaran.

Además, cada operación de bloque es automática e inmediata, no hay necesidad de intermediarios, y el sistema trabaja 24/7, la información nunca se pierde, es resistente a los ataques maliciosos, los errores no existen, debido al consenso de los nodos participantes y además el costo por transacción es bajo, fomenta la globalización ya que una transacción económica no necesita ninguna supervisión de un regulador, y es necesario recordar que Bitcoin nunca ha sido hackeada en sus 9 años de vida, aunque si lo han sido los wallet o monederos de los usuarios.

Centrándonos en Bitcoin, como el sistema padre de Blockchain, vamos a definir las principales cualidades que han hecho de este sistema el modelo para el resto:
++ Se basa en el envío de transacciones entre hashes de claves públicas «direcciones». Estas transacciones no están encriptadas. Las transacciones son emitidas adicionalmente a todos los nodos participantes en la Blockchain.
++ Cada transacción tiene una entrada y una salida
++ Se utilizan «comandos» denominados «opcodes» para ejecutar las posibles operaciones. Es un lenguaje basado en pila, de izquierda a derecha. Esto implica que Bitcoin no es Turing completo (impidiendo bucles y condiciones).
Está hecho a propósito para evitar posibles ciberataques
++ En las transacciones, es necesario especificar una dirección para el cambio por como está implementado el protocolo. Es decir, si tengo 1 BTC y quiero transferir 0.4, si no indico qué hago con el 0.6 restante será enviado al minero que incluya dicha transacción en un bloque como incentivo. Es decir, hay que incluir una segunda dirección para el cambio (la nuestra) en la transacción.
++ Los nodos mineros recogerán las transacciones (incentivadas con BTC) y empezarán a ejecutar la PoW (3) para generar el hash de un bloque.
++ La recompensa por haber subido un bloque a la cadena se ve reflejada en la primera transacción de unos de los bloques posteriores (4)
++ El límite máximo que podrá distribuirse por la red es de 21 millones (5)
++ El balance de BTC de cada dirección se realiza a través de Unspent Transaction Output (UTXO). Se accede a los hashes de las transacciones que no han gastado BTC para una cuenta, de tal manera que para comprobar el balance de una dirección hay que ir «hacia atrás» en estas transacciones para ir sumando o restando los valores transferidos. Este comportamiento se define como transaction-based.

Blockchain como tecnología, puede aplicarse no solo al aspecto económico de nuestra vida diaria al igual que ya lo hacemos con nuestra tarjeta de crédito o el NFC de nuestros teléfonos móviles, otras áreas a las que puede extenderse, con la consecuente eliminación de intermediarios podrían ser,
++ Contratos inteligentes (Smart Contracts)
++ Sistemas de votación
++ Derechos de copyright
++ Registros públicos como la propiedad o mercantil
++ Registros médicos
La enumeración sería enorme y aportaría seguridad, rapidez y veracidad al contenido de la base de datos, aunque evidentemente los intermediarios actuales deberán reconvertirse en «mineros» o su función actual está condenada a desaparecer.
Los tipos de algoritmos empleados en Blockchain no son demasiados, o por lo menos existen alguno más generalizados que otros, en resumen, vamos a enumerar los más veteranos y probados:
++ Proof-of-Work: es el algoritmo más extendido, utilizado por Bitcoin y la versión estable de Ethereum (6) y está orientado a redes públicas.
Se basa en la generación de un hash teniendo en cuenta el Merkle Root, (7) el hash del bloque anterior, la hora, la dificultad y el nonce.(8)
Los valores se van combinando por los mineros hasta generar un hash que tenga N 0s.(9)  El valor N se va modificando por el protocolo para encajar con los tiempos medios de subida de bloques (10)
Una vez generado el hash de bloque correcto, se envía al resto de la red. La aceptación de dicho bloque se consigue cuando los mineros en la red empiezan a utilizar dicho hash como valor del bloque previo.
A cambio del bloque subido, se obtiene una recompensa por bloque y transacciones. En el caso de que se llegue a una solución del hash pero no consiga llegar a ser el nuevo bloque de la cadena (porque alguien lo haya conseguido antes). No se obtendrá recompensa en Bitcoin pero sí en Ethereum

++ Proof-of-Authority: algoritmo utilizado por Ethereum para la gestión de redes privadas.
El coste de PoW no tiene sentido en redes privadas en las que todas las partes se conocen.
Para acelerar la subida de bloques y sus transacciones se definen autoridades, una por cada parte implicada.
Cada autoridad dispone de una clave privada en la red que permite firmar las transacciones. La parte pública de la misma se distribuye al resto de autoridades.
Cuando se emite una transacción, se valida la firma del remitente y se incluye en un bloque que sube “inmediatamente”. De esta forma los tiempos se reducen exponencialmente, basado en una confianza predefinida.

++ Proof-of-Stake: algoritmo en desarrollo por Ethereum que se basa en que las direcciones que tienen una mayor participación en la red (11) tendrán una mayor posibilidad de subir nuevos bloques.

En resumen, puede que esta tecnología nos parezca compleja, para mí también lo sería contemplar la enorme cantidad de mandos de una locomotora a vapor, pero está probada, funciona, y está siendo adoptada por sectores como el bancario para su propio uso, adaptarse o morir, donde antes ponía banco ahora leamos minería, porque prefieren participar a desaparecer, aunque algunos intermediarios no tendrán esta posibilidad y acabarán desapareciendo o reciclándose como certificador o cualquier otra función dentro de esta tecnología.
_____________________________________________________________

(1) del latín «fiat», que significa «hágase» o «que así sea». Tiene ese nombre porque existe por decreto, por orden de la autoridad que gobierna. No se puede cambiar por oro o plata. No tiene un respaldo.
(2) Marc Andreessen fue el creado de Netscape, navegador sobre el que se construyó Internet Explorer y socio de Andreessen Horowitz, uno de los fondos de capital riesgo más importantes de Silicon Valley
(3) PoW: Proof of Work, prueba de trabajo, algoritmo de consenso original en una red de Blockchain
(4)  es conocida como transacción coinbase, generando nuevos BTC
(5)  por características del protocolo
(6)  es una plataforma open source, descentralizada a diferencia de otras cadenas de bloques
(7)  raíz hash del árbol que toma a pares los hashes de las transacciones a incluir en un bloque
(8)  valor único
(9)  el valor de N para Bitcoin es 18
(10) 10’ para Bitcoin, 15” para Ethereum
(11)  mayor número de criptomonedas, conocido como «stake»

 

 

También podría gustarte

Los comentarios están cerrados.