Qué es Bitcoin, cómo funciona y por qué es importante. (Parte I)

Parte I de II (Parte II en este link)

Ricardo Alonso Esparza Gamez
27 min readDec 15, 2021

Bitcoin es un nuevo tipo de activo que se puede definir sencillamente de acuerdo a su libro blanco: dinero en efectivo puramente electrónico transmitido en una red entre pares sin intermediarios. Una red entre pares es aquella en la que los nodos de la misma son iguales entre sí y fungen como clientes y servidores a la vez. Por ende, Bitcoin es a la vez un sistema como una divisa digital. Su popularidad y relevancia no hace más que crecer con el paso del tiempo, así como su adopción entre usuarios e instituciones. Se estima que en la actualidad cuenta con más de 100 millones de usuarios. Su irrupción en el mercado es igual de espectacular: fue el activo de la década con un retorno acumulativo de más de 20,000,000%.

Bitcoin es una red de computadoras que siguen un protocolo para comunicarse entre sí cuya unidad de medida son los bitcoins, tokens digitales que sirven como divisa. Bitcoin utiliza diversas técnicas de las ciencias de la informática para su operación: criptografía, bases de datos, protocolos de transmisión del Internet, código de fuente abierta, entre otros. La novedad es que Bitcoin emplea estas técnicas de forma innovadora para funcionar de manera completamente descentralizada y sin jerarquías, eliminando la necesidad de intermediarios o entes centralizados para su funcionamiento. Bitcoin resolvió un problema conocido de la informática, el de los generales bizantinos: cómo generar consenso en un sistema distribuido para que actores desleales no dinamiten los planes al falsificar información sin recurrir puramente a la confianza.

Problema de los generales bizantinos en el que el comandante manda la orden. Fuente: Fercufer

En 2009, un criptógrafo (o criptógrafos) anónimo que usaba el alias Satoshi Nakamoto introdujo la primer solución práctica ante la falta de sistemas distribuidos robustos que no necesiten ser respaldados por la confianza: la blockchain. La blockchain, cadena de bloques en inglés, es un sistema de base de datos cuyo propósito no es confiar, si no verificar. Es una cadena de bloques puesto que utiliza una estructura de datos (o sea, información) basada en árboles de Merkle donde cada “bloque” es un registro de transacciones continuo y consecutivo que es verificado y validado por las computadoras que forman parte de la red de Bitcoin. La concepción de la blockchain permitió un nuevo paradigma en el mundo: escasez digital.

Intentos anteriores de generar monedas digitales distribuidas y descentralizadas habían fallado puesto que se incurría en el problema del doble gasto. El propósito de la informática y las tecnologías de la comunicación es diseminar y replicar información, por ende, para que no hubiera fraudes en el caso de divisas digitales se tenía que confiar en intermediarios que validaran los datos de los usuarios. La intención de Satoshi con la concepción de la blockchain fue eliminar a los intermediarios mediante un registro de transacciones público que es verificado por todos los usuarios de manera democrática. En la red Bitcoin, ninguna computadora tiene más peso que otra y la blockchain solo avanza por consenso. Así, actores desleales no pueden duplicar información para incurrir en un doble gasto puesto que el protocolo facilita su verificación mediante la aprobación de todos los usuarios.

Satoshi creó un sistema completo e innovador que funciona sin tener que confiar en la buena voluntad de los participantes; el balance de divisas que se genera entre cada transacción es comprobable mediante simple aritmética que se opera bajo un reglamento lógico y computacional. Mediante el uso del lenguaje universal irrefutable, las matemáticas, Bitcoin funciona a través de la verdad, la transparencia y la objetividad. Esto implica que las transacciones que se crean en Bitcoin son visibles y verificables por todos. La blockchain es un libro contable abierto que se crea mediante la validación computacional de los usuarios, en el que quien sea puede participar si tan solo sigue las normas dictadas por su código abierto. Ningún usuario tiene mayor poder de decisión que otro, ni tampoco nadie, incluyendo su creador, tiene mayor control sobre las normas del juego que los demás.

El código abierto de Bitcoin es gratuito y está disponible para todos. La red de Bitcoin no discrimina ni necesita de referencias o condiciones para que uno se pueda unir a ella, solo basta con descargar e instalar el software y utilizar sus comandos. Satoshi creó y diseñó las normas de operación del sistema distribuido que es Bitcoin, pero lo hizo de manera que quien sea puede contribuir al código mas solamente los usuarios aprueban las contribuciones o no. Bitcoin no tiene cabeza ni líder, es una red plenamente descentralizada, cooperativa y orgánica. De esta manera, los participantes interactúan de manera colaborativa y tienen el incentivo por diseño de actuar de manera honesta o de lo contrario ponen en riesgo sus propios intereses.

