Decentralised Data Provenance Based on the Blockchain
Total Page:16
File Type:pdf, Size:1020Kb
Decentralised Data Provenance Based on the Blockchain DIPLOMARBEIT zur Erlangung des akademischen Grades Diplom-Ingenieur im Rahmen des Studiums Software Engineering und Internet Computing eingereicht von Ing. Svetoslav Videnov, BSc Matrikelnummer 1025844 an der Fakultät für Informatik der Technischen Universität Wien Betreuung: Dr.-Ing. Stefan Schulte, BSc, Dipl.-Oec. Wien, 1. März 2019 Svetoslav Videnov Stefan Schulte Technische Universität Wien A-1040 Wien Karlsplatz 13 Tel. +43-1-58801-0 www.tuwien.ac.at Decentralised Data Provenance Based on the Blockchain DIPLOMA THESIS submitted in partial fulfillment of the requirements for the degree of Diplom-Ingenieur in Software Engineering and Internet Computing by Ing. Svetoslav Videnov, BSc Registration Number 1025844 to the Faculty of Informatics at the TU Wien Advisor: Dr.-Ing. Stefan Schulte, BSc, Dipl.-Oec. Vienna, 1st March, 2019 Svetoslav Videnov Stefan Schulte Technische Universität Wien A-1040 Wien Karlsplatz 13 Tel. +43-1-58801-0 www.tuwien.ac.at Erklärung zur Verfassung der Arbeit Ing. Svetoslav Videnov, BSc St.-Antonius-Str. 40, 6890 Lustenau, Austria Hiermit erkläre ich, dass ich diese Arbeit selbständig verfasst habe, dass ich die verwen- deten Quellen und Hilfsmittel vollständig angegeben habe und dass ich die Stellen der Arbeit – einschließlich Tabellen, Karten und Abbildungen –, die anderen Werken oder dem Internet im Wortlaut oder dem Sinn nach entnommen sind, auf jeden Fall unter Angabe der Quelle als Entlehnung kenntlich gemacht habe. Wien, 1. März 2019 Svetoslav Videnov v Danksagung An erster Stelle möchte ich meinem Betreuer Herrn Dr.-Ing. Stefan Schulte danken für seine unermüdliche Geduld mit meiner Arbeit, seiner humorvollen Aufnahme meiner Zeitplanung, und vor allem seiner stetigen Bereitschaft mich fachlich und auch wissen- schaftlich zu unterstützen. Ohne seine engagierte Betreung wäre diese Arbeit nicht in der vorliegenden Qualität zustande gekommen. Weiters möchte ich allen meinen Arbeitskollegen, und insbesondere Michael Borkowski, für anregende, fachliche und nicht fachliche, Diskussionen und einen tiefgehenden Einblick in das wissenschaftliche Arbeiten, danken. Ihre Bereitschaft, zu jeder Zeit Erfahrungen und Empfehlungen mit mir zu teilen war eine wahre Hilfe für meine Zeit am Institut. An dieser Stelle möchte ich auch meinen besonderen Dank an die Damen aus dem Sekretariat der DSG aussprechen. Renate Weiss, Margret Steinbuch und Christine Kamper waren allzeit bereit mir bei organisatorischen Problemen zu helfen um diese möglichst rasch aus dem Weg zu räumen. Des Weiteren möchte ich mich bei der Internet Privatstiftung Austria bedanken, die mir im Rahmen ihres Förderprogramms Netidee ein Stipendium für meine Masterarbeit verliehen haben. Mit ihren Stipendien bieten sie eine wichtige Hilfestellung für die OpenSource-Gemeinschaft in Österreich. Zu guter Letzt möchte ich auch meiner Familie, meinen Freunden und meiner Partnerin danken. Allen voran meinen Eltern, die mein Studium in erster Linie ermöglicht haben und sich all die Jahre von der Dauer nicht beirren haben lassen. Meinen Freunden und Schwester die mich in regelmäßigen Abständen dazu gebracht haben, Dinge aus den Augen von Nicht-Informatikern zu betrachten und meiner Partnerin, Agnes Fastenbauer, die vor allem in den finalen Wochen meiner Arbeit für ein ungestörtes Umfeld gesorgt hat, in dem ich in Ruhe arbeiten konnte. vii Acknowledgements First, I would like to express my gratitude to my supervisor, Dr.-Ing. Stefan Schulte, for his seemingly endless patience and his humorous taking of my time frames. But, foremost I want to thank him for his technical and scientific support. Without his expertise, this thesis would not be present in its current quality. Next, I want to thank my colleagues, especially Michael Borkowski, for interesting and funny discussions which often but not always revolved around the work we were doing. They made it possible for me to get a glimpse at what it means to do scientific work and never fell short to support me with their experience and expertise during my time at the institute. I also want to give my special thanks to the gorgeous ladies from the office administra- tion. Renate Weiss, Margret Steinbuch and Christine Kamper were always there when organizational obstacles needed to be taken care of. Furthermore, I want to thank the Internet Foundation Austria who supported my work with a grant as part of their Netidee funding programme. They are providing important support for the open source community in Austria. Last but not least, I want to thank my family, friends and my partner. First and foremost my gratitude goes to my family who enabled my studies in the first place and were never concerned with the long time it took. Then I want to thank my friends and my sister for helping me regularly to see things from the perspective of a non-information scientist. Finally, I want to thank my partner, Agnes Fastenbauer. Especially in the final weeks of this work, she created a very productive environment for me to be able to finish my work. ix Kurzfassung Das Fachgebiet der Daten-Provenienz beschäftigt sich mit der Herkunft von Daten. Es erlaubt uns, Vertrauen in Daten aufzubauen. Dafür müssen die Provenienz-Daten selber zuverlässig sein und gewisse Sicherheitsstandards erfüllen. Das zu erreichen erweist sich als schwierig, da Daten-Provenienz oft sehr Domänen-abhängig ist, wodurch eine starke Fragmentierung des Fachgebietes entstanden ist. Diese Fragmentierung macht es schwierig, einheitliche Sicherheitsstandards zu implemen- tieren. Deswegen haben sich auch für die Sicherheitsanforderungen Domänen-spezifische Lösungen entwickelt. Außerdem erschwert die Fragmentierung die Zusammenarbeit zwi- schen den verschiedenen Domänen. Dies wiederum erschwert es, die Herkunft von Daten nachvollziehbar zu machen was das eigentliche Ziel von Daten-Provenienz ist. In dieser Arbeit stellen wir eine Blockchain-basierte Lösung vor um Domänen-unabhängige Suchgebiete für Daten-Provenienz zu erstellen. Dies erlaubt es uns, auch Sicherheitsei- genschaften der Blockchain auf eine einheitliche Art und Weise auf Daten-Provenienz zu übertragen. Mithilfe unserer Lösung können wir die Zusammenarbeit zwischem Domänen ermöglichen, ohne diesen einheitliche Provenienz-Eigenschaften aufzwingen zu müssen. Dies erlaubt es, die Herkunft von Daten über Domänengrenzen hinaus nachvollziehbar zu machen und ein vollständigeres Bild der Datenherkunft zu erstellen. Gleichzeitig kreieren wir eine Platform auf der Domänen-unabhängige Sicherheitsanforderungen einheitlich umgesetzt werden können. xi Abstract Data provenance allows to reproduce what has happened to data during its lifecycle, i.e., it allows to build trust in data and decisions. To achieve this, provenance data has to be reliable itself and to fulfill certain security requirements. This proves to be a difficult problem since data provenance often has many domain-specific properties. Addressing these domain specificities has led to a fragmentation of the field of data provenance. This fragmentation is a problem since it makes it hard to implement common solutions for security requirements. Instead, the field of secure provenance often focuses on providing domain-specific solutions. Furthermore, this fragmentation makes collaboration between domains difficult, hindering the overall goal of making the history of data products reproducible. In this thesis, we present a blockchain-based approach for creating a domain-independent search space for data provenance. At the same time, we are able to utilize this search space to map strong blockchain-based security properties, in a domain-independent way, to the field of data provenance. With our solution, we can enable collaboration between domains without enforcing common provenance properties to the domains. This would allow us to track data products across domain borders and create more complete provenance views while providing a platform for common security properties. xiii Contents Kurzfassung xi Abstract xiii Contents xv 1 Introduction 1 1.1 Data Provenance . 2 1.2 Blockchain . 3 1.3 Solution Approaches . 4 1.4 Thesis Structure . 5 2 Background 7 2.1 Data Provenance . 7 2.1.1 Introduction . 7 2.1.2 W3C PROV . 9 2.1.3 Kinds of Data Provenance . 14 2.1.4 Securing Data Provenance . 16 2.2 Blockchain . 16 2.2.1 The Basics of Cryptography . 17 2.2.2 The Idea Behind Cryptocurrencies . 19 2.2.3 The Basics of Blockchain . 22 2.2.4 Ethereum . 27 2.3 Trust Networks and Trust Propagation . 29 2.4 Related Work . 30 2.4.1 Related Work Categorization . 30 2.4.2 Secure Data Provenance . 32 2.4.3 Blockchain-based Data Provenance . 34 3 Design 39 3.1 The Searchability Issue . 39 3.1.1 Storing Provenance Data in the Blockchain . 40 3.1.2 Querying Provenance Data from the Blockchain . 45 3.1.3 Interpreting Provenance Information . 49 xv 3.1.4 Referencing Provenance Information . 52 3.1.5 Mix-Chain Interpretation and Referencing . 55 3.1.6 Summary . 56 3.2 The Duplication Issue . 56 3.2.1 Duplicating Blockchain-backed Provenance . 56 3.2.2 Attack By Duplication . 59 3.2.3 Towards Solving The Duplication Issue . 60 3.3 Provenance Networks . 61 3.3.1 Provenance Contract . 62 3.3.2 Contract linking . 64 3.3.3 Trust Propagation in the Provenance Network . 65 3.3.4 Provenance Contract Access Security . 70 3.3.5 Provenance Networks Summery . 71 3.4 Summary . 73 4 Implementation 75 4.1 ETH-Project . 76 4.1.1 Project Structure . 76 4.1.2 Contract Design Structure . 78 4.2 React-Client . 84 4.3 Node-Client . 91 4.4 Eval-Project . 92 4.5 Summary . 93 5 Evaluation 95 5.1 Cost of the Blockchain . 95 5.1.1 Provenance Cost . 96 5.1.2 Monetary Cost . 100 5.1.3 Operational Cost . 101 5.2 Searching Provenance Data . 101 5.2.1 The Evaluation Network . 101 5.2.2 Scenario 1: Searching for Provenance Data . 103 5.2.3 Scenario 2: Searching between Domains . 104 5.2.4 Scenario 3: Malicious User within the Domain . 105 5.2.5 Scenario 4: Hiding Provenance in the Network . 106 5.2.6 Scenario 5: Duplicating an entire Domain .