Chargement
keyboard_arrow_up
BitcoinTechnique

Dernier épisode de la série Scaling Bitcoin, dédiée aux futures améliorations du protocole ! Cette partie concerne l'optimisation des frais de transactions, l'utilisation des ondes radio pour propager les blocs et améliorer ainsi la résilience du réseau, ainsi que l'intervention finale d'un invité de choix : Joseph Poon, développeur pour Ethereum.

Merci à l'association Le Cercle du Coin pour avoir pris en charge les frais de déplacement à l'événement, à son Président Adli Takkal-Bataille et à Alexandre David, compagnons de voyage, pour leur amitié et leur bonne humeur.

Sommaire :

Fees and Radio

Optimizing fee estimation via the mempool state

Par Karl-Johan Alm (DG Lab)

Karl-Johan AlmLe core developer de Bitcoin a tenu dans cette présentation à donner des méthodes pour estimer plus précisément le montant des frais à inclure lors de la création d'une transaction. Le logiciel client Bitcoin Core et de nombreux autres wallets donnent souvent une estimation trop élevée des frais nécessaires car ils ne prennent pas en compte un paramètre important : l'état du memory pool, l'espace mémoire dédié aux transactions en attente.
Alm a livré ses observations faites lors d'une période de forte congestion du réseau Bitcoin. Autour du bloc 482 000, on peut voir une très forte disparité entre les différentes valeurs des frais minimaux nécessaires pour voir sa transaction confirmée en moins d'une heure : ils varient de quelques satoshis par octets à près de 550 sat/o. Il est facile d'observer que cela dépend de l'instant où la transaction a été soumise au réseau.
Actuellement, Bitcoin Core possède deux modes d'évaluation des frais de transaction : conservatif et économique. Pour une cible t (le nombre de blocs voulus pour être confirmé), l'algorithme prend en compte les derniers blocs et calcule les frais de cette façon :
  • 60 % des transactions sont confirmées à t / 2 ;
  • 85 % des transactions sont confirmées à t (mode économique) ;
  • 95 % des transactions sont confirmées à t * 2 (mode conservatif).

Bien que ces méthodes d'évaluation soient meilleures que les précédentes (prise en compte de la volatilité du débit de transactions), elles ne prennent toujours pas en compte l'état du memory pool.

Il est possible d'utiliser le mempool afin de réagir à des changements soudains :
  • Il faut diminuer les frais jusqu'à un certain point dans le bloc à venir; par exemple, 5 % du bloc. La précision dépend entre autres du temps que le bloc mettra à être miné.
  • On peut sous-estimer largement les frais, auquel cas il suffit d'utiliser l'option replace-by-fee.

On peut aussi faire l'inverse :

  • Le temps d'attente est de : (poids des transactions possédant plus de frais que la nôtre) / 4 000 000 ;
  • Si ce délai est supérieur à notre cible, alors on augmente les frais de transaction.

L'option replace-by-fee, activée en diffusant une transaction sur le réseau, permet ensuite de remplacer ladite transaction par une nouvelle, dépensant les mêmes entrées mais avec des frais plus élevés. Il est possible de répéter l'opération en augmentant peu à peu les frais tandis que l'on attend les blocs suivants, jusqu'à que la transaction soit prête à être minée ou que notre plafond soit atteint et que l'on ait à attendre plus longtemps. Cette méthode présente plusieurs avantages :

  • Fiable à 100 % : elle ne donnera jamais des frais surévalués.
  • Plus précise : l'utilisateur saura quand sa transaction sera minée.
  • Moins coûteuse : jusqu'à 80 % de frais en moins lorsque le mempool chute rapidement.

Redesigning Bitcoin’s fee market

Par Or Sattath (The Hebrew University)

Or SattathLe chercheur a travaillé avec Aviv Zohar et Ron Lavi au sujet des frais de transaction et a utilisé la théorie des enchères pour présenter des modèles alternatifs.

Actuellement, le mécanisme est le suivant :

  • Les mineurs peuvent seulement inclure des transactions qui n'excèdent pas 1 Mo au total.
  • L'utilisateur spécifie lui-même ses frais, et ces derniers ne lui sont débités que si la transaction est minée.
  • La stratégie est donc d'inclure les transactions aux frais les plus élevés jusqu'à remplir le méga-octet du bloc.

