CONSENSO CELLULARE

Nel consenso cellulare il processo di voto è modellato come un automa cellulare, dove i nodi possono essere pensati come cellule che monitorano gli stati dei loro vicini ed adattano la loro opinione di conseguenza. L’algoritmo di consenso vero e proprio è estremamente semplice e può essere riassunto in 5 righe di codice:

If NumberOfNeighborsPreferringTransaction(tx) > NumberOfNeighbors / 2 {
    PreferTransaction(tx)
} else {
    DislikeTransaction(tx)
}

Questo descrive un meccanismo in cui i nodi adottano l’opinione della maggioranza dei loro vicini, gradendo o meno una transazione basata su tale maggioranza.

È estremamente veloce e robusto. La seguente animazione mostra una simulazione di 10.000 nodi che raggiungono un consenso in presenza di 128 transazioni in conflitto (colori diversi rappresentano transazioni diverse):

In questo esempio, la rete raggiunge il consenso in pochi secondi.

L’aumento del numero di nodi influisce sul tempo necessario affinché le transazioni si propaghino nella rete, ma non influisce sul tempo necessario per raggiungere il consenso. Le decisioni sono prese localmente ed in parallelo, indipendentemente dal numero di nodi che partecipano alla rete.

Il fatto che i voti siano sempre scambiati con gli stessi vicini può rappresentare un vettore d’attacco. Si aumenta la sicurezza incorporando la reputazione basata sul mana nel processo di peering: i nodi preferiscono i vicini con una reputazione simile. Questo rende costoso per gli aggressori anche essere considerati nodi vicini, ed aggiunge un altro incentivo per i nodi a raggiungere un’alta reputazione. La rete diventa sempre più sicura man mano che la quantità di mana posseduta dai nodi onesti cresce naturalmente nel tempo.

Gossip sull’Opinione: Il sistema immunitario dell’organismo

Trattare i nodi come cellule di un organismo vivente permette di implementare un “sistema immunitario”. Questo protegge la rete contro gli attacchi, costringendo i partecipanti a giocare secondo le regole, e fornisce una protezione maggiore rispetto alle misure tradizionali come la protezione Sybil. Poiché tutti i vicini sono selezionati a caso, il processo con cui Shimmer raggiunge il consenso è altamente probabilistico. Ma a livello di nodo, il Consenso Cellulare è deterministico. Questo ci permette di verificare il comportamento di un nodo se conosciamo l’opinione dei suoi vicini. Gli attori cattivi che violano le regole possono quindi essere individuati (come dimostrato di seguito) e sfrattati immediatamente da uno qualsiasi dei loro vicini.

Questa idea può essere formalizzata nel seguente protocollo, che chiamiamo “Gossip about Opinion”:

  • Ad intervalli regolari, ogni nodo invia un messaggio di “heartbeat (battito cardiaco)” ai suoi vicini. Questo contiene la sua opinione attuale ed il motivo per cui è giunto a tale opinione, cioè le opinioni dei suoi vicini nel ciclo precedente
  • Per comprimere la quantità di dati scambiati viene inviata solo la differenza tra i hearbeats consecutivi, cioè solo quegli hash di transazione il cui stato “gradito” è cambiato
  • Un nodo firma i suoi messaggi di heartbeat e le sue opinioni per garantire l’autenticità

Questo heartbeat ha molteplici scopi:

  • Forza i nodi a fare dichiarazioni regolari e a rimanere membri attivi della rete
  • È utilizzato per sincronizzare le opinioni tra vicini, permettendo ai nodi di aggiornare la propria opinione secondo le regole precedentemente descritte, senza la necessità di interrogare proattivamente gli altri nodi
  • Permette ai nodi di verificare che i loro vicini siano onesti – quelli che violano il protocollo cambiando la loro opinione possono essere sfrattati immediatamente dalla rete. Poiché i messaggi sono firmati, il comportamento scorretto può essere dimostrato rintracciando i messaggi dannosi fino ai nodi che li hanno emessi

Questo approccio ha una serie di caratteristiche convincenti che non sono state viste in nessun altro meccanismo di consenso permissionless: la sua natura asincrona, la semplicità della sua implementazione, l’efficienza del suo overhead di messaggio, la velocità con cui raggiunge il consenso e la sua resistenza agli attacchi.

Mentre i fenomeni emergenti sono molto comuni nei sistemi biologici ed hanno dimostrato di funzionare bene nella pratica, è estremamente difficile modellarli matematicamente a causa della loro natura intrinsecamente caotica e complessa. L’inconveniente maggiore dell’approccio è quindi la complessità di formalizzare le sue prove scientifiche. Sarebbe necessario studiare a fondo il Consenso Cellulare in un ambiente di testnet prima che possa essere distribuito sulla rete principale.