Per alcuni mesi, il team del consenso senza stato si è concentrato su una domanda specifica: in un mondo in cui l'assenza di stato / la scadenza dello stato è una realtà, dove si può trovare lo stato di cui si ha bisogno?
È una domanda difficile di per sé, ma peggiora: in un mondo con costruttori centralizzati e FOCIL, cosa succede quando un costruttore elimina parte dello stato e poi una transazione FOCIL attiva un accesso a quello stato eliminato?
Vogliamo che Ethereum si espanda, e questo significa che lo stato non necessario viene spostato al di fuori del database di un client per garantire prestazioni continue. Meccanicamente, questo crea un rischio che un client manchi di dati che dovrebbe detenere secondo FOCIL.
Quindi la scalabilità è in contrasto con la resistenza alla censura: è necessario un meccanismo per allentare il FOCIL al fine di rifiutare una tx che accede a uno stato scaduto. Ma non possiamo permettere che questo diventi una scusa per censurare le transazioni.
La proposta, che deriva da una discussione con @soispoke, è che se il costruttore può dimostrare che una transazione FOCIL tocca uno stato che è "abbastanza vecchio", e se non è stata fornita alcuna testimonianza con la transazione, allora va bene rifiutare quella transazione. Sta al portafoglio fornire la testimonianza.
Non è che stiamo spostando lo stesso problema nel wallet? Non lo è, perché: 1. il wallet può addebitare una "tassa di resurrezione" per inviare la transazione, quindi è incentivato a mantenere lo stato scaduto. 2. La resurrezione non è più sul percorso critico della produzione dei blocchi.
La logica qui è che se un utente non ha toccato il proprio account negli ultimi 6 anni, può sicuramente aspettare qualche minuto in più per riavere il proprio account. Se l'utente non può aspettare, allora dovrebbe spendere un po' di gas ogni pochi mesi per mantenere l'account "attivo".
Quindi questo elimina la necessità di una rapida resurrezione. Come possiamo dimostrare che un pezzo di stato è scaduto? Aggiungendo un contatore di epoche a quello stato. Secondo le stime basate su @ngweihan_eth, aggiungeremmo al massimo 1GB di dati e saremmo in grado di eliminare l'80% dello stato!
Questo risolve tutti i problemi? No, anche i portafogli possono essere censurati e i dati sono meno ridondanti, quindi possono andare persi. Ma questo significa che FOCIL non può essere sfruttato per prevenire l'espirazione statale. Affronta anche in parte il problema dell'UX posto dall'espirazione statale / dall'assenza di stato.
Ci sono molte più wallet che costruttori, e guadagnano di più. Quindi sono più difficili da censurare. E se le wallet non vogliono svolgere questo ruolo, c'è spazio per la formazione di reti statali che possano fornire questo. Tuttavia, questo è più ipotetico.
Si noti che, sebbene ciò richieda due modifiche al protocollo, la scadenza dello stato non deve necessariamente essere nel protocollo.
3,47K