Módulo 5.1
SHIMMER
El esquema de votación Shimmer debe su nombre a un comportamiento extraordinario que se observa en la naturaleza. Las abejas «sincronizan» sus movimientos para defenderse de los depredadores. Lo hacen sin ninguna entidad centralizada, y sólo saben cuándo «cambiar su estado» observando el comportamiento de sus pares.
Los agentes autónomos individuales que actúan según unas reglas predefinidas pueden encontrarse en muchos sistemas de la naturaleza, como las abejas, las hormigas, los bancos de peces e incluso en algunas áreas de la física. Reglas muy simples pueden crear características increíblemente complejas que, con el tiempo, se manifiestan como propiedades emergentes de un sistema. El mecanismo de consenso Shimmer funciona de la misma manera. En lugar de tratar de reconstruir la opinión de cada uno de los otros nodos, nos preocupamos sólo por las opiniones de un subconjunto muy pequeño de nodos y dejamos que el consenso se forme orgánicamente como una propiedad emergente de la red.
Cuando surge un conflicto bajo Shimmer, los nodos intercambian opiniones de forma iterativa sobre cuál de las transacciones conflictivas prefieren, hasta que finalmente se alcanza un consenso. Los nodos obtienen una visión global de la parte preferida de la Tangle, que es de crucial importancia para garantizar el consenso. En algún momento un nodo puede decidir además marcar su decisión como finalizada. Esto significa que deja de participar en el proceso de votación y nunca más se desviará de esa opinión, incluso en el caso de un cambio de opinión abrumador (debido a un ataque).
Como Shimmer se utilizará para el consenso en el Tangle, `gustar’ o `no gustar’ una transacción tiene consecuencias más amplias. Si una transacción es `gustada’ por un nodo, entonces también debe `gustar’ todas las demás transacciones a las que se hace referencia directa o indirectamente. Por el contrario, si una transacción es `no le gusta’, entonces ninguna transacción que haga referencia a esta transacción puede ser `gustada’.
Es importante señalar que no es necesario votar en cada transacción. Las transacciones que no tienen conflictos con ninguna otra transacción se pueden considerar «gustadas» basándose únicamente en modificadores locales (es decir, después de que haya transcurrido cierto tiempo). Los votos sólo son necesarios para resolver conflictos y casos extremos.
Los nodos rechazarán los votos que `prefieran’ dos subenredos conflictivos al mismo tiempo. Esto obliga a los nodos a decidir sobre un único superviviente. Los nodos que violan esta regla pueden ser ignorados y eliminados permanentemente como vecinos. También tenga en cuenta que no hay ninguna razón por la que los nodos honestos quieran votar por dos subenredos conflictivos, ya que no hay ninguna recompensa minera que los incentivaría a hacerlo.
Estamos examinando dos enfoques diferentes sobre cómo se lleva a cabo y se asegura la votación. Estos son:
- Celular Consensus (Consenso celular)
- Fast Probabilistic Consensus (Consenso Probabilístico Rápido)
Estos tienen diferentes propiedades, pero ambos muestran resultados iniciales igualmente prometedores, y pronto serán examinados en una red de pruebas pública. Afortunadamente, la modularidad del protocolo hace que sea muy fácil probar ambos en paralelo.