Mot-clé : blockchain

lundi 24 janvier 2022

NFT: even more stupid

This is an english translation of my post entitled “NFT : encore plus stupide”.

Le singe fume sa cigarette
‘21 NFT or ‘12 french rap?

The goal of an NFT is to establish a property deed. The idea is to certify an association between a digital identity (the owner) and an object (the property, a digital asset most of the time), and to then use a blockchain to store and distribute this certificate.

It’s off to a bad start: people claiming to be able to assert ownership using a blockchain are either lying or have no idea what they are talking about. This was already pointed out in a previous post (that should probably be read before this one) where I explained that a blockchain cannot serve as a source of truth for anything that is not intrinsically “inside” the said blockchain. This technology thus has no advantage over paper for this purpose. It has however many inconveniences: power consumption, the impossibility of having actual peer to peer transactions, etc.

NFTs are supposed to allow decentralization and disintermediation (getting rid of the need for trusted third-parties). This in itself is enough to discredit NFTs, since an NFT is a property deed on a blockchain, and that precisely, blockchains cannot actually offer any decentralization nor any elimination of the need for trust, as demonstrated in the post linked in the previous paragraph. Still, as the title of this post suggests: NFTs are even more stupid.

NFT stands for “non-fungible token”: it is a non-interchangeable piece of data, as opposed to units of cryptocurrencies for example. When someone has 1 bitcoin, they have 1 bitcoin, whichever it is: they’re all equivalent in the strict sense of having the same value. Each NFT is unique and identifiable. A 10€ bill has the same value as any other 10€ bill (or as any other set of bills and coins that sums up to 10€): euros are fungible. Now, if we decide that 10€ bills are no longer in circulation but that we keep them and open a market of 10€ bills where each one is unique and identified by its serial number, then I can hope to sell my 198357 numbered bill at a higher price than my 840414 numbered bill for example, by saying that its serial number is prime and that there is a limited quantity of such bills (which is false then idiotic, but I can still say it…).

This idea illustrate what is meant by “non-fungible”. The fact is that numbering objects that are available in limited quantity can increase their value[1]: not only they are rare, but now they are unique since each has a different number. However in the case of NFTs, it is even more stupid: absolutely nothing prevents to make multiple NFTs for the same object (so there can be multiple certificates of ownership for a single artwork, for example), and anyone can make an NFT for anything (so there is no guarantee whatsoever that a person selling an NFT owns the associated object). Everything is as if a same 10€ bill (in the sense of the physical object, necessarily unique) could have an inifite number of serial numbers, and that it is to these serial numbers that we attribute value, and potentially different values to each one. I know, this makes absolutely no sense.

It is actually even more stupid: the object associated to an NFT is generally a digital object, whose rarity does not exist[2] since they are transmissible by copy (as opposed to my 10€ bill that I would no longer have in my possession if I give it to someone else). This means that the object associated to the NFT (and which obviously contributes to its value on the market, even though we have already seen in the previous paragraph that this does not make sense) can itself be replicated infinitely. This may seem obvious, and yet there are many cases of people who bought an NFT to use its associated object (an image file) as a profile picture on social networks and called thieves people who would retrieve the image by a simple right click and then “save image as…”, for example.

All these criticisms are valid even if we accept the idea that an NFT would indeed be a property deed, but in reality it is even more stupid. In principle, at least from the point of view of the proponents of this technology, having an NFT associated to the object (digital or not) X allows to say “I am the official owner of X, I have a certificate that proves it”. The thing is, the notion of ownership is anything but natural, it does not exist as anything else than a social construct. Owernship can be the result of a (maybe litteral) power struggle[3] or of a common agreement, but in both cases it is a form of violence. In the first case, the power struggle has to be constantly renewed. In the second case, it is necessary that a third-party enforces the agreement, with an ability to punish in case of disrespect, or an absolute power of constraint. In both cases, the notion of ownership exists and has a meaning only for the concerned community[4]. In short, a property deed has no intrinsic value if there is no third-party to enforce its application and thus giving it its value. This is true when the deed is written on a piece of paper, and it stays true when it is an NFT: by recording on a blockchain that a given person is the owner of a given object, one does not perform anything more than if they would have written this same statement on paper: it has absolutely no value if there is no third-party with the ability to enforce what is written, to make it true[5]. Once again, the idea of decentralization or disintermediation is gone…

