Las claves de Blockchain en 10 preguntas

Ismael Rihawi    10 febrero, 2020
Bitcoin

Los bitcoins, la tecnología Blockchain, la minería o los smart contracts son conceptos que están cada vez más presentes en medios tecnológicos. Pero ¿de verdad alcanzamos a comprender lo que conlleva la tecnología y hacia dónde camina?. En el post de hoy vamos a plantear una serie de preguntas que nos van a ayudar a arrojar algo de luz sobre aspectos que nos preocupan a todos.

El documento publicado por la enigmática figura de Satoshi Nakamoto a finales de 2008 presentaba Bitcoin como un sistema de pago electrónico Peer-To-Peer. Pero…

1. ¿Qué es un Bitcoin y cómo puede un usuario ejercer la posesión de sus Bitcoins?

Respuesta: Bitcoin representa un activo digital en forma de moneda virtual, resultante de la combinación de redes de ordenadores, técnicas criptográficas y software avanzado para el intercambio de bienes y servicios al actuar éste como un medio de pago, transmitiendo valor electrónicamente de forma fácil, rápida y segura entre dos usuarios sin mediación de una entidad central que la emita y controle (de ahí el uso tan generalizado del concepto vinculado a Bitcoin de “descentralización”).

El mecanismo empleado para ejercer posesión de criptomonedas y hacer uso de éstas es a través de los conocidos monederos o wallets, que no son más que aplicaciones móviles y/o de escritorio con una interfaz visual amigable y comprensible a ojos de cualquiera.

La peculiaridad de esta clase de herramientas es que abstraen por completo al usuario final de la tecnología subyacente, poniendo a su disposición la capacidad de llevar a cabo operaciones básicas de control y gestión financiera de sus unidades monetarias. Gracias a las claves privadas (únicas para cada usuario), permiten la consulta del saldo global como compendio del histórico de importes vinculados a su dirección pública en todas las transacciones monetarias registradas en la cadena de bloques en las que éste se vio involucrado desde el origen de los tiempos.

Del mismo modo, los monederos también permiten consultar el detalle de dichas transacciones firmadas digitalmente con nuestras claves privadas (fechas de emisión, direcciones origen y destino, comisión, número de confirmaciones, etc.), así como emitir otras nuevas, siendo la red la que valida previamente la autoría de la firma y la liquidez de sus fondos.

2. ¿Y si el usuario pierde el equipo o las claves?

Respuesta: El grado de resolución varia ostensiblemente según sea uno u otro escenario.

En caso de perder el dispositivo en el que teníamos alojada la cartera digital contenedora de las claves privadas, existe un sistema de recuperación conocido como “semilla determinística” o “seed”, que es un conjunto de palabras aleatorias (normalmente 12) sencillas de memorizar o anotar en papel con las que es posible regenerar siempre las mismas claves privadas, almacenándolas en una nueva instalación de monedero en otro equipo de sustitución.

Si por el contrario accidentalmente se pierden las claves privadas y no se cuenta con un sistema de respaldo y recuperación al uso, entonces todos los importes de las transacciones registradas en la cadena de bloques firmadas digitalmente con esa “llave maestra” pasarían a quedar en la nada, inutilizables, fuera del suministro circulante y total.

3. ¿En qué consiste el concepto de cadena de bloques?¿ por qué se dice que aporta garantías de inmutabilidad?

Respuesta: Es sin duda la base teórica y conceptual necesaria para comprender el funcionamiento de esta tecnología, y de la que emergen la mayor parte de sus bondades.

Una cadena de bloques es una lista de bloques vinculados entre sí por orden cronológico de llegada y escritura, y que partieron de un bloque inicial (llamado “génesis”). ¿Qué información contienen? Cada bloque reúne un conjunto de transferencias de valor (bitcoins) entre una dirección origen y una dirección destino llamadas “transacciones”, las cuales son elegidas por los nodos mineros responsables de su escritura, así como un sello de tiempo que establece la fecha de tramitación y una huella digital del bloque anterior que aporta robustez a la infraestructura y fiabilidad a la información que atesora.

