Pintxo-pote kontuak, blocage blockchain/i étalé et négocié bitcoin/i à

Ander Galisteo Zabalo

IMDEA Networks Institutua (Madril); Carlos III Unibertsitatea (Madril)

Ces dernières années, nous avons beaucoup entendu parler de blockchain et de bitcoine. Mais que sont-ils ? Est-il possible de comprendre comment ils fonctionnent avec un simple exemple quotidien ? C'est précisément le but de cet article, car nous allons comparer le concept de blockchain blockchain avec un problème que nous avons en Euskal Herria: comment faire des comptes avec des amis quand nous allons au potage de pintxos.

Les avantages de l'Internet sont indéniables. Pour la première fois, nous avons un outil qui relie toute la société. Cependant, cette connexion a créé un nouveau paradigme. Les utilisateurs ne peuvent pas savoir si la personne qui est de l'autre côté du réseau est fiable. Par conséquent, comment pouvons-nous obtenir que nous partageons tous des informations sans que personne ne remplace l'identité de personne et change les informations privées ?

Cet article analysera la solution la plus connue trouvée ces dernières années pour résoudre ce problème, en prenant comme exemple la réalisation de comptes avec des amis comme la blockchain ou les chaînes de blocs[3][6]. Pour cela, tout d'abord, une série de concepts indispensables seront exposés pour comprendre ce que sont les chaînes de blocs, ainsi que les avantages et les problèmes qu'ils peuvent supposer.

Que sont les chaînes de blocs ?

Imaginons que nous sommes avec des amis, par exemple, dans le pot de pintxos du quartier de Gros de Saint-Sébastien. Comment payer nos pots de pintxos? D'une part, il est possible que chacun paie le sien, mais il est clair que ce n'est pas l'option la plus efficace, car cela nous coûterait beaucoup de temps à payer. Une autre option serait de mettre un pot entre tous, car ainsi nous payerions beaucoup plus vite. Cependant, cela pose d'autres problèmes: Que se passerait-il si l'argent du bidon n'était pas suffisant ? Et si vous restez à la fin? Souvent, tous les prix ne sont pas égaux, dans ce cas, comment allons-nous distribuer le prix?

Compte tenu de ces problèmes, nous pouvons penser à une solution plus appropriée. Nous allons créer un compte dans lequel chacun des membres mettre dans chaque bar combien il doit et à qui il doit. Pour rendre ce compte aussi transparent que possible, au lieu d'être écrit sur un papier, toutes les données seront en ligne afin que chacun puisse les voir, par exemple, dans un groupe WhatsApp. Mais que se passerait-il si les membres de l'équipe n'étaient pas fiables ? Voyons quels trucs nous pouvons utiliser pour résoudre ce problème de fiabilité. Après tout, la chaîne de blocs n'est que celle-ci, un compte énorme que tout participant peut utiliser pour écrire des transactions entre eux. Voyons donc ce qu'est une transaction.

Transaction Transaction

Comme déjà indiqué, il apparaîtra sur le compte combien et à qui chaque personne doit dans chaque bar. Il y a deux façons de le faire : celui qui paye l'inscrit sur le compte ou celui qui le doit l'écrit. Il est clair que la première option n'est pas pratique, car si un participant manquait de l'argent, il pourrait considérer que d'autres doivent lui. Par conséquent, le débiteur sera celui qui inscrit le montant et à qui il doit. Ainsi, nous ferons en sorte que personne ne triche parce qu'en écrivant quelque chose sur le compte, vous perdez de l'argent. Ceci est appelé transaction dans les chaînes de blocs. Mais comment pouvons-nous savoir si vous êtes vraiment en mesure de payer le montant que vous avez écrit? Très facile. Chaque fois qu'une transaction est écrite, chaque personne qui se trouve sur ce compte (dans ce cas dans le groupe WhatsApp) doit vérifier si le débiteur a la monnaie suffisante pour payer la transaction. Sinon, la transaction est annulée. Et comment savoir si vous en avez assez? Tout simplement, parce que en observant toutes les transactions ci-dessus, nous pouvons savoir si vous avez assez pour rembourser la dette. À ce stade, nous pouvons déjà détecter la valeur du compte (dans notre cas le groupe WhatsApp) : nous pouvons utiliser dans un nouveau pot de pintxos le montant que j'ai dû précédemment. Quoi qu'il en soit, comment pouvons-nous vous assurer que je n'écris que mes transactions ?

Signature numérique

