Faccio un commento in italiano ai post di hostfat sopraccitati (e al thread su questo forum nella sezione internazionale https://bitcointalk.org/index.php?topic=1675960.0).
Hostfat in pratica sostiene che i developer di Core, non avendo a differenza dei miner un incentivo chiaro e pubblico che li spinga a lavorare per l'integrità del sistema, costituiscano un'anomalia che va a contraddire il cosiddetto principio "trustless": di fatto noi utenti dobbiamo fidarci di questi sviluppatori e delle non sempre chiare motivazioni che li spingono a proporre modifiche che prevedono l'introduzione di numeri "magici" (cioè calati dall'alto) tipo il 75% di sconto per le transazioni segwit. Questo modo di procedere ricorda molto il caso tradizionale delle banche centrali con le monete fiat.
Sono d'accordo sul fatto che non sia possibile per noi utenti conoscere le vere motivazioni degli sviluppatori di Core (non sto dicendo che siano animati sicuramente da "cattive" intenzioni, ma che credere il contrario richieda appunto un atto di fiducia senza basi).
Questo succede perché non è chiaro appunto il loro ruolo economico nel sistema, cioè quali sono i loro incentivi (per i miner invece questi incentivi sono chiari).
Secondo me però
c'è anche un'altra componente del mondo bitcoin che mostra la stessa ambiguità, cioè che non ha un ruolo economico ben definito: i full node (e sono guarda caso i full node che i developer hanno tirato in ballo per motivare la loro riluttanza a innalzare il limite di 1 mega).
Il motivo dei toni del dibattito dell'ultimo anno intorno alla questione del limite di 1 mega si possono quindi far risalire anche al fatto che né i developer né i full node hanno un ruolo economico ben definito, essi sono attori economici essenziali del sistema che però non dichiarano esplicitamente quali sono i loro reali incentivi economici (motivazioni), e quindi danno adito a qualunque sospetto, soprattutto nel momento delicato in cui bisogna scegliere se modificare un parametro sensibile come quello che regola la velocità di movimento del denaro nella rete.
Riassumendo: ci sono quattro attori fondamentali nel mondo bitcoin: gli utenti, i miner, i full node, i developer. Di questi ultimi ha già parlato abbondantemente hostfat. Vediamo gli altri.
Il bitcoin nasce per consentire a noi utenti di gestire in modo autonomo e libero il nostro denaro, per poterne disporre insomma a nostro piacimento (il tradizionale denaro fiat invece a conti fatti non è nemmeno realmente di nostra proprietà).
Poiché il denaro contante qual è bitcoin vuol dire essenzialmente fiducia che i nostri token siano validi, fiducia cioè che i miei token certifichino con assoluta sicurezza che io abbia effettivamente ricevuto un credito (precondizione necessaria affinché possano essere riconosciuti a sua volta da qualcun altro e accettati come mezzo di pagamento), il punto chiave è trovare un modo appunto per garantire la validità dei nostri token; con bitcoin per fare questo
si implementa un modello "trustless"*, ovvero un modello che a differenza di quanto accade nel tradizionale mondo fiat non si basa sulla fiducia in un'autorità centrale ma
distribuisce la fiducia su una numerosa rete di attori; è il sistema decentralizzato nel suo insieme il "garante" del bitcoin) (*NB: trustless quindi vuol dire che non è richiesta fiducia in nessuno in particolare, non in nessuno tout court; ma c'è anche chi dà un significato più restrittivo a questo termine, come nel caso dei full node).
Gli utenti finali dovrebbero essere quindi i veri protagonisti, e la loro voce si fa sentire per mezzo delle scelte che fanno: il numero di bitcoin che utilizzano e muovono attraverso le transazioni in rete determinano il valore della rete stessa, in pratica la voce degli utenti si esprime attraverso il libero mercato.
I miner forniscono invece un servizio alla rete mediante la loro attività di assemblaggio dei blocchi e per questo sono remunerati. Da sottolineare che sono remunerati dalla rete, cioè in sostanza dagli utenti, poichè il valore del loro lavoro dipende dal valore che alla rete/i bitcoin viene conferito dagli utenti stessi.
I miner sono incentivati per questo a mantenere l'integrità del sistema e delle regole che lo amministrano (conviene loro che tutto funzioni regolarmente)
Quindi è chiaro il ruolo degli utenti e dei miner.
I full node sono secondo me il punto delicato: chi e soprattutto cosa sono, qual è la loro vera funzione? In prima battuta essi rappresentano la possibilità di una verifica indipendente della regolarità di ogni transazione bitcoin, e quindi in linea teorica ogni utente, se lo vuole, può essere un full node.
Se i full node fossero solo questo, il problema del limite della dimensione dei blocchi per molti utenti sarebbe relativo: il fatto che all'aumentare della dimensione crescano le risorse hardware necessarie per verificare la regolarità delle transazioni si potrebbe accettare come inevitabile conseguenza dell'ingrandirsi della rete, un po' come nessuno può gridare alla scandalo perché un codice open source come Linux diventa sempre più grande e complesso da controllare (l'importante è che ci sia la possibilità per chi ha mezzi e motivazione di controllarlo!). Se però si pensa che trustless voglia dire che io posso non fidarmi di nessuno (versione "forte" del significato di trustless) e fare tutto da solo, blocchi grandi vuol dire che io questa possibilità in prospettiva non ce l'ho più. Ma non basta.
La natura dei full node è ibrida, non sono solo un modo per consentire al singolo utente di non fidarsi di nessuno e di controllare autonomamente la validità dei token che riceve, essi costituiscono anche la rete stessa di raccolta, filtraggio, verifica e trasmissione ai miner delle transazioni stesse, nonché di ricontrollo a posteriori della validità delle stesse transazioni dopo che i miner le hanno messe nei blocchi.
E qui nasce il problema: passi che il lavoro dei miner ormai sia sempre meno decentralizzato (è il prezzo da pagare per una migliore efficienza del sistema, ma siamo comunque garantiti dall'evidente incentivo economico che essi hanno), ma se con l'aumento della dimensione dei blocchi renderemo meno decentralizzato anche il lavoro di raccolta e verifica delle transazioni (lavoro che si potrebbe appaltare così solo a pochi come già avviene adesso per quello dei miner) avremo alla fine due ordini di problemi:
1) la verifica indipendente da parte del singolo utente diventerà in breve tempo virtualmente impossibile (meno decentralizzazione meno trustless in senso forte)
2)
i full node non hanno incentivi economici, quindi come garantirsi che il loro lavoro sia regolare? Se almeno fossero in tanti (versione debole del concetto di trustless, più decentralizzazione più trustless, sarebbe più facile fidarsi,
ma se diventeranno pochi e continueranno a rimanere senza incentivi - come i developer! - perché noi dovremmo fidarci?)
Già adesso quando la memoria dei full node si riempie (da notare che più transazioni al secondo vuol dire anche molte più verifiche e UTXO che crescono sempre più velocemente, quindi le risorse impiegate crescono molto -->
https://www.kaiko.com/analytics/post/an-in-depth-guide-into-how-the-mempool-works) i full node sono costretti a impiegare mezzi come l'impostazione di una soglia minima di fee (altri numeri magici, anche se locali e non collettivi!)
Cioè non c'è solo un problema dei miner che con il blocco piccolo lasciano fuori le transazioni meno generose nei loro confronti, spesso anche i full node stessi, se non riescono a elaborare tutte le transazioni che ricevono, devono scremare con qualche criterio. Anzi direi che mentre dal punto di vista dei miner assemblare blocchi da 1 mega o da 8 mega non cambia molto come lavoro, invece se si consentisse alla rete di crescere così velocemente i full node sarebbero sicuramente messi in difficoltà e quindi diminuirebbero (il principio iniziale della rete era che il lavoro di assemblaggio dei miner fosse pesante perché costituisse un proof of work, mentre il lavoro di controllo e verifica di questo lavoro doveva essere molto leggero, ora anche il lavoro generale di controllo delle transazioni sta diventando sempre più pesante, perché esso dipende dal numero di transazioni al secondo, mentre quello dei miner è sostanzialmente indipendente dal numero di tx al secondo, e si tratta per i full node di lavoro non remunerato!)
Questo mi sembra che sia un problema reale, indipendentemente se si è pro o contro Core.
Quindi non solo i developer, ma anche i full node costituiscono in questo momento il punto delicato del sistema.