A pesar que las transacciones, el número de usuarios, y reglas sean transparentes, Bitcoin es anónimo. El balance (y por ende, posesión) de las unidades de medidas o moneda es verificable a través de una especie de número de identidad único conocido como dirección. La dirección es un dígito alfanumérico de entre 26 y 32 caracteres que se crea a través de un comando computacional y que sirve para enviar y recibir bitcoins. La creación de estos dígitos es ilimitada, libre, gratuita y no requiere de datos personales. Por lo tanto, aunque quien sea puede ver qué tantos bitcoins posee y qué transacciones ha hecho una dirección, nadie puede conocer la identidad individual. El control de este dígito que permite hacer transacciones se hace mediante otro dígito privado llamado “clave privada” que es de conocimiento solo del creador de la dirección. Esta clave privada está protegida por algoritmos criptográficos que hacen técnicamente imposible su deducción. Bitcoin por tanto opera también bajo el precepto de libertad puesto que es voluntario, seguro y privado.

Por diseño, solo habrá un total de 21 millones de bitcoins, y su emisión en cuanto a volumen decrece cada 4 años. Por otra parte, su emisión está programada para ser constante en el tiempo: se generan en promedio 6 bloques por hora. Cada nuevo bloque valida las transacciones a la vez que genera una nueva cantidad de bitcoins. A pesar que todas las computadoras de la red validan transacciones, solamente aquellas que además de cumplir esta función buscan la solución a un solo problema matemático específico mediante iteraciones son quiénes logran estampar cada bloque y llevarse en recompensa bitcoins. En los inicios de Bitcoin, cada bloque generaba 50 bitcoins en recompensa, cantidad que se reduce cada 210,000 bloques o aproximadamente 4 años a la mitad. Este proceso se conoce como minería.

La minería es fundamental para Bitcoin ya que el resolver un problema matemático, que es fácilmente verificable por la red una vez se encuentra la solución, es la base del concepto Proof-of-Work (PoW), prueba de trabajo. La implicación es que Bitcoin es meritocrático, para que nuevos bitcoins se generen los “mineros” deben gastar recursos mediante equipo de cómputo y electricidad para alimentarlos. La solución a este problema necesita operaciones computacionales, por lo tanto, la probabilidad de resolver el problema es mayor mientras mayor número de iteraciones se hagan. Consecuentemente es un proceso competitivo que sirve de incentivo para que se actúe de manera honesta de lo contrario se gastan recursos si se pone en riesgo el valor de la red. El protocolo de Bitcoin está construido de manera que la red se ajusta para que sin importar la cantidad de computadoras compitiendo por generar nuevos bloques y obtener bitcoins la emisión de bitcoins y bloques sigan las normas preprogramadas. A esto se le conoce como ajuste de dificultad.

No solo sirve de incentivo para que la blockchain continúe su marcha, también sirve para respaldar y otorgar seguridad al sistema. El poder de cómputo necesario para estampar el registro de transacciones protege a la red de ataques siniestros y logra que se garantice la escasez al no permitir la duplicidad de datos (o doble gasto). La síntesis de una estructura de datos abierta y transparente, así como una red distribuida de computadoras que validan información mediante un consenso abierto plenamente descentralizado y un suministro fijo y decreciente de tokens digitales hacen a Bitcoin un activo estrictamente escaso. Por primera vez en la historia se creó escasez digital, lo que aunado a una red de pagos descentralizada y una divisa deflacionaria derivó en la valorización de Bitcoin. Si bien finalmente el valor es subjetivo, la utilidad intrínseca de Bitcoin se debe a su escasez y sus capacidad de recibir, mandar y almacenar valor a través de información encriptada.

Todas estas características hacen que Bitcoin sea resiliente a la censura y al cambio. Bitcoin es inmutable; sus normas son transparentes, su suministro y operación está preprogramado y esto está registrado para la posteridad en todas las versiones del código. Bitcoin es software abierto: no le pertenece a nadie, es gratuito, público, y se desarrolla de manera colaborativa. El protocolo de Bitcoin es por ende un bien plenamente comunitario que permite la posesión de su divisa de manera privada y libre. Al ser código abierto, la comunidad es quien propone y aprueba cambios en el protocolo. A través de su historia, Bitcoin no ha cambiado en cuanto a su política monetaria ni sus normas de operación esenciales mencionadas anteriormente. Los cambios que han sido aprobados sirvieron para dar más solidez en términos de privacidad o seguridad, o bien corrección de errores, más nunca para cambiar sus características fundamentales. Bitcoin entonces opera también desde la certidumbre y la constancia.

Bitcoin ha mantenido su integridad en cuanto a su capacidad de escala, suministro y prueba de trabajo. Los cambios al código además de corregir fallos han sido de diseño. Prueba de ello fue lo que se conoce en la industria como las guerras de los bloques entre 2015 y 2017: un grupo representado primordialmente por gran capital de Wall Street y Sillicon Valley y los más grandes mineros tenía la intención de incrementar el tamaño de los bloques para que la escala de la red aumentase. La intención era que mayor número de transacciones se incluyeran en cada bloque para así procesar más pagos; no obstante, esto sería a cambio de mayor equipo de cómputo requerido para verificar transacciones y ser parte de la red. Si se necesitara mayor equipo para verificar transacciones, esto aumentaría el control de la red de aquellos con más recursos.

