lundi 5 mai 2014

[DevoxxFr 2014] Session Bitcoin

Il a aussi été question de money à Devoxx, sans le contexte juridique bien sûr, ni financier. C'est Grégory Paul qui nous offre une visite guidée de l'univers Bitcoin. La monnaie cryptographique qui fait le buzz sur le net (ne pas confondre avec monnaie virtuelle) . “Le genre de sujets dont tout le monde parle, sans que ce soit facile de croiser quelqu'un qui sait de quoi il s'agit”.

Une session soigneusement préparée. On en sort avec l'impression d'avoir tout compris, mais au moment d'en parler à son tour on se rend compte qu'on n'a qu'un vague aperçu de l'ensemble. Ceci n'est donc qu'un petit résumé par rapport à la complexité du système Bitcoin. Si vous avez besoin d'en savoir plus je vous invite à consulter les liens que vous trouverez en bas de page et qui font partie de mes sources.

Tout démarre avec la publication en 2008 du papier de Satoshi Nakamoto (personne ou groupe de personnes) dont l'identité reste jusque là un mystère.

Nous sommes en 2014, Internet a plus de 20 ans, et le commerce électronique reste toujours assuré par les institutions financières traditionnelles. C'est un système de paiement qui est géré par un organe centrale, l' “Autorité de confiance” - banque ou société de cartes de crédit - qui décide de qui a le droit d'envoyer/recevoir de l'argent, applique des taxes et valide les transactions. Le système Bitcoin veut rendre les opérations financières accessibles à tous, à moindre coût, sans contrainte administrative, comme l'est la messagerie électronique, tout en garantissant la sécurité par l'utilisation de chiffrement et de signature numériques. C'est un système de monnaie électronique décentralisé où les transactions se font en ligne directement d'un tiers à un autre sans passer par une Autorité de confiance.

bitcoin-overview

Clés et signature

L'intégration du réseau Bitcoin commence par l'installation du logiciel bitcoin (sur PC, tablette ou smarphone). Juste après, une paire de clés publique/privée est générée automatiquement. La clé publique constitue l'adresse de l'utilisateur, elle peut être communiquée aux autres. Elle est aussi utilisée pour vérifier l'authenticité du message envoyé par l'utilisateur. La clé privée permet de signer les messages à envoyer (signature numérique) et de déchiffrer les messages reçus.

sign(message, privatekey) = n67n54n6l10xf15  
verify("n67n54n6l10xf15", message, publickey) = valid or invalid

Transaction décentralisée

Dans un système monétaire classique les transactions passent par l'Autorité de confiance qui les valide à son tour. Dans Bitcoin les transactions sont décentralisées, A peut envoyer directement à B. La transaction, une fois validée, est diffusée sur le réseau. Étant donné que tous les utilisateurs disposent de toutes les infos, chacun peut valider une transaction, ça consistera à vérifier qu'elle (la transaction) vient de A et que ce dernier dispose bien du moment spécifié dans la transaction. Le nombre de validations nécessaires pour une transaction dépendra du montant en jeu.

Une nouvelle transaction se trouve provisoirement dans une liste, puis une fois validée elle est ajoutée à la liste des transactions validées qui sont regroupées dans une chaine de blocks.

bitcoinchain

Mining and “Proof of work”

Après la transaction, le minage est le second type d'opération bancaire, c'est un moyen d'injecter des bitcoins dans le réseau. Pour en avoir, il faut fournir de l'effort, “Proof of work”. Le travail consiste à résoudre un problème mathématique, trouver le message initial d'un hash unidirectionnel à partir du digest (hash(X) = digest). Résoudre l'équation relève plus d'une question de chance et de puissance de calcul que d'intelligence. Le premier qui trouve la solution gagne des bitcoins, et l'information est enregistrée sur la liste de blocks et diffusée dans tout le réseau. “A a gagné x bitcoins”. La complexité croissante du problème à résoudre fait que le nombre de bitcoins en circulation ne dépassera pas le montant de 21,000,000 BTC.

Total_bitcoins_over_time_graph

Pour plus de lectures sur le sujet.