Alcune funzionalità delle tecnologie a registro distribuito (DLT), come la programmabilità e l'uso di crittografia avanzata, possono essere riutilizzate anche in ambienti controllati da un'autorità centrale, o da un insieme di autorità, come ad esempio nel settore finanziario. In tali contesti, è necessario implementare una DLT in versione permissioned, in cui solo un sottoinsieme dei partecipanti, anche detti validatori, sono autorizzati ad approvare o rifiutare transazioni. Al contrario, nei contesti permissionless, tale autorizzazione non è necessaria.
Tutte le DLT, siano esse permissionless o permissioned, funzionano grazie ad un processo decisionale cooperativo finalizzato a raggiungere un accordo sul prossimo stato del registro. Tale processo è chiamato protocollo di consenso e rappresenta un componente fondamentale di ogni DLT, in quanto consente ai validatori di operare senza interruzioni anche nel caso in cui alcuni di essi vengono compromessi o risultano disconnessi dalla rete. Nei contesti permissionless, raggiungere il consenso può richiedere un ingente consumo di risorse computazionali (Proof-of-Work, PoW) oppure finanziarie (Proof-of-Stake, PoS), ma nei contesti permissioned tale consumo non è necessario. In particolare, gli algoritmi basati su Proof-of-Authority (PoA) funzionano grazie al fatto che esiste un gruppo di validatori fidati, a cui viene data la capacità di accettare o rifiutare le transazioni proposte dai partecipanti. In genere, tali validatori raggiungono il consenso tramite votazione a maggioranza.
In questo lavoro, si presenta il protocollo FBFT (FROSTed Byzantine Fault Tolerance), che rappresenta un nuovo approccio al consenso PoA, in grado di garantire la confidenzialità dei validatori. Esso combina l'algoritmo Practical Byzantine Fault Tolerance (PBFT), un noto risultato in ambito sistemi distribuiti, con lo schema di firma a soglia chiamato Flexible Round-Optimized Schnorr Threshold (FROST), un recente contributo di crittografia.
Grazie a FROST, il protocollo FBFT certifica il raggiungimento del consenso utilizzando una firma congiunta, che rappresenta l'approvazione di un insieme di transazioni da parte di un quorum di validatori. Inoltre, grazie a PBFT, fornisce tolleranza a fallimenti cosiddetti "bizantini", in cui alcuni validatori smettono di funzionare o addirittura mostrano comportamenti malevoli, magari a causa di un guasto software o di un attacco cyber. Infine, FBFT preserva la confidenzialità dei validatori, in quanto il loro numero e le loro identità sono note solo all'autorità centrale o ai loro delegati, riducendo il rischio di attacchi mirati.
Il lavoro mostra come il protocollo FBFT possa essere integrato nel codice di una blockchain pubblica, adattandola ad un contesto permissioned, e valuta le performance del sistema in scenari realistici e geograficamente distribuiti. Per incoraggiare ulteriori ricerche, tutto il codice sorgente viene pubblicato in open-source; è la prima volta che una Banca Centrale rende liberamente disponibile un algoritmo di consenso sviluppato interamente in-house.
Il sistema risultante, sebbene sperimentale e non sviluppato per essere production-ready, può essere visto come una piattaforma alternativa per una infrastruttura transazionale distribuita e resiliente: gestito da un insieme di attori fidati e distribuiti su scala geografica, è potenzialmente utilizzabile in applicazioni mission-critical, come le Central Bank Digital Currencies all'ingrosso e al dettaglio, oppure, in prospettiva, per la tokenizzazione di asset finanziari.