Finalmente, los usuarios se impusieron y rechazaron los cambios, y los mineros tuvieron que seguir bajo las mismas normas al ver que el mercado seguía valorando más la versión original de Bitcoin sobre su propuesta. Por ello, Bitcoin es una red puramente entre pares donde los usuarios tienen la gobernanza. Si bien la generación de nuevos bloques y por tanto de bitcoins es a cargo de quien logre demostrar mayor trabajo, siendo posiblemente el minero con más recursos, la validación de los bloques y transacciones corre a cargo de todos los nodos de la red de manera equivalente y aquiescente. Esto conlleva que hacer cambios a Bitcoin es difícil, y que aquellos que se han dado para incrementar la privacidad de los usuarios o la seguridad de las transacciones ha sido de manera voluntaria y consensada.

Red basada en servidor versus red descentralizada. Fuente: Mauro Bieg

La fortaleza de Bitcoin radica no solamente en la energía requerida para suministrar al poder de cómputo necesario de la blockchain, también recae en su desarrollo de software de código abierto. No solo basta con que el protocolo sea abierto, su mantenimiento y desarrollo corren a cargo de la comunidad de manera soberana y voluntaria. Esto crea un efecto de red, una ventaja comparativa para Bitcoin puesto que como en el caso de otros sistemas abiertos como Linux se nutre de la mente y talento de un número creciente de individuos. Satoshi desapareció de la vida pública en 2011 y se hizo a un lado del proyecto de Bitcoin, aunque en realidad su creación al ser abierta, equitativa y descentralizada siempre le trascendió. Bitcoin es una red de individuos que se comunican y asocian entre sí, donde la tecnología sirve para que esta red funja como un mercado libre y autónomo. Bitcoin es un ecosistema en sí facultado por la informática y alimentado por quienes contribuyen a su código abierto.

Durante sus inicios, Bitcoin era un proyecto oscuro y desconocido usado primordialmente por entusiastas de la criptografía y programadores. Esto le permitió crecer bajo el radar durante sus primeros años, así como la atracción paulatina pero segura y constante de desarrolladores de software. Mientras el software de Bitcoin se desarrollaba de manera orgánica y transparente, la atracción por este tipo de activo crecía. Que una divisa puramente digital y distribuida funcionara y siguiera su curso solo solidificaba su imagen ante el mercado, y contribuía a su solidez técnica. Esto permitió a la red de Bitcoin expandirse de manera espontánea y autárquica, y endurecer su resistencia ante intereses nefarios ajenos a su propósito.

La primer compra de Bitcoin por otras divisas o intercambio por un producto en 2010 cambió su historia. De pronto, Bitcoin pasó de ser un proyecto experimental de unos cuantos programadores a un activo con valor y demanda del mercado. La abrupta irrupción de Bitcoin en el mercado comenzó como un incendio que se extendió orgánicamente en el ecosistema de la acción humana: de recónditos foros de internet en sus inicios hasta empresas transnacionales multibillonarias y Estados naciones al día de hoy. El número de usuarios creció, el número de servicios y empresas asociadas a la red también, copias de Bitcoin fueron creadas, más desarrolladores de software hicieron contribuciones, el poder de cómputo incrementó hasta usar más electricidad que muchos países, y el número de transacciones registradas por bloque aumentó. El precio siguió a la demanda y llevó al surgimiento de Bitcoin, como toda pieza tecnológica, como un ente económico.

Al crear un paradigma tecnológico, Bitcoin abrió un nuevo mercado. Miles de imitaciones de Bitcoin han sido creadas dando lugar a una nueva industria: la industria de las criptomonedas y la blockchain. Miles de proyectos toman total o parcialmente las características de Bitcoin para crear su propia moneda y sistema de pagos, o bien para otros usos digitales. Pero la blockchain más grande e importante sigue siendo Bitcoin. Si otros proyectos tienen valor habrá que verse respecto al valor de Bitcoin, o si alguna empresa puede encontrar un empleo práctico y rentable de la estructura de datos blockchain o la criptografía es ajeno a Bitcoin. Sin embargo, Bitcoin es más que una criptomoneda o una blockchain, a pesar de ser la más antigua, grande y valiosa de ambas.

El propósito de la tecnología no es más que resolver un problema concreto al servicio del ser humano. La utilidad tecnológica se evalúa en base a las funciones que cumple, mientras que su valor proviene de las necesidades individuales abstractas de cada ser humano agregadas de forma orgánica e impredecible en el mercado. Bitcoin se eleva de su condición como activo digital sustentado por la criptografía, la blockchain y los protocolos de comunicación al cumplir una función económica, y por tanto, social. Al servir como sistema de pagos, unidad de medida, y depósito de valor, Bitcoin se convirtió en un sistema monetario.

