Je vais vous raconter une erreur que j’ai moi-même commise : au début, je n’avais pas compris ce fonctionnement.
Bitcoin et Ethereum enregistrent tous deux « qui possède combien de pièces », mais utilisent deux méthodes complètement différentes : Bitcoin suit des « billets non dépensés », tandis qu’Ethereum suit le solde de chaque compte. Comprendre cette différence permet d’expliquer bien des phénomènes qui peuvent sembler étranges.
$BTC utilise le modèle UTXO ; le solde affiché par le portefeuille correspond en réalité à la somme de plusieurs sorties non dépensées. Actuellement : 75,182.06 (24 h +0.46 %).
▍UTXO : les billets non dépensés
Bitcoin utilise le modèle UTXO (sortie de transaction non dépensée). On peut imaginer chaque UTXO comme un billet de valeur variable : chaque transaction dépense plusieurs anciens billets et en crée plusieurs nouveaux pour les destinataires.
Le solde affiché dans votre portefeuille est calculé en additionnant tous les UTXO qui vous appartiennent. Sur la blockchain, il n’existe pas de chiffre appelé « solde ».
▍Monnaie rendue et frais
Un UTXO ne peut être dépensé que dans son intégralité. Par exemple, si vous avez un « billet » d’une unité et que vous devez en payer 0,3, la transaction crée deux sorties : 0,3 unité pour l’autre personne et le reste, après déduction des frais, vous est rendu à votre propre adresse. De nombreux portefeuilles envoient la monnaie rendue à une nouvelle adresse ; c’est pourquoi on peut voir « l’argent est retourné à soi-même » dans un explorateur de blocs.
Les frais d’une transaction Bitcoin ne sont pas indiqués séparément. Ils correspondent à la différence entre la somme de toutes les entrées et celle de toutes les sorties ; cette différence revient au mineur qui inclut la transaction dans un bloc.
▍Modèle par compte : le solde est enregistré directement
Ethereum utilise un modèle par compte : le solde de chaque compte est directement enregistré sur la blockchain. Un transfert consiste à débiter un compte et à créditer un autre, un peu comme avec un compte bancaire. Ethereum compte deux types de comptes : les comptes externes contrôlés par une clé privée et les comptes de contrat contrôlés par du code.
Pour éviter qu’une même transaction soit exécutée deux fois, chaque compte externe possède un nonce, qui augmente de 1 à chaque transaction envoyée. Les transactions doivent donc être exécutées dans l’ordre des nonces. Ainsi, si une transaction est bloquée, les suivantes doivent elles aussi faire la queue.
▍Chacun a ses avantages et ses inconvénients
Avec le modèle UTXO, les transactions indépendantes peuvent être vérifiées en parallèle. L’utilisation de nouvelles adresses pour recevoir la monnaie rendue favorise également la confidentialité, mais l’écriture de contrats complexes est moins pratique. Avec le modèle par compte, le solde est facile à comprendre et les contrats sont plus simples à écrire, mais les transactions d’un même compte doivent faire la queue. Cardano a étendu le modèle UTXO (eUTXO), permettant aux sorties d’inclure aussi une logique de script.
▍En résumé
La prochaine fois que vous verrez dans un explorateur de blocs que des bitcoins sont « retournés à soi-même », ou qu’une transaction Ethereum est bloquée et que toutes les suivantes font la queue, vous saurez que ce sont des caractéristiques propres à ces deux méthodes de comptabilisation : pas de quoi paniquer. Ne misez pas tous vos fonds sur un seul projet.
Si vous trouvez cela utile, enregistrez-le pour pouvoir le relire plus tard.