Pièces, soldes et comptes : pourquoi « combien ai-je » a trois réponses différentes

·6 min de lecture·Par SSP Editorial Team
Couverture SSP Academy : le modèle UTXO, les soldes de compte et le loyer Solana

Pièces, soldes et comptes : pourquoi « combien ai-je » a trois réponses différentes

Ouvrez un portefeuille qui prend en charge plusieurs chaînes et, si vous regardez de près, vous remarquerez quelque chose d'étrange. Le solde Bitcoin et le solde Ethereum sont tous deux de simples nombres à l'écran, mais en dessous ils sont calculés de façons complètement différentes — et sur Solana il existe encore un troisième arrangement.

Ce n'est pas une anecdote. Cela explique pourquoi les frais Bitcoin dépendent de votre historique de transactions, pourquoi une transaction Ethereum peut échouer et vous coûter quand même de l'argent, et pourquoi un compte Solana ne peut pas être simplement vidé jusqu'à zéro.

Le modèle UTXO : vous possédez des pièces, pas un solde

Bitcoin n'a pas de comptes et ne stocke aucun solde. Ce qu'il stocke, c'est un ensemble de sorties de transaction non dépensées — les UTXO — dont chacune est un morceau discret de valeur verrouillé par une condition de dépense.

Pensez à des espèces. Vous n'avez pas « 47 euros » dans la poche ; vous avez un billet de 20, deux de 10, un de 5 et deux pièces de 1. Pour payer 23, vous tendez le 20 et le 5 et on vous rend 2. On ne déchire pas un billet en deux.

Les UTXO fonctionnent exactement ainsi. Chacun doit être dépensé en entier. Pour payer 0,3 BTC depuis une sortie de 1 BTC, votre portefeuille consomme le BTC entier et crée deux nouvelles sorties : 0,3 pour le destinataire, et environ 0,7 qui vous revient en monnaie. L'UTXO de 1 BTC cesse d'exister.

Votre « solde » est donc une valeur dérivée : votre portefeuille parcourt la chaîne à la recherche de sorties verrouillées par des conditions que vous pouvez satisfaire, et les additionne. Nulle part sur la blockchain Bitcoin il n'existe d'enregistrement disant que vous détenez telle somme.

Trois conséquences en découlent, toutes trois pratiques :

Les frais dépendent de votre historique, pas seulement du montant. Ils sont facturés à l'octet, et chaque entrée dépensée ajoute des octets. Payer 50 euros depuis un seul gros UTXO coûte peu ; payer ces mêmes 50 euros en combinant trente minuscules coûte cher, car la transaction est physiquement plus grosse. C'est pourquoi consolider ses UTXO quand les frais sont bas en vaut la peine.

La monnaie est une vraie sortie qui doit aller quelque part. Tous les portefeuilles s'en occupent automatiquement, mais c'est le mécanisme derrière les heuristiques d'adresse de monnaie que les analystes de chaîne utilisent pour relier vos adresses entre elles.

La dépense est naturellement parallèle. Des UTXO différents sont indépendants ; rien n'impose donc un ordre strict à vos transactions.

Bitcoin, Litecoin, Dogecoin, Bitcoin Cash, Zcash, Ravencoin et Flux fonctionnent tous ainsi. C'est le modèle le plus ancien, et celui où « pas vos clés, pas vos pièces » est le plus littéralement vrai : il n'y a pas de compte, seulement des pièces assorties de conditions.

Le modèle de comptes : vous possédez un solde, et un compteur

Ethereum a jeté tout cela et adopté quelque chose de plus proche du grand livre d'une banque. La chaîne stocke un état : une immense correspondance entre adresses et soldes (et, pour les contrats, des données stockées). Envoyer 0,3 ETH soustrait 0,3 d'un nombre et l'ajoute à un autre. Pas d'entrées, pas de sorties, pas de monnaie.

C'est plus simple, et c'est ce qui rend les contrats intelligents praticables — un contrat a besoin d'un stockage persistant qu'il puisse lire et écrire, chose malaisée quand le monde est fait de pièces discrètes.

Mais le modèle de comptes introduit un problème que les UTXO n'ont pas. Si une transaction dit seulement « retirer 0,3 à Alice », quiconque la voit pourrait la rediffuser encore et encore et vider son compte. La parade est le nonce : un compteur par compte, inclus dans chaque transaction, qui doit augmenter d'exactement un. La transaction numéro 7 ne peut être minée qu'après la numéro 6, et une seule fois.