La validación de las transacciones se establece a través del cálculo de un algoritmo matemático que transforma la cabecera de todo este bloque arbitrario de datos en una secuencia de caracteres con una longitud fija (lo que se conoce por “función criptográfica Hash”). Esto supone un esfuerzo computacional notorio por parte de uno de los tipos de participantes más activos y notorios en la red: los nodos mineros. Dicha prueba de trabajo realizada por ellos permite la escritura de nuevos bloques que se añaden a la cadena principal bajo el consenso de todos los nodos de la red. Y es precisamente ahí donde reside la garantía de inmutabilidad. En el cálculo del Hash de la cabecera de un bloque actual se encuentra el Hash del bloque anterior, por lo que si se produjese alguna modificación en el cuerpo o identidad de un nodo padre, esto repercutiría en una remota corrección de los nodos sucesores a éste al verse en cada uno de ellos modificado el valor del campo Hash de bloque anterior requerido para la confección del suyo propio, lo cual computacionalmente sería imposible de abordar en el tiempo.

Se suele afirmar que muchos cibercriminales prefieren cobrar extorsiones en bitcoins porque es anónimo, pero esa afirmación parece chocar con el concepto público de la blockchain.

4. ¿Hasta qué punto es anónimo Bitcoin?

Respuesta: En un mundo hiperconectado, en donde las barreras de seguridad y ofuscación de datos sensibles y/o de identificación del ser chocan con filtraciones de información y medidas preventivas de detección de usos maliciosos ante resquicios de vulnerabilidad en tecnologías disruptivas recién implantadas, no es posible garantizar el anonimato de los usuarios participantes en una Blockchain pública.

¿Cuáles son los principales argumentos de ello? La propia naturaleza intrínseca de una cadena de bloques, la cual permite sin restricciones contemplar la trazabilidad de cualquier operación entre pares de direcciones públicas, así como realizar un seguimiento pormenorizado de transacciones asociadas a una en concreto (gracias a la existencia de herramientas web de exploración de bloques como Blockchain.info o Blockchair.com, entre otras). A esto tenemos que añadir que, en el caso de Bitcoin, estamos hablando de una cadena de bloques pública y no “permisionada” (no requiere de solicitud previa para ingreso en la misma).

Ahora bien, ¿poder rastrear direcciones debido a su carácter público puede derivar en conocer la identidad personal de los propietarios portadores de dichos monederos?

Existen varios indicios o mecanismos que podrían arrojar pistas bastante concluyentes sobre ello. El hecho de utilizar una red P2P de nodos interconectados ejecutando un software de computación y almacenamiento de copias idénticas (el ya archiconocido “libro contable universal”), hace que todo mensaje que emita una transacción de valor digital entre direcciones Bitcoin lleve implícita una dirección IP de interconexión de ese nodo responsable fácilmente geolocalizable.

Otros factores relevantes y susceptibles de debilitar enteramente la privacidad son a través de la compra-venta de criptomonedas en casas de intercambio, las cuales exigen de un registro previo nominativo de la persona a hacer uso del servicio (copia de documento nacional de identidad, pasaporte, datos bancarios inclusive), o con el uso de monederos ligeros o web (como los que suministran las propias casas de intercambio) delegando a ellos la gestión de tus claves privadas, y consistiendo el seguimiento exhaustivo de los metadatos derivados del acceso y navegación web/mobile a sus servicios.

El mundo ha cambiado mucho desde el año 2008. Por aquel entonces los iPhone apenas llevaban unos años en el mercado y a Instagram aún le quedaba tiempo hasta despuntar en 2010.

5. ¿Cómo ha llevado el paso del tiempo la comunidad de Bitcoin? ¿Se ha producido algún cambio en el protocolo original que se pueda reseñar?

