Une introduction au modèle stateful UTXO

Combinaison de l’expressivité de l’Account Model et de la sécurité du modèle UTXO.

Oheka
Alephiumfr
6 min readFeb 19, 2023

--

Que sont l’UTXO et l’Account Model ?

Le modèle UTXO et l’Account Model sont les normes comptables les plus couramment utilisées dans les blockchains. Tous deux permettent aux utilisateurs et aux systèmes de suivre les soldes des actifs cryptographiques.

Le modèle classique UTXO (Unspent Transaction Output) est célèbre pour assurer le suivi de la comptabilité dans la blockchain Bitcoin. On le retrouve également dans Bitcoin Cash, Zcash, Litecoin, Dogecoin, Dash, et plus encore…

Dans UTXO, il n’y a pas de comptes ni de soldes au niveau du protocole, seulement des transactions. Les pièces sont stockées dans un registre de sorties de transactions non dépensées (UTXO) et les nouvelles transactions consomment les UTXO existants pour produire de nouveaux UTXO. À tout moment, pour qu’un wallet puisse montrer son solde à un utilisateur, il doit accumuler tous les UTXO associés aux adresses publiques de cet utilisateur particulier, car ce qui est stocké est l’ensemble de tous les UTXO, et non une liste de comptes et de soldes.

Ce modèle est simple à comprendre sur le plan conceptuel, il évolue bien et est très transparent. Il présente quelques inconvénients : il n’a pas d’état et n’est pas assez expressif pour les développeurs, ce qui signifie qu’il est difficile de construire des programmes complexes à partir de ce modèle.

L’Account Model est plus intuitif et plus proche d’une base de données classique. Il enregistre l’augmentation ou la diminution du solde des adresses lors des transactions. Ces changements sont inscrits dans la blockchain, créant un état global (un enregistrement global du solde actuel de toutes les adresses). Cette structure est plus accessible et plus facile à maîtriser pour les développeurs, permettant un système plus “expressif” : les développeurs peuvent construire des programmes plus complexes et plus puissants (appelés contrats intelligents).

L’Account Model présente également des limites : l’exécution parallèle est difficile, la MEV est un frein constant, et il manque souvent de contrôles de sécurité suffisants pour être sûr au niveau du contrat intelligent.

Stateful UTXO : le meilleur des deux mondes

Le modèle stateful UTXO (sUTXO) combine les avantages des deux : il bénéficie de la sécurité du modèle UTXO et de l’expressivité de l’Account Model.

Pour ce faire, il utilise les deux modèles… mais pour des choses différentes ! Les UTXO sont utilisés pour les actifs/tokens et l‘Account Model pour les contrats intelligents et les états.

Les tokens comme citoyens de première classe

Dans sUTXO, tous les tokens sont gérés de manière native et stockés dans les UTXO, exactement comme les ALPH. Ceci est en contraste avec le Bitcoin, qui ne peut pas gérer les tokens. Mais cela marque également une grande différence avec Ethereum, car il nécessite des conteneurs tels que ERC20 et 721 pour gérer les tokens, ce qui introduit une complexité et a souvent conduit à des risques de sécurité dans le passé.

Cette approche est appelée “Tokens as first-class citizens”. Pas besoin de créer des normes et pas de risques dans la mise en œuvre : tout est là, nativement ! La VM (machine virtuelle) permet également d’intégrer des contrôles pour renforcer la sécurité des transferts.

Il est bien sûr possible de créer de nouveaux standards au-dessus d’Alephium pour des tokens ayant des caractéristiques différentes, mais les fonctions de base (émission, transfert, comptabilité) sont intégrées.

État : Contrats intelligents (et sécurisés)

Ce que l’on appelle “l’état” en informatique peut être considéré comme un “stockage”. Un système à état “stocke” ce qui s’est passé auparavant et peut utiliser des éléments de sa mémoire pour construire de nouvelles actions.