Que se passerait-il si le hardware n'était plus un problème (récompense par bloc négligeable, bande-passante, performances du CPU et espace disque cent fois plus élevés) ? À première vue, on pourrait augmenter la taille des blocs par un ratio de cent. C'est cependant une stratégie risquée :

  • Les blocs ne seraient pas pleins ;
  • Les mineurs ne seraient plus incités à ne pas sélectionner les transactions sans frais ;
  • Les utilisateurs diminueraient donc leurs frais vers zéro ;
  • Le revenu des mineurs diminuerait ;
  • La double dépense serait alors beaucoup moins coûteuse à mettre en pratique.

Un meilleur modèle n'aurait pas pour effet de réduire le revenu des mineurs :

  • Au long terme, les frais seront le revenu principal des mineurs.
  • Il faut maximiser ce revenu : l'augmentation de la bande passante aura notamment cet effet.
  • L'augmentation de la taille des blocs affecte la sécurité du réseau (augmentation du taux de blocs orphelins et de la centralisation), et affecte également ses aspects économiques (le revenu des mineurs).
  • Le premier objectif est donc de découpler l'aspect "sécurité" de l'aspect économique.
  • Le deuxième est d'avoir un système simple permettant à l'utilisateur de choisir ses frais.

Les chercheurs ont alors défini deux mécanismes. Le premier, nommé Random Sampling Optimal Price (RSOP), est très différent de l'actuel et présente de très bons résultats, mais n'est pas très pratique. Le second, dénommé mécanisme de prix monopolistique, n'est pas très élégant mais plus utile.

Si l'on modélise le minage comme une vente aux enchères, les acheteurs sont les utilisateurs, et le mineur chanceux qui trouve un bloc est à la fois vendeur et commissaire-priseur. On suppose que les vendeurs ne complotent pas entre eux et possèdent une identité forte, que les commissaires-priseurs sont dignes de confiance et que l'enchère n'est menée qu'une fois.

Revenu et prix monopolistique

Considérons i utilisateurs désirant acheter un produit à un prix v(i), avec v(1) ≥ v(2) ≥ ... ≥ v(n).

Le revenu monopolistique du vendeur est la valeur maximale que les acheteurs sont prêts à payer multipliée par le nombre d'acheteurs; le prix monopolistique est la valeur v(i) qui maximise le revenu monopolistique.

Random Sampling Optimal Price

Séparons les i acheteurs prêts à dépenser v(i) en deux groupes A et B, de façon aléatoire. Calculons alors le prix monopolistique Pm pour chaque groupe, et proposons Pm (A) au groupe B et Pm (B) au groupe A.

Ce mécanisme encourage les utilisateurs à révéler la vraie valeur qu'ils accordent au produit, car le prix offert à l'un des groupes est déterminé par le choix du groupe opposé : il n'y a rien à gagner à annoncer une valeur fausse. Cela maximise également le revenu monopolistique du vendeur.

RSOP

RSOP appliqué à Bitcoin :

  • Les utilisateurs spécifient le montant de frais maximal qu'ils sont prêts à payer ;
  • Les mineurs incluent la totalité du mempool dans leur bloc ;
  • On utilise le hash du bloc pour scinder les enchères de façon aléatoire ;
  • Seules les transactions dont les frais sont situés au-dessus du prix monopolistique sont prises en compte.

Ce mécanisme pose deux problèmes : les blocs deviennent énormes, et cela incite les mineurs à tricher en y incluant de fausses transactions.

Revenons-en donc au premier mécanisme :

  • Les utilisateurs spécifient le montant de frais maximal qu'ils sont prêts à payer ;
  • Si le bloc contient des transactions dont les frais associés sont tels que b(1) ≥ ... ≥ b(m), tous les utilisateurs paient le montant minimum b(m) ;
  • Les mineurs doivent inclure toutes les transactions qui offrent au moins le prix monopolistique, jusqu'à ce que le bloc soit plein.

Les utilisateurs ont donc intérêt à faire diminuer le prix monopolistique en annonçant une enchère inférieure au montant maximal réel qu'ils sont prêts à payer. Cependant, lorsque le nombre d'utilisateurs croît, partant du principe que beaucoup sont impatients de voir leur transaction incluse dans le bloc suivant, les gains engendrés par cette manipulation stratégique diminuent.