Signature numérique[1] se pose pour résoudre un seul problème : vérifier l'origine d'un message. Bien que les humains voient un message comme un ensemble de lettres, un ordinateur voit un message comme un ensemble de bits (tout fichier, à vrai dire).

Supposons que nous ayons beaucoup d'utilisateurs. Les algorithmes de création de signature numérique sont deux : le premier est utilisé pour créer la signature et le second pour vérifier la signature. Chaque utilisateur a deux codes appelés clé, un privé (Iphone) et un autre public (Gpu). La fonction de création de signature est :

signature = signature (message iphone)

 

Figure : Leire attend un message de Xabi. Nagore veut envoyer un message à Leire au nom de Xabi pour tromper Leire. Cependant, Xabi a signé le message avec sa clé privée. Leire vérifie alors avec signature publique les deux signatures reçues et identifie celle de Xabi et rejette celle de Nagore. Ed. Ander Galisteo

Ici nous percevons la différence la plus significative entre la signature des personnes et la signature numérique. Comme on peut le voir, chaque signature est créée pour chaque message et utilisateur, de sorte que la signature numérique dépendra du message et de l'utilisateur (les gens utilisent la même signature pour signer tous les documents). Cela signifie, entre autres, que nous pouvons utiliser notre GPRS dans différents messages sans perdre de sécurité.

D'autre part, nous avons une autre fonction de vérification de signature:

si/non = vérifier(message, Gpu, signature)

Cette fonction nous indique l'origine de la signature en utilisant la signature, le message et la clé publique. De cette façon simple, nous pouvons savoir si le message a été envoyé par l'utilisateur que nous voulons vraiment. Par exemple, voir figure 1.

Bloc de bloc

Ce que nous avons dit jusqu'à présent serait utile dans un petit bloc, et pourrait être appliqué sans problème. Mais normalement dans le poteo de pintxos nous n'avons pas l'habitude d'être avec la troupe, nous rencontrons normalement ceux de l'équipe sportive, de l'université, des membres du groupe de danse... et dans ce cas nous ne servons pas ce que nous avons fait avec la troupe. Faisons donc le groupe WhatsApp de San Sebastián, un groupe qui englobe tous les Donostiarras. Et y a-t-il quelqu'un de Vitoria ? Faisons donc l'équipe du Pays Basque. Et y a-t-il quelqu'un d'autre ? Eh bien, faisons une équipe mondiale. Mais un grand problème nous apparaît maintenant. Dans un groupe WhatsApp au niveau mondial, il est clair que nous ne serons pas en mesure de lire tous les messages et il sera encore plus difficile de vérifier toutes les transactions (messages): nous ne saurons pas qui doit, ni dans quel ordre les transactions ont été effectuées (ce n'est pas la même chose de dépenser après avoir reçu l'argent que de dépenser d'abord l'argent et ensuite recevoir l'argent, qui n'est pas légal). C’est pourquoi, sur un grand compte, il est indispensable de lier les transactions à une quantité fixe en créant des blocs[5]. Ainsi, chaque message de WhatsApp sera un ensemble de transactions.

Cependant, nous pouvons penser que cela ne résout pas le problème, car maintenant au lieu de beaucoup de transactions nous avons beaucoup de blocs. Si chaque utilisateur crée un bloc, nous ne résoudrons pas le problème. Par conséquent, il doit être difficile de créer un bloc pour un utilisateur, mais simple pour les autres utilisateurs de savoir si le bloc est bien créé. Comment pouvons-nous le faire ?

Fonctions de hachage

Les fonctions Hash[4] sont des fonctions très utiles pour convertir un ensemble de données en données de taille connue.

hash = hashfonction (message)

 

Figure : Quelques exemples de la fonction Hachage[2]. Comme on peut le voir dans les exemples 1, 2 et 3, quand le changement est très petit, un hachage très différent se produit. D'autre part, il faut garder à l'esprit que la longueur du message est égale (dans le quatrième exemple, Maritxu nora joan a utilisé toute la chanson pour créer le hachage), car la longueur du hachage sera toujours de la même taille.

Cependant, les fonctions de hachage ont une propriété très spéciale: si nous changeons un peu le message, la sortie varie beaucoup. Le changement est si grand que nous trouvons aléatoire la sortie de deux messages très similaires. La figure 2 montre un exemple clair.

Par conséquent, si vous nous donnez un message, il est très facile d'obtenir votre hachage, mais avec le hachage, nous ne pouvons pas savoir quel était le message original. La seule façon de l'obtenir est par des essais, en changeant le message pour obtenir le hachage désiré.

