Objet natif et analogie avec le monde réel du Bitcoin et de l’Ether

bitcoin-2730220_1280.jpg

Dans cet article nous allons répondre à la question suivante :

Quel est le nom technique de l’objet de données natif de la blockchain « bitcoin » qu’on appelle dans le langage commun « un bitcoin » (ou « x bitcoins ») ? Expliquez. Avec quel objet physique vous rapprocheriez au mieux l'objet de données "bitcoin" ? La blockchain Ethereum n'utilise pas ce modèle de données. Quel est l'objet de données central d'Ethereum et avec quel concept de la vie réelle il a le plus de similitudes ?

Nous avons posé la question à l’IA ChatGPT et voici sa réponse :

Capture d’écran 2023-05-08 à 19.07.59.png

Cette réponse va nous permettre d’établir une stratégie de réponse à la question posée.

I - UTXO

Dans un premier temps nous allons revenir sur le fonctionnement d’une transaction dans le système Bitcoin.

Transaction (TX) : transfert de valeur entre deux parties

Elle est composée des éléments suivants :

  • Entrée : adresse de la transaction précédentes contenant la certification de possession des actifs et script permettant d’autoriser ou non le transfert.
  • Première sortie : Montant et clé publique de l’adresse créditée et script similaire à celui en entrée.
  • Deuxième sortie : Adresse de restitution du montant présent sur l’adresse payeur Mais non dépensé.
  • Identifiant (TXid) : Hash généré par à partir des entrées et des sorties, il est unique et permet d’identifier la transaction.

Fonction de Hachage : Outil mathématiques transformant une donnée quelconque en une donnée de format fixé. Le résultat est nommé le hash est unique.

  • Frais : Récompense générée par les mineurs lors de la validation du bloc.

Le système de transactions est supporté par le Bitcoin Scripting. La somme des valeurs de sorties sont inférieures à la somme des valeurs d’entrées, la différence compose les frais destinés aux mineurs. L’ensemble des données d’entrées et de sorties passent par la fonction de hachage ce qui crée la signature (hash) numérique de la transaction qui est unique. Une fois générées, les transactions sont soumise à la validation des mineurs.

Le problème majeur que les crypto-monnaies doivent parer pour avoir une valeur est celui de la double-dépense. C’est le fait qu’un jeton soit dépensé deux fois. Il n’apparait que dans le cas d’une monnaie numérique car, contrairement à la monnaie physique, un jeton numérique est un fichier numérique pouvant être falsifié ou dupliqué.

Une attaque à double-dépense est le fait qu’un utilisateur malveillant va tenter de dépenser deux fois le même jeton. Ce type d’attaque permettrait de multiplier artificiellement une crypto en faussant le registre. Cela aurait pour effet de détruire la valeur d’une crypto. Ce type d’attaque n’est jamais arrivé sur le Bitcoin mais sur une de ses Fork : le Bitcoin Gold.

Ce problème est résolu par la Blockchain Bitcoin avec l’utilisation de L’UTXO

UTXO : Unspend Transaction Output - Sortie de transaction non dépensée.

L’UTXO correspond au montant restant dans le portefeuille de chacun après l’exécution d’une transaction. Ils correspondent à la « deuxième sortie » vue en amont. L’UTXO existant est donc utilisé pour la transaction suivante en tant qu’entrée et un nouvel UTXO est crée en deuxième sortie. Un UTXO « utilisé » est un montant considéré comme dépensé par le registre. L’utilisateur ne peut donc pas utiliser ces mêmes tokens dans une autre transaction. Le problème de double-dépense est donc résolu.
De façon générale, lors d’une transaction, le « payeur » va envoyer la totalité du montant de son portefeuille sur l’adresse de sortie et réclamer la somme restante à l’issue de la transaction.

Le système d’UTXO permet donc de garder, à chaque instant, la localisation des jetons soit leurs adresse publique.

II - Billet de banque ou chèque bancaire ?

D’après ChatGPT, l’UTXO est comparable au billet de banque. D’après Binance il serait plus comparable au chèque bancaire. Nous allons donc comparer les caractéristiques de ces deux entités.

