1. Quels modèles sont actuellement utilisés dans la chaîne ?

Des chaînes bien connues telles que Ethereum, EOS et Solana utilisent toutes le modèle de compte. On peut même dire que plus de 90 % des projets utilisent le modèle de compte, alors que seuls certains projets établis utilisent le modèle UTXO, comme BTC et DOGE. ., LTC, bien sûr, certains projets relativement nouveaux utilisent également ce modèle, comme FUEL utilisant le schéma OP dans Layer2.

2. Qu'est-ce qu'un modèle de compte ?

Pour comprendre simplement, c'est le système de compte bancaire, comme les virements entre banques, les virements depuis Alipay, WeChat, etc., qui appartiennent tous au modèle de compte. Laissez-moi vous donner un exemple :

Si A a 100 et B a 100

A ce moment, A transfère 50 yuans à B

La forme d'expression dans le système est

A-50, B +50

Donc leur équilibre

Un 50, un B 150

Il s'agit d'un transfert.

Supposons à nouveau que A en possède encore 100 et qu’il souhaite transférer 1 yuan à 100 nouvelles personnes qui ont ouvert des comptes.

À ce moment-là, A doit transférer 1 yuan à 100 personnes en même temps.

Opération 1

A -1, 1ère personne +1

Donc leur équilibre

A 99, personne 1 1

2ème coup

A -1, 2ème personne +1

Donc leur équilibre

A 98, Personne 2 1

N ° 3

A -1, 3ème personne +1

Donc leur équilibre

A 97, Personne 3 1

et ainsi de suite

......

100ème personne

A -1, 100ème personne +1

Donc leur équilibre

A 0, 100ème personne 1

Théoriquement, 100 transferts sont nécessaires et le prochain transfert doit d'abord compléter le précédent. Sinon, la cohérence du solde du compte ne peut pas être garantie et il y aura une confusion quant à savoir s'il y a plusieurs transferts ou si le solde est suffisant pour effectuer un transfert. , etc.

Théoriquement, à mesure que le nombre de transactions augmente, le temps nécessaire à leur exécution augmente.

3. Qu'est-ce que le modèle UTXO ?

Comme mentionné précédemment, de nombreux acteurs traditionnels établis utilisent UTXO, et Bitcoin, l'ancêtre de ce cercle, utilise également le modèle UTXO. À propos, le DCEP, la monnaie numérique légale émise par notre pays, est également basé sur le modèle UTXO. ce modèle Il doit avoir son caractère unique.

Le nom complet d'UTXO est Unspent Transaction Output, ce qui signifie « sortie de transaction non dépensée ». En termes simples, son modèle ressemble un peu au système de trésorerie de la vie quotidienne.

A possède un portefeuille (un vrai portefeuille) d'une valeur nominale de 1 yuan, d'une valeur nominale de 10 yuans et d'une valeur nominale de 100 yuans.

A veut donner à B, C et D 1 yuan chacun.

A Il existe trois manières

Type 1 : Donner à B une valeur nominale de 1 yuan

Deuxième option : donnez à C une valeur nominale de 10 yuans et récupérez 9 yuans.

La troisième méthode : donner à D une valeur nominale de 100 yuans et récupérer 99 yuans.

Les trois manières peuvent réaliser cette transaction.

De retour à la chaîne, imaginez que chaque valeur nominale de l'argent ici est en fait un UTXO sur la chaîne. L'UTXO pendant son utilisation n'est pas transféré, mais est constamment détruit et reconstruit, par exemple :

A utilise la deuxième méthode pour transférer de l'argent à C. L'UTXO d'une valeur nominale de 10 yuans sera détruit. Le système réimprimera un UTXO d'une valeur nominale de 1 yuan et d'une valeur nominale de 9 yuans. donné à C, et les 9 yuans seront restitués à A.

La troisième méthode est la même : lorsque 100 yuans sont détruits, un UTXO d'une valeur nominale de 1 yuan et d'une valeur nominale de 99 yuans est imprimé. Le 1 yuan est donné à D et les 99 yuans sont restitués à A.

C'est la différence entre les méthodes de transfert UTXO et celles du modèle de compte. Ce qui est encore plus impressionnant, c'est que le modèle UTXO peut être transféré en parallèle. Parce que le solde existe via UTXO décentralisé, chaque valeur nominale peut en fait être transférée à différentes personnes en même temps. au-dessus de trois méthodes Il peut être effectué simultanément en une seule transaction, car il n'y a aucun problème de cohérence des comptes et chaque UTXO est calculé indépendamment.