Respuesta: Uno de los pilares básicos que ha propiciado el asentamiento, crecimiento y evolución de Bitcoin hasta nuestros días ha sido en buena parte debido al respaldo inicial y continuado de la comunidad de tecnólogos y entusiastas de los principios inherentes de esta revolución tecnológica, la cual propone en esencia la descentralización, transparencia, seguridad e inmediatez en el intercambio de valores digitales. Este apoyo ha trascendido a hechos consensuados por todos ellos, plasmados en la existencia de una metodología de revisiones constantes de la funcionalidad y características del protocolo de red de Bitcoin respecto a la especificación inicial planteada (en el documento “White paper”), permitiendo abordar errores o limitaciones detectadas a posteriori, así como ideas de mejora que enriquecen su operatividad. El nombre en clave del documento que plasma la propuesta es BIP o “Bitcoin Improvement Proposals”.

¿Cuáles destacaría a mi parecer?

De los BIPS de tipo informacional, la que introdujo las carteras deterministas jerárquicas (BIP-0032) que permiten la generación de múltiples direcciones públicas derivadas unas (padres) de otras (hijas) en una estructura de árbol con profundidad infinita, partiendo de la misma secuencia de palabras clave (24) como semilla de respaldo, permitiendo mayor eficiencia y simplicidad en la gestión de wallets, mayor privacidad en la recepción de valor y subsanación de problemas en el uso de copias de seguridad.

Por otra parte, de las propuestas de tipo standards track (estructural/funcional), sin duda el BIP-0141 o “Segregated Witness”, la cual lucha contra la maleabilidad o posibilidad de alteración de las firmas involucradas en una transacción, influyendo negativamente en la confianza de la red.  La solución técnica, a grandes rasgos, pasa por desplazar las firmas y claves de los valores de condición de la lógica impuestos por el originador de la transacción en validación de la transacción (también conocido como “scriptSig”) a una zona reservada llamada Witnesses, con beneficios extras de ahorro en espacio en disco por aligerar los bloques, menor gasto en fees y ancho de banda, entre otros.

6. ¿Y cómo funciona el mecanismo de aceptación de estos cambios en el protocolo de Bitcoin?

Respuesta: Siguiendo los cauces de proposición y consenso de las propuestas de mejora, que parten de la publicación del documento (borrador) en la lista de correo de desarrolladores “bitcoin-dev”, en donde se localizan y subsanan errores e introducen aspectos no considerados. Continuando, después, con una etapa de discusión acerca de la viabilidad y ganancia real de la propuesta que precede a la publicación en el repositorio de oficial de propuestas en GitHub.

Las directrices que facilitan la aprobación pasan por respetar un formato estandarizado (MediaWiki), una estructura de contenido con secciones ya preestablecidas (Preámbulo, Abstract, Copyright, Especificación, etc.) y cuyo enfoque abarque y desee implantar una finalidad acotada pero precisa. Estas pautas determinan que un BIP tengas más opciones de iterar dentro de su ciclo de vida entre los estados de “borrador”, “propuesta” y “final/activo”, como culminación de su implantación en la red.

Llevado a la práctica, la implantación parte del hecho de que los nodos participantes en la red lleguen al consenso de aceptación de uso de la especificación de cada nuevo BIP, y esto afecta principalmente a los nodos mineros, puesto que el voto se determina por poder computacional en función del porcentaje de bloques que se escriban hasta una determina fecha (o número de bloque) con una sección de datos “pactada” que representa su muestra de apoyo o no.

Aunque su peso no sea tan relevante, también ha de recogerse la palabra de los nodos validadores y ligeros (solo emisores de transacciones), requeridos de igual modo para el correcto funcionamiento habitual de la red y del computo de las nuevas decisiones a tomar en adelante.

En última instancia, y en caso de resultar favorable el desenlace de votación, es la comunidad de desarrollo del núcleo de Bitcoin (conocido como Bitcoin Core) quien ha de aplicar finalmente dichos cambios en el software, derivados de modificaciones en el protocolo, reglas de validación de transacciones y bloques, consenso o interoperabilidad, para entonces ponerlo a disposición en una actualización masiva que origine su activación.

Entonces, en el caso de que los desarrolladores o una parte de la comunidad apostara por implementar un cambio y otra parte apostara por no hacerlo,

7. ¿Qué podría ocurrir? ¿Se ha dado algún caso que afecte a Bitcoin?

