Reglas sin gobernador
Si un bloque padre fuera modificado en la cadena por un nodo malicioso esto cambiaría su hash y por lo tanto también cambiaría el hash paterno en su bloque hijo y el propio hash del bloque hijo y por lo tanto el hash de cualquier nieto y asi sucesivamente. Este efecto de cascada asegura que una vez que un bloque tiene varias generaciones de bloques encima este no puede ser modificado sin cambiar todos los bloques que tiene sobre el. Debido a que esto, un cambio a la cadena de este tipo requiere una capacidad computacional mayor a la de la red de Bitcoin en términos de hash-rate y un enorme gasto de energía; en el caso hipotético que de alguna entidad logre semejante hazaña la mayor daño que podría lograr es cambiar algunas transacciones para hacerse con algunos bitcoin por lo que el beneficio no estaría cerca del costo para el atacante que intente una empresa de estas magnitudes.
El sistema de la cadena de bloques y la red de nodos solucionan de manera descentralizada el antiguo problema del doble gasto, en el cual la totalidad de los fondos en una cuenta podría ser gastado simultáneamente en dos transacciones por el remitente. Anteriormente la solución a este problema fue la designación de un ente central como un banco o una plataforma de pagos como, visa o paypal que se encargaba de tomar la decisión de cual de las dos transacciones validar y cual de los destinatarios sería afectado, para lo lo cual por lo general el ente se encargaba de retener el pago hasta que la contaduría de las transacciones estuviera sementada.
Esta contaduría llevada a cabo de manera privada por una autoridad central es la raíz del problema que llevó a la eventual creación del Bitcoin por el simple hecho de que el sistema monetario fiduciario se basa en confiar y en tener fe en que la autoridad central va a crear y mantener reglas justas para la emisión del dinero y proporcionar facilidades igualitarias para las transacciones, lo cual por supuesto derivó en el absurdo del sistema financiero descrito en en la primera parte de este texto.
Por otro lado la contaduría en Bitcoin es registrada en la cadena de bloques que funciona como una hoja de contaduría pública de acceso global que es auditada constantemente y en tiempo real. La invención principal de Satoshi Nacamoto es el mecanismo descentralizado para crear “concenso sin autoridad central”. El consenso en Bitcoin es un artefacto emergente de la interacción a-sincrónica de miles de nodos independientes, todos siguiendo las mismas reglas sin que uno solo de estos tenga mas autoridad que otro.
Nodos
En una red de pesca los nodos son la parte de la red donde las cuerdas se cruzan o se unen y los nodos están directamente unidos por la cuerda a los nodos mas cercanos; en una red de computadoras como la la red de Bitcoin, los nodos están unidos por conexiones digitales que ellos mismos crean y mantienen.
La red de nodos de Bitcoin está organizada en una topología plana de igual a igual (2P2 peer to peer), lo que significa que no existe una jerarquía entre los nodos, todos tienen el mismo nivel de autoridad, por lo que no hay un nodo principal que pueda ser atacado.
Aunque no existe un jerarquía entre los nodos, si existen diferencias entre las funciones que estos cumplen a través de los diferentes protocolos estos ejecutan, algunos protocolos como P2P, TLS o HTTPS sirven para descubrir y mantener las conexiones con otros nodos y la topología de la red, el protocolo Stratum es utilizado para funciones de minería por los nodos mineros. El Protocolo de Bitcoin que define la creación de nuevas transacciones y bloques en la cadena e incluye las reglas sobre la formación de transacciones, la verificación, el consenso de la red, y la prevención del doble gasto.
Los denominados nodos completos (full node) cumplen las siguientes funciones:
Mantienen una copia completa del blockchain y validan cada bloque y transacción basándose en las reglas de consenso de Bitcoin.
Verifican todas las reglas de la red, como las firmas de las transacciones, los valores de las transacciones, timestamp, etc.
Retransmitir transacciones ya validadas en los bloques por los nodos de minería o pendientes en el mempool.
Rechazar bloques y transacciones que violan las reglas del protocolo.
Selección independiente de parte de cada nodo de la cadena con la mayor cantidad de computación demostrada a través del la prueba-de-trabajo para determinar en cual cadena ensamblar el próximo bloque.
Los Nodos Ligeros (Lightweight Nodes o SPV Nodes) utilizan el método de Verificación de Pago Simplificado (SPV), lo que les permite operar con menos recursos y almacenamiento y no descargan toda la cadena de bloques. En lugar de eso, descargan solo la cabecera de cada bloque para verificar la validez de las transacciones de forma más eficiente, confiando en los nodos completos para acceder a detalles del blockchain. Esto es importante por que el tamaño del blockchain esta siempre en crecimiento y actualmente (en el año 2024) ya tiene un tamaño de 5450 Gigabytes, por lo que los nodos ligeros son una solución para activar nodos de Bitcoin en equipo no especializado como computadoras personales o smartphones.
La descentralización en la red unida las características de código abierto (open source) del software que puede ser ejecutado por cualquier computadora son la razón por la cual la red de Bitcoin es para efectos prácticos indestructible. Aparte de utilizar internet los nodos también pueden comunicarse y establecer enlaces a través de ondas de radio enlaces satelitales u otros medios.
Propuestas de mejoras para Bitcoin (BIP)
Ya que Bitcoin no está controlado por un ente central la implementación de cambios y de mejoras en el funcionamiento del sistema se hace en forma de propuestas a la comunidad que son registradas en un repositorio de GitHub, una plataforma en internet especializada en el alojamiento de código informático. Las propuestas de mejoras para Bitcoin BIP (por sus siglas en ingles) son documentos que pueden incluir modificaciones al protocolo de consenso, cambios en el proceso de gestión del software de Bitcoin, o nuevas funcionalidades.
La implementación de un cambio a nivel de protocolo requiere que la comunidad de usuarios, desarrolladores realicen actualizaciones en el software y las herramientas existentes, lo cual puede traer muchas complicaciones y cuestionamientos por lo cual el el autor del BIP debe convencer a la comunidad de Bitcoin de que su propuesta es necesaria y viable. Después de discusiones preliminares, el BIP se publica formalmente y se asigna un número. Posteriormente, sigue un período de debate más formal, tras el cual el BIP puede ser aceptado, rechazado o retrasado.
Soft Fork
Un soft fork es un cambio en el protocolo que es retrocompatible con las versiones anteriores del software. Esto significa que no es necesario que todos los nodos actualicen su software de inmediato para seguir operando en la red. Las nuevas reglas serán aceptadas por los nodos actualizados, mientras que los nodos que no se actualicen aún podrán participar bajo las viejas reglas, pero solo verán parte de la nueva estructura de la red. Eventualmente, si la mayoría de la potencia de minería adopta un nuevo software, este nuevo conjunto de reglas se convertirá en el dominante.
BIP 148 por ejemplo propuso un soft fork que obligaba la activación de SegWit, una solución para el problema de escalabilidad de Bitcoin que también tiene el beneficio adicional de aumentar la capacidad del bloque sin cambiar su tamaño. Este soft fork conocido como UASF (User Activated Soft Fork) fue oficialmente presentado en Marzo del 2017 en el contexto de un incremento exponencial en el uso de la red que estaba provocando que el mempool se saturara de transacciones pendientes por ser validadas ya que bloques con su tamaño limitado no podían incluir las transacciones suficientes para dar a vasto con la demanda lo cual incrementó el costo de las transacciones y el tiempo de verificación a niveles disfuncionales de manera temporal.
Aunque hasta el día de hoy no todas las empresas y usuarios han adoptado esta solución, las transacciones de SegWit coexisten con las transacciones sin SegWit en la cadena de bloques y son verificables por los nodos de ambos tipos. Eventualmente la adopción de esta propuesta demostró ser una solución al problema de escalabilidad y sirvió como base para el desarrollo de tecnologías que funcionarían como una segunda capa de transacciones que aumentan enormemente la versatilidad del sistema en su conjunto.
Hard Fork
Un hard fork es un cambio radical en el protocolo de la cadena de bloques que hace que las reglas antiguas y nuevas no sean compatibles entre sí. Esto significa que todos los nodos deben actualizarse al nuevo software para seguir participando en la red con las nuevas reglas. En caso de que algunos nodos decidan no actualizar, la cadena se divide en dos versiones incompatibles: una que sigue las viejas reglas y otra que sigue las nuevas. Esto efectivamente crea una nueva moneda.
El caso mas conocido surgió de un hard fork de Bitcoin en agosto de 2017 debido a desacuerdos sobre el tamaño de los bloques. El llamado Bitcoin Cash aumentó el tamaño de bloque de 1 MB a 8 MB para permitir más transacciones por bloque y una parte significativa de la industria de minería pactó con el grupo que proponía este cambio moviendo su hash-rate hacia esta nueva cadena. El resultado de esto fué que la comunidad de usuarios y nodos en su mayoría terminó ignorando esta nueva cadena y eventualmente los mineros renegados se vieron forzados a volver a minar Bitcoin para mantener sus costes de operación ya que la nueva moneda no estaba siendo utilizada.
Last updated