Por ello, intentos de mejorar la tecnología o copiar el código abierto de Bitcoin son fútiles. Es del interés de sus usuarios que Bitcoin se mantenga íntegro: cualquier cambio a su política monetaria en cuanto a tiempo o suministro pondría en entredicho su noción como depósito de valor, arriesgando entonces los ahorros de sus usuarios. Por otra parte, es del mismo interés tanto de mineros como usuarios que la red sea segura para salvaguardar su forma de vida y ahorros. Puesto que para corromper Bitcoin se necesita gastar recursos comprando equipo de cómputo y gastando electricidad, el incentivo es ser honesto ya que socavar el sistema devaluaría el valor de las monedas y por tanto la recompensa de hacer un ataque de doble gasto. El propósito de la red de Bitcoin es por ende proteger la riqueza de sus usuarios mediante la criptografía sin necesidad de intermediarios financieros privados o estatales gracias a su estructura de datos blockchain y su gobernanza entre-pares. Bitcoin sacrifica rendimiento computacional a cambio de seguridad y certeza.

La propagación de cada transacción de los bloques de la blockchain hacia todos los nodos de la red, la electricidad empleada para crear la prueba-de-trabajo, así como los equipos de cómputo especializados que resuelven un solo algoritmo podrán parecer ilógicos y contrarios al buen manejo para los ojos de aquellos que buscan la eficiencia y la optimización de recursos. Pero Bitcoin, al dejar la gobernanza como una serie de normas lógicas y matemáticas aprobadas de usuario-a-usuario, y un sistema de pago dejando a computadoras hacer lo que mejor saben hacer, operaciones computacionales y transmitir y procesar información, se convierte en el sistema monetario más eficiente de la historia. La tecnología de la comunicación e información sustituye a abogados, profesionistas financieros y contables, políticos, intermediarios e incluso militares. La operación ajena al humano mediante un sistema criptográfico y computacional elimina conflictos o comportamientos indeseables.

Su suministro preprogramado lo hace inmune a su precio, a diferencia de otros sistemas monetarios como los metales preciosos (por ejemplo, el oro, si bien es escaso, ve mayor minería y por tanto incremento de inventario con mayores precios). El ajuste de dificultad permite una emisión constante invulnerable a disrupciones de cadenas de suministro o las políticas arbitrarias de los bancos centrales. La validación por consenso de una red entre pares le hace indiferente ante la geopolítica o el uso de la fuerza. Al ser descentralizado y agnóstico ante la identidad y ubicación del usuario, Bitcoin es plenamente global. Encriptados como una colección de datos binarios transmisibles sin terceras partes, los bitcoins viajan a la velocidad de la luz, con la capacidad de tiempo de liquidación de tan solo diez minutos sin importar ni el volumen del pago ni los límites de jurisdicción.

En resumen, Bitcoin es:

  • Dinero completamente digital.
  • Una red de pagos descentralizada completamente entre pares.
  • Un protocolo completamente de código abierto.

Funcionamiento de Bitcoin

Nota: glosario al final de esta sección.

Bitcoin funciona a través de un principio muy simple: la validación de transacciones técnicamente irreversibles, anónimas y protegidas por criptografía a través del consenso de sus usuarios. Es un sistema contable que por su diseño funciona de manera completamente descentralizada y confiable.

La unidad contable (moneda) del sistema es una serie de cadenas de firmas digitales, en la que el dueño de estas utiliza su clave privada para enviar tokens a la dirección pública del destinatario validado por la firma digital. Esto es verificado por los usuarios de la red (nodos) de una manera simple, verificando el balance de monedas de cada firma pública (dirección). Por tanto, es un sistema de entradas y salidas, en el que el remanente se conoce como transacciones de salidas no gastadas (UTXOs). Ejemplo, en un primer bloque, monedero A contiene 100 bitcoins, envía 20 a monedero B y 30 a monedero C. Monedero C envía 10 a monedero D. Por lo tanto, el conjunto de UTXOs es 50 de A, 20 de B, 20 de C y 10 de D. El total sigue siendo los 100 iniciales de A.

Del libro blanco de Bitcoin escrito por Satoshi

Para que una transacción sea válida debe contar con las siguientes características:

  • Que el emisario posea suficientes fondos validados por los nodos de la red de acuerdo a su historial de transacciones.
  • Que la clave pública del emisario generada con la clave privada sea válida.
  • Que la dirección del destinatario sea válida dentro del protocolo Bitcoin (de entre 24 y 32 caracteres; utilizando todos los dígitos alfanuméricos excepto O,0,I; que empiece con 1).

