Lavori in corso

Lavori in corso: stiamo costruendo questo sito in vista della MainNet. I dettagli cambieranno.

Questo sito è ancora in costruzione

ZooBC si costruisce alla luce del sole. Quello che vedi qui è attuale e onesto, ma non è finito: leggilo come il punto in cui siamo oggi, non come una versione definitiva.

Da qui alla MainNet le cose cambieranno: testi, struttura, immagini e cifre. Alcune pagine sono segnaposto.

L'ecosistema ZooBC nel suo insieme arriva per gradi. Il wallet, l'explorer e i canali della community entrano in funzione man mano che la MainNet si avvicina, e questo sito cresce insieme a loro.

Se qualcosa sembra sbagliato, non funziona o appare fuorviante, diccelo. Un feedback adesso vale per noi più di un lancio impeccabile domani.

ZOOBC / SICUREZZA DELLA CATENA

Sicurezza della chain

Quanto costerebbe davvero prendere il controllo di questa catena. L'estrazione è uniforme, l'influenza è lineare e l'unica cosa che valga la pena attaccare è il registro, quindi la coda per entrarvi è la difesa.

A ogni blocco viene estratto un nodo che lo costruisce. L'estrazione è una scelta casuale uniforme dall'intero registro, derivata dal seed del blocco precedente. Non il nodo più ricco. Non il nodo che si comporta meglio. Ogni nodo registrato, alla pari, ogni volta.

Quindi l'influenza sulla catena è semplicemente la tua quota del registro, ed è lineare. Non esiste un 51% oltre il quale qualcosa si rompe. Se detieni un decimo del registro costruisci un decimo dei blocchi; è tutto ciò che ottieni.

Il che rende il registro l'unica cosa che valga la pena attaccare, e la coda per entrarvi la difesa. Non puoi comprare un posto. Entri un nodo alla volta, dietro a tutti gli altri che vogliono entrare, e i numeri qui sotto mostrano quanto costa.

01 / L'ESTRAZIONE

Come viene scelto il costruttore del blocco

A partire dal seed del blocco precedente, ogni nodo calcola la stessa sequenza infinita di estrazioni. Il round 1 designa un nodo; se questo non pubblica entro la sua finestra di 15 secondi, il round 2 ne designa un altro, e così via. Il primo che pubblica costruisce il blocco.

Il seed stesso è sign(node_key, hash(previous seed)), controllato da ogni validatore. Le firme Ed25519 sono deterministiche, quindi per un dato costruttore esiste esattamente un solo seed valido: un costruttore non può provare seed finché non ne trova uno a lui favorevole. L'unica libertà di un attaccante è pubblicare o restare in silenzio: un bit, una volta, per ogni blocco per cui viene estratto.

Il punteggio di partecipazione non influisce sulla selezione. Spesso si presume il contrario, ma non è così. Il punteggio decide una sola cosa: se resti o meno nel registro. Scende quando salti dei turni, e a zero vieni espulso e il tuo stake ti viene restituito. Un punteggio perfetto non ti dà alcuna probabilità in più per il prossimo blocco rispetto a un nodo entrato ieri. Nemmeno lo stake influisce sulla selezione; compra solo il tuo posto nella coda per entrare.

02 / L'INFLUENZA È LINEARE

Cosa compra davvero una quota del registro

L'attaccante detieneBlocchi che costruisceHa un nodo nella finestra di contenutoCensurare una transazione per 10 blocchiNodi onesti da zittire per rubare un turno

La colonna centrale non è influenza. Indica solo quanto spesso almeno uno dei suoi nodi finisce tra le prime 10 estrazioni: un posto in prima fila per quel blocco, niente di più. L'attaccante costruisce comunque un blocco solo quando viene estratto per primo, cioè la seconda colonna, che corrisponde esattamente alla sua quota del registro.

È la censura a decadere, e decade in fretta. Per tenere fuori una transazione devi tenere ogni turno consecutivo finché resta in attesa. Con un terzo del registro, la probabilità è di una su 59.000 nell'arco di dieci blocchi, cioè due minuti e mezzo. Non esiste una quota inferiore al controllo totale con cui una censura prolungata funzioni.

03 / DENIAL OF SERVICE

L'unico vero attacco: zittire l'estrazione

Un nodo può includere transazioni solo se viene estratto entro i primi 10 round (max_priority_blocksmiths). Se viene estratto più tardi può comunque costruire, ma il suo blocco deve essere vuoto. È questa regola a far avanzare la catena quando ci sono nodi offline: perché un blocco perda il suo contenuto devono mancare tutti i nodi di quelle prime estrazioni.