Le chercheur a laissé le débat ouvert quant à la viabilité de sa proposition et rappelé que le mécanisme actuel, basé sur le marché libre, reste efficace et éprouvé.

Les slides de la présentation.

Le document de recherche complet.

Weak-Signal Radio Communications for Bitcoin Network Resilience

Par Nick Szabo et Elaine Ou (Global Financial Access)

Nick SzaboDans ce travail de recherche très cypherpunk, Nick Szabo a exploré une autre façon de transmettre les données sur le réseau Bitcoin, qui pourrait s'avérer très utile en cas de censure d'une partie des nœuds : les ondes radio. Plus précisément, les ondes radio haute fréquence à signal faible. Dans cette bande, les ondes peuvent se réfracter sur la ionosphère. Elles ont été très utilisées pour diffuser les programmes de propagande de divers gouvernements, par exemple durant la guerre froide.

Consensus sécurisé et diffusion

La plupart des mécanismes de consensus sécurisés en général et le protocole Bitcoin en particulier sont basés sur une confiance minimale. Chaque nœud complet diffuse directement ses données aux autres nœuds complets, sans intermédiaire. Mais les implémentations dans le monde réel manquent de sécurité prouvable. Nick Szabo a alors décrit deux attaques bien connues sur les réseaux pair à pair.

Attaques éclipses et attaques de routage : l'attaque éclipse consiste à monopoliser les connections entrantes et sortantes d'un nœud du réseau; l'attaque de routage consiste à intercepter une partie des connections d'un nœud. L'interception de la moitié des connections d'un nœud minier peut gaspiller 63 % de sa puissance de hachage. C'est évidemment le niveau de décentralisation du réseau qui permet de résister à ce type d'attaques.

Nick Szabo est parti de quelques exemples triviaux pour montrer que les infrastructures trustless sont rares : par exemple, les cloches d'une église peuvent être entendues à plusieurs kilomètres à la ronde (diffusion isotrope), mais tout repose sur le sonneur qui peut être attaqué. Le pulsar est un exemple de diffusion isotrope trustless : un puissant faisceau de radiations accessible partout sur Terre, sans discrimination, et une structure impossible à attaquer puisqu'il s'agit d'un phénomène naturel.

Dans le cadre des attaques de routage, la recommandation est d'accroître la diversité des connections des nœuds (par exemple, disposer de plusieurs connections Internet par nœud), et de prendre en compte la présence d'attaquants le long des chemins de connexion : si c'est le cas, il faut rajouter des connexions aléatoires supplémentaires.

Les ondes radio à hautes fréquences sont utiles à cet objectifs :

  • Maximiser la portée de diffusion en créant un maillage de nœuds relais ;
  • Accroître la résistance à la censure du réseau (le firewall chinois n'arrête pas les ondes radio) ;
  • Accéder gratuitement aux données propagées (nul besoin de payer une connection Internet).

Nick Szabo propose donc d'utiliser la couche F de l'atmosphère, c'est-à-dire l'ionosphère (la rencontre entre les rayons ultraviolets du soleil et la couche F ionise les particules). L'ionosphère se comporte alors comme un miroir pouvant renvoyer certaines ondes radio (dont les HF), et la couche D, plus basse, agit comme un brouillard, ralentissant leur propagation. Selon les conditions météorologiques et les cycles solaires, cette propagation varie. Le cryptographe a étudié de près le comportement de ces ondes afin de trouver un système de diffusion suffisamment fiable pour le réseau Bitcoin :

  • L'incidence des ondes est quasi-verticale (70°) ;
  • La portée est d'environ 500 - 600 kms ;
  • Les fréquences fiables ont des longueurs d'onde comprises entre 40 et 80 km ;
  • Nick Szabo a conçu une antenne spécifique, horizontale ou en V, au choix.

La difficulté vient donc de l'atténuation des ondes à travers la couche D de l'atmosphère. Nick Szabo a laissé la parole à Elaine Ou, qui a livré les résultats de ses simulations après avoir étudié la diffusion de données numériques via les ondes radio.

Des réseaux de ce type ont déjà été mis en place par Anonymous pour relayer des messages chiffrés, mais ils n'ont pas duré très longtemps. Les serveurs mails de PSK sont un exemple plus solide.

Elaine OuLe travail d'Elaine Ou s'est focalisé sur le décalage de phase binaire : en effet, tout le monde connaît la modulation d'amplitude (AM) ou de fréquence (FM), mais la modulation de la phase du signal est particulièrement adaptée à la diffusion de données numériques. Dans des conditions idéales, on peut obtenir un débit de 500 bits par seconde; avec beaucoup de bruit mais en appliquant un mécanisme de correction du signal, on obtient 250 bits/s.

Dans sa version simplifiée, le modulateur prend une chaîne de bits et la décompose en une succession d'impulsions. La phase du signal ressemble à une succession de 0 et de 1. Le démodulateur ressemble fort, dans son fonctionnement, aux antennes servant à recevoir les signaux du satellite Blockstream, bien que ces derniers soient de plus modulés en amplitude, ce qui permet de coder 2 bits par impulsion : le signal passe à travers un filtre (synchronisation polyphasée) qui le convertit en langage binaire (le signal est égalisé, les phases négatives correspondent à 0 et les positives à 1). La structure des données transmises ressemble à du TCP/IP appliqué aux ondes radio.

L'installation utilisée pour les tests était basique : un transmetteur HF relié à une machine de chez 21 Inc et une antenne de 70 cm.

L'étude de la relation entre le taux d'erreurs par bit et le ratio signal/bruit confirme les prévisions de débit. En présence de fortes perturbations du signal, cependant, le correcteur d'erreurs est inefficace. Les tests effectués "grandeur nature" donnent de bons résultats (5 stations placées aléatoirement de part et d'autre d'une frontière à moins de 900 km de distance, assorties d'un dipôle de 10 m de hauteur) : au mieux, le signal est relayé en permanence, et dans le pire des cas, cela reste largement suffisant pour transmettre et confirmer une transaction.

