Una de las dificultades que enfrentan las redes distribuidas de cadenas de bloques es llegar a un acuerdo sobre qué transacciones son legítimas, qué bloques son válidos y cuál es la cadena más larga. Para resolver este problema, cada cadena de bloques implementa una serie de reglas de consenso que todos los usuarios, o nodos, deben seguir.
Una de las dificultades que enfrentan las redes distribuidas de cadenas de bloques es llegar a un acuerdo sobre qué transacciones son legítimas, qué bloques son válidos y cuál es la cadena más larga. Para resolver este problema, cada cadena de bloques implementa una serie de reglas de consenso que todos los usuarios, o nodos, deben seguir.
Las reglas de consenso son un conjunto específico de normas que especifican una variedad de propiedades y procedimientos de la cadena de bloques. Estas reglas deben seguirse al validar bloques y las transacciones dentro de ellos. Mientras sean seguidas por la mayoría de los nodos, se mantiene el acuerdo y toda la operación continúa (esto es cierto para las cadenas de bloques de prueba de trabajo, mientras que algunos algoritmos de consenso alternativos utilizan un enfoque menos democrático).
Para alcanzar el consenso, la mayoría de los nodos deben aceptar individualmente un único valor de datos y deben hacerlo de manera unánime. La mayoría debe estar en consenso, incluso si algunos de los nodos no están observando las reglas o no son confiables.
Aspectos esenciales de las reglas de consenso de la cadena de bloques
- Las reglas de consenso logran consistencia y acuerdo entre los nodos.
- Determinan la validez de cada bloque y transacción, y definen las propiedades básicas de la cadena de bloques.
- La comunidad generalmente decide cuáles son las reglas de consenso (las cadenas de bloques privadas son un asunto diferente).
- Las reglas son aplicadas por el cliente y respaldadas por los nodos completos.
- Los actores que no se adhieren a las reglas son excluidos de la red.
Fundamentos de las reglas de consenso
Las reglas de consenso son necesarias para lograr la sincronización y alcanzar un acuerdo entre los miles de nodos en una red de cadena de bloques. Dado que cada nodo efectivamente almacena una copia de la cadena de bloques, se requiere un mecanismo que permita a los nodos seleccionar un bloque confiable para la continuación de la cadena. Aquí es donde entran en juego las reglas de consenso.
Cada bloque y transacción dentro de él debe estar de acuerdo con las reglas de consenso. Además, estas reglas también determinan las propiedades básicas de la cadena de bloques. Esto incluye todo, desde el tiempo de bloque, tamaño de bloque, suministro máximo, medios de prueba (comúnmente prueba de trabajo), hasta el tamaño de transacción, requisitos de firma, entradas y salidas de transacción disponibles y más. También determinan el protocolo mediante el cual los validadores deben verificar la cadena de bloques.
Pero, ¿quién determina las reglas de consenso en primer lugar? En el caso de Bitcoin, originalmente fueron escritas por Satoshi Nakamoto, pero como hizo el software de código abierto, ahora la comunidad decide sobre las reglas. Cualquier cambio de regla requiere que la mayoría de la comunidad esté de acuerdo. Los desacuerdos pueden llevar a bifurcaciones.
Las reglas no están almacenadas y aplicadas por la cadena de bloques, sino por el software cliente. Las reglas que un usuario desea seguir dependen, por lo tanto, del cliente que elija ejecutar. El cliente de Bitcoin más popular es Bitcoin Core, la continuación del cliente original de Nakamoto.
Los nodos completos, que almacenan la copia completa de la cadena de bloques, son de mayor importancia cuando se trata de mantener las reglas de consenso. Estos nodos validan las transacciones y los bloques de acuerdo con las reglas y rechazan cualquiera que no las siga. Cada vez que se mina un nuevo bloque, cada nodo completo lo valida de acuerdo con las reglas de consenso. Si todo está en orden, se acepta como la continuación de la cadena. Si no, se rechaza (huérfano) y otro toma su lugar.
Además, los mineros tienden a seleccionar solo transacciones válidas del mempool para incluirlas en nuevos bloques. Pueden incluir transacciones no válidas (como un intento de bifurcar la cadena de bloques, por ejemplo), pero con el riesgo de perder la recompensa de minería debido a que su bloque sea rechazado.
Falta de confianza en la toma de decisiones por consenso
La falta de confianza puede ser problemática para la toma de decisiones por consenso. Si la cadena de bloques no requiere confianza entre sus usuarios, ¿qué garantía tenemos de que los nodos no sigan simplemente sus intereses egoístas? ¿Por qué un nodo no valida simplemente las transacciones que le gustan y censura el resto?
Este comportamiento es inaceptable porque permitiría a un perpetrador volver a gastar monedas que ya han sido gastadas, un proceso comúnmente conocido como doble gasto.
La razón principal por la que esto no sucede (o más bien sucede raramente) son las reglas de consenso. Si los nodos completos comienzan a validar transacciones falsas y a pasar bloques inválidos, serán excluidos por otros nodos (el proceso de exclusión suele estar automatizado). Dado que la cadena de bloques opera sobre una base sin confianza, cada nodo debe llegar a conclusiones sobre la validez de las transacciones y bloques por sí mismo. De esta manera, cuando se comparan los resultados, los nodos no confiables se eliminan rápidamente.
Un medio para lograr el consenso es indispensable en una red distribuida de cadena de bloques. Las reglas de consenso son una solución que permite que la red funcione en ausencia de cualquier requisito de confianza entre sus usuarios. Aunque estas reglas son esenciales, un usuario promedio no necesita preocuparse por ellas.
Si operas con criptomonedas a través de un exchange, este se asegurará de que tus transacciones de criptomonedas estén de acuerdo con las reglas de consenso, por lo que no necesitas preocuparte por ello. Es por eso que tantos prefieren operar a través de un exchange confiable, como Bitstamp, el exchange de criptomonedas más antiguo del mundo.