The GNU Taler System: Practical and Provably Secure Electronic Payments
Total Page:16
File Type:pdf, Size:1020Kb
The GNU Taler system : practical and provably secure electronic payments Florian Dold To cite this version: Florian Dold. The GNU Taler system : practical and provably secure electronic payments. Cryptogra- phy and Security [cs.CR]. Université Rennes 1, 2019. English. NNT : 2019REN1S008. tel-02138082 HAL Id: tel-02138082 https://tel.archives-ouvertes.fr/tel-02138082 Submitted on 23 May 2019 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. THESE DE DOCTORAT DE L'UNIVERSITE DE RENNES 1 COMUE UNIVERSITE BRETAGNE LOIRE ECOLE DOCTORALE N° 601 Mathématiques et Sciences et Technologies de l'Information et de la Communication Spécialité : Informatique Par « Florian DOLD » « The GNU Taler System » « Practical and Provably Secure Electronic Payments » Thèse présentée et soutenue à « Rennes », le « 25.02.2019 » Unité de recherche : Inria Thèse N° : 195897 Rapporteurs avant soutenance : Philip ROGAWAY Professeur à l’University of California, Davis Sarah MEIKLEJOHN Professeure à l’University College London Composition du Jury : Chercheur à l’Inria Rennes Président : Alan SCHMITT Examinateurs : Philip ROGAWAY Professeur à l’University of California, Davis Sarah MEIKLEJOHN Professeure à l’University College London Alex PENTLAND Professeur à Massachusetts Institute of Technology Dir. de thèse : Christian GROTHOFF Professeur à Bern University of Applied Sciences Co-dir. de thèse : Jean-Louis LANET Directeur de recherche, Inria Titre : Le système GNU Taler : Paiements électroniques pratiques et sécurisés. Mots clés : Monnaie électronique, Cryptographie, Sécurité, Systèmes distribués, Applications pratiques Résumé : Les nouveaux protocoles de réseautage et Notre mise en œuvre du GNU Taler est utilisable cryptographiques peuvent considérablement par des utilisateurs non experts et s’intègre à améliorer les systèmes de paiement l’architecture du web moderne. Notre plateforme électroniques en ligne. Le présent mémoire de paiement aborde une série de questions porte sur la conception, la mise en œuvre et pratiques telles que la prodigue des conseils aux l’analyse sécuritaire du GNU Taler, un système clients, le mode de remboursement, l’intégration de paiement respectueux de la vie privée conçu avec les banques et les chèques “know-your- pour être pratique pour l’utilisation en ligne customer (KYC)”, ainsi que les exigences de comme méthode de (micro-)paiement, et en sécurité et de fiabilité de la plateforme web. Sur même temps socialement et moralement une seule machine, nous réalisons des taux responsable. d’opérations qui rivalisent avec ceux des processeurs de cartes de crédit La base technique du GNU Taler peut être dû à commerciaux globaux. l’e cash de David Chaum. Notre travail va au- delà de l’e-cash de Chaum avec un Pendant que les crypto-monnaies basées sur la changement efficace, et la nouvelle notion de preuve de travail à l’instar de Bitcoin doivent transparence des revenus garantissant que les encore être mises à l’échelle pour servir de marchands ne peuvent recevoir de manière substituant aux systèmes de paiement établis, fiable un paiement d’un payeur non fiable que d’autres systèmes plus efficaces basés sur les lorsque leurs revenus du paiement est visible blockchains avec des algorithmes de consensus aux autorités fiscales. plus classiques pourraient avoir des applications prometteurs dans le secteur financier. Nous La transparence des revenus est obtenue grâce faisons dans la conception, la mise en œuvre et à l’introduction d’un protocole d’actualisation l’analyse de la Byzantine Set Union Consensus, donnant lieu à un changement anonyme pour un protocole de Byzantine consensus qui un jeton partiellement dépensé sans avoir s’accorde sur un (Super-)ensemble d’éléments à besoin de l’introduction d’une évasion fiscale la fois, au lieu d’accepter en séquence les échappatoire. De plus, nous démontrons la éléments individuels sur un ensemble. Byzantine sécurité prouvable de la transparence anonyme Set consensus peut être utilisé comme de nos revenus e-cash, qui concerne en plus composante de base pour des chaînes de blocs l’anonymat habituel et les propriétés de permissions, où (à l’instar du style Nakamoto infalsifiables de l’e-cash, ainsi que la consensus) des blocs entiers d’opérations sont conservation formelle des fonds et la convenus à la fois d’augmenter le taux transparence des revenus. d’opération. Title: The GNU Taler System: Practical and Provably Secure Electronic Payments Keywords: Electronic Cash, Cryptography, Security, Distributed Systems, Practical Applications Abstract: We describe the design and implementation of On a single machine, we achieve transaction GNU Taler, an electronic payment system based rates that rival those of global, commercial credit on an extension of Chaumian online e-cash with card processors. efficient change. In addition to anonymity for customers, it provides the novel notion of We increase the robustness of the exchange—the income transparency, which guarantees that component that keeps bank money in escrow in merchants can reliably receive a payment from exchange for e-cash—by adding an auditor an untrusted payer only when their income from component, which verifies the correct operation of the payment is visible to tax authorities. the system and allows to detect a compromise or misbehavior of the exchange early. Income transparency is achieved by the introduction of a refresh protocol, which gives Just like bank accounts have reason to exist anonymous change for a partially spent coin besides bank notes, e-cash only serves as part of without introducing a tax evasion loophole. In a whole payment system stack. Distributed addition to income transparency, the refresh ledgers have recently gained immense popularity protocol can be used to implement Camenisch- as potential replacement for parts of the traditional style atomic swaps, and to preserve anonymity financial industry. While cryptocurrencies based in the presence of protocol aborts and crash on proof-of-work such as Bitcoin have yet to scale faults with data loss by participants. to be useful as a replacement for established payment systems, Furthermore, we show the provable security of other more efficient systems based on our income-transparent anonymous e-cash, blockchains with more classical consensus which, in addition to the usual anonymity and algorithms might still have promising applications unforgeability properties of e-cash, also formally in the financial industry. models conservation of funds and income transparency. We design, implement and analyze the performance of Byzantine Set Union Consensus Our implementation of GNU Taler is usable by (BSC), a Byzantine consensus protocol that non-expert users and integrates with the agrees on a (super-)set of elements at once, modern Web architecture. Our payment instead of sequentially agreeing on the individual platform addresses a range of practical issues, elements of a set. While BSC is interesting in such as tipping customers, providing refunds, itself, it can also be used as a building block for integrating with banks and know-your-customer permissioned blockchains, where—just like in (KYC) checks, as well as Web platform security Nakamoto-style consensus—whole blocks of and reliability requirements. transactions are agreed upon at once, increasing the transaction rate. Acknowledgements I would like to thank Moritz Bartl for helping with the funding for this thesis. Bruno Haible provided generous support for the GNU Taler team to visit meetings of the W3C’s Web Payment Working Group. I also thank Ashoka, the Tor project and the Donaukurier for their support. This work benefits from the financial support of the Brittany Region (ARED 9174) and the Renewable Freedom Foundation (RFF). I want to thank Inria and my team leader Axel Legay for hosting me during the work on my thesis, and Jean-Louis Lanet for agreeing to co-advise my thesis. Special thanks goes to Thomas Given-Wilson, Fabrizio Biondi, Laurent Morin and Nisrine Jafri for their support and company. I also thank the Bern University of Applied Sciences for providing the hardware that was using during experiments. Thanks to Marcello Stanisci for his work as an engineer on the GNU Taler project. Chapter 5 is based on work published in the EURASIP Journal on Wireless Communications and Networking in collaboration with Christian Grothoff. Parts of Chapter 4 have been published in collaboration with Jeff Burdges, Christian Grothoff and Marcello Stanisci at SPACE 2016. Thanks to Cristina Onete and Jeff Burdges for their collaboration on the prov- able security of GNU Taler. I am grateful to the GNU project, in particular Richard Stallman, for their support of this project. I also thank all GNUnet developers and GNU Guix developers, especially Hartmut Goebel, Nils Gillmann, Gabor Toth, Ludovic Courtès and Andreas Enge. Thanks to the Taler Systems business team, in particular Leon Schumacher and Michael Widmer, for their continuous faith in the project. I thank my advisor Christian Grothoff for his advice and friendship. Last but not least I’d like to thank my parents, my oldest friends Tom and Ben and my fiancée Vaish for their relentless support even during the most difficult times. v Contents 1. Introduction 1 1.1. Design Goals for GNU Taler . 2 1.2. Features of Value-based Payment Systems . 4 1.2.1. Offline vs Online Payments . 4 1.2.2. Change and Divisibility . 5 1.2.3. Anonymity Control . 6 1.2.4. User Suspension . 6 1.2.5. Transferability . 6 1.2.6. Atomic Swaps . 7 1.2.7. Refunds . 7 1.3. User Experience and Performance . 7 1.4. The Technical Foundation: Anonymous E-Cash .