Las firmas digitales en Bitcoin sirven el mismo propósito que las firmas físicas, verificar el consentimiento de su dueño. A diferencia de las físicas, las firmas digitales en Bitcoin son siempre diferentes de acuerdo a las transacciones, es decir, cada mensaje tiene su firma única. Funcionan de manera que, por cada transacción, el contenido de esta se encripta y se genera un mensaje público mediante la clave privada. Por lo tanto, las firmas digitales se crean a través de dos pasos: la generación de la misma a través de la clave privada y un mensaje (la transacción), y la verificación de la misma a través de una clave pública. Si un mensaje (transacción en caso de Bitcoin) se encripta con la clave privada, y ese mensaje se descifra con la llave pública, entonces cualquiera puede verificar que la firma es válida ya que el mensaje solo se pudo haber creado con la llave privada.

En la actualidad, el algoritmo empleado en Bitcoin para generar las firmas digitales es ECSDA (algoritmo de firma digital de curva elíptica por sus siglas en inglés). Está en proceso una actualización del protocolo Bitcoin para cambiar de algoritmo de firmas digitales a Schnorr Signatures. El propósito es otorgar mayor privacidad a las transacciones, pero el concepto es el mismo. Sea como sea, esto no es un cambio fundamental en el protocolo mas que ajustes para mejorarlo, como se mencionó anteriormente.

Las claves privadas y públicas se almacenan en los monederos. Estas generan las firmas digitales con las cuales se autorizan las transacciones. La clave privada, por ende, es lo que garantiza la propiedad de los tokens o moneda digital de la red Bitcoin, los bitcoins. Cuando las transacciones son creadas, esto es verificado por la red mediante los nodos. Una transacción es transmitida a la red, y son los nodos quienes verifican a) la validez de las firmas digitales y b) la solvencia de las direcciones.

Cada transacción tiene su identificación única y especial. Para hacerlo, a cada una de ellas se le otorga un hash. Hash es un función matemática irreversible que convierte una entrada variable a una salida fija. Bitcoin emplea el algoritmo SHA-256, desarrollado por la Agencia Nacional de Seguridad de Estados Unidos, como función hash. Esta función no es posible de decodificar mas que por iteraciones, por ejemplo, si tenemos la cifra 3587196, ¿qué dos dígitos suman a ese número? En el caso del hash SHA-256, se tienen 2²⁵⁶ posibilidades, que es equivalente aproximadamente a 10⁷⁷. En el universo se estima existen 10⁸⁰ átomos. Si bien adivinarlo es matemáticamente posible, en práctica no.

Ejemplo en python del hash de diferentes entradas de texto arbitrarias

Para garantizar su irreversibilidad, las transacciones se almacenan en bloques que se organizan consecutivamente, dentro de lo que se conoce como cadena de bloques (blockchain). Cada cadena de bloque contiene el total de transacciones que quepan en 4 MB, y está diseñado para que en promedio se cree cada 10 minutos. Cada bloque tiene estampado el tiempo para así verificar el historial. Al ensamblar de manera consecutiva y pública los bloques, los usuarios tienen la capacidad de verificar la validez de los balances y evitar el doble gasto.

La estructura de datos en la que se almacenan las transacciones se llama árbol de Merkle. Esto es importante ya que, como cada transacción contiene su propio hash, el acceder cada una podría saturar la memoria de las computadoras y hacer imposible la sincronización entre nodos. De esta manera, cada bloque contiene las transacciones, pero para acceder a ella se organizan de manera que solo es necesario acceder al hash del encabezado del bloque. Supongamos que cada bloque es un libro contable, para verificar si una transacción es válida, no tiene que verificarse todo el registro de ese libro si no solamente el hash de esa transacción que vendría incluido en el hash del encabezado del libro.

Estructura de transacciones sin y con árbol de Merkle

Para evitar que cualquiera pueda rescribir el historial de los bloques y así corromper la honestidad de la red, Satoshi empleó el sistema de prueba-de-trabajo (Proof-of-Work PoW). PoW se emplea en las ciencias de la informática para realizar un esfuerzo computacional no trivial pero realizable y combatir spam o acciones maliciosas. PoW es lo que garantiza la escasez de Bitcoin: al crear una estructura para utilizar recursos mediante cómputo, se crea el incentivo para ser honesto y para que rescribir el historial de la red implique trabajo. Por tanto ,para pasar de bloque se tiene que tomar toda la información contenida en el mismo validada por los nodos y resolver un problema criptográfico.

Para construir un nuevo bloque, se añade una transacción especial llamada coinbase, que saca bitcoins que no habían sido existentes (no de los UTXOs) como primer transacción del bloque que se envía a la cartera de quien estampe el bloque como recompensa por este proceso. Luego se añade el encabezado de bloque. Este contiene: la versión del software/protocolo, el hash del bloque anterior, la raíz del árbol de Merkle, el estampado de tiempo, el objetivo de dificultad, y el nonce. Para que este bloque sea válido y aceptado por los nodos, quien lo construya debe resolver un problema criptográfico que es difícil de resolver pero fácil de verificar. Claves de este proceso son el objetivo de dificultad, y el nonce.

