HomeWikiProof of Elapsed Time (PoET): l'algoritmo di consenso basato sul tempo

Proof of Elapsed Time (PoET): l’algoritmo di consenso basato sul tempo

Sawtooth, così come Fabric, si definiscono tecnologie di rete blockchain autorizzate. La rete viene definita autorizzata perché i potenziali partecipanti devono identificarsi e la rete stessa può decidere se consentire loro di partecipare o meno.

Read this article in the English version here.

Queste blockchain possono utilizzare un algoritmo di consenso denominato Proof of Elapsed Time (PoET) che funziona nel seguente modo:

  • Ogni partecipante della rete blockchain deve attendere un periodo di tempo casuale;
  • Il primo partecipante che terminare l’attesa diventa leader per il nuovo blocco.

Affinché questo funzioni è necessario verificare che i partecipanti attendano effettivamente un lasso di tempo in modo casuale e che questo sia generato in un range uguale per tutti.

Poet proviene da Intel e si basa su un set speciale di istruzioni CPU denominato Intel Software Guard Extensions (SGX). SGX consente alle applicazioni di eseguire codice attendibile in un ambiente protetto.

Intel SGX

Il Proof of Elapsed Time si basa su due punti chiave, gestiti da Intel SGX:

  • Un componente hardware specializzato può creare un attestato che permette al codice di essere considerato attendibile;
  • Il codice attendibile viene eseguito in un ambiente privato. Il resto dell’applicazione non può ispezionare o interferire minimamente nello spazio di memoria privato e riservato.

Il primo punto consente ad un partecipante alla rete di dimostrare agli altri partecipanti che sta eseguendo del codice attendibile e corretto per la rete. Senza questa funzione, non è possibile per la rete sapere se un partecipante sta effettivamente eseguendo correttamente il PoET.

Il secondo punto garantisce che un partecipante malintenzionato non possa imbrogliare manipolando il codice fidato di Poet dopo che è stato già impostato.

I dettagli del protocollo Poet

I dettagli del protocollo sono alquanto complessi, ma si può semplificare in due step principali.

Unione alla rete

  • Un nuovo partecipante scarica il programma per connettersi alla blockchain;
  • All’inizializzazione, il programma crea una nuova coppia di chiavi;
  • Il partecipante invia un attestato SGX (che include la chiave pubblica del codice attendibile che viene eseguito su SGX) al resto della rete come parte di una richiesta di partecipazione.

Partecipazione alla rete

  • Il partecipante ottiene un oggetto timer firmato dal programma e attende il tempo specificato dal timer;
  • Il partecipante ottiene poi un certificato (sempre firmato con la chiave privata del codice attendibile) che il timer ha terminato e lo inoltra al resto della rete;
  • La rete misura quanto spesso un determinato partecipante diventa leader al fine di rilevare i partecipanti con un eventuale sistema SGX compromesso.

Potenzialmente questo sistema risulta un approccio molto più efficiente dal punto di vista energetico rispetto ad altri algoritmi di consenso come ad esempio Proof of Work.

Michele Porta
Michele Portahttps://www.micheleporta.info/
Ingegnere informatico. Da sempre appassionato di tecnologia, hardware e software. Entra nel mondo delle criptovalute negli ultimi anni imparando a fare trading e studiando gli aspetti tecnologici e implementativi delle principali crypto sul mercato. Spera in un futuro privo di contanti e basato sulla sicurezza garantita dalla blockchain.
RELATED ARTICLES

MOST POPULARS

GoldBrick