Now hang on, there is more. The association of an object to an NFT is usually not recorded directly on the blockchain for technical reasons (even digital objects are too big for that). Note that even in the rare cases where it would be the case, everything said until now still holds perfectly. What is stored on the blockchain is most often a link to a web page[6] that itself points to the associated object. Here again, we have lost all idea of decentralization (which is supposed to be why this technology exists in the first place — even if, as we have seen, this belief is based on a huge misunderstanding of what a blockchain can do), since a centralized platform is necessary to link an NFT to its associated object. This is bad enough, but things are even more stupid: because of this necessary and centralized third-party, an NFT can be subject to link rot in the best case (for example if the centralized platform no longer exists or moves to another URL). But it could be worse: the website could be hacked and/or later be replaced by one that does fancy associations, displays ads, attempts to infect its visitors with viruses, or simply trolls.

It is terefore quite clear that NFTs are purely and entirely hot air and have no possible serious applications (except of course to enrich the higher stages of a Ponzi scheme while accelerating global warming). But let’s take a closer look at the non purely speculative use case that is the most often put forward by the proponents of this technology: its use in a metaverse or in video games (I will talk about “virtual worlds” in general) for “in-game” markets.

What makes this idea seem to work is that in the case of a virtual world in which we have control over everything, we can indeed decide that a given blockchain where NFTs are recorded is a source of truth. Technically, it works. The virtual world can completely prevent participants who are not identified as owners of an NFT to benefit from the associated object. The company which builds the game, through the implementation of the virtual world (that is, the rules that they write in its source code), plays the role of the centralized third-party that has absolute power to make whatever they want true, and thus among other things what is written on a given blockchain. If the company changes its mind, the truth in the virtual world changes with it… And again, it is even more stupid. Contrary to what has regularly been said on the subject, it would absolutely not allow the transfer of items from one virtual world to another if this is not intended in the source code of both virtual worlds: if a game does not have code to display a yellow hat on your avatar, even if you own an NFT associated with the idea of a yellow hat in another game, you wont be able to add a yellow hat to your avatar in this game even if the game takes into account the blockchain where that NFT is recorded. NFTs cannot be used to build a “second hand” market of items between players of a same virtual world either if the virtual world does not implement the possibility of ownership transfer (which it could perfectly decide to allow but only with a tax, for example). To sum up, anything other than a speculative market of (re)selling fake property deeds to gullible buyers depends entirely on the will of the centralized entity that controls the virtual world. Therefore, we are dealing with centralized systems, where there is no advantage to use NFTs, or a blockchain. Technically, there a many disadvantages: it will cost more resources and be less efficient than a simple database to achieve the same results.

Notes

  1. ^ We are talking about the exchange value on a scarcity-based market here, assuming a strong demand. The use value of these objects obviously has no reason to change because they are numbered…
  2. ^ It is possible to create artificial scarcity on digital objects, but NFTs are unable to do that. Only DRMs (“digital rights maganement”) can do that, but they are historically a huge failure at the technical level, and absolutely can’t work without a trusted third-party anyway, which annihilates again the potential interest of NFTs.
  3. ^ Wars for land in human societies, fight (or just pee that smells stronger ^^) in animal communities, for example.
  4. ^ In animals that mark their territory, for example, most other species (at least those with no predatory or cooperative relationship) probably don’t care about territory markers, if they are even capable of interpreting them. The same is true for our fences and borders (otherwise we could issue laws to forbid mosquitoes to enter our lands).
  5. ^ The idea developed in this paragraph is explored in more details in the aforementioned post: The Truth on the Blockchain.
  6. ^ Only a link, not even a cryptographic hash of the object which would allow to ensure its integrity…

The Truth on the Blockchain

This is an english translation of my post entitled “La vérité sur la blockchain”.

For a few years now, blockchains have been so hyped that they have been put to all sorts of uses. Blockchain-based projects are multiplying without any consideration for the actual necessity of a blockchain for these projects. It seems that this is entirely due to a fashion effect (itself the result of a blinded technological solutionism ideology), and to the subsequently available fundings…

Mostly, these projects consist in recording information on a blockchain and claiming that doing so provides some form of guarantees. For example, we regularly see projects that aim at putting traceability, notarized deeds, or even diplomas in a blockchain, claiming that doing so will ensure the security and the validity of these information while allowing disintermediation.