Le billet de banque est un moyen de paiement physique imprimé par les banques centrales de chaque pays émetteur. Il est désigné comme de nature fiduciaire c’est à dire que sa valeur dépend entièrement de la confiance des utilisateurs envers l’entité émettrice. Elle n’a donc pas de valeur intrinsèque, c’est à dire que la papier de fabrication des billets n’a pas de valeur (contrairement à des pièces en or par exemple). Il a été introduit au VIIème siècle en Chine afin d’éviter le transports et les échanges de matériaux de valeur et encombrants en les remplaçant par des carnets d’ordres tenus par des personnes de confiance et s’assurant de la validité des échanges par la suite.
C’est également une unité de compte, c’est à dire que sa valeur permet d’établir des prix pour les biens ou les services. Le billet représente une réserve de valeur, les billets permettant d’effectuer des paiements ne représentant qu’une partie de la monnaie fiduciaire en circulation.
Les utilisateurs du billet de banque font donc confiance aux autorités de contrôle pour s’assurer de la stabilité de la monnaie ainsi que la non-falsification des billets.

Le chèque bancaire est d’après la banque de France :

un écrit dans lequel l’émetteur donne l’ordre à sa banque de transmettre une somme d’argent au profit d’un bénéficiaire.

Il doit contenir plusieurs mention obligatoires :

  • La mention du terme « chèque »
  • L’ordre de payer une somme déterminé
  • Le nom de la banque de l’émetteur
  • Le lieu et la date de la création du chèque
  • Le lieu où le paiement doit s’effectuer
  • La signature de l’émetteur

Qui permettent de s’assurer de la validité du chèque. Un chèque peut être rejeté par la banque émettrice dans le cas d’un manque de provisions de l’émetteur ou par la banque réceptrice pour une suspicion de fraude.
Le chèque garantie le paiement : en France, la somme est bloquée sur le compte de l’émetteur pendant 1 an et 8 jours.

La différence majeure de ces 2 moyens de paiement est que le billet de banque ne nécessite pas l’intervention d’un tiers et que le chèque bancaire permet le traçage des transactions de la banque. De plus le chèque permet donc à la banque de s’assurer la validité du paiement en bloquant la somme promise jusqu’à l’envoie et de lutter contre la fraude en s’assurant de la validité de l’engagement avant paiement. Dans les deux cas la double-dépense est impossible. Cependant, la monnaie-papier n’est pas traçable et ne permet pas de garder un registre sur la localisation des valeurs monétaires. En ce sens, la comparaison de Binance associant le chèque bancaire à l’équivalent centralisé de l’UTXO est plus cohérente.

III - Ethereum

Sur la blockchain Ethereum, l’unité de compte est l’éther (ETH). Le registre des transactions est tenu sur l’EVM (Ethereum Virtual Machine) qui est un environnement Turing complet répertoriant l’historique des transactions et des blocs et permettant l’accueil des DApps et des Smarts contracts.

Language Turing-complet : Language sur lequel on put programmer n’importe quelle machine de Turing. Soit, si il permet la représentation de toute fonction calculable.

Smart contracts : protocoles informatiques qui facilitent et vérifient l’utilisation/la négociation/ l’exécution de contrats.

Les éthers sont stockés sur des comptes disposant d’une clé publique et d’une clé privée. Il existe deux types de compte :

  • Comptes externes (EOA) contrôlés par les personnes avec les clés privées
  • Compte de contrat (réservé aux smart contracts)

Les comptes peuvent recevoir et envoyer des ETH et d’autres tokens. Les comptes répertorient le nombre de transactions effectuées, la somme en ETH (en Wei : 1 ETH =10^18 Wei), le hash du compte sur l’EVM, le hash de stockage. Chaque compte dispose d’une paire de clés permettant de signer les transactions et de les vérifier. Elles empêchent la falsification de transactions.

Les transactions vont modifier directement l’EVM, pour chaque demande de transaction, le validateur intervient puis diffuse le changement d’état de l’EVM à l’ensemble du réseau. Le fonctionnement des frais est similaire à Bitcoin.
Les étapes d’une transaction sont les suivantes :

  1. Demande de transaction, génération du hash de la transaction
  2. Formation d’un bloc et diffusion sur le réseau
  3. Validation du bloc : passage à l’état « réussi » de la transaction
  4. Mise à niveau et passage à l’état « justifiée »
  5. Passage à l’état « finalisée »

