Ciao a tutti.
Non ho mai veramente capito come funziona la proof of stake, intendo al livello di avere una spiegazione allo stesso tempo chiara e semplice che vada oltre il banale "si decide chi farà il nuovo blocco tra chi possiede dei token messi in stake".
Questo mi ha sempre fatto sospettare che la proof of stake sia rotta, ho sempre sospettato che ci sia una certa circolarità che non arriva mai al punto nei concetti che la spiegano.
Per quanto riguarda la proof of work, le spiegazioni sono sempre state chiare, semplici (relativamente) e portano ad un senso di completezza del ragionamento. Solitamente se un meccanismo sta in piedi sarà anche semplice spiegarlo.
Qualcuno di buon cuore sa spiegarmi meglio come e perchè funziona o come e perchè non funziona la proof of stake?
In particolare non riesco a immaginarmi cosa accade nei casi di reorg. Nel pow i nodi scelgono sempre la catena di blocchi validi con la maggior prova di lavoro cumulativa. Nella proof of stake qual è l'analogo di questa semplice e chiara regola?
Vorrei fare un esempio di uno scenario assurdo quindi puramente didattico per capire meglio il concetto. Supponiamo due situazioni simili, la prima su btc e la seconda su ethereum. A volte dirò "la catena più lunga" invece di quella con più prova di lavoro cumulata per abbrevviare.
SCENARIO CON BITCOIN:
1. Bitcoin è appena nato, ha un mese di vita. Esistono 5 full node chiamiamoli A,B,C,D,E (supporrò nell'esempio che i full node facciano anche i miner) in tutto il mondo che condividono una catena di blocchi "lunga un mese con una certa quantità di lavoro cumulata". Uno di questi 5 full node, diciamo quello chiamato A, si stacca e va offline e resta offline per un mese.
2. Siamo al secondo mese di vita. Sono online 4 full node (B,C,D,E) che condividono una blockchain lunga 2 mesi. Per assurdo tutti e quattro questi 4 full node vanno offline a fine del secondo mese. Sempre per assurdo un istante dopo la loro scomparsa riappare online il nodo A che era offline da un mese. In questo momento un nuovo tizio mette online il suo primo full node, chiamiamolo F. F si sicronizza con A ed entrambi condividono una catena lunga circa 1 mese, è al momento la più lunga catena conosciuta.
3. A e F vivono felici per una settimana, la loro catena è lunga un mese ed una settimana, ma in questo momento torna online uno dei nodi B,C,D,E il quale, ipotizziamo sia B, propaga la sua catena lunga due mesi. I nodi A e F giustamente fanno reorg della loro catena di blocchi, perdono una settimana di pow, e si allineano a quella esposta al mondo dal nodo B perchè è lunga ben 2 mesi.
Fine tutto semplice e chiaro.
SCENARIO CON ETHEREUM (supponendo sia nato con POS) qualcuno esperto di pos mi aiuta a completarlo?
1. Ethereum è appena nato, ha un mese di vita. Esistono 5 full node chiamiamoli A,B,C,D,E, (supporrò nell'esempio che i full node facciano anche stake) in tutto il mondo che condividono una catena di blocchi "lunga un mese con una certa quantità di lavoro cumulata". Uno di questi 5 full node, diciamo quello chiamato A, si stacca e va offline e resta offline per un mese.
2. Siamo al secondo mese di vita. Sono online 4 full node (B,C,D,E) che condividono una blockchain lunga 2 mesi. Per assurdo tutti e quattro questi 4 full node vanno offline a fine del secondo mese. Sempre per assurdo un istante dopo la loro scomparsa riappare online il nodo A che era offline da un mese. In questo momento un nuovo tizio mette online il suo primo full node, chiamiamolo G. G si sicronizza con A ed entrambi condividono una catena lunga circa 1 mese, è al momento la più lunga catena conosciuta.
3. A e F vivono felici per una settimana, la loro catena è lunga un mese ed una settimana, ma in questo momento torna online uno dei nodi B,C,D,E il quale, ipotizziamo sia B, propaga la sua catena lunga due mesi. I nodi A e F giustamente fanno reorg della loro catena di blocchi, perdono una settimana di pow, e si allineano a quella esposta al mondo dal nodo B perchè è lunga ben 2 mesi. Qui cosa accade?
Parliamo della parte teorica.
In questi sistemi decentralizzati, sorge il problema di evitare di centralizzare in un'unica entita' il diritto di scrivere i dati, e quindi di "controllare" la rete.
Quindi lì'idea e' stata di trovare una sorta di sistema di "estrazione a sorte" per decidere tra molti potenziali "scrittori di blocco"
a chi tocca scrivere il prossimo blocco.
Il PoW ha un sistema di estrazione ove la randomicita' e' dettata dal caso vero, il caso del mondo fisico, ossia il primo
che trova la soluzione ad un certo problema... e tra tanti che provano e riprovano a risolvere questo problema, il primo che ci riesce
"vince" la scrittura del blocco (e anche un premio che e' l'incentivo a fare questo sforzo).
Nel PoS, tutto il meccanismo viene sostituito da un meccanismo pseudo randomico, ove la randomicita' non e' costituita da
una vera randomicita' fisica, ma da un algoritmo di generazione pseudo-random distribuito, normalmente VRF, Quello di ethereum si chiama RANDAO per
chi fosse interessato (che non e' un vero VRF), ove in pratica chi piu' mette a staking piu' ha probabilita' di scrivere il prossimo blocco.
gia' questo introduce tutta una serie di questioni teoriche sul reale livello di randomicita' raggiungibile (e se ci possono essere bakdoor per avvantaggiarsi sulle probabilita' di estrazione).
Parliamo ora della parte "pratica"
Qui, peggio ancora, la debolezza di PoS si vede nei casi limite: nel caso che fai tu, ossia di una rete neonata,
intanto PoS non potrebbe esistere, in quanto al momento 0 non esistono ancora coin emesse e quindi con cosa fai staking per emettere il prossimo blocco?
oppure ne sono state pre-minate X, ma queste X le possiede chi ha creato la rete, quindi la rete parte GIA'
in controllo totale di chi l'ha creata, in quanto possiede tutte le coin in circolazione.
Insomma, con una serie di ragionamenti simili, si guinge alla conlcusione che una rete PoS alla fine e' fondamentalmente una rete
che ha, oppure arrivera' ad avere, un controllo centralizzato, quindi a che serve mettere su tutto questo castello per arrivare ad un database a scrittura centralizzata?