It is important to understand that the goal of a blockchain is to achieve distributed consensus[1]. That is, to allow a set of autonomous systems to agree on a common information, 1- without the need for any centralized authority, and 2- in an adversarial context (nobody trusts anyone). When this specific need is not a requirement, there is no need for a blockchain.

This said, it is already quite obvious that many blockchain-based projects do not make any sense, starting with all those which are built around a permissioned or a centraly controlled blockchain, but also all those which aim at bypassing the need for a central authority even though this third-party is intrinsically necessary.

Let’s take the example of diplomas. An official dipoma is necessarily delivered by some state-authorized higher education institution, typically a univesity. Recording diplomas on a blockchain thus makes no sense since only the institution which delivered a given diploma can certify it’s authenticity. This means that there is a central authority that is essential for the certification of the diploma, without any regard for how the diploma exists, whether it is as a piece of cardboard paper or in a digital form. Therefore, there is no need for a blockchain, and actually it happens that using one is counter-productive. If digital certification of diplomas is useful, it is possible to do so more effectively and less expensively without a blockchain (and we know perfectly how to implement it: this is how we manage TLS certificates, which are used for secure HTTP connections, for example).

The thing is, the problem with blockchain-based projects is actually more profound. What many people do not seem to understand (or do not want to), is that, as a rule, what is recorded on a blockchain has no truth value in the real-world, if it is not enforced by an external authority. In the exact same way that a contract written on a sheet of paper only has a meaning and value as long as all parties agree to it, or as long as there is a third-party that has the ability to coerce recalcitrant parties to honor the contract.

The only truth that is guaranteed by the recording of a given information on a given blockchain, is that this particular information is written on this particular blockchain.

Thus, writing an information on a blockchain is only interesting if it is the writing itself that defines the truth. That is to say that it is a performative writing. It is the case with cryptocurrencies, where the balance of a given wallet[2] is computed from the transactions written on that cryptocurrencies’ blockchain, i.e., where the truth (for a very local notion of truth that only exists “inside” the said blockchain) is defined by what is written.

We must not confuse what we write because we have has decided (otherwise) that it is true, and what is true because it is written.

Apart from cryptocurrencies, I have never seen any other example of justified[3] use of a blockchain. For good reasons: we just demonstrated that as soon as what is recorded on a blockchain concerns something that is external to this blockchain, then the use of a blockchain adds strictly no more guarantee than writing on a sheet of paper. Therefore, in such situations, blockchains can only be a replacement for paper and for paper only (a replacement that is less practical, less efficient, more expensive, more polluting, less respectful of privacy, etc.). Hence, all the institutions and authorities that exist and are necessary to give any meaning and value to the sheet of paper are still necessary. By using a blockchain, one pays the cost of decentralization in a trustless environement, without having decentralized anything at all nor eliminated any need for trust.

Notes

  1. ^ Note that the meaning of “consensus” here is specific to computer science. It does not mean that all participants wishfully agrees with an idea like the common political notion of consensus means, it only means that all the participants see the same thing, whether or not they’re politically ok with it.
  2. ^ Here too the the vocabulary is particularly misleading: in the real-world a wallet is actally decentralized and does not work at all like it does in the digital cryptocurrencies world. We should really be speaking of “accounts” rather than “wallets”.
  3. ^ By that I do not mean that the existence of cryptocurrencies is justified, I’m only saying the cryptocurrencies as they exists indeed necessitate a blockchain.

jeudi 20 janvier 2022

NFT : encore plus stupide

Le singe fume sa cigarette
NFT ‘21 ou album de rap ‘12 ?

L’objectif d’un NFT est d’établir un titre de propriété. L’idée est de certifier une association entre une identité numérique (le propriétaire) et un objet (la propriété, le plus souvent numérique également), et d’utiliser la technologie de la blockchain pour stocker et distribuer ce certificat de propriété.

Ça commence mal : les personnes qui prétendent utiliser une blockchain pour établir des titres de propriétés mentent ou ne savent absolument pas de quoi elles parlent. Cela a été établi dans un précédent billet (dont je vous conseille la lecture avant celui-ci) où j’expliquais qu’une blockchain ne peut pas servir de source de vérité pour quoi que ce soit qui ne soit pas intrinsèquement “dans” ladite blockchain. Cette technologie n’a donc aucun avantage par rapport au papier, mais a par contre beaucoup d’inconvénients que le papier n’a pas (consommation énergétique, transactions acentrées impossibles, etc.).

