Guida Ontology - l'algoritmo di consenso VBFT

Valley

Super Moderatore
10 Aprile 2011
9,088
422
4,264
3,033
Ultima modifica:



xJQoPWE.png

Prefazione
La seguente guida è la seconda di una raccolta di 7 guide riguardanti la cryptovaluta Ontology e il suo sistema di blockchain. Il tentativo è stato quello di raccogliere le informazioni principali della moneta cercando di approfondire un minimo così da staccarsi dalle basilari (e spesso troppo poco esaustive) guide italiane presenti sull'argomento. L'obiettivo è stato quindi quello di ottenere una raccolta di guide semplici e chiare ma al tempo stesso esaustive e specifiche. Buona lettura.

Revisione a cura di NedLudd, amministratore della chat Telegram di Ontology Italia.

[AWESOMEB]creative-commons[/AWESOMEB] [AWESOMEB]creative-commons-by[/AWESOMEB] [AWESOMEB]creative-commons-nc[/AWESOMEB] [AWESOMEB]creative-commons-sa[/AWESOMEB]
Creative Commons
Attribuzione - Non commerciale - Condividi allo stesso modo 3.0 Italia - CC BY-NC-SA 3.0 IT



[AWESOME]book[/AWESOME] Indice della raccolta
1) Ontology - ONT ID e l'identità digitale
2) Ontology - l'algoritmo di consenso VBFT [AWESOME]user-circle[/AWESOME]
3) Ontology - Il modello d'incentivazione di Triones Node
4) Ontology - Cos'è lo stake di Ontology e come farlo
5) Ontology - Come fare lo stake con il wallet OWallet
6) Ontology - Come fare lo stake con il wallet O3

7) Ontology - Guida all'uso della dApp ONTO

[AWESOME]user-circle[/AWESOME] = tu sei qui​



[AWESOME]book[/AWESOME] Indice di questa guida






lRfygI5.png



"Ontology è una blockchain/distributed ledger network che unisce:
un sistema di identità distribuito, uno scambio di dati distribuito, una collaborazione dei dati distribuita,
protocolli di procedure distribuite, comunità distribuite, attestazioni distribuite, vari moduli specifici per settori industriali.
Insieme questi costituiscono l’infrastruttura per una rete fiduciaria peer-to-peer che è cross-chain, cross-system, cross-industry, cross-application e cross-device."







[AWESOME]code[/AWESOME]
VBFT
l'algoritmo di consenso

L’algoritmo VBFT, disponibile su GitHub, è un nuovo algoritmo di consenso che combina PoS, VRF (Verifiable Random Function) e BFT. È il cuore del consenso dell'OCE (Ontology Consensus Engine) su cui si basa il Triones Node di Ontology (il suo sistema di nodi). VBFT supporta la scalabilità dei gruppi di consenso, attraverso la VRF garantisce la casualità e l'equità della generazione dei nodi dedicati al consenso e garantisce che la finalità dello stesso possa essere raggiunta rapidamente.

La rete principale di Ontology è composta da due parti:

* Rete di consenso
La rete di consenso è costituita da 10 nodi responsabili (per l’appunto) del consenso delle richieste di transazione all'interno di Ontology, dalla generazione dei blocchi, del mantenimento della blockchain e dalla distribuzione dei blocchi di consenso alla rete dei nodi sincronizzati.

* Rete di candidati al consenso
I nodi nella rete candidata (ad oggi 57) non partecipano al consenso ma rimangono sincronizzati con la rete di consenso aggiornandosi all'ultimo blocco sulla blockchain gestita da loro in tempo reale. Le reti candidate monitoreranno anche lo stato della rete di consenso, convalidano i blocchi e assistono nella gestione della rete di Ontology.

[AWESOME]briefcase[/AWESOME] Costruzione della rete di consenso di Ontology
La rete di consenso di Ontology è generata dallo smart contract di gestione del consenso di Ontology. Il contratto di gestione del consenso viene eseguito permanentemente sulla rete Ontology ed aggiorna regolarmente l'elenco dei nodi nella rete di consenso e i parametri di configurazione dell'algoritmo VBFT.
Nei parametri dell'algoritmo VBFT uno importante è la tabella PoS del nodo della rete. Durante il processo operativo del VBFT, vengono selezionati in modo casuale i nodi che partecipano al consenso in base alla tabella PoS di consenso corrente, quindi i nodi selezionati completano il ciclo di lavoro corrispondente.






[AWESOME]wave-square[/AWESOME]
Panoramica dell'algoritmo VBFT

L'algoritmo VBFT può essere considerato come un miglioramento del BFT (Byzantine fault tolerance) dal punto di vista della funzione casuale verificabile (VRF). Nell'algoritmo VBFT, in primo luogo, in base al VRF, vengono selezionati i nodi incaricati del consenso, quelli della verifica dei blocchi ed infine i nodi incaricati della conferma, quindi il consenso viene completato dal gruppo di nodi selezionato. Grazie alla casualità introdotta dal VRF, i nodi incaricati sono diversi ad ogni turno e quindi difficili da prevedere, migliorando così notevolmente la resistenza agli attacchi dell'algoritmo di consenso.

gR45CfD.gif
L'algoritmo VBFT può essere riassunto come segue. In ogni round di consenso VBFT:
  1. i nodi candidati saranno selezionati dalla rete di consenso in conformità con la VRF. Ogni nodo incaricato proporrà indipendentemente un blocco;
  2. vengono selezionati dalla rete di consenso più nodi di verifica in conformità con la VRF e ciascun nodo di verifica raccoglie i blocchi dalla rete, li verifica e quindi vota i blocchi con la priorità più alta;
  3. i nodi di conferma sono selezionati dalla rete di consenso in conformità con VRF, eseguono la verifica sui risultati del voto dei nodi di verifica di cui sopra e determinano i risultati finali del consenso;
  4. tutti i nodi riceveranno il risultato del consenso
    dei nodi di conferma e inizieranno un nuovo round di consenso.

