 Ok, donc, on va continuer avec le talk suivant. C'est de Vimea, un étudiant en informatique de la Suisse. Il s'occupe avec les midcoins et les préterreurs. Il écrit son travail de bachelors sur la recherche d'information dans la blockchain bitcoin. Donc ça fait beaucoup de sens que ce soit justement lui qui vient ici aujourd'hui de votre transition sur le blockchain bitcoin. Donc, à plaisir pour Vignea. C'est cassé à voir. Ça marche pas. Ah, c'est mieux. Merci. Alors, bien sûr ça, ça marche pas non plus. On va faire ça à la main. Parce que tout ce qui a besoin, ça marche pas. Donc, il a déjà tout dit, le Herald. Donc, depuis que je travaille avec Blockchef, j'ai vu des trucs très intéressants. Et aujourd'hui, j'aimerais vous donner ces connaissances. Donc, c'est un thème à très complexe, avec plein de trucs compliqués. Et c'est pourquoi on va commencer par faire simple. Donc, un système de possession, un système qui explique ce qui appartient à quoi. Et avec la connaissance, avec les changements de propriété. Comme, par exemple, en finance, pour gérer l'argent, ou alors pour gérer de l'immobilier, ou un lot banterre. Le mapping fonctionne l'état et la collection des informations à qui ça appartient. Et d'un environnement, ça donne un nouvel état. Donc, par exemple, un système financier. L'état et la collection de tous les comptes qui existent. Donc, ça explique combien de personnes ont quel argent. Et une transaction, ça change l'état. C'est une transition qui a abouti à un nouvel état. Donc, voici avec de l'immobilier, toutes ces informations. Donc, les lotes banterres, le galastre. Donc, Bob vend son lot à Alice. Et nous voyons bien le changement. Il est marqué. Donc, dans tous ces systèmes, il est très important que tous les participants arrivent au même état. Pour savoir qui appartient à quoi. Parce que s'ils ne peuvent pas, il y a des possibilités d'attaquer le système. Comme, par exemple, une double dépense. Qui, dans Blockchain, tout le monde connaît et en a peur. Donc, si on a de l'argent, on le donne deux fois. Comment est-ce qu'on fait pour donner deux fois le même argent ? Mais c'est compliqué. Mais pour un immobilier, c'est possible. Et c'est relativement simple. Et même si c'est criminel, ça pourrait arriver. Donc, ça fonctionne. Alors, le numéro 5. Et Alice voudrait l'acheter. Bob veut aussi l'acheter. Et Malorie va essayer de le vendre aux deux. Donc, on voit que Elroy a le vent à Alice. On voit la transition de l'opin. Et maintenant, ça appartient à Alice. C'était étapé. Mais Bob ne connaît pas. Bob et Alice ne savent pas comment communiquer. Donc, ils ne savent pas. Bob ne sait pas encore quel à acheter l'opin. Et donc, il décide d'un prix avec Malorie. Il négocie. Et Bob achète. Et donc, du point de vue de Bob, Bob a acheté. Donc, ça lui appartient. Le problème, c'est que Bob et Alice ont acheté la même chose. Et ils ne sont pas d'accord à qui ça appartient. Il est parti avec l'une. Et le système est cassé. Puisque Bob et Alice ne peuvent plus négocier l'un avec l'autre. Et plus personne ne peut l'acheter. Puisqu'il faut l'acheter de qui ? Il faut l'acheter de Bob ou d'Alice, pour que ce soit correct. Et donc, dans le monde de l'immobilier, il y a le cadastre. Et le cadastre, c'est un point central. C'est une référence centrale qui, justement, gère cet état. Quand quelqu'un achète ou vend, ça doit passer par le cadastre. Et le cadastre est consulté pour savoir si c'est effectivement valide et si on peut vendre. Et il sera actualisé. Et du coup, ça évite ce genre d'attaque. Donc, la même solution fonctionne aussi pour les systèmes de finance. Quand on pense aux banques, j'ai un compte. Donc, la banque est l'autorité centrale qui contrôle l'état. Et à chaque fois que j'ai fait une transaction, la banque vérifie si j'ai l'argent pour pouvoir le faire. Et mon solde de compte va être adapté. Donc, ça fonctionne très facilement et ça fonctionne très bien. Sauf que lorsque l'on est sur Internet, on aimerait bien que ce soit décentralisé. Parce que si ce n'est pas décentralisé, il nous faut une autorité centrale qui peut censer, qui peut censurer. On a tous vérifié comment. On peut être adapté parce qu'il y a un single-boy de failure qui peut avoir toutes les données. C'est pour ça qu'on a besoin d'un meilleur système, une meilleure solution pour l'époque l'âge d'Internet. Et cette solution est naturellement le blockchain. Le blockchain sert un procès de qualité exceptionnelle. Le blockchain n'a pas besoin d'une autorité centrale pour gérer son état. Les participants du système n'ont pas besoin de se faire confiance entre eux. Ils ne doivent même pas savoir combien de gens participent au système. Et pourtant, tout le monde peut se fier à un état du système. Maintenant, je vais vous donner les règles qu'on doit suivre pour rendre ça possible. Là, je donnerai un exemple de blockchain simple qui serait encore attaquable. Il n'y a pas de proof-of-work. Dans le chapitre suivant, je vais vous montrer des mesures qui peuvent être prises pour éviter des attaques. On commence par avoir un réseau parce qu'il faut qu'on puisse être connecté. On dit qu'on ira tout à l'heure des transactions, les uns avec les autres. Il faut un état initial du système aussi. On commence par exemple en disant qu'au début, rien n'appartient à personne. On a un réseau peer-to-peer par exemple. Quand quelqu'un en transfère de l'argent à une autre, il publie la transaction sur ce réseau. Et puis, cette transaction sera immédiatement diffusée à tous les participants du réseau peer-to-peer. Ça s'aborte plein de problèmes. Par exemple, le réseau n'est peut-être pas fiable. Les gens ne sont pas forcément tous connectés en même temps. Personne vont essayer de l'attaquer et ils vont éviter de faire des transactions. Les transactions sont incompatibles. Certaines transactions vont être dépendantes les unes des autres et du coup, ça devient n'importe quoi. Et donc, il faut que tout le monde ait un consensus sur l'état. Et c'est le blockchain. On définissons certaines règles sur lesquelles vont être d'accord. Donc, comment bloquer les transactions ? Toutes les transactions sont sur des blocs. Les blocs dépendent des un des autres. Et les blocs représentent les états. Et l'état est la fin d'une chaîne de blocs. Ou la représentation de toutes les chaînes de blocs. Donc, nous avons notre état vide. Il y arrive des transactions. Et à un moment donné, quelqu'un va en faire un bloc qui les résume. Et donc, c'est un état. Et du coup, si je veux regarder cet état, je regarde l'état de départ. Je regarde toutes les transactions. Et quand je joue ces transactions les unes et les autres, je devrais avoir le bloc de fin. Ensuite, il arrive un deuxième, de la nouvelle transaction. C'est sur le réseau. Et ces transactions ne sont pas encore par d'un état. Et ce n'est pas encore dans un bloc. On va en faire un bloc quand elles sont ensemble. Et à partir du moment où elles sont dans un bloc, elles font partie de l'état. Et nous avons donc, et à chaque fois, chaque bloc montre sur l'état. C'est une liste chaînée sur l'état précédent. Et si on essaie de faire une transaction qui ne fonctionne pas, on a deux transactions qui sont incompatibles. Quelqu'un en fait un bloc. Et ensuite, des blocs qui contiennent des transactions incompatibles ne sont pas valides. Et donc, ce n'est pas un bloc valide. Et il ne va pas être accepté par le réseau. Et ne devient pas une partie de l'état. Et si quelqu'un a construit un bloc qui ne contient qu'une seule des transactions, donc la personne qui a construit le bloc doit décider laquelle de ces transactions est accepté et laquelle ne l'est pas. Comment elle se décide pour l'une ou pour l'autre ? Il peut le décider de lui-même. Du coup, c'est un nouvel état. Nouvelle transaction, nouvel état. Et maintenant, essaye de rajouter une transaction. La transaction qu'on a rajouté tout à l'heure, il veut l'ajouter dans ce bloc. Et du coup, ce bloc qui contient des transactions incompatibles avec les blocs précédents ne sont pas non plus valides. Et ce qui est valide, c'est de faire un autre bloc qui pointe sur le deuxième bloc. Nous avons du coup la plus longue chaîne d'état. Nous avons deux états qui sont valides. Et chaque participant au réseau doit décider sur quel bloc il va se baser. Elles arrivent de nouvelles transactions et nous sommes au bloc numéro 4. Et à partir du moment où le bloc numéro 4 existe et qui pointe sur le bloc numéro 3 du haut. Du coup, il est clair ce quel bloc il est dépendant. Et du coup, nous avons de nouveau une chaîne la plus longue et on va pouvoir continuer. Donc, cette chaîne n'a pas de preuve de travail. Et donc, du coup, elle est attaquable par une double vente. Comme Malloy veut vendre un vélo, il va chez le marchand de vélo Alice et il achète son vélo pour 1 000 euros. Ce sont des blocs qui ne vont plus montrer toutes les transactions. Je vais simplement montrer les états. Et donc, nous voyons les deux transactions d'Alice et de Malloy. Donc, il va dans le vélo, il se choisit son... Dans le magasin, il va au comptoir, il fait la transaction. Et cette transaction, il envoie cette transaction à Alice. Et elle, vu qu'elle ne font pas encore partie d'un bloc, elle ne sont pas encore par d'un état. Mais quelqu'un crée un état. Et donc, du coup, ces transactions, nous la voyons dans un état. Et Alice a reçu l'argent, elle donne le vélo à Malloy et ensuite Malloy lance l'attaque. Il fait une deuxième transaction avec le même argent. Sauf qu'il ne l'envoie pas à Alice, sauf qu'il se l'envoie à lui-même avec son deuxième compte qui l'a. Donc là, on aura un bloc alternatif qui contient cette nouvelle transaction. Et puis, là, il y aura beaucoup de nouveaux blocs qui vont se créer, qui dépendent de ce premier bloc. Et ensuite, on va voir laquelle des deux chaînes alternatives va être la plus longue pour avoir l'état actuel du réseau. Lui, il pourrait créer une très, très longue chaîne avec tous les nouveaux blocs avant de la publier sur le réseau. Et du coup, prend le statut de plus longue chaîne. Donc dans cet état, dans ce nouvel état qu'il fera froid, c'est lui qui aura obtenu l'état. Du coup, lui, il aura volé le vélo avec succès. Donc ça, ça pourrait fonctionner. Du coup, on doit trouver une manière d'empêcher Malloy de créer une chaîne plus longue. Le problème, c'est que lui, ce qu'il a pu faire, c'est que créer et rajouter beaucoup blocs dans un temps très court à la chaîne. Dans le cas d'exemple actuel, c'est très facile de créer des nouveaux blocs à la chaîne. Donc ce qu'on va dire, c'est que pour chaque nouveau bloc qui est créé, qui a ajouté à la chaîne, on doit résoudre un challenge, on doit résoudre le problème. Et puis que pour remplir ce challenge, on fait ce qu'il nous faut, c'est investir du temps. Donc la solution qu'on a adoptée dans les blockchain, c'est le proof of work. Donc ce qu'on fait, c'est ce qu'on appelle le mining. Donc on dit que pour chaque nouveau bloc, on doit publier le proof of work pour prouver du coup qu'on a fait le travail et seulement les blocs qui auront le proof of work seront reconnus par le reste du jetteur du réseau. Donc un bloc ne se crée pas simplement comme ça. Un miner devrait vraiment travailler à créer un nouveau bloc. Donc généralement, ce ne sont pas des miners qui vont travailler tout seul un bloc. Donc quand un miner rajoute des transactions à son bloc, à un certain moment, il va réussir à finir le bloc, donc à résoudre le problème du proof of work. Et ensuite, il va publier ce bloc sur le réseau avec le proof of work qui correspond. Et ensuite, ça continue comme ça. Et maintenant, qu'est-ce qu'on a besoin pour rendre difficile la création de blocs? Donc cette fonction est de remplir quelques conditions. Elle va être difficile à résoudre. Ça doit aller long à faire, mais ça va être très facile aussi de vérifier la solution du proof of work. Donc trouver la solution doit être coûteux en temps, mais vérifier la solution doit être très peu coûteux en temps. Et c'est ensuite important que la fonction dépend exactement du bloc pour lequel elle a été réalisée. Donc pas qu'une fonction puisse être valide pour plusieurs blocs, il doit être valide pour qu'un seul bloc. Donc, par exemple, il pourrait que Malroy, il ait déjà créé d'avance, il se met dans l'avance plusieurs proof of work pour des blocs pour ensuite pouvoir créer sa chaîne malicieuse. Mais si le proof of work est vraiment dépendant d'un bloc unique, ce ne sera pas possible de calculer d'avance, de résoudre par avance le proof of work. Malroy doit être obligé d'attendre aussi longtemps pour commencer son proof of work le dernier bloc et ajouter à la chaîne. Il faudra aussi que la difficulté du problème puisse être variable, afin que le système puisse fonctionner de manière prévisible. Il faudra bien savoir d'avance à quel moment une transaction que j'ai faite sera aussi rentrée dans la chaîne. Donc, s'il y a peu de gens qui versent pour résoudre, je vais pouvoir adapter la difficulté du proof of work. Maintenant que le mining n'est plus facile, on doit avoir un incentif aussi pour le mining, pour que les gens se voient résoudre. Nous, ce qu'on dit, c'est que le miner qui arrive à rajouter un bloc, il reçoit une récompense, le bloc reward. Et puis on va noter ça. Le miner a le droit de packager une transaction supplémentaire dans le bloc, transaction dans laquelle lui donne l'argent venant du néant. Par exemple, ce qu'il peut dire, c'est que ça dépend, on pourra dire que c'est le coût des transactions des autres blocs. Ou alors, on rajoutera vraiment cet argent du riant. Il faut avoir une possibilité de rajouter du système dans la chaîne, sans qu'il y ait une autorité qui contrôle l'ajout d'argent. Il faut trouver des solutions qu'on puisse leur ajouter de manière sécurisée. Cette transaction supplémentaire va rendre le bloc individuel, évidemment parce que chaque miner va vouloir s'attribuer à l'argent à lui-même. Cette transaction unique sera différente pour chaque miner qui a essayé de résoudre le bloc. Et ça, c'est sûr que chaque miner a un problème un petit peu différent, parce que si chacun essaie de résoudre exactement le même problème, il y aura toujours celui qui aura le plus de processeurs à disposition qui arriverait à résoudre le problème. Et du coup, il y aura toujours la même personne qui crée le bloc. Et le bloc, c'est justement ce qu'on veut éviter, parce qu'on veut éviter qu'il y ait une seule personne qui puisse gérer tout le blockchain et pouvoir faire la censure. Donc maintenant, grâce à ce système, ça arrive aussi parfois qu'il y ait des personnes avec moins de pouvoir qu'on va être stationnelles qui arrivent à résoudre le pro-fork. Donc dans ce, dans le bas 20% des puissons à calcul, ils arrivent une fois sur cinq à obtenir comme le bloc reward. Maintenant qu'on a vu tout à l'heure, la chaîne peut avoir plusieurs bouts, mais chaque miner va avoir son reward, qui a une transaction qui fera partie de l'état final, qui sera un bloc de la plus grande chaîne. Du coup, ce qui va finalement encourager chaque miner à rajouter des blocs à la plus longue chaîne déjà existante et pas essayer de forquer la chaîne. Donc là, on a expliqué comment on peut éviter le double spend de tout à l'heure. Donc le scénario est toujours le même, donc Maleroy veut encore toujours voler son vélo. Et Alice. Et la différence, c'est qu'il y a maintenant le pro-fork, donc le réseau doit travailler pour créer des blocs. Et Maleroy va nouveau créer deux tradactions, une où il vire l'argent Alice, qui publie dans le réseau, qui est la fin qui peut servir par tout le monde. Et ensuite, une deuxième transaction, où il se vire l'argent à lui-même. On va finaliser le bloc d'avant. Le réseau va ensuite commencer directement à résoudre le problème pour le bloc suivant. Et le réseau contient dans le bloc de la transaction de Maleroy et Alice, parce que c'est le seul bloc publié. Maintenant, Maleroy travaille tout seul pour essayer de créer le bloc alternatif, où c'est sa transaction qui se vire l'argent à lui-même et qui sera dedans. C'est comme ça que le réseau global a plus de puissance et calcul que Maleroy tout seul, qui n'aura probablement pas tant d'ordinateurs à la maison. Et c'est pour ça que le réseau sera toujours plus rapide pour créer un nouveau bloc que Maleroy. La chaîne de Maleroy ne deviendra jamais la plus grand chaine et ne sera donc jamais partie de l'état final. La seule façon que Maleroy pourrait gagner, puisqu'il puisse quand même mener l'attaque à bien, donc s'il pouvait faire un bloc plus rapide, la seule façon pour lui, ce serait de faire un bloc plus rapidement que le reste du réseau. Ce qu'il ferait, c'est au moins 50% de la puissance de Gacule du réseau global. Donc c'est plus fort que la moitié de tous les autres miners du réseau. Donc chez les Bitcoins ou toutes les autres crypto-heures, on a une puissance de calcul tellement phénoménale que ça ne risque pas d'arriver. Donc il y a un deuxième attaque un peu plus difficile. C'est l'attaque du réseau de Père à Père et pour voir bloquer les blocs de transactions et de bloquer la transfert. Donc Maleroy va essayer de vendre une voiture et pour se faire, il va essayer de casser la transaction de contrôler la connexion de Bob avec le reste du réseau. Nous voyons donc Bob, donc soit il contrôle la connexion internet de Bob ou alors il contrôle les trois nœuds avec lesquels Bob est connecté. Donc du coup, ça voudrait dire qu'il n'y aura pas de discussion. On peut lui comprendre et Maleroy a quelques possibilités pour contrôler. Il peut aussi contrôler quelles blocs et quelles transactions Bob va voir et donc il va pouvoir faire semblant présentation à Bob et va faire croire à Bob qu'il est parti du réseau alors qu'il ne l'est pas. Donc voici l'attaque. On voit à gauche ce que le réseau se voit et à droite ce que Bob voit. Nous voyons jusqu'à présent, c'est la même chose. Maleroy achète la voiture, il fait la transaction, il en fait une pour transmettre l'argent à Bob et il en va uniquement à Bob et la planque du réseau, la cache au réseau et la deuxième, il se transmet l'argent à lui-même et celle-ci, il la publie sur le réseau. Le travail sur le prochain bloc commence et donc avec la transaction de Maleroy et Maleroy et Maleroy tout seul crée un nouveau bloc et il crée un deuxième bloc pour Will le crée de l'envoi de l'argent à Bob. Bien sûr, le réseau a plus de puissance donc il va continuer la chaîne et Bob croit toujours, Bob voit le bloc sur lequel sa transaction est et il ne le voit pas. Et donc le réseau ne connaît que la transaction que Maleroy Maleroy regarde en fait ce crée de la transaction de Bob et donc ne pas encore transférer la transaction à Bob ce qui fait que Maleroy lui pense encore qu'il a eu sa transaction après ensuite ce qu'il se passe c'est que c'est un nouveau bloc qui sera rentré donc le bloc malicieux que Bob, enfin que Maleroy aurait pu injecter dans la blockchain qui sera celui qui fera foi c'est qu'au moment où il sera rentré dans la blockchain que Maleroy en fait aura le feedback qui lui dit que en fait c'est pas la transaction que lui pense à avoir qui a passé donc c'est pas du tout bien que cette attaque fonctionne donc cette fois ça fonctionnait mais Maleroy a dû travailler parce qu'il a dû créer ce bloc qui lui a pris du temps donc c'est plutôt la puissance de calcul donc ça on ne veut pas prendre en compte ses réactions ici ce qu'on veut voir c'est le temps qu'il aura dû dépenser parce que Maleroy a un ordinateur qui crée, enfin qui utilise pour créer des blocs et cet ordinateur ne peut faire qu'une chose en même temps donc à la fois il va créer un faux bloc pour Bob ou alors il va créer des vrais blocs pour la vraie chaîne donc ça ça fait que c'est beaucoup plus cher de faire cet attaque parce qu'il faudra à la fois résoudre en fait le problème du faux bloc pour Bob et le vrai bloc pour la chaîne donc nous on va dire que par exemple pour l'équition de délais pour notre réseau de tests on aura un nouveau bloc qui doit être créé toutes les 20 minutes et puis le bloc reward est de 1000 euros donc quand on dit que 100% de la puissance des calculs c'est à dire toutes les deux minutes un nouveau bloc Maleroy fera lui tout seul si le 10% il fera un bloc toutes les 15 minutes lui tout seul mais si maintenant Maleroy fait du mining pendant le temps de 50 minutes plutôt que d'essayer d'attaquer Bob il aura plus de regards que ce qu'il pourra gagner en attaque en bêtement Bob donc soit il peut aller gagner une voiture une voiture à 20 000 euros ou sinon il peut mining et puis il reçoit 1000 euros donc ça n'est pas intéressant pour lui la meilleure temps de voler mais c'est pour ça qu'on a écrit un nouveau système donc on dirait que Maleroy il n'aura pas la voiture dès que le bloc est rentré mais on attendra encore un petit moment on regarde, on voit sur le côté droite que la tendaction fait partie de l'état et à ce moment-là Bob il donne pas encore la voiture à Maleroy seulement qu'il y a que bloc plus tard il attend toujours et chaque bloc supplémentaire que Maleroy doit créer pour convaincre Bob que c'est vraiment la vraie chaîne donc Maleroy doit passer encore 50 minutes et à chaque fois se l'écouter 1000 euros donc Bob dit qu'il attend 24 blocs avant que je vais donner la voiture physique à Maleroy et c'est pour ça que à ce moment-là l'attaque lui donne un plus cher pour Maleroy que si il avait fait du mining pendant le temps et c'est en salle que Maleroy peut enfin ça empêchera pas Maleroy de réaliser l'attaque mais par contre ça se viendra moins intéressant pour Maleroy de faire l'attaque plutôt que faire du mining et ça va lui coûter plus cher, ça va lui coûter plus cher que la voiture donc maintenant j'ai beaucoup parlé sur les concepts génériques de la blockchain donc vous allez voir comment s'est implementé en blackline ou moins quelque chose regardons les blocs dans la formatique on aime bien finir des des fines à des haideurs on a des protocoles, des messages, des formats de nez des contenus et les haideurs enfin contiennent des méta de nez donc blockchain le corps d'un bloc contient toutes les transactions qui sont dans un ordre précis les manœurs doivent soutenir à quelques règles des transactions une transaction B qui dépend de transactions A quand elles sont dans le même bloc elles doivent être dans la même dans la ordre bien ordonnée et cet ordre est important donc la première transaction est toujours la transaction Coinbase avec laquelle le mineur se prend sa reward sur les compenses et donc pour joindre le corps avec le body, avec le header c'est un aprobinaire dans lequel chaque nez et le hache décompte des vertes concatenées des valeurs concatenées donc presque partout où il y a un bitcoin hache il y a c'est un DH ils appellent ça comme ça c'est un chat double 256 donc pour chaque transaction le hache et ensuite on commence à les joindre donc la partie des notes vertes va y avoir des nez bleus et on en fait le hache on en fait à chaque étape un seul hache et donc ça est parti dans le bloc adar dans le bloc adar donc la première c'est un nombre avid très que les développeurs vont changer de temps en temps quand ils pensent que c'est temps pour ça ensuite il y a l'âge du précédent les blocs référence toujours un autre bloc donc c'est toujours le bloc précédent donc ça c'est pareil c'est le double hache comme nous avons gaisé il y a aussi un timestamp avec différentes règles donc c'est le timer plus ou moins mais avec différentes règles ensuite il y a la difficulté c'est pour prouver quelle a été la difficulté de calcul quelle valeur est utilisée pour le mining donc la proof of work dans bitcoin c'est rien d'autre que le hache du bloc qui doit remplir une certaine condition qui doit commencer avec un certain nombre de zéro en trailing donc on va commencer avec le adder du bloc on va faire le double hache de ce adder de bloc et les premiers x bits de ce bloc vont être à zéro et le nombre de bits qu'ils doivent être à zéro c'est justement cette variable de difficulté donc si je dois avoir plus de zéro pour commencer ça doit être plus difficile parce qu'il faut trouver un hache avec beaucoup de zéro trailing et le mining va fonctionner de cette manière que le miner va prendre le adder va faire un double hache il va vérifier s'il remplit la condition oui non si oui il va incrementer le non il va nouveau faire le hache voir si oui non ça fonctionne jusqu'à ce qu'il incrémente il réessaye jusqu'à ce qu'il aille finit par trouver un hache qui remplisse les conditions de difficulté donc avec l'incrémentation du nonce c'est possible qu'il n'y ait pas de pouvoir correspondant parce que le champ de nonce est assez court donc dans ce cas le miner va changer la coinbase transaction donc qui contient l'input de transaction pour définir de où vient l'argent de transaction c'est la coinbase snap pas parce que justement la coinbase créer la valeur n'est pas une vraie transaction entre deux parties est une création d'argent depuis le néant du coup il peut en fait mettre n'importe quelle valeur dans l'idée de transaction originale et là il peut changer justement complètement il peut mettre une valeur arbitraire qui lui permettra à ce moment là qui remplit la condition de difficulté donc maintenant pour vérifier si c'est un bon proof of work on prend le block header on fait le hache et on regarde si ça fonctionne donc le réseau bitcoin essaye de créer un nouveau block toutes les 10 minutes et pour que ce temps soit toujours constant la difficulté est adaptée toutes les deux semaines pour le moment c'est toutes les deux semaines qu'il est adapté avec un algorithme qui trouve à quel point il faut adapter la difficulté en fonction de la vitesse actuelle du réseau et la transaction coinbase c'est là avec le qui le mineur se verse d'argent elle a dans le bitcoin deux choses donc c'est les transaction fees donc le coût de la transaction pour chacun et aussi d'autre côté il y a d'autres côtés des nouveaux bitcoins qui peuvent venir au début c'était 50 bitcoin par block c'est plus ou plus d'ennemis donc cette valeur elle se divise toutes les quatre ans donc cet été c'est passé, ça a été divisé par deux la valeur de nouvelles argent qui peuvent créer par block donc maintenant on va encore voir qu'on peut faire des clients légers bitcoin c'est donc il y a un autre complet c'est quelqu'un qui a la toute la chaîne l'intégralité de la chaîne blockchain qui vérifie chaque transaction rentrante qui valide chaque client et aussi il va cider les blocks qu'il a sur le réseau donc si quelqu'un a envie d'avoir un block il va donner le block à un autre plat du réseau donc il y a des clients pruning donc elle a gage donc il va vérifier toutes les transactions et tous les blocks mais ne stock pas toute la blockchain mais coût il trouve qu'un block il va juste en faire l'élagage de la chaîne il va enlever des blocks donc ça évite d'avoir beaucoup d'espaces d'espaces de gages donc les besoins depuis sans égacules sont identiques aux blocks complets mais par contre les besoins d'espaces d'espaces de gages sont plus faibles à la fin il y a encore les clients légers qui peuvent aussi fonctionner par exemple sur un device mobile donc les clients légers ils téléchargent les headers de tous les blocks donc on a vu que le pro-block est le H du header de block c'est-à-dire que pour vérifier un pro-block on n'a pas besoin de tout le block on a besoin du header et la même chose est vrai pour la liaison des blocks entre eux parce que la valeur du block précédent est aussi marquée dans le header donc pour vérifier il a continué de la chaîne donc on peut en faisant ça créer la plus longue chaîne enfin vérifier la plus longue chaîne du réseau en ayant chargé que les headers donc le gain est énorme pour le moment il y a à peu près 450 000 blocks qui ont besoin de plus qu'un an 5 gigas de place pour avoir un neuf plan donc sur un smartphone c'est très complètement ridicule mais par exemple juste les blockaders des 450 000 ça passe dans moins que 100 megabytes donc c'est encore tout à fait possible pour un device mobile donc le deuxième concept c'est c'est parce qu'encore plus intéressant c'est le mec de route et avec ça je peux prouver qu'une transaction est effectivement partie de l'état et la possibilité c'est de construire la branche de mercle de la reconstruire c'est de c'est donc de reconstruire l'arbre et lorsque je veux prouver qu'une transaction fait partie cet arbre il me faut pour simplement prouver Dan je n'ai pas besoin de connaître toutes les transactions il me suffit en fait finalement de tout le chemin pour une transaction donnée il n'y a plus un côté de l'arbre qu'une branche de l'arbre qui mène à la transaction donc on va remonter de l'âge en hache de vérifier les haches jusqu'à ce qu'on arrive finalement aux nœuds de l'arbre qui nous intéressent et on pourra vérifier cette transaction la vérifier qu'il faut être bien partie du block donc c'est aussi quelque chose qui présente des avantages parce qu'on a besoin de moins d'informations pour vérifier un block et simplement aller télécharger donc ici on prend par exemple un block avec 1600 transactions ce qui est aujourd'hui assez commun aujourd'hui pour valider on n'a pas besoin de 1600 transactions des transactions depuis la blockchain mais il suffit de télécharger une seule transaction et ensuite de calculer tous les haches afin de remonter en haut de l'arbre de Merkel donc c'est comme ça que fonctionne un client léger un client simple payment verification dans le papier original de Bitcoin comment ça fonctionne tout ce qu'il doit faire pour montrer qu'une transaction est rentrée c'est qu'il télécharge tous les blockadeurs comme on a discuté il construit la plus longue chaîne ensuite il charge une transaction juste la branche d'un arbre de Merkel et pour montrer qu'il a reçu cet argent donc il télécharge juste une transaction pour montrer qu'il a reçu l'argent et ensuite il peut montrer que cette branche de Merkel est effectivement liée à la plus longue chaîne et à ce moment là il a la preuve que j'ai effectivement l'argent maintenant encore un peu plus de temps que prévu donc j'ai encore essayé de montrer les clients de la gage donc comment les transactions Bitcoin fonctionnent donc nous on est habitués qu'on a un compte en banque et qu'il se compte à un propriétaire en principe moi qu'il y a un sold et puis que quand je fais une transaction le solde va changer par exemple si j'achète quelque chose mon solde va du mieux donc dans le Bitcoin ça va être différent on a pas un compte on a ce qu'on appelle un unspent transaction output donc on voit que Alice a cinq unspent transaction output donc qui ont chacun un montant disponible et le montant on peut pas être changé c'est fixe maintenant si Alice aurait bien fait une transaction avec Bob par exemple si elle aurait bien transféré 42 Bitcoins ce qu'elle va faire c'est créer une transaction pour dire 42 Bitcoins devrait être transférée à Bob maintenant il faut qu'elle aille l'argent de quelque part par exemple c'est 3 transaction output et on peut pas changer le montant des transaction output il faut qu'il les dépense entièrement Alice a obligé de le dépenser à 100% maintenant tout ceci les 3 ensemble ça fait 44 et pas 42 Bitcoins ce qui veut dire qu'il y a trop d'argent de ces transactions donc Alice va donner trop de transaction output que ce qu'elle voulait transférer d'argent à Bob mais que peut faire Alice du coup elle va faire un deuxième output de la transaction où elle vire en fait l'argent à elle-même donc une transaction Bitcoin peut avoir autant d'input et d'output qu'on veut ce qui est encore à dire c'est qu'on avait toujours une différence parce qu'on a 44 Bitcoins la transaction qui prend 3 et 43 qui sortent le Bitcoin résiduel qu'elle ne dépensera pas c'est justement la transaction fee que le miner recevra que recevra le miner qui aura miné cette transaction qui aura pris cette transaction dans son bloc maintenant Alice qui a des nouvelles transactions output donc il y en a un qui va partir à Bob l'autre qui va partir à Alice et maintenant ce qui les transactions output qui Alice a utilisé il va partir à d'autres transactions donc un transaction output il peut avoir deux états il peut être dépensé ou il peut être non dépensé donc on peut évidemment que dépenser ceux qui ne sont pas encore dépensés donc si on veut savoir combien j'ai d'argent combien Alice a d'argent en fait j'ai cherché dans tous les transactions output ensemble qui appartiennent à Alice et puis faire la somme de ceux qui ne sont pas encore dépensés du coup on saura là qu'on connaîtra le seul d'Alice et ça je peux le faire pour chaque participant du système qui a combien maintenant si je regarde tous les transactions output qui ne sont pas encore dépensés j'ai le solde actuel du réseau complet Bitcoin donc je sais pour chaque participant du réseau combien cette personne a et je connais le solde complet du réseau et c'est ce mécanisme qui fait qui rend un client délagage utile parce que il n'y a pas besoin de stocker tout le blockchain donc en fait s'il y a une nouvelle transaction qui rentre moi je dois juste et voir si j'ai envie de s'arrasser les pays moi je dois juste voir si elle sort un output qui n'est pas encore dépensé si la transaction elle donne que résultat un transaction output qui est déjà dépensé et elle n'est bien sûr pas valide parce qu'on ne peut justement pas dépenser deux fois le même argent donc et la même chose c'est la sortie un transaction output qui n'existe pas donc maintenant un full node quand il y a une nouvelle transaction qui rentre si c'est marqué que moi je dépense cette transaction ad donc le full node il va pas non plus essayer de remonter les 100 derniers gigabytes de la blockchain ça serait complètement débile d'ailleurs parce que on a une banque de données avec tous les transactions output du coup il se dit que pour chaque transaction output qui n'est pas dépensé il va voir où c'est qu'on en est donc c'est en rentrant et valide il va enlever les transactions output que ces transactions à dépenser et enlever donc ces transactions output qui ne servent à plus rien de la base de données ce qui fait que le client complet garde que l'état il parle la trace de tous les anciens trucs dépensés donc le premier client il dit que c'est plus besoin de tous les anciens blocs parce qu'ils sont déjà dans l'ancienne chaîne donc il aura quand même ce café parce qu'il pourrait y avoir une longue chaîne qui vient depuis derrière donc il faut quand même qu'il garde quelques blocs que juste le dernier bloc il peut pas effacer tous les anciens mais toujours est-il il peut utiliser beaucoup beaucoup d'espaces de stockage mais il faut quand même que le client dès la gage garde chaque transaction enfin il est téléchargé une fois chaque transaction qui n'a jamais existé vérifier chaque transaction qui en dès la gage ne seront pas adaptés à des mobiles donc ce qu'on peut encore dire ici c'est ok donc j'ai dit que Alice donne un transaction output dépense un transaction output c'est en réalité assez compliqué c'est une improvisation compliquée en bitcoin donc un transaction output une pièce, enfin un boot code en fait chaque transaction output a une espèce de langage assembleur propriétaire et la sortie du système a aussi un autre boot code et en fait quand ces boot codes sont exécutés il faut que ça donne une valeur correcte à la fin seulement si c'est la valeur correcte qui est donnée ça sera valide c'est assez compliqué c'est un langage de code propriétaire à bitcoin et en fait on peut faire pas mal de choses et à peu près 80% des cas sont des comment ça s'appelle la règle dit que quelque chose comme pour pouvoir donner cette sortie il faut que tu prouves que tu connais la clé secrète du H que je te donne maintenant et que cette sortie te dit effectivement oui je connais cette clé secrète et je te prouve entre le donnant la clé publique et la transaction avec la clé privée je signe avec la clé privée et quiconque veut voir si la transaction est valide va prendre le H, va prendre la clé publique et va pouvoir vérifier la signature de la transaction c'est la façon la plus simple d'utiliser c'est de faire fonctionner c'est relativement compliqué mais là dessus on pourrait en faire une propre présentation voilà j'ai en resté là sinon j'ai fabriqué une pâche régulate c'est beaucoup trop loin alors je me trouvais ou pas searching please wait j'ai trouvé incroyable j'ai encore un peu de temps pour les questions j'ai encore envie de savoir quelque chose je peux aussi me joindre par le texte oui c'est des questions j'ai trouvé aussi un end-out dans le Farcon le slide et puis moi j'ai encore uploadé le slide moi-même c'est encore, il y a encore un petit peu de temps donc il y a des temps pour les questions si vous avez des questions donc allez au microphone et si vous voulez sortir soyez, ne soyez pas trop bruyants pour qu'on puisse comprendre les questions chers anges aux portes on ne laisse personne rentrer les gens ne peuvent que sortir et faites ça en silence s'il vous plaît si on le signale une question internet à propos du manager middle double spending est-ce que Mallory pourrait pas faire ça est-ce qu'il pourrait pas faire ça avec la même blockchain dans le même bloc et voler 10 voitures et du coup ce serait toujours pareil même si il faut mettre le prix de voitures dans la valeur de calcul ça c'est une bonne question une bonne idée que j'ai pas encore eue il faut que j'y repense mais ça devrait fonctionner en principe mais derrière ce serait beaucoup plus gros pour contrôler tous les nœuds du réseau je pense que c'est pas non plus ça devrait pas être un argument pour la sécurité du système mais je pense que ça pourrait fonctionner on continue avec le 1 et le 2 avec une attaque de 50% on peut en principe attaquer les blockchains si maintenant on était une organisation avec beaucoup de moyens par exemple est-ce qu'il a une idée à quel point c'est probable avec la puissance de calcul actuel du réseau ça paraît peu probable aujourd'hui le net du bitcoin a un grand multiple de la puissance de calcul des plus grands super calculateurs aujourd'hui c'est comme ça que les mineurs soient répartis maintenant c'est en réalité devenu un business aujourd'hui beaucoup de mining est fait en chine la chine a plus que 50% de la puissance de calcul du bitcoin donc finalement notre monnaie indépendante appartient aux chinoises qui ne devraient pas aujourd'hui ce qui ne devrait pas exister c'est que tout le hardware dédié au mining est créé en chine et ce qui veut dire que les autorités chinoises pourraient très bien aussi saisir tout le matériel de mining à ce moment-là ils auraient plus que 50% de la puissance de calcul donc nous continuons avec le microinfant numéro 1 il faut apporter la puissance de calcul et il y a d'autres alternatives est-ce qu'on peut changer est-ce qu'on peut changer qu'il faut toujours avoir la puissance de calcul maximale il y a eu plusieurs possibilités au fur et à mesure de l'évolution la première chose qu'on a essayé ça a été de ne pas essayer sur la puissance de calcul mais il faut aussi beaucoup de RAM, il faut aussi de mémoire et ça rend beaucoup plus difficile de fabriquer du hardware qui est spécialisé là-dessus on a essayé mais en fait on a exactement le même problème Ethereum travaille à un concept qui est la proof of stake je ne peux pas dire exactement comment ça fonctionne mais je pense mais les chances que tu fabriques un bloc font partie de combien d'argent tu possèdes dans la chaîne et tu n'as plus besoin de hardware pour m'aîner en fait et ça va être changé cet été j'ai perdu ça un peu de vue et donc je ne peux pas dire exactement comment ça fonctionne et c'est la proof of stake c'est dans Ethereum mais comment ça fonctionne et à quel point ça en est je ne peux pas encore te le dire je vais continuer avec le micro 4 j'ai posé deux questions pourquoi on ne mettraient pas des registres publics dans le blockchain la question est pourquoi on ne mettraient pas des registres publics comme un registre foncier dans la blockchain pour répondre à la première question il y a des gouvernements qui ont fait des travaux de recherche qui ont des groupes de recherche qui regardent comment les blockchains pourraient aider le gouvernement et donc tels systèmes ont besoin de grandes adaptations par exemple si on regardait un registre foncier si quelqu'un réussissait à quand même voler une parcelle malgré le système blockchain et que cette nouvelle parcelle serait entrée dans cette nouvelle blockchain comment le ferait rétroactif parce qu'aujourd'hui le fils du registre foncier peut tout simplement régler une inscription et adapter une inscription sinon le blockchain serait beaucoup plus dur de faire des transactions rétroactives il faudrait qu'on implemente des nouveaux localités dans cette blockchain afin que ce soit quand même possible mais du coup ça crée des failles de sécurité parce qu'il y aura quand même quelqu'un qui a une autorité sur la blockchain mais je pense que même que blockchain par exemple le registre foncier pourrait aider les offices du registre foncier donc pour les offices publics je pense aussi qu'il y aura une espèce de solution hybride donc il serait public dans une blockchain mais ce qui compte vraiment c'est encore toujours dans des registres donc dans le registre foncier et qui continuera d'être vraiment c'est-à-dire qu'il faudrait être administré comme aujourd'hui jusqu'à ce que ce soit vraiment facile pour eux donc comme on a répondu à la question il s'en relève plus on vous en a à la question Microphone 7 donc merci pour prendre une façon très intéressante je vais savoir plus dans la fin du bitcoin pour autant que j'ai compris c'est limité et comment est-ce qu'on va créer de nouveaux blocs et si on récupère plus d'argent du coup la récompense ne fonctionne pas, ne fonctionne plus c'est une excellente question qui s'est posée cette semaine puisque la tasse est bleue ça s'est encore divisé par deux et le mécanisme qui devrait être activé c'est celui des transaction fees donc des frais de transaction sauf qu'aujourd'hui les frais de transaction sont tellement petits que ça ne vaut pas le coup de créer le bloc ça prend plus de courant que ce qui rentre en transaction de frais et sinon ils sont relativement hauts entre temps ça revient à peu près au genre de frais qu'on a dans les frais de carte de crédit et c'est beaucoup trop il y a une limite de nombre de blocs et sur une grosse guerre est-ce qu'on devrait l'enterrer, est-ce qu'on devrait continuer mais ça ne marche pas, mais il n'y a plus de transaction qui rentre dedans et du coup la seule possibilité c'est d'avoir plus de frais de transaction pour les miners mais du coup ça ne vaut pas le coup pour bitcoin, d'utiliser bitcoin donc c'est un problème et on a encore 4 ans ce sera 12 bitcoin et demi mais ensuite il va falloir voir ce qui va commencer à passer et je pense que c'est un système dynamique qu'il va encore y avoir des gens qui vont avoir des bonnes idées donc la proof of work n'est pas le bitcoin que je récupère c'est pas exactement ce que je deviens l'argent que je prends c'est pas le proof of work non, c'est pas tu récupères 12 et demi plus ce que tu récupères des transactions c'est les blocs reward le proof of work et la récompense sont deux choses différentes la proof of work c'est pour prouver que tu as effectivement fait le travail on va continuer qui est donc micro 8 donc la création de tous les blocs ce base que des transactions rentrent dans le système donc la question c'est qu'est ce qu'il se passerait s'il n'y avait pas de transaction en fait à disposition est ce qu'on mettrait des blocs vides qu'est ce qu'il se passerait donc non, ça tu peux voir si tu regardes les premiers blocs qui n'ont jamais été créés là où il n'y avait pas encore de transaction parce que qu'est ce qui aurait bien pu être viré c'est encore personne à l'argent donc c'était comme ça que le bloc contenait la transaction Coinbase comme la seule transaction qui bloc était la transaction Coinbase donc le miner qui rajoutait un bloc il avait des frais Coinbase donc on va continuer avec le numéro 2 on fait la carte merci j'ai entendu parler de blockchain dans plusieurs contextes et j'en ai vu beaucoup de choses c'était un buzzword dans beaucoup de branches comme par exemple la fintech mais est-ce que tu pourrais expliquer un petit peu le contexte de ton travail ou est-ce que ça pourrait vraiment être utile la première application c'est Bitcoin tu peux payer avec mais c'est une chose ce que j'ai vu sinon ou je ne... j'ai entendu dire que les banques essaient de l'utiliser comment est-ce que ça fonctionne les transactions entre les banques pour les régler ça doit y avoir une salgée une présentation là-dessus pour voir comment les banques échangent de l'argent ils pourraient faire ça avec Bitcoin les banques sont prêtes à investir beaucoup de l'argent et de temps et c'est une technologie relativement cool qui pourrait être utilisée mais je pense que c'est une utilisation qui va venir une crypto de vise c'est au niveau des marchés des tiers pour régler des problèmes entre les tiers c'est... je ne sais pas ce qui va réussir à avoir la première qui va réussir à percer le premier et être utilisée en premier là on est presque au temps mais tout est encore le droit de poser ta question petite question est-ce qu'il y a une protection contre le D2 que je pourrais par exemple bombarder le réseau avec des fausses en action ok il y a passé une année qui arrivait chez Bitcoin donc ils n'étaient pas complètement sûrs dans la communauté ils n'étaient pas tout à fait inanimes sur comment ils allaient réagir ils ne savaient pas si c'était vraiment un test ce qui est intéressant c'est que ça coûte l'argent de créer une protection donc en fait toi tu vas payer un fit en action et la protection sera simplement heureusement que ça serait trop cher de faire un D2 mais apparemment il y a quand toujours assez de millionnaires en Bitcoin qui ont des bitcoins à encrever et qui peuvent en faire ce genre de choses et on travaille il y a des mécanismes de protection mais ce qu'il y a maintenant base by fee donc les frais de transaction peuvent être augmentés après la transaction donc s'il y a beaucoup de D2 on pourrait augmenter par après encore le coût des transactions pour encore décroger plus fort les D2 donc le RPF, le Replace by fee est beaucoup discuté en communiqué et souvent pas appliqué par les clients merci pour cette introduction à la blockchain donc c'est la fin de cette transaction