El objetivo de dificultad se refiere a la probabilidad de resolver el problema criptográfico, siendo este dinámico y adaptable. Cada 2016 bloques, el objetivo de dificultad cambia de acuerdo al tiempo en que se tarden en crear, o minar, los nuevos bloques, ya sea si se tardan menos o más de diez minutos en promedio. El problema que los mineros deben resolver, emplea el nonce (en criptografía, número utilizado una sola vez por sus siglas en inglés) para resolver el hash del bloque. Utilizando la información del encabezado del bloque, se añade un nonce de manera que el hash resultando de esta combinación sea una cifra menor al objetivo de dificultad. La única manera en resolver este problema es haciendo iteraciones mediante un hash del encabezado de bloque y diferentes nonces hasta encontrar la cifra menor al objetivo.

Este es el proceso que se llama minería, puesto que implica hacer un cálculo computacional, o sea trabajo, y crea nuevos bitcoins. La minería es un juego de probabilidad: supongamos que se tienen dos dados con seis caras, si se tiran ambos a la vez y el objetivo es que la suma total sea menos de 20, entonces hay altas probabilidades de lograrlo. Mientras menor sea la cifra, menor la probabilidad de salir victorioso. Si el objetivo es la menor cifra posible, 2, se tiene entonces una probabilidad de salir victorioso mediante un tiro aleatorio de 1/36 ~2.8%. Si se realizara un tiro por segundo, uno esperaría que se requieren en promedio 36 segundos a lo largo de 10,000 intentos para poder salir victorioso. En la minería de Bitcoin se realizan cálculos similares, el ajuste de dificultad estima el tiempo requerido para resolver el problema en base a los últimos 2016 bloques y ajusta para que sea más fácil o difícil y se mantenga el promedio de un bloque cada diez minutos.

Por otra parte, el minero puede estimar su posibilidad de minar bitcoins mediante el número de tiros de dados que haga, en este caso el número de hashes que emplee. Volviendo al ejemplo del dado, es posible que uno encuentre una solución al primer tiro, al décimo o al cuadragésimo, pero el valor esperado es de 36 tiros; por ende, quien logre tirar más veces por segundo si se tiene una competencia es quien más veces va a ganar. La minería es un proceso competitivo, y sirve como el incentivo para que los nodos mineros sean honestos al tener que gastar recursos para generar los bloques. De la misma manera, este poder de cómputo (medido en Hashes por segundo) es lo que da seguridad a la red de Bitcoin: los nodos aceptan la cadena de bloques con el mayor trabajo acumulado.

Evolución de la tasa de hash en millones de terahashes (10¹²) por segundo a través del tiempo.

El proceso de minería, que implica usar energía para generar poder computacional, y cuya recompensa son los bitcoins creados más las comisiones de las transacciones, sirve ultimadamente como mecanismo de consenso descentralizado. Es muy sencillo verificar que el hash del nonce seleccionado combinado con el resto del encabezado de bloque es menor que el objetivo de dificultad, mas es difícil hacer este cálculo. Esto implica que, para corromper el protocolo, se debe tener suficiente poder de cómputo. Al crearse un nuevo bloque, el nodo minero ganador transmite la solución al problema, y este es verificado y validado por el resto de los nodos. Esto crea una cadena de bloques con transacciones validadas y prueba de trabajo que sirve como registro y conforme avanza el paso del tiempo es incorruptible.

Para que el nuevo bloque sea válido y aceptado por el resto de los nodos, debe contar con las siguiente condiciones:

· La estructura de datos del bloque tiene sintaxis válida

· El hash del encabezado de bloque es menor que el objetivo (PoW)

· El estampado de tiempo es menor que dos horas en el futuro

· El tamaño del bloque tiene límites aceptables (4 MB)

· La primera transacción, y solo la primera, es una transacción coinbase

· Todas las transacciones son válidas

Tras ser esto validado, el bloque debe ser transmitido a todos los nodos para ser añadido a la cadena de bloques. Este debe seguir una numeración consecutiva, y ser consecuentemente ligado al último bloque validado por los nodos. Es posible que dos bloques sean encontrados al mismo tiempo, o bien, que bajo la perspectiva de algunos nodos (por dilación de la transmisión y validación ocasiona perspectivas diferentes de la blockchain en el tiempo) otro bloque haya sido encontrado primero. Para resolver estas discrepancias temporales, los bloques se siguen apilando en los bloques nuevos hasta que se elija aquel con mayor trabajo acumulado. De esta manera, eventualmente todos lo nodos alcanzan consenso de toda la red.

Cuando un bloque ha sido validado y verificado por todos los nodos, las transacciones pueden considerarse confirmadas. Esto conlleva que hasta que ocurre esta validación los bitcoins pueden ser gastados. En algunos casos, puede ser recomendable esperar hasta tres bloques para evitar la doble propagación como en la imagen anterior. No obstante, ya que una transacción es final, un pago puede considerarse liquidado en cuanto el bloque sea aceptado por todos los nodos (en promedio 10 minutos).