Ce que prétendent apporter les NFT, c’est la décentralisation et l’absence de la nécessité de tiers de confiance. Cela suffit en soi à discréditer complètement l’idée des NFT, puisqu’il s’agit de titre de propriété sur une blockchain et que justement, l’utilisation d’une blockchain ne permet en réalité aucune décentralisation ni aucune suppression du besoin de confiance comme cela est démontré dans le billet cité précédemment. Mais comme l’indique le titre de ce billet : les NFT sont encore plus stupides.

NFT signifie “non-fungible token”, c’est à dire “jeton non-fongible” : il s’agit d’un morceau d’information non interchangeable, par opposition aux unités de cryptomonnaies par exemple. Quand on a 1 bitcoin, on a 1 bitcoin n’importe lequel, ils sont tous équivalent, au sens strict d’avoir la même valeur. Chaque NFT est unique et identifiable. Un billet de 10€ vaut la même chose que n’importe quel autre billet de 10€ (ou que n’importe quel ensemble de pièces et billets qui valent 10€) : les euros sont fongibles. En revanche si on décide que les billets de 10€ n’ont plus cours mais qu’on les garde et qu’on ouvre un marché des billets de 10€ où chacun est unique et identifié par son numéro de série, alors je peux espérer vendre plus cher mon billet numéroté 198357 que celui numéroté 840414 par exemple en disant que c’est un nombre premier et qu’il y a un nombre limité de tel billet (ce qui est faux puis stupide, mais je peux le dire quand même…).

Cette idée illustre ce qu’on entend par “non-fongibilité”. C’est ça qui fait que numéroter des objets en quantité limité augmente leur valeur[1] : non seulement ils sont rares mais en plus ils sont maintenant uniques puisque chacun a un numéro différent. Mais dans le cas des NFT, c’est encore plus stupide : des NFT, absolument rien n’empêche d’en créer plusieurs (et même autant qu’on veut) pour exactement le même objet (donc il peut y avoir plusieurs certificats de propriété pour une même œuvre), et n’importe qui peut en créer pour n’importe quoi (donc aucune garantie que la personne qui crée ou vend un NFT ait des droits sur la propriété de l’objet associé). Tout se passe comme si un même billet de 10€ (au sens de l’objet physique, nécessairement unique) pouvait avoir une infinité de numéro de série, et que c’est à ces numéros de série qu’on attribuait de la valeur, et potentiellement des valeurs différentes à chacun. Oui oui, ça n’a absolument aucun sens.

En fait c’est même encore plus stupide : l’objet associé à un NFT est généralement un objet numérique, dont la rareté n’existe donc pas[2] puisqu’il est transmissible par copie (par opposition à mon billet de 10€ que je n’aurais forcément plus en ma possession quand je l’aurais transmis à quelqu’un·e d’autre). Cela signifie que l’objet associé au NFT (et qui manifestement contribue à sa valeur sur le marché alors qu’on a déjà vu au paragraphe précédent que ça ne fait pas sens) peut lui même être répliqué infiniment. Cela peut sembler évident mais on a vu vraiment beaucoup de cas de personnes ayant acheté une image en NFT pour l’utiliser comme photo de profil sur des réseaux sociaux et traitant de voleurs les personnes qui récupéreraient cette image par un simple clic droit puis “enregistrer l’image sous…”, par exemple.

Toutes ces critiques sont déjà valides en admettant encore l’idée qu’un NFT serait effectivement un titre de propriété, mais en réalité c’est encore plus stupide. En principe, du moins du point de vu des défenseurs de cette technologie, posséder un NFT associé à l’objet (numérique ou non) X permet de dire « Je suis le propriétaire officiel de X, j’ai un certificat qui le prouve. ». Sauf que la notion propriété n’a absolument rien de naturelle, elle n’existe pas autrement que comme une construction sociale. La propriété peut résulter d’un rapport de force “brute”[3] ou d’un accord commun, mais dans tous les cas, il s’agit d’une forme de violence. Dans le premier cas le rapport de force doit être renouvelé sans arrêt. Dans le second cas il est nécessaire qu’une forme d’autorité extérieure fasse respecter l’accord aux différentes parties (avec un pouvoir de sanction en cas de non respect, ou un pouvoir absolu de contrainte). Et dans les deux cas, la notion de propriété n’existe et n’a de sens que pour la communauté concernée[4]. Bref, un titre de propriété n’a aucune valeur dans l’absolu si il n’y a pas une autorité tierce qui le fait appliquer, et lui donne par la même sa valeur. C’est vrai quand le titre de propriété prend la forme d’un bout de papier, mais c’est vrai aussi quand il prend la forme d’un NFT : en écrivant dans une blockchain que tel personne est propriétaire de tel objet, on a absolument rien fait de plus que si on avait écrit cette même affirmation sur du papier : ça n’a absolument aucune valeur tant qu’il n’y a pas une autorité tierce qui fait appliquer, qui rend vrai, ce qui est écrit[5]. Exit donc une fois de plus l’idée de décentralisation ou de désintermédiation…