Le nonce explique le comportement des chaînes EVM :

Vos transactions sont strictement ordonnées. Une transaction bloquée bloque toutes les suivantes de la même adresse, car elles ne peuvent être traitées hors séquence.

Les frais sont payés même quand une transaction échoue. Le gaz paie le calcul tenté, pas le calcul réussi. Un appel de contrat annulé a tout de même consommé le travail des validateurs, il coûte donc tout de même. Cela surprend constamment, et c'est une vraie différence avec le monde UTXO, où une transaction invalide n'est simplement jamais confirmée et ne coûte rien.

La gestion des nonces est une véritable infrastructure. Pour un portefeuille ordinaire c'est invisible. Pour un multisig où deux appareils doivent s'accorder avant diffusion, le nonce doit être réservé, suivi et libéré — c'est pourquoi la gestion des nonces revient sans cesse dans la signature à deux appareils, plutôt que d'être un détail d'implémentation.

Ethereum, Polygon, BSC, Avalanche, Base et XDC utilisent tous ce modèle.

Solana : des comptes qui paient un loyer

Solana est aussi fondée sur les comptes, mais avec une particularité qui prend les gens au dépourvu.

Sur Solana, à peu près tout est un compte — votre portefeuille, chaque jeton que vous détenez, les données de chaque programme. Et comme ces comptes occupent la mémoire des validateurs, ils doivent conserver un solde minimum pour rester en vie. C'est l'exemption de loyer : déposez assez et le compte persiste indéfiniment ; tombez en dessous et il peut être récupéré.

Concrètement, détenir un jeton SPL exige un compte de jeton distinct, financé par un peu de SOL, avant même que quiconque puisse vous envoyer ce jeton. Recevoir n'est pas gratuit. C'est inhabituel et il vaut mieux le comprendre avant d'en avoir besoin, car « je t'ai envoyé les jetons et rien n'est arrivé » n'est souvent qu'un compte de jeton manquant.

Pourquoi un portefeuille multi-chaînes doit modéliser les trois

Un portefeuille prenant en charge ces chaînes ne peut pas partager une seule notion interne de « solde ». Il lui faut :

  • Pour les chaînes UTXO : un ensemble de sorties, chacune avec un montant et un script, plus une logique de sélection décidant lesquelles dépenser.
  • Pour les chaînes EVM : un unique chiffre de solde plus un nonce, et une file respectant l'ordre.
  • Pour Solana : un solde, un ensemble de comptes de jetons associés, et la conscience des minimums de loyer.

L'architecture de sécurité doit s'adapter aussi. Sur les chaînes UTXO, le deux-sur-deux de SSP est un script : une sortie P2WSH exigeant deux signatures pour être déverrouillée, imposée par les règles de script de la chaîne elle-même. Sur les chaînes EVM il n'existe pas de système de script équivalent pour les comptes ordinaires ; le multisig passe donc par l'abstraction de compte — un compte contrat dont la logique de validation exige les deux signatures. Sur Solana, c'est une adresse dérivée d'un programme, contrôlée par un programme en chaîne.

Trois mécanismes complètement différents, une seule idée côté utilisateur : rien ne bouge sans les deux appareils. Que les implémentations sous-jacentes ne se ressemblent en rien est précisément pourquoi la garantie doit être rétablie, et réauditée, sur chaque chaîne au lieu d'être supposée acquise.

Ce que cela signifie pour vous

Quand les frais Bitcoin paraissent élevés pour un petit paiement, regardez vos entrées. Le montant compte moins que le nombre de morceaux qui le composent.

Quand une transaction Ethereum est bloquée, les suivantes de la même adresse sont coincées derrière. C'est le nonce, pas un bug. Débloquer la première libère la file.

Quand une transaction EVM échouée vous facture quand même, le modèle fonctionne comme prévu. La simulation aide à l'éviter — d'où le fait que simuler avant de signer vaille davantage sur les chaînes à comptes que sur les chaînes UTXO.

Quand un transfert de jetons Solana « disparaît », cherchez un compte de jeton. Rien n'est perdu ; la destination n'existait peut-être pas encore.

Rien de tout cela n'est une lubie d'un portefeuille particulier. Ce sont les conséquences d'un choix de conception fait par chaque chaîne il y a des années, et dès que vous voyez sur quel modèle vous êtes, quantité de comportements autrement déroutants deviennent prévisibles.

Partager cet article

Articles connexes