Et comment peut-il nous aider ? Un bloc (un ensemble de transactions) est juste un message. Ainsi, nous pouvons trouver le hachage du bloc, en gardant toujours à l'esprit que le hachage de notre bloc variera en fonction du contenu et de l'ordre des transactions.

Maintenant, nous allons écrire quelque chose à la fin du bloc, un jeu de caractères. Mais pourquoi ?

Proof-of-work

Il va mettre une restriction aux blocs: le hachage du bloc doit avoir plusieurs 0 au début. Pour y parvenir, comme indiqué ci-dessus, à la fin du bloc, nous écrirons un jeu de caractères nommé nombre magique. Comme nous l'avons dit, il n'est pas possible de revenir du hachage au message, car la seule façon d'obtenir les 0 est d'essayer de nombreuses combinaisons de caractères jusqu'à ce que la quantité 0 souhaitée soit atteinte. Ce calcul consomme beaucoup de ressources informatiques (temps et électricité). Cela signifie que si un bloc a un hachage de 0, quelqu'un a dépensé beaucoup d'énergie pour la calculer, ce qui en fait un bloc fiable.

 

Figure : Les blocs sont divisés en trois parties. La première est le hachage du bloc précédent, de sorte que tous les blocs sont en ordre. La seconde est la transaction du bloc. Le dernier est un nombre magique qui est utilisé pour commencer le hachage avec 0. Ed. Ander Galisteo

Comme nous l'avons dit, il est facile de vérifier si la règle de hachage est respectée. Par conséquent, il n'est pas logique d'essayer de tricher, car ils seraient facilement attraper. Mais pourquoi les gens le feraient-ils ? Pourquoi faire tous ces calculs pour calculer le hachage du bloc? La réponse est simple, car il y a un prix pour qui crée d'abord le bloc. Ce prix n'est qu'une valeur dans le compte: dans l'exemple de la troupe la nourriture ou boisson pour le potage de pintxos, dans le cas de la vitcoine les bitcoines. Ce processus est appelé minier. Le bloc est complété par le hachage du bloc précédent. Ainsi les blocs sont triés. La figure 3 montre la structure du bloc.

Relation entre chaînes de blocs et bitcoine

Mais comment la structure que nous avons décrite (chaînes de blocs) est-elle liée à la cryptomonnette la plus célèbre au monde ? La chose des chaînes de blocs est juste un concept, une façon de tenir des comptes. Monnaie des chaînes de blocs Bitcoina, monnaie électronique pour transporter des comptes en utilisant des chaînes de blocs. De même, la somme n'est qu'un concept mathématique et une expression de "5+2".

Conclusions

Bien que plus inconnue, cet article a été attribué aux chaînes de blocs un accent plus élevé que la vitcoine. Pourquoi ? Car en plus de la vitcoine il y a beaucoup d'autres cryptomonnettes (ethereum, litecoin, dash..), mais toutes sont des expressions du même concept : des chaînes de blocs. Les cryptomonnettes peuvent monter ou descendre sur le marché, ils peuvent se créer et disparaître. Dans tous les cas, il est clair que les chaînes de blocs seront présents dans notre vie dans les prochaines années dans les cryptomonnettes pour partager des informations ou, peut-être, pour éviter les problèmes de pintxo-poteo.

 

Références

[1] Whitfield Diffie et Martin Hellman. New directions in cryptography. Dans: IEEE transactions on Information Theory 22.6 (1976), pp. 644–654.

[2] FileFormat.info: Hash functions. https :// www . fileformat . info / tool/hash.htm

[3] Satoshi Nakamoto. Bitcoin: A Peer-to-Peer Electronic Cash System. Novembre 2008. 2015 2015 2015

[4] Bart Preneel. “The first 30 years of cryptographic hash functions and the NIST SHA-3 competition”. Dans: Cryptographers’ track at the RSA conference. Springer. 2010, pp. 1–14.

[5] Melanie Swan. Blockchain: Blueprint for a new economy. "O’Reilly Me- dia, Inc.", 2015 2015 2015

[6] Youtube channel 3Blue1Brown: Ever wonder how Bitcoin (and other cryptocurrencies) actually work? https://www.youtube.com/watch? v=bbc-nXj3Ng4.

Babesleak
Eusko Jaurlaritzako Industria, Merkataritza eta Turismo Saila