Mais accrochez-vous car ce n’est pas fini : l’association d’un objet à un NFT ne se fait généralement pas directement sur la blockchain pour des raisons techniques (les objets sont trop volumineux pour ça). Notez bien que même dans les très rares cas où l’objet est enregistré sur la blockchain, tout ce qu’on a dit jusque là s’applique parfaitement. Ce qui est stocké sur la blockchain est en fait le plus souvent un lien vers une page web[6] qui pointe à son tour vers l’objet associé au NFT. Ce qui signifie qu’on perd toute idée de décentralisation (qui est la raison d’être de cette technologie — même si cette croyance n’est que le fruit d’une énorme incompréhension comme on l’a déjà vu) puisqu’une plateforme centralisée est nécessaire pour faire le lien entre le NFT et l’objet associé. C’est déjà assez affligeant mais en fait c’est encore plus stupide : du fait de la centralité de ce tiers de confiance imposé, le NFT lui même est sujet au risque de pointer vers un lien mort dans le meilleur des cas (par exemple si le site de la plateforme disparaît ou change d’adresse). Mais cela peut être pire : le site pourrait se faire pirater ou simplement être remplacé plus tard par un autre qui feraient des associations fantaisistes, afficherait de la pub, tenterait d’infecter ses visiteurs avec des virus, ou se contenterait tout simplement de troller.

Il est donc assez clair que la technologie des NFT est purement et entièrement du vent et n’a aucune application sérieuse possible (en dehors d’enrichir les plus hauts étages d’une pyramide de Ponzi tout en accélérant le réchauffement climatique). Regardons tout de même de plus près le cas d’usage non purement spéculatif qui semble être le plus souvent mis en avant par les défenseurs de cette technologie : son utilisation dans un metavers ou le domaine du jeu vidéo (je vais parler de “monde virtuel” de façon général) pour des marchés d’accessoires “in game”.

Ce qui fait que cette idée semble fonctionner, c’est que dans le cas d’un monde virtuel dont on contrôle tout, on peut effectivement décider que la blockchain sur laquelle on enregistre les NFT est une source de vérité. Techniquement, ça fonctionne. Le monde virtuel peut complètement empêcher les participant·es qui ne sont pas identifié·es comme propriétaires d’un NFT de bénéficier de l’objet associé à celui-ci. L’entreprise qui édite le jeu, au travers de l’implémentation du monde virtuel, c’est à dire des règles écrites dans son code source, a ici le rôle de l’autorité tierce et centralisée qui a le pouvoir absolu de rendre vrai ce qu’elle veut, et donc entre autre ce qui serait écrit sur une blockchain. Si l’entreprise change d’avis, la vérité dans le monde virtuel change avec… Et c’est même encore plus stupide. Contrairement à ce qu’on peut régulièrement lire sur le sujet, cela ne permettrait absolument pas de transférer des objets d’un monde virtuel à l’autre si ce n’est pas prévu dans le code des mondes virtuels en question : si un jeu n’a pas prévu de code pour afficher un chapeau rouge sur votre avatar, vous ne pourrez pas y afficher un chapeau rouge sur votre avatar, même si vous être le “propriétaire” d’un NFT associé à l’idée d’un chapeau rouge et que le jeu prend en compte le blockchain sur laquelle c’est le cas par ailleurs. Les NFT ne permettent pas non plus un marché de revente d’objets entre joueur·ses au sein d’un même monde virtuel si celui-ci ne prévoit pas la possibilité de transfert de propriété (ce qu’il pourrait décider de ne faire qu’avec une taxe par exemple…). Bref, tout ce qui relèverait d’autre chose que du marché spéculatif de (re)vente de faux titres de propriété à des acheteurs crédules dépend entièrement de la volonté de l’entité qui contrôle le monde virtuel. On est donc bien dans un système entièrement centralisé, et il n’y a aucun avantage à utiliser des NFT et donc une blockchain pour ça. Techniquement il y a même de nombreux désavantages : ce sera plus coûteux en ressources et moins efficace qu’une simple base de données pour arriver au même résultat.