Chaque changement d’état s’inscrit sur l’EVM qui permet à chaque utilisateur d’en être informé.

L’analogie de ChatGPT avec le compte bancaire est intéressante. Plus précisément on peut parler du compte courant qui est un compte bancaire qui centralise toutes les transactions bancaires débitrices et créditrices. Le compte courant permet le dépôt sécurisé et crée un registre de toutes les transactions effectuées avec l’argent déposé dessus.
Le compte courant est donc assimilable au compte Ethereum dans le monde physique (donc centralisé autour des institutions bancaires) surtout sur la création du registre. En effet, après chaque transaction (validé par la banque) le compte courant est mit à jour en positif ou en négatif. Le côté centralisé crée la différence car les soldes et historiques des comptes individuels ne sont pas publique. On ne peut pas consulter à tout moment l’état d’un autre compte que le sien dans le monde réel, alors que ceci est possible sur Ethereum.

Conclusion

Dans cet article on à donc pu voir que le fonctionnement de transactions des deux crypto-monnaies sont similaires hors la tenue du registre sur chaque blockchain est radicalement différente. Dans les deux cas, l’UTXO et l’EVM sont des révolution technologiques et apportent une grande fiabilité à leurs réseau. L’utilisation de chacune de ces technologie est liée aux choix concernant l’utilisation de la blockchain. Bitcoin est une blockchain uniquement destinée à l’échange de jetons, au contraire Ethereum est un environnement d’abord destiné à l’accueil de DApps codés eux aussi sur l’EVM. Les transactions sont donc une application supplémentaire de l’EVM sans être sa fonction première.

La réponse apportée par ChatGPT est dans l’ensemble convaincante. Seulement, pour avoir une réelle compréhension du sujet, il est nécéssaire d’aller chercher des informations complémentaires. Sa description de l’UTXO est très succincte et le rapprochement au billet de banque est un raccourci trop rapide. Grâce à une analyse plus profonde on remarque facilement que l’analogie au chèque bancaire est plus pertinente car la ressemblance du Bitcoin au billet de banque est seulement superficielle. C’est donc une approximation à ne pas faire. Concernant Ethereum, ChatGPT ne mentionne jamais l’EVM qui est pourtant un point central du fonctionnement de Ethereum Mais son analogie au compte bancaire est pertinente.
Dans l’ensemble, ChatGPT donne un bon a priori du sujet mais fait des approximations. Il faut donc rester vigilant quant à son utilisation et penser à croiser ses sources.

Cet article à été réalisé dans le cadre du cours de Blockchain publiques et privées réalisé par @sorin.cristescu pour le M2 Mathématiques, Finance computationnelle et Actuariat.

Sources

https://academy.bit2me.com/fr/transactions-Bitcoin/
https://fr.wikipedia.org/wiki/Double_dépense
https://coinacademy.fr/academie/attaque-double-depense/
https://coinacademy.fr/lexique/utxo/
https://academy.binance.com/en/glossary/unspent-transaction-output-utxo
https://fr.wikipedia.org/wiki/Billet_de_banque
https://www.ecb.europa.eu/ecb/educational/explainers/tell-me-more/html/what_is_money.fr.html
https://www.abe-infoservice.fr/banque/moyens-de-paiement/le-cheque/tout-savoir-sur-le-cheque
https://cryptoast.fr/quest-ce-que-la-machine-virtuelle-ethereum/#LEthereum_Virtual_Machine_EVM_cest_quoi_au_juste
https://ethereum.org/fr/developers/docs/transactions/
https://ethereum.org/fr/developers/docs/accounts/
https://selectra.info/finance/guides/compte-bancaire
https://cryptonaute.fr/nouvelle-flambee-de-bitcoin-grace-aux-cheques-de-relance/

Sort:  

Superbe post, félicitation 👍 j'ai beaucoup aimé la partie "II - Billet de banque ou chèque bancaire ?". Utiliser ChatGPT comme point de départ à un coté ludique, moderne et intéressant je trouve

Excellent post, très au-dessus du benchmark (pour le max de points), du coup je vais devoir trouver du bonus ! 😄
Franchement, la recherche que vous avez faite, c'est top!