sUTXO est appelé “stateful” parce qu’il ajoute un élément “d’état” au modèle UTXO classique, qui est sans état. Comme l’explique Seba : “Les UTXO sont sans état, ce qui signifie que deux transactions ne peuvent pas affecter le même UTXO. Les transactions ne font référence à aucune entrée en dehors des UTXO consommés. Comme les UTXO peuvent être exécutés en parallèle, ils ne sont pas bien adaptés aux applications, telles que les contrats intelligents, qui sont stateful.”

C’est super utile pour les développeurs qui veulent construire des programmes exploitant l’état de la blockchain : les fameux contrats intelligents ! Les développeurs utilisent ces contrats intelligents pour créer des applications décentralisées. Et ces dApps permettent aux gens d’utiliser la blockchain pour des choses utiles : emprunter, prêter, échanger, créer et échanger des NFT, jouer à des jeux et inventer le futur !

Une forêt d’arbres Merkle pour le garder propre !

Les arbres de Merkle sont une structure de données spéciale utilisée pour stocker des informations de manière vérifiable. Alephium utilise trois arbres de Merkle par groupe : un pour les actifs (l’ensemble des UTXO), un pour les états du contrat, et un autre pour la logique du contrat (son code).

C’est génial, car pour un contrat intelligent donné, les données de l’arbre de Merkle d’état peuvent changer souvent, mais l’arbre de Merkle de code/logique sera immuable ! Cela permet à Alephium d’éviter d’être trop gonflé par du code et des données inutiles.

Et pour que les choses restent aussi légères que possible, sUTXO permet la location du stockage d’état : lorsqu’un contrat intelligent est déployé, son développeur doit payer un dépôt de 1 ALPH pour protéger la couche d’état contre le spamming.

Ce dépôt sera rendu à l’auteur du contrat lorsque le contrat intelligent sera détruit et retiré de la blockchain !

sUTXO & la VM Alphred fonctionnent bien ensemble !

sUTXO présente de nombreux avantages supplémentaires lorsqu’il est associé à d’autres innovations d’Alephium ! Par exemple, la machine virtuelle d’Alephium (Alphred) sait précisément qu’un transfert de token a lieu vers un contrat intelligent. Dans ce cas, la machine virtuelle vérifie le transfert pour contrôler s’il est soumis conformément aux règles du contrat intelligent.

Alephium intègre également des instructions de machine virtuelle pour la mise à niveau ou la migration d’un contrat intelligent. Cela permet aux développeurs de mettre à niveau le contrat intelligent pour restaurer la logique et corriger les bugs. L’option actuelle sur EVM consiste à utiliser des contrats proxy pour permettre cette migration, ce qui ajoute beaucoup de complexité.

Pourquoi est-ce important ?

Il s’agit d’une amélioration considérable pour les développeurs, car la possibilité d’avoir un Account Model amélioré avec un modèle dédié à la manipulation des tokens (UTXO) fait du modèle sUTXO une base solide pour construire des contrats intelligents avec l’assurance que la gestion sécurisée des actifs est une priorité.

Nous aurons plus de détails sur le modèle sUTXO dans une prochaine interview de Cheng Wang sur le sujet, car il s’agit d’une pièce maîtresse de la pile technologique d’Alephium. Vous trouverez ci-dessous deux vidéos de Cheng Wang présentant le modèle sUTXO et son interaction avec la VM et le langage de programmation d’Alephium, l’une à EthCC, et l’autre à Crypto Talk Series.

Si vous avez des questions ou si vous voulez en savoir plus, n’hésitez pas à venir sur le Discord d’Alephium, sur Telegram, ou à nous contacter sur Twitter !

Retrouvez toute l’actualité d’Alephium en français avec le tag Alephiumfr

--

--

Oheka
Alephiumfr

Co-Founder of No Trust Verify | Bitcoin | Privacy | PoW | Cyberpunk