Mise à jour (22/01/2022) : il a été porté à mon attention que le terme “débile” est problématique car il semble être encore beaucoup attaché aux handicaps cognitifs, j’ai donc pris la décision de le remplacer par “stupide” qui a la même signification sans être validiste.

Notes

  1. ^ On ne parle ici que de valeur d’échange sur un marché de la rareté et en supposant une demande forte. La valeur intrinsèque, la valeur d’usage de ces objets, n’a évidemment aucune raison de changer parce qu’ils sont numérotés…
  2. ^ Il est possible d’essayer de créer de la rareté artificiellement sur des objets numériques, mais les NFT sont incapables de ça. La seule chose qui le permet sont les DRM (“digital rights maganement” ou MTP en français pour “mesures techniques de protection”), qui sont historiquement un échec cuisant au niveau technique, et qui ne peuvent absolument pas fonctionner sans tiers de confiance par ailleurs, ce qui annihile encore une fois l’intérêt potentiel des NFT.
  3. ^ Guerre de territoire dans les sociétés humaines, combat (ou juste pipi qui sent plus fort ^^) dans certaines communautés animales, par exemple.
  4. ^ Chez les animaux qui marquent leur territoire par exemple, la plupart des autres espèces (en tout cas celles avec qui il n’y a pas de rapport de prédation ou de coopération quelconque) n’ont probablement rien à faire des marqueurs de territoire, si tant est qu’elles soient capables de les interpréter. Il en va de même pour nos barrières et nos frontières (sinon on ferait des OQTF aux moustiques).
  5. ^ L’idée développée dans ce paragraphe est détaillée dans le billet évoqué plus haut : la vérité sur la blockchain.
  6. ^ Et seulement un lien, même pas de condensat cryptographique de l’objet permettant de s’assurer de son intégrité…

vendredi 7 janvier 2022

