Google Cloud annonce l'ajout de 11 blockchains à BigQuery. Cela promet de stimuler l'innovation dans le secteur crypto.
L’article Google Cloud ajoute 11 nouvelles Blockchains à son service est apparu en premier sur Cointribune.
Google Cloud annonce l'ajout de 11 blockchains à BigQuery. Cela promet de stimuler l'innovation dans le secteur crypto.
L’article Google Cloud ajoute 11 nouvelles Blockchains à son service est apparu en premier sur Cointribune.
Les marchés financiers ont démarré l’année 2023 sur les chapeaux de roue avec une performance positive étonnante sur les actions des secteurs les plus offensifs en bourse. Quant au marché crypto, il s’est offert un petit rebond, dans un volume en revanche réduit. Le risque désormais est que tous ces mouvements soient pris à revers par une déception sur les chiffres de l’inflation US.
L’article Bitcoin (BTC): la clef fondamentale, c’est l’inflation US ! est apparu en premier sur Cryptoast.
L’Ethereum (ETH), sous le contrôle des acheteurs, est actuellement proche d’une résistance critique. Cependant, il semble que cette pression haussière diminue.
L’article Ethereum (ETH) : Les acheteurs commencent à perdre en force est apparu en premier sur Cointribune.
L’autorité des télécommunications du Népal a ordonné aux fournisseurs d’accès à Internet (FAI) de bloquer toute activité liée aux crypto. Cette déclaration du 8 janvier intervient à la suite de nombreuses restrictions déjà faites auparavant. L’autorité met en garde quiconque tenterait de se livrer à ces activités. Malgré cette interdiction, le Népal se classe parmi les pays ayant une forte adoption des cryptos.
L’article Le Népal ordonne de bloquer les sites Web liés à la crypto est apparu en premier sur Cointribune.
Le leader des cryptos commence l’année sous la main des acheteurs, avec une hausse de 5 %. Cependant, le prix se trouve actuellement proche d’une zone de résistance critique. Peut-on envisager une baisse potentielle sur le Bitcoin (BTC) ?
L’article Une baisse potentielle sur le Bitcoin (BTC) ? est apparu en premier sur Cointribune.
Les autorités de l’Utah ont découvert de mystérieuses antennes sur les contreforts de la région de Salt Lake City. S’agit-il d’antennes appartenant à un réseau blockchain ?
L’article De mystérieuses antennes cryptées découvertes dans les montagnes d’Utah est apparu en premier sur Cointribune.
Les hackers volent tout le monde, riches et pauvres, grandes entreprises ou particuliers sans concession. À de très rares exceptions.
L’article Les hackers ont-ils parfois du cœur ? est apparu en premier sur Cointribune.
L’Ethereum (ETH) continue son rallye de début d’année, avec une hausse de presque 13 %. Le prix va-t-il franchir le dernier obstacle à court terme ? Découvrez cette analyse.
L’article L’Ethereum (ETH) poursuit son rallye de début d’année ! est apparu en premier sur Cointribune.
La semaine passée, le 6 janvier, la chaîne YouTube All-In Podcast a diffusé un nouvel épisode de son émission. Le milliardaire Chamath Palihapitiya est intervenu durant l’émission pour notamment parler du nouveau chatbot basé sur l’intelligence artificielle (IA). En effet, il a présenté ChatGPT, lancé il y a pratiquement deux mois, comme un outil innovant. Selon lui, celui-ci pourrait aisément concurrencer le géant du Web.
L’article Un investisseur milliardaire prédit la dégringolade du géant Google ! est apparu en premier sur Cointribune.
Holoride, une start-up financée par Audi a lancé un gadget qui permet d’utiliser la réalité virtuelle dans tous les véhicules.
L’article Holoride apporte la réalité virtuelle dans votre véhicule est apparu en premier sur Cointribune.
En partenariat avec SpaceX, Cryptosat a envoyé Crypto2 en orbite le 3 janvier. Une bonne nouvelle pour la communauté crypto !
L’article Crypto2 en orbite depuis le 3 janvier ! est apparu en premier sur Cointribune.
Depuis une semaine, la reine des cryptos a suivi une droite de tendance haussière. Cependant, une pression baissière s’est installée depuis mercredi. Ce qui pourrait freiner l’élan haussier sur le cours du Bitcoin (BTC), depuis le début de l’année.
L’article L’élan haussier actuel sur le Bitcoin (BTC) se poursuivra-t-il ? est apparu en premier sur Cointribune.
Satoshi Nakamoto a conceptualisé Bitcoin en 2008 et a inventé au passage un algorithme de consensus novateur fondé sur la preuve de travail. Ce dernier permet aux nœuds du réseau pair-à-pair d'arriver à un accord sur le registre de propriété et d'assurer le traitement décentralisé des transactions.
Mais cet algorithme est parfois le sujet d'une certaine confusion. D'un côté, il arrive qu'on le confonde avec le mécanisme de preuve de travail lui-même, ou bien avec la fonction de hachage SHA-256 qui intervient dans le procédé. De l'autre, une erreur répandue est de penser qu'il repose sur une application naïve du principe de la « chaîne la plus longue », tel que décrit dans le livre blanc de Bitcoin. Voyons ce qu'il en est réellement.
Contrairement à ce que l'on pense, la preuve de travail n'est pas un moyen d'arriver au consensus sur le réseau, même si elle joue un rôle essentiel dans ce processus.
La preuve de travail est en effet un mécanisme de résistance aux attaques Sybil, qui empêche un acteur de multiplier les identités à l'excès pour prendre le contrôle du réseau, ici la confirmation des transactions. Une attaque Sybil est une attaque intervenant au sein d'un réseau ouvert basé sur un système de réputation qui consiste à se dupliquer à moindre coût pour en altérer le fonctionnement. C'est un problème particulièrement présent sur les médias sociaux par exemple, où les comptes de robots sont utilisés en masse pour augmenter la visibilité d'un contenu donné.
La preuve de travail résout ce problème en demandant aux utilisateurs de démontrer de manière objective et quantifiable qu’ils ont dépensé de l’énergie et en discriminant ainsi les participants entre eux1. Dans le cas de Bitcoin, elle sélectionne le mineur qui choisit le nouveau bloc de transactions étant ajouté à la chaîne. Comme l'écrivait Satoshi :
« La preuve de travail résout [...] le problème de la détermination de la représentation dans la prise de décision majoritaire. Si la majorité était basée sur le principe de vote par adresse IP (une adresse IP, une voix), elle pourrait être détournée par toute personne capable de s'octroyer de nombreuses adresses IP. La preuve de travail est essentiellement basée sur la puissance de calcul : un processeur, une voix. La décision majoritaire est représentée par la chaîne la plus longue, sur laquelle le plus grand effort de preuve de travail a été investi. »
L'idée est de requérir une dépense d'énergie externe pour ajouter un bloc à la chaîne, en échange de quoi le mineur reçoit une récompense composée de bitcoins issus de la création monétaire et des frais de transaction.
Plus précisément, la preuve de travail est réalisée par les hachages successifs de l'entête du bloc candidat via la double application2 de la fonction de hachage SHA-256, qui produit des empreintes de 256 bits, soit 32 octets. La preuve consiste à trouver une empreinte qui soit inférieure à une valeur cible déterminée par le protocole, ce qui constitue une collision partielle de la fonction de hachage et rappelle Hashcash. En termes mathématiques, il s'agit de trouver un nonce (n
) tel que :
SHA256d( ENTÊTE( n ) ) ⩽ valeur_cible
Puisque la fonction de hachage est supposée impossible à inverser algorithmiquement, le mineur doit se contenter d'essayer un grand nombre de possibilités au hasard pour trouver une empreinte satisfaisant cette inégalité. La probabilité de tomber sur un résultat correct étant connue, cela permet d'estimer une quantité moyenne de travail effectué pour arriver à la solution.
L'empreinte résultante commence nécessairement par un grand nombre de zéros et constitue l'identifiant du bloc. Par exemple, le bloc 630 000 de la chaîne de BTC a pour identifiant :
000000000000000000024bead8df69990852c202db0e0097c1a12ea637d7e96d
Ainsi, la preuve de travail est le bloc lui-même et chaque membre du réseau peut la vérifier facilement en calculant son identifiant.
Un algorithme de consensus est un mécanisme permettant de parvenir à un accord au sein d'un réseau distribué, qui résout de ce fait le problème des généraux byzantins. Dans le cas des cryptomonnaies, il s'agit de se mettre d'accord sur le registre de propriété qui décrit qui possède quoi. L'algorithme de consensus de Bitcoin s'appelle l'algorithme de consensus de Nakamoto par preuve de travail, en hommage à son créateur, Satoshi Nakamoto.
Dans la section 5 du livre blanc, Satoshi décrivait son algorithme en se basant sur le principe de la chaîne la plus longue. Si ce principe est faillible comme on va le voir, il est néanmoins utile pour se représenter le fonctionnement général du consensus. Voici le processus.
« Les nœuds considèrent toujours que la chaîne la plus longue est la chaîne correcte, et continuent à travailler pour la prolonger. »
Tout d'abord, le réseau se comporte de manière attendue : les nœuds se coordonnent en sélectionnant la chaîne la plus longue et les mineurs travaillent à la prolonger. Tout se passe bien et il n'y a qu'une seule branche.
« Si deux nœuds transmettent simultanément des versions différentes du bloc suivant, certains nœuds peuvent recevoir l'une ou l'autre version en premier. Dans ce cas, ils travaillent sur la première version qu'ils ont reçue, mais conservent l'autre branche au cas où elle deviendrait plus longue. »
Puis, un conflit a lieu. Celui-ci peut être créé par un acteur malveillant, mais est généralement engendré de manière accidentelle, à cause de la latence du réseau : deux mineurs valident un bloc à peu près au même moment ce qui fait que les nœuds ne reçoivent pas le même bloc en premier. On assiste alors à un embranchement (appelé fork en anglais) : deux branches différentes également correctes coexistent et il est impossible de déterminer laquelle il faut prolonger.
Notez que ce type d'embranchement accidentel est commun et se produit de temps en temps sur le réseau pour des raisons de latence.
« L'égalité est rompue lorsque la preuve de travail suivante est trouvée et qu'une branche devient plus longue ; les nœuds qui travaillaient sur l'autre branche passent alors sur la chaîne la plus longue. »
Le conflit est enfin résolu lorsqu'une chaîne plus longue (contenant une plus grande quantité de travail accumulée) est partagée sur le réseau. Il se produit alors ce qu'on appelle une recoordination (ou reorganization en anglais) qui réconcilie les nœuds du réseau entre eux.
Les blocs de la branche minoritaire (dits « orphelins ») sont rejetés.
Le fonctionnement de cet algorithme de consensus a deux conséquences :
Bien que l'algorithme de Nakamoto ait des défauts, il est important que ce critère objectif reste en place car il fait partie des éléments qui donnent à Bitcoin sa robustesse. Si un cloisonnement persistant du réseau venait à avoir lieu, par exemple dans le cas extrême où « un pays se [couperait] délibérément et totalement du reste du monde », alors il serait possible pour les deux parties du réseau de se réconcilier une fois la connexion rétablie.
Dans le livre blanc, Satoshi supposait que la chaîne la plus longue, était nécessairement celle sur laquelle « le plus grand effort de preuve de travail [avait] été investi ». C'est pour cela qu'il a implémenté naïvement le principe de la chaîne la plus longue dans le protocole originel. Ce n'est que le 25 juillet 2010, dans la version 0.3.3 du logiciel, qu'il a redéfini l'algorithme de consensus pour prendre en compte la notion de travail.
Le principe strict de la chaîne la plus longue est bien valide lorsque la difficulté de minage est constante, car alors la quantité moyenne d'énergie dépensée est fonction du nombre de blocs minés. Néanmoins, la difficulté dans Bitcoin n'est pas fixe et subit un ajustement régulier pour faire en sorte que le temps de bloc moyen reste de 10 minutes et que la politique monétaire établie soit respectée.
La difficulté du minage est définie comme une quantité évoluant de manière inversement proportionnelle à la valeur cible du protocole3. Quand la valeur cible diminue, la difficulté à trouver une empreinte satisfaisant l'inégalité augmente. À l'inverse, quand la valeur cible augmente, la difficulté diminue.
Lorsqu'ils minent un bloc, les mineurs incluent dans le bloc un horodatage (timestamp). Cela permet au réseau d'avoir une idée du temps qui passe. Depuis 2016, le temps réseau est le temps médian passé (MTP), qui est défini comme la médiane des horodatages des 11 derniers blocs et qui retarde donc d'environ une heure (6 blocs) sur l'heure UTC. Notez aussi qu'un horodatage ne peut pas se trouver plus de deux heures dans le futur par rapport au temps subjectif du nœud.
L'ajustement de la difficulté se produit tous les 2016 blocs, c'est-à-dire (hormis grosse variation du taux de hachage) toutes les 2 semaines dans le monde réel. L'algorithme d'ajustement est simple : si le temps mesuré dans la période de 2016 blocs est inférieur à 20 160 minutes (temps attendu), alors la difficulté augmente pour se conformer à la puissance de calcul supposée ; s'il est supérieur, alors la difficulté diminue4. Le reciblage est limité à un facteur 4 (multiplication comme division) pour éviter les instabilités. La difficulté de BTC est aujourd'hui 29 570 milliards de fois plus élevée qu'au lancement du réseau en janvier 2009.
Puisque la difficulté a subi une considérable hausse, il aurait été possible d'exploiter le principe de la chaîne la plus longue. Un attaquant disposant d'une certaine puissance de calcul aurait pu générer une branche partant d'un point de la chaîne où la difficulté était très basse5 (typiquement le bloc de genèse), en réécrivant les horodatages pour avoir des intervalles de 10 minutes, et miner une quantité énorme de blocs à la fin pour rattraper la chaîne principale, la difficulté ne pouvant que quadrupler tous les 2016 blocs. L'attaque n'aurait pas été gratuite, mais aurait suffi à détruire Bitcoin dans le cas où une autre solution n'aurait pas été trouvée (ce qui est improbable).
C'est pour cela l'algorithme de consensus a été revu pour prendre en considération le travail, qui est défini comme le nombre moyen de hachages nécessaires pour miner un bloc ou une chaîne de blocs6, plutôt que la longueur de la chaîne pour arriver à un accord sur le réseau. Depuis le 25 juillet 2010, la chaîne à suivre est ainsi déterminée par sa quantité de travail (ou de « preuve de travail ») : la chaîne correcte est la chaîne possédant le plus de travail accumulé. Aujourd'hui le travail de la chaîne de BTC représente plus de 15 000 yottahachages, soit 15 milliards de milliards de milliards de hachages.
Pour que les nœuds du réseau se mettent d'accord sur son registre de propriété, Bitcoin dispose d'un algorithme de consensus appelé l'algorithme de consensus de Nakamoto par preuve de travail. Cet algorithme est à différencier du concept de preuve de travail qui sert de mécanisme de résistance aux attaques Sybil pour sélectionner les mineurs, de sa mise en œuvre qui consiste à produire une collision partielle d'une fonction de hachage et de la fonction de hachage elle-même.
Le consensus se base sur la sélection d'une chaîne de blocs selon sa quantité de travail accumulée, et non strictement de son nombre de blocs comme on l'entend parfois. En effet, si le principe de la chaîne la plus longue tient la route dans une certaine mesure, il ne suffit pas à garantir la robustesse de Bitcoin.
1. ↑ Il existe d'autres mécanismes de résistance aux attaques Sybil dans les systèmes cryptoéconomiques, ces derniers reposant soit sur l'identification (auquel cas on parle de « preuve d'autorité »), soit sur une quantité d'unités internes au système (auquel cas on parle de « preuve d'enjeu »). La « preuve d'espace » constitue une variante de la preuve de travail, qui repose également sur une énergie externe au système.
2. ↑ Dans le minage, la fonction de hachage SHA-256 est toujours appliquée deux fois, supposément pour éviter les attaques par extension de longueur. La véritable fonction de hachage considérée est donc le double SHA-256.
3. ↑ La difficulté est définie comme diff = cible_max / cible
où la valeur cible maximale du réseau est :
cible_max = 0x00ffff × 256(0x1d - 3) = 0x00000000ffff0000000000000000000000000000000000000000000000000000
4. ↑ La formule d'ajustement de la difficulté est :
nouvelle_cible = ancienne_cible × temps_réel_écoulé / (14 × 24 × 60 × 60)
Le temps réel écoulé est mesuré à partir des horodatages des 2016 derniers blocs, ce qui correspond à 2015 intervalles de temps. L'algorithme est donc défectueux et surestime la puissance de calcul déployée.
5. ↑ Une telle réécriture de chaîne ne pourrait réalistiquement pas être faite aujourd'hui, car des points de contrôle ont été introduits manuellement dans le code pour empêcher une recoordination trop profonde (pratique initiée par Satoshi le 17 juillet 2010). Puisque le dernier point de contrôle est le bloc 295 000 miné le 9 avril 2014, la difficulté est trop haute (6 119 726 089) pour pouvoir rattraper le retard pris sur la chaîne principale.
Il semble également infaisable d'abaisser la difficulté (en espaçant les blocs sur la branche concurrente) pour procéder à la même technique par la suite : le retard pris pour réduire la difficulté serait trop grand.
6. ↑ Le travail d'un bloc est le quotient du nombre d'empreintes possibles (2256) par le nombre d'empreintes satisfaisant le problème :
travail_du_bloc = 2256 / (cible + 1)
Le travail d'une chaîne est la somme des travaux de tous les blocs la composant.
Lorsqu'il a conçu le prototype de Bitcoin en janvier 2009, Satoshi Nakamoto a dû construire un premier bloc à partir duquel la chaîne s'est allongée. Ce bloc il l'a appelé le bloc de genèse (« genesis block » en anglais) en référence au premier livre de la Torah et de la Bible, qui raconte la création du monde par Dieu.
Par convention, on considère qu'il s'agit du bloc de hauteur 0 (ou « bloc 0 ») au-dessus duquel les autres blocs sont successivement empilés. Examinons plus en détail ce que contient cet élément fondateur de Bitcoin en procédant à une dissection minutieuse !
Le bloc de genèse est une donnée essentielle du protocole Bitcoin car il constitue la base à partir de laquelle on peut déterminer la chaîne la plus longue (c'est-à-dire celle ayant le plus de preuve de travail accumulée) et par conséquent la validité des transactions du registre. Il est théoriquement le seul bloc à devoir être inscrit en dur dans le protocole, même si d'autres l'ont été par la suite.
Tel que l'écrivait Satoshi Nakamoto :
« La chaîne de blocs est une structure en forme d'arbre qui a pour racine le bloc de genèse, chaque bloc pouvant avoir plusieurs candidats à sa suite. »
Le code de novembre 2008 (fourni par Satoshi à Hal Finney, Ray Dillinger et James A. Donald notamment) contenait déjà une première version du bloc de genèse, horodatée au 10 septembre 2008, 18:02:08 UTC. Néanmoins, un nouveau bloc a été construit en janvier 2009 spécialement pour le lancement du prototype.
Le bloc de genèse que nous connaissons est ainsi présent dans la version 0.1 du logiciel de Bitcoin, publiée le 8 janvier 2009. Un commentaire au sein du code le décrit :
Genesis Block: GetHash() = 0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f hashMerkleRoot = 0x4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b txNew.vin[0].scriptSig = 486604799 4 0x736B6E616220726F662074756F6C69616220646E6F63657320666F206B6E697262206E6F20726F6C6C65636E61684320393030322F6E614A2F33302073656D695420656854 txNew.vout[0].nValue = 5000000000 txNew.vout[0].scriptPubKey = 0x5F1DF16B2B704C8A578D0BBAF74D385CDE12C11EE50455F3C438EF4C3FBCF649B6DE611FEAE06279A60939E028A8D65C10B73071A6F16719274855FEB0FD8A6704 OP_CHECKSIG block.nVersion = 1 block.nTime = 1231006505 block.nBits = 0x1d00ffff block.nNonce = 2083236893 CBlock(hash=000000000019d6, ver=1, hashPrevBlock=00000000000000, hashMerkleRoot=4a5e1e, nTime=1231006505, nBits=1d00ffff, nNonce=2083236893, vtx=1) CTransaction(hash=4a5e1e, ver=1, vin.size=1, vout.size=1, nLockTime=0) CTxIn(COutPoint(000000, -1), coinbase 04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73) CTxOut(nValue=50.00000000, scriptPubKey=0x5F1DF16B2B704C8A578D0B) vMerkleTree: 4a5e1e
Ce bloc pèse très exactement 285 octets. Le voici représenté en hexadécimal brut :
0100000000000000000000000000000000000000000000000000000000000000000000003ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a29ab5f49ffff001d1dac2b7c0101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff4d04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73ffffffff0100f2052a01000000434104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac00000000
Le bloc de genèse est composé d'un entête de 80 octets et d'une unique transaction, la transaction de récompense. Son identifiant (le résultat du hachage de l'entête par double SHA-256) est 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
. Les zéros qui débutent cet identifiant indiquent qu'une preuve de travail a été réalisée.
Notez que les différentes informations contenues dans le bloc sont souvent transmises avec un ordre des octets inverse (dit « little-endian » ou « petit-boutiste »). Nous donnerons ici les informations dans l'ordre ordinaire (qu'on appelle « big-endian » ou « gros-boutiste ») à l'aide du préfixe 0x
.
Comme tous les blocs dans le protocole, le bloc de genèse possède un entête donnant 6 informations différentes. Voici cet entête en détail :
01000000 - version 0000000000000000000000000000000000000000000000000000000000000000 - identifiant du bloc précédent 3ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a - racine de Merkle 29ab5f49 - horodatage ffff001d - valeur cible 1dac2b7c - nonce
0x00000001
La version du bloc indique l'ensemble des règles respectées par le bloc. Cette version 1 indiquait un respect des règles du protocole originel défini par Satoshi. D'autres versions ont été introduites plus tard : la version 2 pour l'application du BIP-34 en mars 2013, la version 3 pour l'activation du BIP-66 en juillet 2015, et la version 4 pour celle du BIP-65 en décembre 2015. Le champ de version a par la suite été utilisé pour que les mineurs signalent leur intention d'appliquer un soft fork (conformément au BIP-9).
0x0000000000000000000000000000000000000000000000000000000000000000
Puisqu'il s'agit du premier bloc de la chaîne, le champ utilisé pour donner l'identifiant du bloc précédent est fixé à zéro par convention.
0x4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b
La racine de Merkle correspond à l'empreinte finale de l'arbre de Merkle des transactions. Puisqu'il n'y a qu'une seule transaction dans le bloc de genèse, il s'agit simplement de l'identifiant de cette transaction.
0x495fab29
L'horodatage indique la date et l'heure à laquelle le mineur a trouvé le bloc. Il est donné par le nombre de secondes depuis le 1er janvier 1970 00:00:00 UTC. Ici, le nombre correspond à 1 231 006 505 secondes : le bloc de genèse est donc horodaté au 3 janvier 2009 à 18:15:05 UTC.
Toutefois, il ne faut pas croire que cet horodatage indique l'instant précis du lancement effectif du réseau. Ce dernier a en effet été réalisé un peu plus tardivement : le bloc 1 est ainsi horodaté au 9 janvier 2009 à 02:54:25 UTC, soit 5 jours, 8 heures, 39 minutes et 20 secondes plus tard.
0x1d00ffff
La valeur cible est la valeur minimale que l'identifiant du bloc peut avoir pour que ce dernier constitue une solution au problème de preuve de travail de Bitcoin. Moins cette valeur cible est haute, plus il est facile de trouver une solution et de miner un bloc. Elle est donc inversement proportionnelle à la difficulté du réseau.
La valeur cible du bloc de genèse correspond à la plus grande valeur possible dans Bitcoin, ou la difficulté la plus basse pour le dire autrement. Elle est encodée comme un nombre flottant où le premier octet représente un exposant et où la mantisse est déterminée par les 3 octets suivants. Ici, elle est égale à 0x00ffff × 256(0x1d - 3)
c'est-à-dire 0x00000000ffff0000000000000000000000000000000000000000000000000000
.
La preuve de travail du bloc est valide car l'identifiant est effectivement (largement) inférieur à cette valeur cible :
0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f ≤ 0x00000000ffff0000000000000000000000000000000000000000000000000000
On définit la difficulté du minage comme l'inverse de la valeur cible multipliée par la valeur cible de base :
difficulté = cible_de_base / cible
La difficulté du bloc de genèse est donc de 1.
Après le lancement du réseau, la difficulté a stagné à ce niveau pendant près d'un an avant d'enfin commencer à augmenter le 30 décembre 2009.
Au sein du code, le champ de la valeur cible est appelé nBits
, car ce paramètre désignait (avant que Satoshi n'en modifie le sens) le nombre de bits de tête à mettre à zéro pour que la solution soit valide. Dans la version de novembre 2008, le champ était en effet fixé à 20, ce qui correspondait à 5 zéros de tête en représentation hexadécimale, soit une valeur cible de 0x00000fffff...
.
0x7c2bac1d
Le nonce (mot qui provient de l'expression anglaise « for the nonce » signifiant « pour la circonstance, pour l'occasion ») désigne le nombre que le mineur fait varier pour calculer la preuve de travail. Il n'a aucune signification particulière, étant déterminé au hasard.
L'ensemble des transactions forme la seconde partie du bloc. Le voici en détail :
01 - nombre de transactions 01000000 - version 01 - nombre d'entrées 0000000000000000000000000000000000000000000000000000000000000000 - identifiant de transaction de la sortie précédente ffffffff - index de la sortie précédente 4d - taille du script de déverrouillage 04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73 - script de déverrouillage ffffffff - numéro de séquence 01 - nombre de sorties 00f2052a01000000 - montant 43 - taille du script de verrouillage 4104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac - script de verrouillage 00000000 - temps de verrouillage
0x01
Le bloc contient une seule transaction : la transaction de récompense qui rémunère le mineur (ici Satoshi) pour la preuve de travail réalisée. Le bloc ne comporte ainsi aucune autre transaction, tout comme les blocs minés dans les premiers jours. Il a fallu attendre le 12 janvier et le bloc 170 pour voir la première transaction effective du réseau être confirmée : celle entre Satoshi et Hal Finney.
Toutes les données restantes du bloc appartiennent à la transaction de récompense.
0x00000001
La version de la transaction indique comment celle-ci doit être interprétée. Elle est fixée à 1 conformément au protocole initial. Aujourd'hui, il existe également une version 2 qui autorise l'usage des verrous temporels relatifs (voir BIP-68).
0x01
La transaction contient une seule entrée : la base de pièce, ou coinbase, qui permet de créer ex nihilo les nouveaux bitcoins et de recueillir les frais de transaction. Cette entrée est donc purement superflue, mais permet de conserver une certaine cohérence dans l'implémentation logicielle. Elle est constituée des champs identifiant la sortie précédente (théorique), d'un script de déverrouillage et d'un numéro de séquence.
0x0000000000000000000000000000000000000000000000000000000000000000
Ce champ est utilisé dans les transactions pour dire à quel sortie transactionnelle correspond une entrée, en donnant l'identifiant de la transaction qui a créé la sortie. Puisqu'il s'agit d'une transaction de récompense qui ne fait pas référence à une sortie transactionnelle précédente, ce champ est fixé à 0 par convention.
0xffffffff
Ce champ est utilisé dans les transactions pour dire à quel sortie transactionnelle correspond une entrée, en donnant la position de la sortie dans la transaction qui l'a créée. Puisqu'il s'agit d'une transaction de récompense qui ne fait pas référence à une sortie transactionnelle précédente, ce champ est fixé au maximum par convention.
0x04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73
Dans Bitcoin, le script de déverouillage est combiné à un script de verrouillage précédent et détermine la validité d'une dépense. Il contient généralement les signatures nécessaires à la dépense d'une pièce et est par conséquent souvent appelé scriptSig. Dans le cas d'une transaction de récompense, l'entrée ne fait référence à aucune sortie transactionnelle existante et ce script peut donc contenir des données arbitraires.
Ici, le script se présente de la manière suivante :
<valeur cible> <nonce supplémentaire> <chaîne de caractères>
Ainsi, il est constitué de trois informations :
0xffff001d
0x04
), ou extra nonce, mis en place par Satoshi dans le code du logiciel. Le nonce supplémentaire du bloc de genèse a pour valeur 4, et ceux des blocs suivants sont croissants : celui du bloc 1 est aussi égal à 4, celui du bloc 2 à 11, celui du bloc 3 à 14, etc. La variation de ce nonce supplémentaire au sein des blocs a permis de mettre en évidence un motif particulier, appelé le « Patoshi Pattern », qui détermine précisément les blocs minés par Satoshi et qui démontre que sa fortune s'élève à plus de 1 125 150 bitcoins.The Times 03/Jan/2009 Chancellor on brink of second bailout for banks
Cette courte phrase correspond à la une du Times du 3 janvier 2009, qui annonçait que le ministre des finances du Royaume-Uni était sur le point de renflouer les banques pour la deuxième fois. Le Times étant un quotidien anglais, cela a mené à des spéculations quant à l'identité de Satoshi, qui écrivait également dans un anglais britannique.
Cette phrase présente dans le script de la transaction de récompense possède un rôle double :
Ce script de la base de pièce est encore utilisé de nos jours par les mineurs pour de multiples raisons. À l'instar de Satoshi, ils peuvent inclure des informations arbitraires dans le bloc et faire passer un message public au monde. Ç'a été le cas de la coopérative F2Pool qui, le 11 mai 2020, a évoqué l'injection de liquidité de la Réserve Fédérale en réaction à la crise du covid-19 au sein du bloc 629 999 (le bloc précédant le troisième halving) :
NYTimes 09/Apr/2020 With $2.3T Injection, Fed's Plan Far Exceeds 2008 Rescue
Les regroupements de mineurs peuvent également s'identifier en indiquant leur nom, ce qui permet de juger de la décentralisation du réseau, même si cette pratique reste purement déclarative.
Enfin, les mineurs se servent encore de ce champ pour faire varier un nonce supplémentaire, le nonce de l'entête ne permettant plus depuis 2012 d'essayer suffisamment de possibilités par rapport à la difficulté élevée du réseau.
0xffffffff
Le numéro de séquence de l'entrée est maximal, ce qui fait que la transaction est considérée comme finale.
À l'origine, le numéro de séquence dans les entrées avait pour objectif de permettre les échanges répétés au sein de contrats, tels que les canaux de paiement. Ce modèle imaginé par Satoshi n'était pas suffisamment sécurisé et a par conséquent été abandonné. Cependant, la règle de finalité, qui fait que la transaction est considérée comme finale (pas de temps de verrouillage) si les numéros de séquence de toutes les entrées sont maximaux (comme ici), a été conservée.
Aujourd'hui, ce numéro de séquence est utilisé pour déterminer le temps de verrouillage relatif d'une entrée et pour signaler Replace-by-Fee.
0x01
La transaction contient une seule sortie, celle créditant Satoshi de son revenu de minage. Cette sortie est constituée d'un montant et d'un script de verrouillage.
0x000000012a05f200
Le montant de la sortie est donné dans la plus petite unité du système, unité qu'on a appelé le satoshi en hommage au créateur de Bitcoin. Ce montant correspond ici à 5 milliards de satoshis, soit 50 bitcoins. Il s'agit de la limite maximale du taux de création monétaire de l'époque (50 bitcoins par bloc).
0x4104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac
Le scrpt de verrouillage est l'ensemble des conditions à fournir pour pouvoir dépenser la pièce correspondante. Ici, il possède la forme :
<clé publique> CHECKSIG
où la clé publique est 04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f
. Il s'agit donc d'une sortie transactionnelle de type Pay to Public Key (P2PK), un schéma utilisé dans les débuts de Bitcoin, qui demande une simple signature pour débloquer les fonds. Cela explique le nom donné couramment à ce script : scriptPubKey.
Bien souvent, cette sortie est rétrospectivement attribuée à l'adresse 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa, obtenue en prenant l'empreinte de la clé publique. Cela est néanmoins purement esthétique car c'est bien la clé publique elle-même qui a servi à recevoir les bitcoins, pas l'adresse.
Fait intéressant : cette sortie transactionnelle n'est pas considérée comme dépensable par le protocole en raison de la façon dont le bloc de genèse est exprimé dans le code. Cette erreur de programmation pourrait être corrigée par un hard fork, mais cela ne serait ni utile (Satoshi n'a pas touché à ses bitcoins depuis qu'il a disparu), ni même souhaitable (incompatibilité du protocole). Les 50 premiers bitcoins créés sont donc probablement brûlés à tout jamais.
0x00000000
Le temps de verrouillage (donnée globale appartenant à la transaction) détermine la date à partir de laquelle cette transaction pourra être confirmée. En étant fixé à zéro, celui-ci est désactivé.
Si le bloc de genèse constitue un fondement du protocole Bitcoin, il sert également de base aux différentes branches minoritaires de Bitcoin qui possèdent le même historique jusqu'à leurs scissions respectives : Bitcoin Cash, Bitcoin SV, Bitcoin Gold ou encore eCash/XEC. D'autres protocoles possèdent leur propre bloc de genèse et certains d'entre eux ont également incorporé la une d'un journal ou d'un magazine pour garantir que le lancement du réseau ne s'est pas réalisé avant la date donnée. Ainsi, le bloc de genèse de Litecoin (datant du 7 octobre 2011) contient la phrase suivante :
NY Times 05/Oct/2011 Steve Jobs, Apple’s Visionary, Dies at 56
Celui de Dash (datant du 19 janvier 2014) inclut la une suivante :
Wired 09/Jan/2014 The Grand Experiment Goes Live: Overstock.com Is Now Accepting Bitcoins
Bitcoin Wiki, Genesis block
Le Bitcoin (BTC) se trouvait dans une légère tendance haussière, perçu comme une compression, plus tôt aujourd’hui. Ce mouvement survient alors que les marchés se préparaient pour le prochain rapport sur l’inflation aux USA. La plupart des cryptos ont également pris la même direction avant la publication de la FED. Ce mouvement de compression précède généralement une forte volatilité sur les marchés, ce qui est le cas pour le Bitcoin.
L’article Analyse Technique Bitcoin (BTC) : forte volatilité du prix suite à l’IPC est apparu en premier sur Cointribune.
L'Ethereum (ETH) affiche un drapeau ascendant sur son graphique en daily. Il s’agit d’une figure baissière qui prévoit une chute de 15 %. En effet, le range depuis le 21 septembre semble se solder par un mouvement baissier. Si le prix passe en dessous de 1280 $, il se peut que l’Ethereum chute jusqu’à 1100 $. De plus, une pression des bears sur le roi des cryptos pourrait aggraver la situation et déclencher une chute brutale.
L’article Ethereum (ETH) : Le prix pourrait-il revisiter le territoire à trois chiffres ? est apparu en premier sur Cointribune.
Le Bitcoin se trouve sur la partie inférieure d’un drapeau ascendant, dont la cassure pourrait entraîner une baisse de plus de 18 %. En effet, le prix du roi est à un point critique. Ainsi, un mouvement décisif pour les prochains jours déterminera la prochaine ligne de conduite pour les marchés des cryptos. Puis, d'un point de vue non biaisé par la tendance du BTC, d'autres tokens comme l'Ethereum et Ripple semblent prêts à rebondir.
L’article Bitcoin (BTC) sur la partie inférieure d’un drapeau ascendant ? est apparu en premier sur Cointribune.