Consenso Polkadot Parte 1: Introduzione
Questa serie sarà una discussione sulla sicurezza e sul consenso in Polkadot. Nella prima parte definiremo alcuni termini prima di entrare nei dettagli di come Polkadot crea e protegge i blocchi.
Gli algoritmi di consenso aiutano una rete di computer (network) a funzionare come un singolo computer. In pratica, ciò significa che quasi tutti i computer del network devono concordare su un certo stato iniziale e poi concordare su un registro di operazioni deterministiche su questo stato iniziale, in modo da arrivare allo stesso stato finale.
Sebbene le blockchain apportino alcuni strumenti interessanti a questo settore, il problema del coordinamento non è nuovo. È nato nel settore aerospaziale, dove i computer sui satelliti o sugli aerei ad alta quota potevano comportarsi in modo arbitrario a causa della natura inospitale dello spazio. Immaginate di avere una rete di computer di volo e di voler sapere in che direzione sta andando il vostro aereo. Non importa a quale computer del network lo si chieda, si dovrebbe ottenere sempre la stessa risposta.
Cosa c'entra tutto questo con la blockchain? Vogliamo che un network di computer si metta d'accordo su un valore. Tale valore potrebbe essere il saldo di un conto, l'esito di una votazione o il risultato dell'esecuzione di uno smart contract.
In effetti, alcuni algoritmi di consenso preesistenti assomigliano alle blockchain. In una conferenza del 2001, la professoressa del MIT Barbara Liskov parlò del batching delle transazioni per migliorare le prestazioni della Practical Byzantine Fault Tolerance (PBFT), ben prima che esistesse Bitcoin.
"Immaginate un centro operativo molto occupato che viene investito da richieste su richieste; in realtà non avvia il protocollo per ogni richiesta. Invece, raccoglie un gruppo di richieste ed esegue un protocollo per tutto il gruppo. ... Non è necessario per tutti inviare una risposta al mandante. Va bene se tutti, tranne uno, inviano un digest della risposta, perché questo è sufficiente per consentire al destinatario di sapere se ha ricevuto risposte identiche".
Il PBFT ha fornito una serie di regole per concordare i cambiamenti di stato, persino un batch (leggi: blocco) di cambiamenti di stato.
Scomposizione del consenso della Blockchain
In un sistema distribuito come una blockchain, è necessario rispondere ad alcune domande:
-
Chi può proporre la prossima modifica?
-
Quale serie di modifiche è definitiva?
-
Cosa succede se qualcuno infrange le regole?
È importante fare queste distinzioni in anticipo perché molti protocolli di consenso blockchain le uniscono in una sola. Il Proof of work, ad esempio, utilizza la prova per selezionare il validatore corretto di un blocco, la chain più lunga per decidere quale sia la chain finale, e il costo di creare quella prova come punizione per la violazione delle regole. In Polkadot, tutte queste domande trovano una risposta isolata.
I sistemi non-blockchain rispondono comunque a queste domande. Ad esempio, si potrebbe partire dal presupposto che tutti i computer eseguono lo stesso software. Nella maggior parte dei casi, questo va bene. Se la Boeing produce un aeroplano, è lecito supporre che programmi tutti i computer che lo equipaggiano.
In un network pubblico, tuttavia, non possiamo fare questa ipotesi. Le blockchain ci permettono di ridurre alcune delle nostre ipotesi di network ricorrendo agli strumenti economici. Tutti i sistemi di consenso hanno nozioni di comportamento "buono" e "cattivo". Le proprietà economiche intrinseche delle blockchain ci permettono di premiare il comportamento buono o punire quello cattivo. Una rete proof-of-stake utilizza il sistema economico come mezzo diretto per garantire il proprio consenso.
La sicurezza in un sistema blockchain misura la difficoltà di infrangere il consenso. Nella proof of authority, la sicurezza è la difficoltà di prendere il controllo delle autorità. Nella proof of work, la sicurezza è il costo per acquisire e gestire una potenza hash sufficiente a creare una chain più lunga del network. E nella proof of stake, la sicurezza è il valore investito (messo in stake) che è il valore a rischio.
I membri di Parity Technologies e Web3 Foundation hanno sviluppato e implementato una libreria di algoritmi per affrontare il problema del consenso e della sicurezza. In questa serie, inizieremo con GRANDPA, il nostro algoritmo di finalizzazione, perché tutti gli algoritmi di produzione di blocchi devono rispettare questa finalizzazione. Passeremo poi a BABE, il nostro motore di produzione di blocchi, e discuteremo di come aggiungere blocchi alla chain. Infine, concluderemo con una discussione su come usiamo il sistema economico per proteggere GRANDPA e BABE.
December 18, 2019 in Consensus scritto da Joe Petrowski
Leggi la seconda parte di GRANDPA ->
Developer, Polkadot Ambassador, RMRK ambassador and NFT enthusiastic
Polkadot Arena è un progetto in lingua italiana di divulgazione sull'ecosistema #Polkadot. Tutti i contenuti realizzati dai membri del collettivo.
Il progetto è stato lanciato da appassionati, ambassador, validator e collator di Polkadot e/o alcune parachain. Abbiamo pensato che unendo le forze e parlando con una unica voce avremmo potuto dare più risalto e diffondere un'informazione più completa alla community italiana. L'unione fa la forza!
Il nostro obbiettivo sarebbe quello di diventare il canale d'informazione più popolare in Italia su Polkadot.
0 comments