Wiki di ZooBC
Fondamenti di ZooBC

La ZooBC Foundation

La ZooBC Foundation è l'organizzazione che sta dietro a ZooBC. Su ogni catena detiene gli 11 seggi genesi del registro dei nodi, e pubblica gli strumenti pubblici da riga di comando. Non ha alcun potere speciale su transazioni o saldi: il protocollo assegna a ogni chiave un solo compito, e alcune cose non le può fare nessuna chiave.

I seggi genesi

Ogni catena parte con 11 nodi registrati scritti nel suo blocco genesi: i seggi genesi, detenuti dalla Foundation. Ogni altro operatore entra nel registro dei nodi attraverso la coda (coda). Nessuno sceglie i nuovi arrivati; vengono ammessi uno alla volta, al ritmo fissato dal protocollo. Su mainnet il primo nuovo arrivato viene ammesso 7 giorni dopo la genesi, poi uno per ciclo di 600 giorni divisi per i seggi conteggiati, entro un minimo di 7 e un massimo di 90 giorni: circa 54,5 giorni finché i seggi conteggiati sono 11 (ritmo di ammissione). In quel conteggio i seggi genesi pesano al massimo 11.

Una volta ammesso, ogni seggio attivo ha la stessa possibilità di essere estratto per produrre un blocco. I seggi genesi seguono le stesse regole degli altri, e partono dallo stesso punteggio di partecipazione del 20 % di ogni nuovo nodo.

Ogni catena parte con 11 seggi genesi detenuti dalla ZooBC Foundation; gli altri nodi attendono in una coda e passano da un tornello, un'ammissione per ciclo, verso ulteriori seggi. Ogni seggio attivo ha la stessa possibilità di produrre blocchi.
Ogni catena parte con 11 seggi genesi detenuti dalla ZooBC Foundation; gli altri nodi attendono in una coda e passano da un tornello, un'ammissione per ciclo, verso ulteriori seggi. Ogni seggio attivo ha la stessa possibilità di produrre blocchi.

Gli strumenti

La Foundation pubblica gli strumenti pubblici da riga di comando su github.com/zoobc/tools, con licenza MIT, in dieci linguaggi: C++, TypeScript, JavaScript, Python, Go, Rust, Kotlin, Swift, PHP e Perl. Dialogano con un nodo solo tramite la sua API pubblica, come può fare qualsiasi applicazione (strumenti da riga di comando).

Le chiavi e i loro compiti

ZooBC assegna a ogni chiave un solo compito:

ChiaveChe cosa fa
autorità di releaseregistra le release del software tramite l'hash dei loro file, e può revocarle
tesoreriaun account ordinario: spende ciò che detiene
market makerun account ordinario
autorità delle paginenessuna regola della catena la legge
proprietario del seggioregistra, aggiorna, cambia la chiave e rimuove il proprio nodo, e incassa le vincite del nodo
chiave del nodoproduce blocchi e firma ricevute, attestazioni e voti

Dalla versione 0.5.8 le quattro chiavi di ruolo (autorità di release, autorità delle pagine, tesoreria e market maker) hanno quattro indirizzi distinti su tutte e tre le catene, ciascuna conservata su un proprio dispositivo. Il costruttore della genesi verifica che siano diverse. Delle quattro, solo l'autorità di release ha un potere sulla catena, e può detenere fino a 1.000 ZBC alla genesi per pagare le proprie commissioni. I seggi esercitano un controllo su di essa: due terzi di loro possono porre il veto a una release, e due terzi che mantengono il proprio voto per una settimana possono sostituire l'autorità (release e aggiornamenti).

I proprietari dei seggi e le chiavi dei nodi sono spiegati nell'articolo chiavi di un nodo.

Quattro chiavi, un compito ciascuna: l'autorità di release registra o revoca l'hash di una release, la tesoreria spende il proprio saldo, il proprietario del seggio registra, modifica o rimuove il suo nodo, la chiave del nodo produce blocchi e firma ricevute; non esiste una chiave di amministrazione.
Quattro chiavi, un compito ciascuna: l'autorità di release registra o revoca l'hash di una release, la tesoreria spende il proprio saldo, il proprietario del seggio registra, modifica o rimuove il suo nodo, la chiave del nodo produce blocchi e firma ricevute; non esiste una chiave di amministrazione.

Che cosa nessuna chiave può fare

  • Nel consenso non esiste una chiave di amministrazione. Una regola, un parametro o un saldo cambiano solo tramite transazioni che ogni nodo convalida, o tramite i voti sui prezzi, entro limiti, dei seggi (voti sui prezzi); mai tramite un messaggio firmato.
  • La genesi è fissa. I suoi account, seggi, parametri e altezze delle regole fanno parte dell'identità della catena.
  • L'attivazione delle regole non si può né votare né firmare. Un binario del nodo in disaccordo con le altezze delle regole registrate per la sua catena si rifiuta di funzionare.
  • La tesoreria non può coniare. I nuovi ZBC provengono solo dal piano della coinbase (supply ed emissione).
  • La registrazione di una release ha valore indicativo. Orienta solo i nodi che hanno scelto di aggiornarsi da soli, e questi verificano l'hash rispetto alla catena. Un nodo che esegue un binario scelto dal suo operatore non ne viene toccato.
  • Nessuno approva le transazioni. Ogni nodo convalida ogni transazione e ogni blocco con le stesse regole, quindi la Foundation non può approvare, annullare o bloccare un pagamento.

Queste garanzie valgono grazie al codice che ogni nodo esegue, non grazie alla promessa di qualcuno. Nemmeno i nuovi ZBC vengono minati o venduti da qualcuno: seguono un piano fisso e vengono pagati per lotteria ai nodi registrati in proporzione al loro punteggio (lotteria coinbase).

Vedi anche