Le secret de Satoshi : pourquoi les blocs de Bitcoin sont limités à 1 Mo ?
Quiconque connaissant bien Bitcoin est conscient du problème fâcheux causé par la limite de 1 Mo de capacité, et de la controverse qui en découle. Il vaut probablement la peine de revenir sur la façon dont cette limite a vu le jour, dans l’espoir que les crises futures pourront être évitées par une bonne compréhension du passé.
Il y a longtemps, dans un pays lointain
En 2010, lorsque la limite de taille des blocs a été introduite, Bitcoin était radicalement différent de celui d’aujourd’hui. Theymos, administrateur du forum Bitcointalk et de /r/bitcoin subreddit, a déclaré entre autres :
- “Comme personne n’avait prévu l’exploitation minière en groupe (ndlr : en pool), nous avons considéré que tous les mineurs étaient des nœuds complets et que presque tous les nœuds complets étaient des mineurs.
- Je n’avais pas anticipé les ASICs, qui sont à l’origine d’une trop grande centralisation minière.
- Le SPV est plus faible que je ne le pensais. En réalité, puisque la grande majorité du réseau fonctionne sans nœud complet, les mineurs ont tout intérêt à s’associer pour faire tourner les règles du réseau à leur avantage.
- Le marché des frais de transaction ne fonctionne pas vraiment comme je l’ai décrit et comme Satoshi le voulait, pour des raisons économiques qui prennent quelques paragraphes à expliquer.”
Il semblerait qu’à la fin de 2010, Satoshi se soit rendu compte qu’il devait y avoir une taille maximale de bloc. Il a réalisé que certains mineurs pouvaient produire des blocs plus grands que d’autres mineurs, et que ces derniers ne les accepteraient pas forcément. Le risque était donc le hard fork. Satoshi en a conclu qu’il fallait insérer une limite de 1 MB dans le code. Sauf qu’il ne l’a dit à personne. C’est un autre des secrets du très mystérieux Satoshi Nakamoto.
Un secret bien caché
Oui, Satoshi a gardé ce changement secret jusqu’à ce que la mise à jour soit déployée, et aurait demandé à ceux qui ont découvert le code de se taire. Il a probablement gardé les choses sous silence pour minimiser les chances qu’un attaquant trouve comment utiliser une taille de bloc illimitée pour attaquer le réseau.
“Satoshi n’a jamais utilisé IRC, et il expliquait rarement ses motivations. Il a gardé le changement secret et a dit aux gens qui l’avaient découvert de se taire jusqu’à ce que la mise à jour soit terminée afin que la controverse ne cause pas de désordre durant cette mise à jour.” Theymos
Il est également probable que Satoshi n’ait jamais anticipé les problématiques générées par une taille de blocs limitée à 1 Mo. À l’époque, les blocs n’étaient pas pleins, ils étaient inférieurs à 1 Mo, et il semblait qu’il y aurait suffisamment de temps pour trouver une solution. Satoshi lui-même a dit, à propos de cette limite :
“On peut changer les choses plus tard si cela est nécessaire.”
Il a également ajouté :
“Cela peut être mis en place progressivement, comme :
if (blocknumber > 115000)
maxblocksize = largerlimit
Cela peut être intégré dans le code avant même que cette limite ne soit atteinte, donc le temps qu’il atteigne ce numéro de bloc et entre en vigueur, les versions plus anciennes qui ne l’ont pas seront déjà obsolètes. Quand nous sommes près du numéro de bloc qui précède le fork, je peux mettre une alerte à ceux utilisant encore les anciennes versions pour m’assurer qu’ils savent qu’ils doivent les mettre à jour.”
Il est évident que pour Satoshi, l’élimination de la limite de bloc était un sujet trivial, et ne s’imaginait pas qu’un changement de code aussi mineur générerait une tempête de feu.
Une problématique prévisible
“Kiba”, un utilisateur de Bitcointalk a anticipé la situation que l’on connaît aujourd’hui, avant même que les 1 Mo ne soient vraiment atteint :
“Si nous améliorons maintenant, nous n’aurons pas à convaincre autant de gens plus tard si l’économie des bitcoins continue de croître.”
En réponse au commentaire de Satoshi selon lequel la limite pourrait toujours être supprimée si nécessaire, pour soutenir une capacité de transaction plus élevée, Jeff Garzik a fait remarquer:
“IMO, c’est une affaire de marketing. Il est difficile d’obtenir l’adhésion des gens à un système, si le réseau est techniquement incapable de supporter des taux de transaction élevés.”
Il est clair que les avertissements étaient présents.
Pourquoi 1 Mo ?
Beaucoup ont demandé pourquoi Satoshi n’a pas créé un bloc plus grand, de 8 Mo par exemple. La réponse est triple:
- Ce n’était pas nécessaire, car même 1 Mo suffisait largement à contenir toutes les transactions.
- Techniquement, il était facile de changer, en remplaçant simplement une valeur par une autre.
- Les blocs plus gros posent d’autres défis techniques.
En 2010, la technologie Internet était tel, que des blocs plus grands ne se seraient pas propagés correctement. En 2015, Theymos a rappelé :
“Un problème évident et facile à comprendre est que pour être un nœud de réseau constructif vous devez rapidement envoyer de nouveaux blocs vers plusieurs de vos 8+ pairs. Ainsi, 8 blocs de 8 Mo nécessiteraient quelque chose de très grossier (8 Mo * 8 bits * 7 pairs) / 30 secondes = 15 Mbit/s en amont, ce qui nécessite une capacité d’upload énorme. Puisque la plupart des gens ne peuvent pas faire cela, le réseau (comme il est actuellement conçu) tomberait en panne à cause de ce problème : il n’y aurait pas assez de capacité totale de téléchargement pour que tout le monde puisse télécharger des blocs à temps, et le réseau serait souvent “désynchronisé” (causant des splits temporaires de la blockchain).”
Segregated Witness & Lightning Network
Aujourd’hui, Bitcoin utilise un code appelé Segregated Witness (SegWit) pour séparer les signatures, des données de transaction. Cela permettra au réseau de “tricher” en créant des blocs plus grands que 1 Mo, tout en les comptant sous le plafond. SegWit corrige également une vulnérabilité appelée malléabilité transactionnelle, permettant la création de ce que l’on appelle, le lightning network.
Le réseau lightning est envisagé comme un moyen pour les utilisateurs et/ou les commerçants Bitcoin d’ouvrir des canaux de paiement les uns avec les autres, de manière sécurisée et fiable. Les fonds peuvent être échangés entre ces parties sans que les transactions ne soient directement inscrites dans la blockchain. Ceci maintient la blockchain petite, et peut être traité par des ordinateurs moins puissants. Le réseau lightning devrait périodiquement “s’ancrer” à la blockchain principale. Cette nouvelle fonction permettrait d’énormes augmentations de la capacité de transaction, avec de très petites augmentations de la taille de la blockchain.
Jusqu’ à présent, il n’ y a pas de mise en œuvre opérationnelle de lightning network sur la maichain, bien qu’il existe des versions sur le réseau de test.
Abonnez-vous sur YouTube : Journalducoin
Ajoutez nous sur Twitter : @lejournalducoin
Upvotez nous sur Steemit : @Journalducoin
Suivez nous sur Facebook : @lejournalducoin
Source : Cointelegraph
Pour soutenir le JDC, utilisez nos liens partenaires : Coinbase (10$ offert), Changelly (pas d’inscription ni de vérification d’identité), Ledger Wallet (coffre fort crypto).