1. Quali modelli sono attualmente utilizzati nella catena?
Catene famose come Ethereum, EOS e Solana utilizzano tutte il modello di account. Si può addirittura dire che oltre il 90% dei progetti utilizza il modello di account, mentre solo alcuni progetti affermati utilizzano il modello UTXO, come BTC e DOGE. ., LTC, ovviamente, anche alcuni progetti relativamente nuovi utilizzano questo modello, come FUEL che utilizza lo schema OP in Layer2.
2. Cos'è un modello di conto?
Per capirci semplicemente, è il sistema del conto bancario, come i trasferimenti tra banche, Alipay, i trasferimenti WeChat, ecc., appartengono tutti al modello del conto. Lasciate che vi faccia un esempio:
Se A ha 100 e B ha 100
In questo momento, A trasferisce 50 yuan a B.
La manifestazione nel sistema è
A -50, B +50
Quindi il loro equilibrio
A 50, B 150
Questo è un trasferimento.
Supponiamo ancora che A abbia ancora 100 e voglia trasferire 1 yuan a 100 nuovi titolari di conto.
In questo momento, A deve trasferire 1 yuan a 100 persone contemporaneamente
1°
A -1, 1a persona +1
Quindi il loro equilibrio
A 99, prima persona 1
2a Transazione
A -1, 2a persona +1
Quindi il loro equilibrio
A 98, 2a persona 1
3a Transazione
A -1, 3a persona +1
Quindi il loro equilibrio
A 97, 3a persona 1
E così via
......
Numero 100
A -1, 100a persona +1
Quindi il loro equilibrio
A 0, 100esima persona 1
In teoria, è necessario effettuare 100 trasferimenti e il trasferimento successivo deve essere completato prima del precedente. In caso contrario, non si potrà garantire la coerenza del saldo del conto e non si saprà se sono stati effettuati più trasferimenti o se il saldo è sufficiente per il trasferimento.
In teoria, all'aumentare del numero di transazioni aumenta anche il tempo necessario per l'esecuzione.
3. Che cos'è il modello UTXO?
Come accennato in precedenza, molti vecchi marchi tradizionali utilizzano UTXO e anche Bitcoin, l'antenato di questo cerchio, utilizza il modello UTXO. A proposito, anche la valuta digitale legale DCEP emessa dal nostro Paese si basa sul modello UTXO, quindi questo modello deve avere delle caratteristiche uniche.
UTXO è l'acronimo di Unspent Transaction Output, ovvero "output di transazione non speso". Il suo modello è un po' come il sistema monetario nella vita quotidiana. Per esempio:
A ha un portafoglio (un vero portafoglio) con banconote da 1 yuan, 10 yuan e 100 yuan.
A vuole dare 1 yuan rispettivamente a B, C e D.
A Ci sono tre modi
Il primo metodo: prelevare 1 yuan e darlo a B.
Il secondo metodo: dai 10 yuan a C e ricevi 9 yuan di resto.
Terza opzione: dare a D una banconota da 100 yuan e ricevere indietro 99 yuan.
Tutti e tre i metodi possono completare questa transazione.
Tornando alla catena, immagina che ogni taglio di denaro qui sia in realtà un UTXO sulla catena. L'UTXO in uso non viene trasferito, ma viene costantemente distrutto e ricostruito. Per esempio:
A trasferisce denaro a C utilizzando il secondo metodo. L'UTXO con valore nominale di 10 yuan verrà distrutto e il sistema ristamperà un UTXO con valore nominale di 1 yuan e un UTXO con valore nominale di 9 yuan. 1 yuan verrà dato a C e i 9 yuan verranno restituiti ad A.
Il terzo metodo è lo stesso. I 100 yuan vengono distrutti e vengono stampati un UTXO con un valore nominale di 1 yuan e uno con un valore nominale di 99 yuan. 1 yuan viene dato a D e i 99 yuan vengono restituiti ad A.
Questa è la differenza tra i metodi di trasferimento UTXO e quelli basati sul modello di conto. Ciò che è ancora più sorprendente è che il modello UTXO può effettuare trasferimenti in parallelo. Poiché il saldo avviene tramite UTXO decentralizzati, ogni denominazione può essere trasferita a persone diverse contemporaneamente. I tre metodi sopra indicati possono essere completati simultaneamente in un'unica transazione poiché non vi è alcun problema di coerenza dell'account. Ogni UTXO viene calcolato in modo indipendente.
Confrontando il modello contabile sopra riportato, ogni transazione deve basarsi sul completamento della transazione precedente. Il divario di prestazioni è immaginabile. Questo spiega perché la valuta digitale della banca centrale utilizza il modello UTXO. Altrimenti, come potrebbe Shenzhen inviare 10 milioni di RMB digitali a 50.000 portafogli?
Torniamo all’esempio precedente.
A ha 100 e vuole trasferire 1 yuan a 100 nuovi clienti che hanno aperto un conto.
Un UTXO con un valore nominale di 100 può essere suddiviso in 100 UTXO con un valore nominale di 1 yuan e poi distribuito direttamente a 100 persone in un'unica transazione, che viene completata istantaneamente.
In breve, si può pensare al valore nominale di UTXO come a un denaro più flessibile che viene costantemente distrutto e ricostruito sulla catena.
Se vuoi sapere quanti soldi sono presenti in questo indirizzo wallet, devi contare il numero di UTXO con i relativi saldi e sommarli.
4. Vantaggi e svantaggi del modello di account e UTXO
Vantaggi del modello di conto:
Il contratto viene memorizzato nell'Account sotto forma di codice e l'Account ha un proprio stato. Questo modello è più facilmente programmabile, più facile da comprendere per gli sviluppatori e prevede una gamma più ampia di scenari.
Le transazioni batch hanno costi inferiori. Immagina che il mining pool paghi una commissione ai minatori. Poiché ogni Input e Out in UTXO richiede uno script Witness o uno script di Locking separato, la transazione stessa sarà molto grande e sia la verifica della firma sia l'archiviazione della transazione consumeranno risorse preziose sulla catena. Il modello Account può ridurre notevolmente i costi tramite contratti.
Svantaggi del modello di account:
Non esiste alcuna dipendenza tra le transazioni del modello di account e il problema della riproduzione deve essere risolto. Come risolve Ethereum questo problema? Sappiamo che Ethereum utilizza un metodo di valore Nonce univoco. In ogni transazione Tx è presente un campo Nonce. Per ciascun utente, questo Nonce non può essere ripetuto, evitando così attacchi di replay.
Per l'implementazione di Lightning Network/Raiden Network, Plasma, ecc., le prove utente richiedono un meccanismo di prova più complesso e la migrazione dello stato dalla sottocatena alla catena principale richiede un protocollo più complesso.
Vantaggi UTXO:
Il calcolo avviene off-chain e la transazione stessa è sia il risultato che la prova. Il nodo deve solo eseguire la verifica e non deve effettuare calcoli aggiuntivi sulla transazione, né deve disporre di ulteriore spazio di archiviazione dello stato. Il calcolo dell'UTXO di output della transazione stessa viene completato nel portafoglio, quindi l'onere computazionale della transazione è completamente a carico del portafoglio, il che riduce in una certa misura il carico sulla catena.
Ad eccezione delle transazioni Coinbase, l'input di una transazione è sempre collegato a un UTXO. Le transazioni non possono essere ripetute, l'ordine e le dipendenze delle transazioni possono essere facilmente verificati e anche l'effettiva esecuzione delle transazioni può essere facilmente dimostrata.
Il modello UTXO è stateless ed è più facile da elaborare contemporaneamente.
Per le transazioni di tipo P2SH, la privacy è migliore. Gli input in una transazione non sono correlati tra loro e tecniche come CoinJoin possono essere utilizzate per aumentare la privacy.
Svantaggi di UTXO:
Non è in grado di implementare una logica complessa e ha una scarsa programmabilità. Per i contratti con logica complessa o che richiedono la conservazione dello stato, l'implementazione è difficile e il tasso di utilizzo dello spazio di stato è relativamente basso.
Quando l'input è grande, aumenterà anche il numero di script di testimonianza. La firma stessa consuma molta CPU e spazio di archiviazione.
5. Quali sono le brevi differenze tra il modello di account e UTXO?
Saldo del conto
Modello di conto: puoi vedere in modo semplice e chiaro quanti soldi sono presenti sul conto.
Modello UTXO: conta il numero di UTXO sotto l'indirizzo e il risultato della loro somma è il saldo.
Quando il numero di transazioni aumenta in modo esponenziale
Modello di account: diventerà sempre più difficile.
Modello UTXO: supporta naturalmente un'elevata concorrenza.
Dal punto di vista degli smart contract/sviluppatori
Il modello di account è conforme alle abitudini logiche dello sviluppatore ed è relativamente facile scrivere la logica
La programmazione degli script UTXO è relativamente complessa