Es posible que un actor malicioso quiera hacer un doble gasto de bitcoins. Para ello, debe corromper el registro de la siguiente manera: las transacciones no confirmadas van a un espacio temporal conocido como mempool. Si dos transacciones del mismo remitente hacia dos diferentes destinatarios con el mismo monto son confirmadas al mismo tiempo, es posible que las dos sean válidas bajo la perspectiva de diferentes nodos si cada una llega a un bloque válido distinto. Si uno de los destinatarios es otro monedero del mismo remitente, puede simular un pago de Bitcoin si además tiene la capacidad suficiente para generar más PoW en el bloque donde se confirma la transacción que se envía a sí mismo. Por ello, es recomendable esperar al menos 6 bloques para que una transacción se considere como confirmada y minimizar la probabilidad de este escenario.

Otro mecanismo de ataque al consenso es el de negar servicio a direcciones específicas al nunca validar sus transacciones. Pero ambos mecanismos requieren algo fundamental para poder ser válidos: poder de cómputo suficiente para desbancar a los mineros honestos. El enorme poder de cómputo generado de manera orgánica por la red Bitcoin gracias a su sistema de incentivos es lo que protege a la red: se necesitaría contar con el 51% de la tasa de hash para tener probabilidades de atacar el protocolo exitosamente. Para poder corromper Bitcoin y que los nodos acepten una cadena de bloques con mayor prueba-de-trabajo pero deshonesta, se necesitaría rehacer todo el registro de la blockchain. Esto es lo que otorga a Bitcoin su inmutabilidad, el registro local de la red está almacenado en diversos nodos, y a medida que el tiempo pasa, el poder de cómputo necesario para recrear todo el registro más la prueba de trabajo se convierte más irrealizable.

Finalmente, hay otras normas de consenso que es el de cambios en el protocolo. Para hacer mejoras de software, o crear nuevas reglas dentro del protocolo Bitcoin, es necesario que haya coordinación entre todos los participantes de la red. En Bitcoin no hay autoridades centrales ni comandantes, todos sus participantes tienen peso en el desarrollo del protocolo y sus acciones lo encaminan. Desde mineros, a desarrolladores de software, desarrolladores de monederos, plataformas de intercambio de criptomonedas (empresas dedicadas a la compra-venta de Bitcoin), comerciantes, y usuarios (incluyendo operadores de nodos), todos tienen poder de decisión sobre las políticas de Bitcoin.

Si bien los mineros pueden coordinarse para enforzar sus reglas, los usuarios pueden rechazar sus bloques y seguir en una blockchain alterna. Si todos los usuarios mueven su actividad económica a la blockchain alterna, u original, entonces los mineros se quedan sin beneficio al hacer minería. Lo que hagan las plataformas de intercambio y los comerciantes también influye puesto que contribuyen a las transacciones y por ende actividad económica de la red. Los desarrolladores de software y monederos, por su cuenta, proponen o rechazan mejoras de sistema. Alcanzar consenso entre tantos partidos con intereses variopintos es sumamente difícil, por lo cual es sumamente complicado realizar cambios a Bitcoin. Los pocos cambios que se han hecho han sido mejoras para otorgar mayor privacidad o seguridad, mas no en cuanto a cambios trascendentales de política monetaria. Aunque el código es de fuente abierta y las reglas del juego son transparentes, el mecanismo de consenso de Bitcoin así como los incentivos de comisiones y minería hacen de Bitcoin una red prácticamente inmutable.

Bitcoin, además de ser descentralizado por medio de consenso, es de fácil acceso. El tamaño máximo de bloque de 4MB implica que la blockchain puede ser validada y almacenada por computadoras personales sin incurrir en grandes gastos. Puesto que las normas de Bitcoin son solo sobre la liquidez de los monederos, así como la sintaxis de estructura de datos y la criptografía, cualquiera puede hacer uso de Bitcoin como medio de intercambio de manera global. Por su parte, se puede hacer minería con una conexión a la red de hasta 10 kbps y correr un nodo con 50 kbps, necesitando este último 2 gb de RAM y 350 GB de almacenamiento. En un mundo con ubicuidad de telecomunicación e incrementalmente digital, los requerimientos para unirse a Bitcoin son ínfimos y hacen asequible para cualquier individuo el ser uno más dentro del consenso.