[AWESOME]superscript[/AWESOME] VRF di VBFT
Il valore della VRF di ogni round nell'algoritmo VBFT è determinato dal ciclo precedente di blocchi di consenso. L'algoritmo specifico estrae le informazioni volatili dal blocco precedente, calcola l'hash e genera un valore hash a 1024 bit. Questo valore verrà preso come valore della VRF del blocco successivo.

[AWESOME]mouse-pointer[/AWESOME] Peer Choice di VBFT
L'algoritmo VBFT verifica il valore casuale del precedente round e seleziona i nodi che parteciperanno al nuovo round di consenso dalla tabella PoS. La generazione della tabella PoS considera le informazioni del proprietario del nodo e la strategia di governance dell'intera rete di consenso. Sebbene si possa presumere che i valori VRF siano valori casuali distribuiti uniformemente, la selezione casuale del nodo di VBFT segue anche la strategia di gestione della rete del consenso. Poiché il valore VRF generato da un blocco è verificabile, tutti i nodi saranno coerenti con il VRF della stessa altezza del blocco se non c'è

biforcazione. Nell'algoritmo VBFT, per ogni round, un set di nodi viene selezionato nella tabella PoS in base al VRF in sequenza. Pertanto, ciascun valore VRF determina una sequenza di nodi di consenso. Questa sequenza di nodi selezionata casualmente può essere considerata come un ordine prioritario di tutti i nodi di consenso.
Si può quindi dire che più un nodo possiede ONT, più è sicuro e difficile che sia malevolo (visto che sarebbe un controsenso avere tanti ONT e voler guastare l'ecosistema di Ontology), di conseguenza avrà più probabilità di essere scelto dall'algoritmo VBFT pur mantenendo la casualità della scelta.

[AWESOME]check-double[/AWESOME] Fork Choice di VBFT
Ontology funziona su una rete pubblica e si trova di fronte alla possibilità di guasti alla rete o attacchi. Sebbene l'algoritmo di consenso VBFT selezioni in modo casuale i nodi per partecipare al consenso e diminuisca la possibilità di attacchi di rete, continua a correre il rischio di biforcarsi nell'occorrenza dell'isolamento della rete.

Nella sezione precedente, è stato spiegato che il VRF di ciascun blocco può determinare la sequenza del nodo. Quando è presente una biforcazione in VBFT, quest'ultimo definisce la sequenza del nodo in ordine di priorità del nodo. Sulla base di questo, è possibile calcolare ciascuna ponderazione prioritaria del fork e ciascun nodo selezionerà in base alla rispettiva ponderazione della priorità.
Poiché ogni blocco è determinato dall'ordine di priorità dei nodi di VRF, e visto che vengono scelti continuamente in maniera casuale, è molto difficile o addirittura impossibile continuare a mantenere un fork dannoso, quindi il questo morirà presto mantenendo così l'ecosistema sicuro.

[AWESOME]file-signature[/AWESOME] VBFT’s Auto-Configuration
Per garantire la qualità della rete di consenso di Ontology, lo smart contract di gestione del consenso di Ontology aggiornerà automaticamente l'elenco dei nodi nella rete di consenso su base regolare. In caso di attacchi informatici, lo smart contract supporta anche l'aggiornamento obbligatorio dell'elenco dei nodi nella rete di consenso. Un nuovo nodo verrà aggiunto alla rete di consenso al successivo aggiornamento della rete dopo che più stake sono bloccati per questo nodo e confermando che soddisfa i requisiti di prestazione della rete di consenso. Deve essere inoltre rispettato il rapporto 1:6, un nodo del consenso ogni sei nodi candidati.
L'intervallo di tempo in cui la rete di consenso viene aggiornata dallo smart contract è in unità di blocco. Dopo che ogni nodo di consenso completa un determinato numero di consensi sui blocchi, una proposta di nodo alternativo per il prossimo blocco viene fatta tramite una transazione sullo smart contract di gestione del consenso e verrà inserita nel prossimo blocco di proposte come prima transazione nel blocco. Il nodo di verifica del consenso e il nodo di conferma corrispondenti verificheranno anche il nodo proposto per assicurarsi che la transazione di gestione del consenso sia inclusa nella proposta di blocco. Una volta raggiunto il consenso nel blocco contenente la transazione del contratto intelligente di gestione del consenso, ciascun nodo eseguirà automaticamente lo smart contract del consenso, aggiornerà l'elenco dei nodi di consenso e completerà l'aggiornamento dell'elenco dei nodi.



[AWESOME]book[/AWESOME] Link utili





CJxrdV9.png
 
Valley ha aggiornato Ontology - l'algoritmo di consenso VBFT:

Ontology 2.0

È arrivato Ontology 2.0!
Ecco le novità:
  • Le transazioni ora hanno un costo minimo di 0.05 ONG.
  • Il minimo per fare stake è di 1 ONT e non più di 500.
  • Non si riceveranno più ONG tenendo gli ONT nel wallet, si riceveranno solamente facendo lo stake.
  • Il minimo di Ontology da possedere per fare un nodo candidato è di 10.000 ONT e non più di 100.000.
  • Non è più richiesto il KYC per i nodi candidati al consenso.
I nodi del consenso sono ora 10.

Leggi il resto dell'aggiornamento..