Pour enregistrer « qui possède combien de pièces », Bitcoin et Ethereum utilisent deux méthodes complètement différentes : Bitcoin comptabilise des « billets non dépensés », tandis qu’Ethereum enregistre le solde de chaque compte. Comprendre cette différence permet d’expliquer bien des phénomènes qui semblent étranges.
$BTC utilise le modèle UTXO ; le solde affiché par le portefeuille correspond en réalité à la somme de nombreuses sorties non dépensées. Actuellement : 75,815.15 (24 h : -0.19 %).
— UTXO : des billets non dépensés —
Bitcoin utilise le modèle UTXO (sorties de transaction non dépensées). Vous pouvez imaginer chaque UTXO comme un billet d’une valeur variable : chaque transaction dépense plusieurs anciens billets et en crée de nouveaux pour les destinataires.
Le solde affiché dans le portefeuille est calculé en additionnant tous les UTXO qui vous appartiennent. Sur la blockchain, il n’existe pas de chiffre appelé « solde ».
— La monnaie rendue et les frais —
Un UTXO ne peut être dépensé qu’en entier. 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. Beaucoup de portefeuilles envoient la monnaie rendue vers une nouvelle adresse. C’est pourquoi vous verrez parfois « l’argent a été renvoyé à 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 somme de toutes les entrées moins la somme de toutes les sorties. Cette différence revient au mineur qui inclut la transaction dans un bloc.
— Le modèle par comptes : le solde est enregistré directement —
Ethereum utilise un modèle par comptes : 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. Si une transaction est bloquée, les suivantes restent elles aussi en attente.
— Chacun a ses avantages et ses inconvénients —
Avec le modèle UTXO, les transactions indépendantes peuvent être validées en parallèle. Utiliser une nouvelle adresse pour recevoir la monnaie rendue favorise aussi la confidentialité, mais il est moins pratique d’écrire des contrats complexes. Avec le modèle par comptes, les soldes sont plus faciles à comprendre et les contrats plus faciles à écrire, mais les transactions d’un même compte doivent être traitées dans l’ordre. Cardano a étendu le modèle UTXO (eUTXO), permettant aux sorties d’intégrer également une logique de script.
— Pour finir —
La prochaine fois que vous verrez dans un explorateur de blocs Bitcoin que des fonds ont été « renvoyés à soi-même », ou qu’une transaction Ethereum est bloquée et met toutes les suivantes en attente, vous saurez que ce sont des caractéristiques propres à ces deux méthodes de comptabilisation. Pas de panique. N’investissez que de l’argent que vous pouvez vous permettre de perdre.
Si vous trouvez cela utile, enregistrez-le pour pouvoir le relire plus tard.