Bitcoin es un paradigma tecnológico que utiliza herramientas matemáticas y de la informática para crear una red y un sistema de pagos a la vez. El ingenioso diseño de Satoshi es un enorme logro de ingeniería. Gracias al uso de las firmas digitales dentro de una base de datos descentralizada, Satoshi creó la propiedad digital. Mediante un libro mayor público verificado por todos los usuarios, Satoshi eliminó la necesidad de intermediarios y autoridades centralizadas. Gracias a la integración de la prueba-de-trabajo criptográfica y el estampado de tiempo, Satoshi inventó la escasez digital. Con el mecanismo de consenso a través de la validación de bloques y transacciones, Satoshi creó una poderosa red global que funciona de manera continua e incorruptible. Bitcoin es una tecnología completamente sin precedentes, cuyo logro es el consenso computacional distribuido y el primer sistema monetario plenamente digital que funciona.

Resumen gráfico del protocolo Bitcoin. Original de Pierre Rochard (twitter @BitcoinIsSaving)

Sugerencias bibliográficas

Antonopoulos, A. (2021). Dominando el Bitcoin: Todo lo que querías saber sobre bitcoin, criptomonedas y blockchain. Medina University Press International.

https://github.com/karpathy/cryptos/blob/main/blog.ipynb

Glosario:

Ajuste de dificultad (difficulty adjustment): Ajuste automático cada 2016 bloques para que se determine qué tan difícil es minar un bloque y así la red se mantenga generando bloques a aproximadamente cada 10 minutos.

Altura de bloque (Block Height): Número de bloques entre el primer bloque de la blockchain y el último bloque registrado y validado por los nodos.

Cabeza de bloque (Block header): La parte de un bloque que contiene información sobre el bloque en sí (metadatos del bloque), que generalmente incluye una marca de tiempo, el hash del bloque, el hash del encabezado del bloque anterior y un nonce criptográfico.

Cadena de bloques (Blockchain): Serie consecutiva de registro de transacciones a través del tiempo, libro de contabilidad digital que contiene todas los intercambios de los tokens digitales entre las direcciones existentes.

Coinbase: en la generación de nuevos bitcoins, es el contenido de la ‘entrada’ de una transacción de generación (primer transacción de un nuevo bloque donde no hay entradas ni salidas y se incluye los nuevos bitcoins generados). Mientras que una transacción regular solo contiene las entradas y salidas, la base de monedas puede contener cualquier dato arbitrario.

Comisión (Transaction fee): Diferencia entre la cantidad de bitcoins enviada y la cantidad recibida, que son la velocidad con la que un usuario quiere que su transacción sea validada en la cadena de bloques por los mineros.

Entrada (input): es una referencia a una salida de otra transacción existente.

Halving: Evento preprogramado que reduce a la mitad los bitcoins minados por bloque cada 210,000 bloques.

Hash de bloque (blockhash): una representación hash de los datos del bloque.

Hash: función matemática que convierte una entrada de longitud arbitraria a una salida encriptada de longitud fija.

Mempool: Espacio digital donde se almacenan las transacciones de manera temporal. Es una memoria que se mide en Bytes y que cambia de acuerdo al número de transacciones y la capacidad de la red para procesarlas.

Mineros (miners): nodos que crean nuevos bloques de la blockchain resolviendo un problema matemático de manera competitiva y que reciben comisiones y subsidios de bloque como recompensa.

Monedero (Wallet): Producto o medio físico o digital que sirve para almacenar la información de las direcciones públicas únicas donde se puede mandar y recibir transacciones de bitcoin y/o las llaves privadas para aprobar envíos de bitcoin.

Nodo (Node): Computadora que verifica transacciones y bloques. Se llama nodo completo (Full Node) a aquel que se conecte a otros de su tipo y sigue las reglas de bitcoin así como la validación de transacciones y bloques y cuenta con el registro de toda la blockchain desde el bloque inicial. Los nodos completos mantienen el consenso al vetar o aceptar propuestas.

Nonce: número utilizado una sola vez por sus siglas en inglés (number used once). Es un número encriptado (con hash) que los mineros deben resolver para añadir un nuevo bloque a la blockchain.

Rig de minería: equipo de cómputo (hardware) que sirve para realizar minería.

Salida (output): contiene las instrucciones para enviar la suma de bitcoins.

Satoshis o sats: unidad más pequeña divisoria de bitcoins que equivale a 0.00000001 BTC, es decir, 100 millones de satoshis componen 1 bitcoin.

Subsidio de bloque (block subsidy): cantidad de bitcoins que se genera al crearse un nuevo bloque de la blockchain y que es la recompensa del minero que logre resolver el problema matemático por primera vez.

Transacciones de salida no gastadas (Unspent transactions output UTXOs): conjunto de unidades de bitcoin que no han sido usados previamente dentro de una dirección o monedero únicos.

Transmisión (Broadcast): propagación de mensajes dentro de la red de usuario-a-usuario para enviar transacciones y validarlas.

TXID (Transaction ID): número de identificación único de cada transacción.

Verificación (Verification): validación de las cifras de las transacciones así como de la propiedad de bitcoins.

--

--

Ricardo Alonso Esparza Gamez

Interests: Energy, Sustainability, Economics, Bitcoin, Finance, Technology, History, Art.