[gull] Bitcoin: un bel exemple de fiasco numérique programmé?

Marc SCHAEFER schaefer at alphanet.ch
Thu Aug 30 08:21:30 CEST 2018


On Wed, Aug 29, 2018 at 10:32:36PM +0200, Miçhael Parchet wrote:
> https://www.xavierstuder.com/2018/08/22/bitcoin-un-bel-exemple-de-fiasco-numerique-programme/
> 
> Bitcoin: un bel exemple de fiasco numérique?
> par Xavier Studer ??? 08/22/2018 ??? 20 commentaires

Très bien. Lorsque les critiques se font enfin jour dans les médias
grand public, c'est qu'on peut enfin commencer à travailler sérieusement,
le `hype' est fini.

Extrait d'un de mes polycopiés[1], critiques bienvenues:
(version texte obtenue avec detex, faudra que je me mette
 un jour à pandoc)

Blockchain
La confiance sans tiers garant: le consensus décentralisé

Dans les systèmes distribués où les divers partenaires ne se font pas
confiance, le premier réflexe est de désigner un tiers-garant, qui,
tel un notaire virtuel, certifiera les transactions. Par exemple, une
autorité de certification (voir section sec:crypto:ca) est un
tiers de confiance qui garantit qu'une certaine clé publique
correspond à un certain nom de domaine, voire même à une identité du
monde réel. De plus, il y a souvent nécessité de stocker des
informations dans un journal horodaté et accessible de tous, à fin de
vérification: tous ces éléments peuvent être résumés par le concept
de consensus distribué.

Comment faire pour assurer un consensus sans tiers-garant ni point
central ?  C'est cette problèmatique qui est résolue par la
blockchain.

Idéalement, une information fait partie du consensus lorsque plus de
50% des partenaires -- qui doivent stocker l'ensemble des
transactions, l'ensemble du consensus -- sont d'accord avec ce
fait. Cette information peut être des transactions de monnaie
virtuelle ou des smart contracts -- du
code exécuté lorsque une condition est atteinte.

Principes de base
Le principe de cette technique est de remplacer la signature
électronique (qui nécessite une chaîne de confiance ou un réseau de
confiance, voir section sec:crypto:trust) par une preuve de
travail (proof of work).

Lorsqu'un partenaire veut intégrer une nouvelle information au
consensus, il la propose au réseau, qui l'intègre à un bloc contenant
d'autres informations, dont le hâchage d'un bloc ayant
précédemment -- lui même contient le hâchage d'un autre
bloc, et récursivement jusqu'au bloc de base, appelé le
genesis block, qui fait partie du logiciel -- été
miné. Ensuite, des mineurs vont tenter de
résoudre un problème coûteux en calcul (CPU) le plus rapidement
possible.

Le premier mineur qui arrive à résoudre le problème -- par exemple
ajouter de l'aléatoire au bloc jusqu'à ce qu'un hâchage cryptographique
donne un résultat d'une certaine forme -- gagne -- les autres
mineurs en concurrence ont perdu leur temps -- d'où l'intérêt de joindre
des équipes de mineurs et reçoit une contre-partie, par exemple une
valeur en en monnaie virtuelle (p.ex. bitcoin) -- qui est la
motivation de miner en premier lieu.

A tout moment, le réseau contient donc plusieurs chaînes de bloc
minées, potentiellement incompatibles, et plus la chaîne est longue,
plus il y a de probabilité que cette chaîne fasse partie in fine du
consensus. Il peut y avoir plusieurs chaînes de bloc qui
temporairement sont incompatibles, et parfois des annulations: plus la
chaîne est longue moins le risque existe.

Pour compenser l'augmentation de puissance des machines ou l'intérêt
d'utiliser des systèmes de plus en plus dédiés (fermes, GPU, FPGA,
ASIC), la difficulté du problème augmente avec le nombre de blocs
minés: par exemple, il faut trouver un hâchage avec de plus en plus
de zéros au début.

En pratique, vu la taille du consensus, et l'augmentation des
ressources avec le temps, les clients du protocole n'implémentent en
général pas le service ou le minage. Ils passent souvent par des
proxies (qui peuvent être source de vulnérabilités).

Problèmes

Les problèmes fondamentaux de cette technologie sont les suivants:

   gaspillage de ressources

   pas de scalability: le consensus (journal des
   transactions) est de plus en plus grand

   plus les mineurs s'organisent en équipe contrôlées par un
         répartiteur, plus le risque que plus de 50% de la puissance de minage
         soit contrôlé dans les mêmes mains, et alors des attaques sur le
         consensus sont possibles

   un fork du logiciel est généralement un fork du consensus

   technologie complexe, avec des vulnérabilités potentielles dans
         toute la chaîne (algorithmes, implémentations, échanges, )

   chaque fork du consensus crée, pendant un certain temps, un
         jeu de l'avion, en particulier si le bloc de base
         (genesis block) est dans des mains
         actives: de nombreuses monnaies alternatives existent, jouets de
         spéculation financière

   avec les monnaies virtuelles, ce qui est stocké dans le consensus
         ce sont des transactions de transfert entre clés publiques: il
         faut donc protéger sa clé privée du vol

A ces problèmes de base, s'ajoutent des problèmes pratiques: vu la
charge de gestion du consensus et la création de monnaie à
chaque bloc miné de plus en plus faible, dans le bitcoin, il faut une
incitation de plus en plus grande, donc des frais de transaction, pour
que les mineurs travaillent en priorité sur nos demandes.  De plus,
les clients passent souvent par des services intermédiaires
(exchanges) qui peuvent être piratés. Enfin, bien souvent pour les
transactions commerciales simples, le temps d'attente pour que le
consensus soit complètement garanti est remplacé par un certain nombre
de confirmations: plus les mineurs seront contrôlés, plus le risque
d'un double spending existe.

Solutions et avenir

La technologie en est encore à sa phase de recherche: de nombreux
projets existent, comme par exemple Ethereum, qui a proposé, par
exemple, de modifier le concept de proof of work
par l'implication dans l'écosystème des partenaires
(proof of stake).

Une autre modification est de proposer des points de synchronisation
pour réduire la taille du journal, ou des proxies pour certifier
beaucoup plus rapidement des transactions.

Si certains voient dans le bitcoin et la blockchain une technologie
disruptive mettant en question la chaîne de valeurs, en
particulier de tous les emplois de type intermédiaire, d'autres
y voient une technologie intéressante, forte utile pour certaines
applications, mais très perfectible, tout en ne présentant aucun intérêt
pour beaucoup de domaines.

[1] http://ptiturl.ch/DrNNzzhL   (page 100-101)


More information about the gull mailing list