La sécurité et l'optimisation des chaines à blocs et algorithmes associés

par Mirko Koscina Bobadilla

Projet de thèse en Mathématiques

Sous la direction de David Naccache.

Thèses en préparation à Paris Sciences et Lettres , dans le cadre de Sciences Mathématiques de Paris Centre , en partenariat avec DIENS - Département d'informatique de l'École normale supérieure (laboratoire) et de Ecole normale supérieure (établissement de préparation de la thèse) depuis le 01-09-2016 .


  • Résumé

    1. Contexte de la thèse. La popularité accrue des chaînes à blocs (CBs, en anglais « blockchains ») et la diffusion grandissante des monnaies cryptographiques dont le bitcoin est sans doute la plus connue, soulèvent de nombreux défis techniques, économiques et juridiques. Le bitcoins fut proposé en 2008 comme solution de monnaie électrique pair-à-pair par un groupe de programmeurs anonymes connus sous le pseudonyme Satoshi Nakamoto. Le bitcoin est une monnaie électronique permettant d'effectuer des paiements en évitant de recourir aux services d'une institution financière centrale ou à l'aide d'un opérateur de paiement international tel que Visa, MasterCard, AMEX ou JCB. Par opposition aux systèmes de paiement classiques, le bitcoin ne nécessite aucun tiers de confiance. Le système est basé sur la notion de registre transactionnel public (en anglais “ledger”) dans lequel les transactions sont enregistrées et vérifiées au fur et à mesure par une communauté d'utilisateurs qui y investissant leurs propres ressources de calcul. Les transactions faites en bitcoins utilisent la cryptographie asymétrique afin d'attester les transferts de fonds entre participants. L'unité ainsi transférée est la monnaie scripturale appelée « bitcoin ». Pour effectuer une transaction, chaque titulaire de bitcoins doit signer un haché de la transaction précédente avec sa clé secrète et ajouter ce haché à la fin de la pièce de monnaie électronique afin de transférer les bitcoins concernés à leur nouveau propriétaire. Ainsi, la personne payée peut valider la chaine de signatures - afin de vérifier que le payeur dispose effectivement des bitcoins en question. La CB est maintenue par un réseau de machines sur lesquelles est installé le logiciel bitcoin. Les nœuds du réseau valident les transactions et les ajoutent aux copies du registre transactionnel qu'elles détiennent. Une fois la nouvelle transaction ajoutée, la CB est transmise aux nœuds voisins. Ce procédé de paiement est appelé le minage (en anglais « mining ») et les utilisateurs qui certifient les transactions sont appelés « mineurs ». Ce faisant, des nouveaux bitcoins sont créés et donnés comme récompense aux mineurs. Pour que chaque nœud puisse s'assurer indépendamment qu'un payeur dispose effectivement des fonds nécessaires au paiement qu'il essaie d'effectuer. Lorsqu'un nouveau groupe de transactions est injecté dans le système un nouveau block est créé et transmis à tous les nœuds avoisinants. Ce processus crée un effet équivalent à celui d'un centre interbancaire de compensation. A la différence des procédés traditionnels de paiement, la compensation bancaire des bitcoins est basée sur un service de sauvegarde communautaire. Les transactions sont horodatées puis servent de donnée sur laquelle une preuve de travail (PdT) est effectuée. La PdT permet l'inclusion de la transaction dans la CB qui progresse ainsi. Chaque bloc avec des nouvelles transactions contient le haché SHA-256 du bloc précédent. Ceci force les mineurs à trouver un nonce par une recherche exhaustive. Le nonce est tel que lorsque le bloc est haché deux fois avec nonce le résultat présente une suite de zéros. Ce processus peut être vérifié facilement mais trouver un tel nonce est très consommateur en temps. Le bitcoin est une monnaie anonyme car leur détention n'est pas liée à une identité mais à une adresse électronique. Ainsi, même si les détendeurs de bitcoins sont anonymes, les transactions ne le sont pas. Ainsi, tous peuvent observer les transferts de fonds sans pour autant inférer des informations nominatives sur les parties impliquées. A ce jour plus de 100000 marchands acceptent le bitcoin. Les frais par transaction varient entre 0% et 2% du montant échangé. A titre de comparaison, le coût d'une transaction effectuée par carte varie oscille entre 2% et 4% du montant payé. De ce fait, les nouvelles crypto-monnaies (et le bitcoin en particulier) deviennent des alternatives intéressantes à la monnaie souveraine. Ainsi, il importe de modéliser et comprendre les fondements technologiques de ces nouveaux systèmes de paiement ce que la présente thèse se donne pour but.  2. Programme de recherche. Le candidat s'intéressera à quatre questions théoriques visant à améliorer, généraliser et modéliser les CBs. 2.1. Preuves de travail utiles et alternatives. Dans l'implémentation actuelle de bitcoin, la certification d'un nouveau bloc de transactions demande un travail fastidieux et inutile. Ce travail, dit minage (en anglais « mining »), consiste à faire de la recherche exhaustive permettant de trouver des hachés ayant une forme particulière. Nous souhaitons considérer des variantes de bitcoin dans lesquelles le travail effectué lors du minage serait utile à la vie de la CB ou à la résolution d'un problème scientifique bien défini. Ainsi, on pourrait, par exemple, imaginer des CBs dans lesquelles le minage contribue à factoriser un nombre composite ou où des CBs où le minage contribue à calculer un logarithme discret. Le doctorant étudiera différents problèmes se prêtant au minage et des variantes de CB où la puissance de calcul dépensée lors du minage est utilisée utilement. Dans chaque cas et pour chaque variante le doctorant évaluera le risque que le problème servant au minage soit une instance préalablement résolue par le mineur (scenario de triche) et proposera des mécanismes permettant d'éviter de telles attaques et des modèles permettant de monétiser le travail fourni à la communauté. 2.2. Recherche de failles de sécurité concrètes dans les CBs actuelles. Les CBs sont implémentées par des programmes dont le codage a été effectué par une communauté de bénévoles. Le doctorant effectuera une revue de code complète des modules logiciels de CB les plus populaires et évaluera leur résistance à différentes attaques logicielles. En particulier, le doctorant tentera de prouver formellement les propriétés de sécurité d'une CB-type à l'aide d'outils d'annotation de code et de preuve formelle. 2.3. Modèles formels de l'économie de chaînes à blocs. A ce jour, les CBs ne sont pas modélisées formellement du point de vue économique. En particulier, le réglage des variables d'incitation à coopérer n'est est empirique et repose sur des heuristiques peu documentées. Le doctorant proposera une modélisation économique des CBs en termes de théorie des jeux et un modèle permettant de modéliser les manipulations malveillantes du cours des CBs. 2.4. Amélioration des performances et des applications actuelles des CBs. Les CBs actuelles souffrent de plusieurs limitations dont, en particulier, l'accroissement de la taille de l'historique transactionnel (en anglais « Ledger »), et d'un temps de latence préalable à la validation d'une transaction. Le doctorant dressera un catalogue des limitations actuelles dont souffrent les CBs et proposera des solutions algorithmiques et conceptuelles permettant de les améliorer. En règle générale, le doctorant explorera les moyens grâce auxquels la technologie des CB pourrait être mise à profit afin de proposer de nouveaux protocoles décentralisés permettant la certification, le stockage ou le calcul distribué (calcul brouillard, en anglais « fog computing »). Un accent particulier sera mis sur la mise au point d'algorithmes permettant d'éviter la double-dépense.

  • Titre traduit

    Security and optimization of blockchains and associated algorithms


  • Résumé

    1. Context The increased popularity of blockschains and the growing diffusion of cryptographic currencies, including the bitcoin (probably the best known), raises many technical challenges, economic and legal. Bitcoins was proposed as a peer-to-peer solution for electronic cash by a group of programmers called Satoshi Nakamoto in 2008. Bitcoins is an electronic currency that lets us to make payments without the need to pass through a financial institution or an international payment scheme (e.g. Visa, MasterCard, AMEX, JCB, among others). Unlike to the current payment schemes, Bitcoin don't relay in trusted third parties. It is based in into a public ledger (Blockchain) where the transactions are recorded and verify by a group of users that use their own computing resources. The transactions with bitcoins are based on an asymmetric cryptographic scheme to secure the process to transfer the electronic coins between bitcoins-holders. To make a transaction, each bitcoins' owner must to sign a hash of the previous transaction by using a private key and add it to the end of the coin in order transfer the bitcoins to next owner. Then, the payee can validate the signatures to verify the chain of ownership of the bitcoins. The maintenance of the blockchain is made by a network of communicating nodes running bitcoin software. The network nodes validate the Bitcoins transactions and add them to their copy of the ledger to then transmit it to other nodes. This payment processing is called mining and the users that perform it are called miners. For this service, new bitcoins are created as rewards to the miners. To reach an independent verification of the chain of ownership of every bitcoins, each node stores its own copy of the blockchain. A new group of accepted transactions is injected to the system creating a new block, which is added to the blockchain and spread it to all the network nodes. This is the equivalent process to the financial clearing of a payment scheme. Unlike traditional payment scheme, the clearing process used by Bitcoins is based on a record-keeping service (mining). The model proposed by the authors begins with a time stamp server. This is implemented by using a proof-of-work to inject a new block into the system. Each block with new transactions contains the HASH value of the previous block generated by using SHA-256 as a hashing algorithm. This require to the miners to find a nonce by brute-force, such that when the block content is hashed twice with the nonce, the result begins with a number of zero bits. This process can be verified easily, but the time consumption used in the generation process is too high. Once this process is done successfully, the block is accepted into the system. Bitcoins can be considered as an anonymous electronic currency because their ownership is not linked to a person or entity but rather to an address. Even though that the owners are anonymous; all the bitcoins transactions are public. With this, anyone can see that someone is transferring bitcoins to someone else without information linking about the parties. Nowadays, the bitcoins acceptances by merchants exceed 100.000 and the charge for the use of the payment scheme is within 0% to 2% over the transaction amount, unlike the card payment scheme that is between 2%-4%. This makes to bitcoins be an interesting payment scheme and a global currency.   2. Research program The PhD candidate will focuses on four theoretical issues to improve, generalize and modeling blockchains. 2.1. Useful work evidence and alternatives In the current implementation of bitcoin, certification of a new transaction block requires a tedious and unnecessary work. This work, called mining, consists in to perform an exhaustive search to find chopped with a particular structure. We would consider bitcoin as the blockchain variant in which the work done during the mining would be useful to the life of the blockchain or solving a well-defined scientific problem. Thus, one could imagine blockchain in which mining contributes to factoring a composite number or where blockchains mining contributes to compute a discrete logarithm. The PhD student will study different problems lending to mining and blockchain variants where the computing power expended during mining is used effectively. In each case and for each variant the student assess the risk that the problem to be a mining authority, an instance previously resolved by miner (cheating scenario) and propose mechanisms to prevent such attacks and models to monetize the work provided to the community. 2.2. Research for concrete security flaws in the current blockchains The blockchains are implemented by pieces of software whose coding was done by a community of volunteers. The PhD student will conduct a complete review of the blockchains code of most popular software modules and evaluate their resistance to different software attacks. In particular, the student will attempt to formally prove the security properties of a BC-type using code annotation tools and formal proof. 2.3. Formal economic model for blockchains Currently, the CBs are not formally modeled the economic point of view. In particular, setting the incentive variables to cooperate is empirical and based on poorly documented heuristics. The PhD student will propose an economic modeling of blockchains in terms of game theory and a technique to model malicious manipulations over the blockchains. 2.4. Current applications of blockchains and improvements of their performance Current blockchains suffer from several limitations including, in particular, increasing the size of the transaction history (Ledger), and a latency time prior to committing a transaction. The PhD student will prepare a catalog of current limitations faced by blockchains and propose conceptual and algorithmic solutions to improve them. Typically, the student will explore the ways in which blockchains technology could be leveraged to offer new decentralized protocols for certification, storage and computing fog. A particular focus will be on the development of algorithms to prevent double-spending.