Respuesta: Bajo el amparo de un consenso mayoritario de todos los participantes en una cadena de bloques, la ausencia de un criterio único deriva normalmente en bifurcaciones que, en el ámbito de la informática, y partiendo del hecho de ser Bitcoin un software de código abierto, constituyen la reimplementación de versiones del proyecto con modificaciones que difieren en un instante del tiempo de su planteamiento en la versión inicial.

En función del grado de afección de los cambios y sus implicaciones asociadas, existen dos tipos de bifurcaciones.

Las suaves (o “soft forks”), las cuales se consideran una mejora o actualización del software, no presentando incompatibilidades con aquellos nodos que decidan preservar versiones anteriores. ¿Cómo es posible esto? Es consecuencia de que incluyen cambios puntuales no estructurales (como cambios en el formato de transacciones) y/o nuevas funciones auxiliares que, en ningún caso, resultan obligatorias y determinantes de ver en todos los nodos de la red, preservando la unicidad de la cadena de bloques con la adopción de nuevas reglas de consenso y el respeto a las ya heredadas.

Dicha convivencia resulta del hecho de la aceptación tanto de los nuevos como de los viejos bloques por parte de los nodos desactualizados, pero solo de los más recientes para los ya aprovisionados con la nueva versión. Por otra parte, en caso de cambios estructurales (bloques) o de funcionamiento (cálculo de Hash, reglas de dificultad, transacciones válidas, entre otros) en los que no se recibe un apoyo unánime de la comunidad de participantes, se produce una bifurcación dura (o “hard fork”) ante la incompatibilidad con versiones anteriores (los nodos actualizados consideran inválidos los bloques generados desde nodos con versiones anteriores y viceversa), obligando a los participantes a una actualización requerida si quieren formar parte de la nueva cadena de bloques que solo comparte el histórico hasta la fecha.

En ocasiones, esta circunstancia deriva en nuevos proyectos que adoptan una propia filosofía, algoritmo de consenso, criptodivisa, comunidad, mineros y usuarios (las llamadas “bifurcaciones contenciosas”, a diferencia de las planificadas), como en el célebre caso de bifurcación en agosto de 2017 de Bitcoin Cash.

Si se ha dado algún caso de cambio de las reglas del juego, que afecte a Bitcoin:

8. ¿Qué cambios fueron objeto de la polémica?

Respuesta: La comunidad de Bitcoin debatió durante un largo periodo de tiempo acerca de los problemas latentes de escalabilidad acuciante, debido en buena parte a la popularidad de la criptomoneda y a un creciente uso de ésta (volúmenes de transacciones diarias cercano a las 300.000), provocando en consecuencia la pérdida de las características que la hicieron popular.

Congestión en la red, retrasos en las confirmaciones de las transacciones, o el encarecimiento en las comisiones de envío resultaron suficientes motivos para apuntar a la limitación del tamaño de los bloques de transacciones (1MB) el principal responsable.

Es por ello por lo que se presentaron diversas propuestas que aminoraban tales problemas, evitando a la vez la división de la red y criptomoneda en dos, siendo la propuesta de Segregated Witness la que recibió una mayor aceptación. ¿Cómo? A través de un soft fork que permitía aparte de las mejores antes citadas, un mayor aprovechamiento del espacio de bloque al redimensionar su estructura sin firmas ni claves por alojarse en la nueva zona reservada, alcanzando un tamaño máximo de 2 MB.

El consenso al respecto era un hecho palpable ante el nuevo protocolo propuesto por parte de desarrollos de Bitcoin Core, materializando a ojos del mundo su aprobación durante la conferencia anual Consensus 2017, y comprometiéndose, por un lado, a su implantación en el 80% del poder computacional global de la red, y a un hard fork planificado que permitiese aumentar el tamaño de bloque hasta los 2 MB, añadiéndose a la propuesta de mejora incluida ya en Segwit, de nombre SegWit2x (en BIP91).