Les travaux futurs :

  • Le traitement du bruit sera amélioré, ce qui permettra d'assurer la propagation du signal sur de longues distances avec une faible puissance de transmission ;
  • La modulation du signal sera dynamique et ajustée en fonction des conditions ;
  • Le protocole de messagerie sera également amélioré ;
  • La taille des antennes sera réduite.
  • Des essais sur de longues distances seront effectués.

Le duo cherche des volontaires pour aider à réaliser des expérimentations !

Les slides de la présentation.

Invited Talk: Plasma for Bitcoin

Par Joseph Poon

Joseph Poon

Joseph Poon est développeur pour le réseau Ethereum, et malgré une salle remplie de Bitcoin maximalists, l'accueil fut cordial : il faut dire que ses travaux de recherche autour de Plasma, une structure hautement scalable permettant d'assurer l'exécution de smart contracts, force le respect.

Plasma est un framework encore en développement qui devrait permettre de traiter plusieurs milliards de mises à jour de l'état de la blockchain (initialement celle d'Ethereum) par seconde. Grâce à un système d'incitations économiques, il sera possible de déployer des applications décentralisées capables de supporter une charge élevée, et ce de façon persistante, sans passer par les fermes de minage.

L'objectif de sa présentation était de donner des pistes pour adapter son travail au modèle UTXO de Bitcoin; ce qui pourra être expérimenté à travers les sidechains.

Sécurité et scalabilité : la sécurité d'une blockchain dérive de la compétition mathématique à laquelle se livrent les mineurs. Tout nœud complet peut vérifier lui-même l'intégrité des paiements. La capacité de l'ensemble des UTXOs est nécessairement limitée, proportionnellement au nombre de participants, même avec les solutions de couche secondaire comme le Lightning Network.

Minimisation du stockage de l'état du registre : si la vérité repose sur la blockchain, alors il faut minimiser la quantité d'informations à valider. Cependant, minimiser la quantité d'assertions à utiliser peut engendrer des erreurs de consensus, ce qui est problématique. Et pour construire des preuves, il faut des évidences : c'est donc la disponibilité des données qui est cruciale.

Canaux de paiements et Lightning Network : l'ouverture d'un canal de paiement permet d'effectuer une multitude de transactions entre deux parties (plusieurs dans le cas d'un réseau de canaux), et seul le règlement final s'effectue on-chain. Lors de la mise en place du canal, les parties doivent s'accorder sur l'état du registre : la disponibilité des données est requise pour tous les participants. Accroître le nombre de participants complexifie le système : si l'on doit interagir avec plusieurs centaines de personnes, certaines ne seront pas forcément en ligne, ce qui peut poser des problèmes de synchronisation. Il faut également des incitations suffisamment fortes pour empêcher des participants d'agir de façon malicieuse. Dans le cadre des canaux de paiement, il faut que des transactions soient effectuées sur la blockchain pour que les données soient disponibles.

Les propriétés possibles pour adapter Plasma à Bitcoin :

  • Plasma est une structure de "blockchains au sein d'une blockchain" : l'état des blockchains filles est engagé dans la blockchain racine.
  • Preuves de fraude : si un état incorrect est engagé, alors n'importe qui peut soumettre une preuve à la chaîne-mère et manifester son désaccord. Ces preuves de fraude sont établies par un ensemble d'opcodes et les sorties sont mises à jour.
  • Plasma est une couche protocolaire intermédiaire : Plasma n'est pas rapide et repose sur les réseaux de canaux de paiement pour accélérer les transactions. Il s'agit d'une couche protocolaire située entre les canaux de paiement et la blockchain, dans le but d'accroître la capacité et la scalabilité du registre.
  • Une seule blockchain doit pouvoir englober l'état du registre au niveau mondial : les données sont engagées sur la blockchain racine, et une fraude est prouvée puis annulée seulement en cas de litiges ou de comportement byzantin.
  • Confiance minimale : en sélectionnant avec soin la chaîne mère, les risques relatifs à l'arrêt de la blockchain ou à l'espace de stockage disponible sont significativement réduits.
  • Scalabilité des paiements et du registre : Plasma peut soutenir un nombre très important d'entrées dans le registre, et il est plus robuste contre les comportements byzantins qu'un portefeuille multi-signatures.

L'état du registre est "localisé", c'est-à-dire que les hashes des en-têtes des blocs d'une chaîne Plasma sont envoyés de façon périodique sur la blockchain racine. Les règles de consensus des blockchains filles sont définies dans les preuves de fraudes; si l'un des blocs est invalide, n'importe qui peut soumettre une preuve d'état frauduleux et revenir en arrière. Toute la difficulté réside dans le fait de prouver qu'une transition entre deux états sur la chaîne Plasma est frauduleuse : si l'on peut prouver que les fonds envoyés sur une blockchain Plasma sont valides (validation des nœuds complets), et que les fonds en sortie le sont également, prouver une fraude durant les transitions d'états d'une blockchain Plasma est complexe. Il faut donc imposer l'utilisation des preuves de fraudes via un mécanisme intervenant en sortie de la chaîne Plasma : cela nécessite un grande quantité de nouveaux opcodes.

L'innovation majeure de Plasma : les règles de consensus sont préalablement définies de façon à autoriser la "sortie" prématurée des fonds dans le cas où les données sont indisponibles. Par exemple, Alice souhaite payer 1 BTC à Bob mais le bloc devant valider sa transaction est indisponible (les nœuds miniers ou validateurs le retiennent, par exemple) : une transaction de sortie vers une autre blockchain Plasma ou vers la blockchain racine sera effectuée dès que possible.

Plasma permet donc de créer des arbres de blockchains; un seul engagement peut suffire pour valider les blockchains filles sur la blockchain parente.

Les slides de la conférence.

Pour en savoir plus sur Plasma : le whitepaper.

Ateliers thématiques

Après les différentes allocutions, tous les participants se sont regroupés en groupes de travail, pour réfléchir et échanger au sujet de leurs thèmes de prédilection. La petite délégation des membres du Cercle du Coin a profité de l'occasion pour échanger avec Anton Yemelenov, organisateur de l'événement, ainsi que le reste de l'équipe de passionné(e)s organisant chaque année, depuis 2014, cette série de conférences.

Commentaires

Indice des prix

Sécurisez vos cryptos

Ledger Nano S
Ledger Blue
Trezor Hardware wallet

Flux Twitter

Achetez des bitcoins/ethers

Acheter bitcoins et ethers sur Coinhouse
Acheter des bitcoins sur ZeBitcoin
Achat / Vente de crypto-monnaies sur coinbase
BitIt, achat de crypto-monnaies facile et rapide
SpectroCoin, le multi-services
Cex.io, Achat / Vente et échange de crypto-monnaies
Coinmama, l’achat bitcoin ethereum facile