Account Model
Un account è una struttura utilizzata sia per identificare gli utenti e gli smart contract sia per verificare la validità delle transazioni effettuate sulla blockchain di Ethereum.
Ogni account, nello specifico, è associato ad un indirizzo wallet e ad uno stato contenente una serie di informazioni relative al saldo di ETH posseduti dall’utente.
In base al modo in cui vengono gestiti, si possono distinguere due tipologie di account sulla blockchain di Ethereum:
- Externally Owned Account (EOA): controllati dagli utenti stessi attraverso le chiavi private associate al proprio wallet;
- Contract Account: gestiti attraverso smart contract specifici.
Quando viene avviata una transazione su una blockchain basata sul modello account, il sistema verifica la quantità di ETH posseduta dall’utente che ha avviato l’operazione, assicurandosi che il wallet contenga un numero uguale o maggiore di ETH rispetto alla quantità che si desidera inviare.
Il modello account può essere paragonato, in maniera molto semplicistica, ad un servizio di bank checking.
Per spiegare meglio questo concetto, facciamo un esempio pratico.
Andrea possiede all’interno del proprio wallet 5 ETH e decide di inviare a Barbara 1 ETH. Nel momento in cui viene avviata la transazione, il network di Ethereum verificherà il saldo disponibile all’interno del wallet di Andrea. Poiché in questo caso la quantità di ETH è sufficiente, la blockchain approverà l’operazione.
Ad Andrea verrà quindi sottratto 1 ETH, mentre sarà accreditato 1 ETH sul wallet di Barbara.
Rispetto ad un modello UTXO, utilizzato per regolare le transazioni sulla blockchain di Bitcoin, il modello account presenta dei benefici relativi alla semplicità di utilizzo e alla velocità di implementazione. Gli stati e le transazioni su questi modelli, infatti, occupano meno spazio di archiviazione e permettono maggiori soluzioni di scalabilità.