È anche il punto più delicato del progetto. Quei nodi sono designati con 15 secondi di anticipo, nel momento in cui arriva il blocco precedente. Un attaccante in grado di mandarli tutti offline entro quella finestra forza un blocco vuoto, censurando tutti invece di limitarsi a competere. È un problema di denial of service, non di consenso, ed è il motivo per cui il numero è fissato a 10 anziché a una cifra più piccola e ordinata.

Nodi da zittire

10

designati, per blocco

Preavviso

15 s

prima che si apra il turno

Blocco vuoto per caso

 

con il 20% dei nodi offline

Aumentare il numero costa quasi nulla: richiede solo che qualche nodo in più costruisca blocchi candidati contemporaneamente, e ogni nodo aggiunto è un'altra macchina che un attaccante deve trovare e abbattere negli stessi 15 secondi.

04 / IL PREZZO IN ANNI

Il costo per acquistare una quota

Formula
ritardo = clamp(base ÷ dimensione del registro, min, max)
Ammissioni
una alla volta, in ordine di stake

La quota di slot è un rapporto di stake. La coda è ordinata per saldo bloccato, quindi «vince il 100% degli slot» non è fortuna: è l'ipotesi che nessuno offra più di lui. Ogni cifra qui rappresenta lo scenario migliore per l'attaccante.

Nel momento in cui un operatore onesto mette in stake di più per nodo, passa davanti. Se vinci solo metà delle ammissioni, la tua quota del registro tende alla metà e lì si ferma: i nodi onesti che prendono l'altra metà fanno crescere il registro alla stessa velocità con cui cresce la tua parte. Un obiettivo superiore alla tua quota di slot non è lento, è irraggiungibile, e la tabella qui sotto lo indica come mai.

Attesa attuale

 

per nodo ammesso

Nodi per ⅓

 

per costruire un terzo dei blocchi

Tempo per ⅓

 

di coda continua

Nodi per ½

 

per costruire metà dei blocchi

Tempo per ½

 

di coda continua

ZBC bloccati

 

minimo, a 100 ZBC/nodo

05 / CRESCITA

Come cambia l'attesa con la crescita della catena

attesa per nodo (settimane) anni per costruire metà dei blocchi il tuo registro alla Genesis

Con diverse dimensioni della catena

RegistroAttesa per nodoNodi per ⅓OraNodi per ½Ora

06 / L'UNICO COMPROMESSO

Perché il registro alla Genesis è il numero che conta

Le ammissioni sono seriali, quindi il tempo per raddoppiare un registro è semplicemente registry size × wait per node. È un'identità, non un'impostazione: significa che un registro piccolo non può avere sia un'attesa breve sia una conquista lenta. È l'unico compromesso dell'intero progetto che nessuna formula può eliminare.

Registro al lancioAttesa 1 settimanaAttesa 2 settimanePer raddoppiare in 2 anni, l'attesa deve essere

Quindi la leva è il lancio, non la curva. Parti con una dozzina di nodi e ogni operatore onesto aspetta mesi, perché è quanto serve per rendere difficile raddoppiare dodici nodi. Parti con cento e un'attesa di due settimane garantisce già quasi quattro anni, senza tenere fuori nessuno. Un registro Genesis più grande vale più di qualsiasi regolazione del ritardo.

07 / QUATTRO PROPRIETÀ

Perché regge

Le ammissioni sono seriali. Il registro ammette un nodo alla volta, su tutta la rete. Volere cento nodi non significa aspettare una volta, significa aspettare cento volte, in sequenza. Questo solo fatto trasforma un attacco finanziato in un progetto pluriennale.

La quota necessaria cresce con la catena. Un nodo su dieci è un decimo dell'influenza. Uno su mille è niente. L'attesa per nodo diminuisce man mano che il registro cresce, ma mai sotto il minimo, quindi il tempo totale sale comunque.

La coda ha un prezzo. La posizione è ordinata per saldo bloccato, quindi un attaccante non si limita ad aspettare: deve superare l'offerta di ogni operatore onesto che vuole entrare, ogni singola volta. Ogni slot che perde gli costa l'attesa e regala un nodo a un operatore onesto.

Finanziano la catena mentre ci provano. Ogni nodo blocca ZBC. Un attacco lungo un decennio significa una posizione ampia, illiquida e completamente pubblica nell'asset che si sta cercando di distruggere. Non c'è alcuno slashing: se te ne vai, o vieni espulso perché sparisci, lo stake ti viene restituito per intero. La cauzione compra un posto nella coda, non un ostaggio.

E niente si accumula. Ogni blocco è un'estrazione indipendente. Un nodo che è stato perfetto per un anno non ha più diritto al prossimo blocco di uno ammesso stamattina, e un attaccante che ha tenuto gli ultimi dieci turni non ha più probabilità di tenere l'undicesimo. Non c'è nessuna posizione da costruire, ed è per questo che l'unico modo duraturo per guadagnare influenza qui è essere una parte onesta più grande della rete.