Lorsque nous comparons les modèles de compte ci-dessus, chaque transaction doit s'appuyer sur la réalisation de la transaction précédente. L'écart de performance peut être imaginé. De cette façon, nous pouvons comprendre pourquoi la monnaie numérique de la banque centrale utilise le modèle UTXO. Sinon, comment Shenzhen pourrait-elle envoyer 10 millions de renminbi numériques à 50 000 portefeuilles ?

Revenons à l'exemple ci-dessus

A en possède 100 et il souhaite transférer 1 yuan à 100 nouvelles personnes qui ouvrent des comptes.

Un UTXO d'une valeur nominale de 100 peut être divisé en 100 UTXO d'une valeur nominale de 1 yuan, puis directement distribué à 100 personnes dans le cadre d'une transaction, instantanément.

En bref, considérez la valeur nominale d'UTXO comme une trésorerie plus flexible, constamment détruite et reconstruite sur la chaîne.

Si vous voulez savoir combien d'argent se trouve dans cette adresse de portefeuille, vous devez compter le nombre de soldes UTXO et les résumer.

4. Avantages et inconvénients du modèle de compte et d'UTXO

Avantages du modèle de compte :

Le contrat est stocké dans le compte sous forme de code et le compte a son propre état. Ce modèle a une meilleure programmabilité, est plus facile à comprendre pour les développeurs et propose un plus large éventail de scénarios.

Les transactions groupées sont moins coûteuses. Imaginez que le pool minier paie aux mineurs des frais de traitement. Dans UTXO, étant donné que chaque entrée et sortie nécessite un script témoin ou un script de verrouillage distinct, la transaction elle-même sera très volumineuse et la vérification de la signature et le stockage des transactions consommeront des ressources précieuses sur la chaîne. . Le modèle de compte peut réduire considérablement les coûts grâce aux contrats.

Inconvénients du modèle de compte :

Il n'y a aucune dépendance entre les transactions du modèle de compte et le problème de relecture doit être résolu. Comment Ethereum résout ce problème ? Nous savons qu'Ethereum utilise une méthode de valeur Nonce unique. Chaque transaction Tx a un champ Nonce pour chaque utilisateur, ce Nonce ne peut pas être répété, évitant ainsi les attaques par relecture.

Pour la mise en œuvre de Lightning Network/Thunder Network, Plasma, etc., un mécanisme de preuve de preuve plus complexe est requis pour la preuve utilisateur, et un protocole plus complexe est requis pour la migration d'état des sous-chaînes vers la chaîne principale.

Avantages UTXO :

Le calcul est hors chaîne et la transaction elle-même est à la fois le résultat et la preuve. Le nœud n'a besoin que d'effectuer une vérification, il n'a pas besoin d'effectuer de calculs supplémentaires sur la transaction et il n'y a pas de stockage d'état supplémentaire. Le calcul du résultat UTXO de la transaction elle-même est effectué dans le portefeuille, de sorte que la charge de calcul de la transaction soit entièrement supportée par le portefeuille, ce qui réduit dans une certaine mesure la charge sur la chaîne.

À l'exception des transactions Coinbase, l'entrée de la transaction est toujours liée derrière un UTXO. Les transactions ne peuvent pas être rejouées, et la séquence et les dépendances des transactions peuvent être facilement vérifiées, et il est également facile de prouver si les transactions ont été consommées.

Le modèle UTXO est sans état et plus facile à traiter simultanément.

Meilleure confidentialité pour les transactions de type P2SH. Les entrées dans la transaction ne sont pas liées les unes aux autres et des technologies telles que CoinJoin peuvent être utilisées pour augmenter un certain degré de confidentialité.

Inconvénients d'UTXO :

Il est incapable de mettre en œuvre une logique plus complexe et sa programmabilité est médiocre. Pour les logiques complexes ou les contrats qui nécessitent la préservation de l’état, la mise en œuvre est difficile et l’utilisation de l’espace d’état est relativement faible.

Lorsqu'il y a plus d'entrées, le nombre de scripts témoins augmentera également. La signature elle-même consomme plus de CPU et d'espace de stockage.

5. Quelles sont les brèves différences entre le modèle de compte et UTXO ?

Solde du compte

Modèle de compte : vous pouvez voir simplement et clairement combien d’argent se trouve sur le compte.

Modèle UTXO : comptez le nombre d'UTXO sous l'adresse, et le résultat de leur résumé est le solde.

Quand le nombre de transactions augmente de façon exponentielle

Modèle de compte : Cela deviendra de plus en plus difficile.

Modèle UTXO : prend naturellement en charge une concurrence élevée.

Du point de vue du contrat intelligent/développeur

Le modèle de compte est conforme aux habitudes logiques des développeurs et est relativement facile à écrire.

La programmation des scripts UTXO est plus compliquée