La nécessité de la preuve de travail (ou d'enjeu)

Je disais dans le billet précédent sur l’utilisation malheureuse du mot “portefeuille” dans le cadre des cryptomonnaies que tout ce qui y est détaillé sur le fonctionnement des transactions sur une blockchain ne suffisait pas à justifier la nécessité de la preuve de travail ou d’enjeu. Je sous-entendais par là que l’immuabilité dont je venais de parler n’était pas une exigence suffisante, contrairement à ce qu’on entend le plus souvent.

En effet pour justifier la nécessité de la preuve de travail ou d’enjeu, on voit généralement que c’est justement ça qui fait l’immuabilité du registre, car cela rend trop coûteux les calculs nécessaires à la modification d’un bloc passé. Pourtant c’est faux : d’une part ça ne serait vrai que pour la preuve de travail et pas pour la preuve d’enjeu, et d’autre part ce qui fait l’immuabilité n’est pas tant le coût de la preuve de travail que l’impossibilité[1] de faire la modification discrètement, de manière à ce que la chaîne reste compatible avec celle qui est déjà connue des participants.

Quelle nécessité de la preuve de travail ou d’enjeu alors ? Elle tient à deux contraintes : 1- l’absence totale (voulue) de tiers de confiance, et 2- le fait que n’importe qui doive potentiellement pouvoir participer (par opposition à une liste d’agents identifiés dès le départ), ce qui implique l’impossibilité de faire confiance à l’ensemble des participants.

La première contrainte à elle seule nécessite que toute la valeur (au sens monétaire) soit contenue intrinsèquement dans le système[2], et donc même qu’elle y soit créée. Cela implique donc d’avoir un moyen de limiter/contrôler la vitesse de création de cette valeur sortie de nulle part. Si on rajoute la seconde contrainte, il faut également un moyen de répartir cette valeur aléatoirement, c’est à dire équitablement, de sorte à ce que tout le monde soit d’accord sans avoir à faire confiance aux autres. En effet cette seconde contrainte rend impossible de mettre en place un système de répartition totalement égalitaire de la valeur créée, de distribuer à tour de rôle suivant un ordre prédéfini, ou autre solution plus simple et moins coûteuse (puisqu’on ne connaît pas à l’avance les participants et qu’ils ne se font pas confiance).

Tout cela mis bout à bout fait qu’il est nécessaire de résoudre le problème du consensus distribué[3] dans une des pires situations possibles (cf le billet sur la notion consensus dans le cadre des blockchains), et c’est de là, et uniquement de là, que vient réellement la nécessité de la preuve de travail ou d’enjeu.

Cela signifie notamment que, si on a pas ces deux contraintes, on a pas besoin de preuve de travail ou d’enjeu (et donc, selon la définition qu’on en prend, qu’on a pas besoin de blockchain).

Notes

  1. ^ Impossibilité liée non pas au coût de la preuve de travail (même quand elle est utilisée) mais à celui de trouver une collision, qui lui est très nettement supérieur.
  2. ^ Un tiers de confiance pourrait distribuer la cryptomonnaie, et celle-ci pourrait même correspondre à un autre actif comme une monnaie fiat si ce tiers de confiance gère également cet autre actif (une banque centrale par exemple).
  3. ^ C’est à dire devoir mettre tous les participants d’accord sur l’un d’eux au hasard sans disposer d’aucun agent qui puissent jouer le rôle de “chef d’orchestre”.

jeudi 6 janvier 2022

Vocabulaire : portefeuille

Dans le milieu des cryptomonnaies, ce qui est appelé un portefeuille (wallet en anglais) est un dispositif qui sert à stocker et gérer une paire (ou dans certains cas, des paires) de clefs cryptographiques : grossièrement, une clef publique qui permet de recevoir de la cryptomonnaie, et une clef privée qui permet de la dépenser.

Le terme de “portefeuille” est particulièrement mal choisi. En effet, vu ce qu’est un portefeuille dans la vraie vie, cela encourage à l’abus de langage qui consiste à parler de cryptomonnaie stockée “dans” un portefeuille. Par métonymie on voit aussi parfois appelée “portefeuille” une clef publique (qui est l’identifiant à qui on peut transférer de la cryptomonnaie et de qui on peut en recevoir). On peut d’ailleurs voir un exemple typique de ça dans sur la page Wikipédia dédiée, qui parle de Bitcoin stockés dans des portefeuilles alors que littéralement deux phrases plus tôt il était précisé que les cryptomonnaies ne sont pas stockées dans les portefeuilles… :

Capture de la page wikipédia “Portefeuille de crypto-monnaie” le 5 janvier 2022.
Capture de la page Wikipédia “Portefeuille de crypto-monnaie” le 5 janvier 2022.

Ce soucis était présent sur Wikipédia depuis le 3 août 2021, donc déjà 5 mois au moment où j’ai consulté la page (et où j’en ai donc profité pour la corriger, en annulant simplement la modification qui rajoutait cette dernière phrase du paragraphe d’introduction, fausse et inutile).

Littéralement, un “porte-feuille” contient, physiquement, de l’argent liquide (des billets, en papiers, des feuilles quoi). Une transaction entre portefeuilles consiste donc en le déplacement physique d’un objet d’un portefeuille à l’autre. La transaction ne nécessite que la présence des deux portefeuilles. Le système de transaction est non seulement décentralisé mais aussi acentré : il ne possède pas du tout de centre, une transaction s’effectue directement de pair à pair et de façon totalement discrète/anonyme vis-à-vis du système global.

Bien que cette description ressemble beaucoup aux discours qu’on peut entendre au sujet des cryptomonnaies (“décentralisé”, “anonyme”), ce n’est en fait pas du tout comme ça qu’elles fonctionnent !

Plutôt que de “portefeuille” on devrait parler de “compte”, au sens de compte bancaire, pour éviter cette confusion.

Un “compte” (en banque) c’est un identifiant auquel on associe un solde. Une transaction entre deux comptes consiste à soustraire au solde du compte émetteur le montant de la transaction et à l’ajouter au solde du compte destinataire. Cette fois-ci le système de transaction ne peut pas être acentré, du moins si on ne veut pas que n’importe qui puisse créer de la monnaie sortie de nulle part (et clairement, on veut pas) :

  • [validité] lors d’une transaction de montant X du compte A vers le compte B, il faut que le solde de A soit supérieur ou égal à X ;
  • [double dépense] en plus de ça, il ne faut pas non plus que, simultanément, A puisse faire une transaction de montant Y vers le compte C si le solde de A n’est pas supérieur ou égal à X + Y (alors que prises séparément les deux transactions pourraient valider la première condition) ;
  • [cohérence] et bien sûr après chaque transaction il faut s’assurer que le montant qui a été ajouté au solde du compte destinataire a bien été soustrait de celui du compte émetteur.

Il faut donc, d’une manière ou d’une autre, un centre qui fasse (ou qui permettent de faire) ces vérifications.

Dans le cas des comptes bancaires, le système de transaction est un mix entre une version centralisée et une version fédérée : il n’y a pas qu’une seule banque donc ce n’est pas littéralement un système centralisé, mais pas n’importe qui peut créer une banque qui vient se greffer au réseau en étant immédiatement interopérable avec les banques existantes comme on s’attendrait à ce que ce soit le cas dans un système réellement fédéré. Dans le système bancaire, le centre (les banques) est en charge de faire les vérifications, et les données sont opaques pour les utilisateurices des comptes.

Dans le cas des cryptomonnaies, il y a aussi un centre, mais il est distribué grâce à une blockchain qui n’est rien d’autre qu’un registre public de toutes les transactions depuis le début du système. La charge des trois vérifications citées plus haut (dont j’ai inventé les noms pour les besoins de ce billet) est répartie comme suit :

  • [validité] chaque participant au réseau connaît l’état du registre et donc peut recalculer le solde de chaque compte (en partant de zéro et en ajoutant les montants des transactions vers ce compte et en retirant les montants des transactions depuis ce compte), donc chaque fois qu’un nouveau bloc est reçu, chaque participant peut vérifier si il ne contient que des transactions valides, et ignorer le bloc dans le cas contraire ;
  • [double dépense] si deux transactions dans un même bloc ne respectent pas cette règle c’est un problème de validité et on en revient au point précédent, si elles ne sont pas dans le même bloc alors soit elles ne sont pas simultanées (et on en revient à la validité si le registre est immuable, cf ci-dessous), soit les deux blocs arrivent en même temps et seul l’un des deux pourra être choisi par le réseau pour continuer la chaîne (chaque nouveau bloc dépend directement du précédent, il ne peut y avoir deux précédents, cf ci-dessous également) ;
  • [cohérence] enfin, concernant la cohérence, elle est “gratuite” car comme expliqué ci-dessus, le solde d’un compte n’est écrit nul part il est calculé depuis la liste des transactions qui concernent le compte.

Immuabilité. Tout cela suppose que l’ensemble des participants voient le registre dans le même état et qu’une fois écrit celui-ci est immuable, c’est à dire qu’on ne puisse pas effacer ou modifier des transactions discrètement dans le registre. C’est pour cette raison que le registre est basée sur une structure de chaîne de blocs : l’identifiant de chaque bloc dépend cryptographiquement de l’intégralité de son contenu ainsi que de l’identifiant du bloc le précédant dans la chaîne, de sorte que modifier le contenu d’un bloc implique la modification de son identifiant et du coup de tous les blocs qui le suivent dans la chaîne.

On remarquera ici que malgré toutes les explications techniques que l’on vient de faire, on a pas expliqué, et encore moins justifié, la nécessité de la preuve de travail (ou d’enjeu) dans le cas des cryptomonnaies, mais ce sera l’occasion d’un autre billet !
EDIT (07/01/2022), le voici : La nécessité de la preuve de travail (ou d’enjeu).

Pour cette fois-ci, on s’arrêtera sur l’idée que dans le cadre des cryptomonnaies, ce qu’on voit appelé un “portefeuille” devrait soit être un “compte” soit un “gestionnaire de compte” ou encore un “client” (au sens réseau, comme on peut parler d’un “client BitTorrent” par exemple).

Pour un véritable portefeuille numérique et décentralisé, il semble qu’à l’heure actuelle la seule option soit Taler, et cette technologie n’est pas basée sur une blockchain[1].

Note

  1. ^ Je réfléchissais déjà au sujet d’un système de transactions acentré dans un article publié dans Alternative libertaire n°319 (septembre 2021) : Contrôle, surveillance, et monnaie numérique.

- page 1 de 2