Todo apuntaba a un desenlace optimista al respecto, hasta que en los días previos al 1 de agosto, la casa de cambio ViaBTC, poseedora de un 6% de la capacidad computacional total de la red, dio un paso al frente descartando dicha propuesta de mejora, para pasar a crear una nueva criptomoneda, como bifurcación de la red blockchain original Bitcoin, de nombre Bitcoin Cash (BCH). ¿Cuáles son sus rasgos identificativos en palabras de sus precursores? Ofrecer los mismos pilares que Bitcoin con aspectos reforzados, y aumentando el tamaño de bloque hasta los 8 MB para así poder contener mayor número de transacciones en cada uno de ellos para así combatir de frente los problemas de escalabilidad que originaron el desencuentro.

9. Y, más allá de Bitcoin, ¿existe algún otro ejemplo de fork relevante en otras criptodivisas como, por ejemplo, Ethereum? ¿Qué motivos esgrimieron ambas partes?

Respuesta: Sí, en Ethereum tuvo también lugar un hard fork o bifurcación dura, pero en este caso el origen partió de un ataque al proyecto thedao.org, siglas de Organización Autónoma Descentralizada, cuyo objetivo era el de crear un fondo descentralizado de inversión para financiar proyectos de startups en el ecosistema de Ethereum, y que logró atraer más de 140 millones de dólares de inversión en Ether.

El mecanismo era sencillo: los inversores decidían por votación que proyecto se apoyaba, y los que no aceptaban la decisión, podían aceptar la decisión conjunta, o independizarse del fondo y crear un nuevo DAO para tomar sus decisiones acorde a sus preferencias.

Todo iba en la línea correcta hasta que estudiosos del lenguaje de programación Solidity advirtieron de agujeros de seguridad y malas prácticas de codificación en los Smart Contracts involucrados en el proyecto, y con la consiguiente sustracción a los días de 3.5 millones de Ether de TheDAO hacia un DAO hijo.

¿Qué sucedió? La comunidad decidió, tras un largo tira y afloja, llevar a cabo un hard fork y devolver el dinero desfalcado, decisión que generó muchas discrepancias y la dividió enormemente, puesto que implicó deshacer todas las transacciones posteriores a las que contenían las del robo y transferencia a la dirección del DAO hijo.

¿Qué implicaciones supuso esta decisión? Básicamente, incumplir uno de los pilares fundamentales de toda cadena de bloques: el principio de inmutabilidad de la información (eso en Ethereum “original”), mientras que en la nueva criptomoneda resultante (Ethereum Classic) no se revirtió el hurto ni compensó a los afectados, respetando el principio de que “el código es la ley”, y si figuraba en un Smart Contract, aunque fuese una vulnerabilidad o agujero de seguridad, ha de respetarse y cumplirse una vez publicado.

Hablando de Ethereum, se está hablando mucho últimamente de los cambios que se están gestando dentro de la comunidad para implementar un mecanismo de consenso diferente y con una huella ambiental menor como Proof-of-Stake.

10. ¿Qué aportaría este mecanismo frente a Proof of Work?

Respuesta: A diferencia de Proof of Work, en donde el algoritmo de consenso recompensa a aquel nodo minero que obtiene el hash válido del reto criptográfico con el que valida las transacciones contenidas en el nuevo bloque de la cadena, en la prueba de participación, los parámetros de poder se rigen de manera determinista sobre varios factores clave en la elección del nodo creador del nuevo bloqueo.

¿Cuáles? Dejando a un lado el poder computacional usado por PoW, en Proof of Stake la probabilidad de crear un nuevo bloque aumenta cuanto mayor sea la riqueza del nodo participante (número de tokens) y la antigüedad de la posesión de estas, así como mecanismos de reputación en la comunidad amparados por el seguimiento de nuestra participación en la cadena.

Este cambio de paradigma en el algoritmo de consenso en Ethereum propondrá, previo hard fork, hacer frente a una de las grandes preocupaciones de los desarrolladores de Blockchains que se apoyan en Proof of Work para su funcionamiento, puesto que el gasto en energía cada vez es mayor y las previsiones a futuro no son alentadores en cuanto a impacto ambiental y dependencia de pago al cambio con moneda fiat.

Para mantenerte al día con LUCA visita nuestra página web,  suscríbete a LUCA Data Speaks o síguenos en TwitterLinkedIn YouTube.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *