Blockchain-Based Ticketing Marius Lillevik Ole Bjørngran Andrine Celineflatby
Total Page:16
File Type:pdf, Size:1020Kb
Andrine Celine Flatby Ole Bjørn Gran Marius Lillevik Blockchain-based Ticketing Bachelor’s project in Bachelor of Science in Engineering - Computer Science Supervisor: Hao Wang Bachelor’s project Bachelor’s May 2019 NTNU Engineering Department of Computer Science Department of Computer Faculty of Information Technology and Electrical Technology of Information Faculty Norwegian University of Science and Technology of Science University Norwegian Andrine Celine Flatby Ole Bjørn Gran Marius Lillevik Blockchain-based Ticketing Bachelor’s project in Bachelor of Science in Engineering - Computer Science Supervisor: Hao Wang May 2019 Norwegian University of Science and Technology Faculty of Information Technology and Electrical Engineering Department of Computer Science Blockchain-based Ticketing Sammendrag av Bacheloroppgaven Tittel: Billettsystem på Blockchain Dato: May 19, 2019 Deltakere: Andrine Celine Flatby Ole Bjørn Gran Marius Lillevik Veiledere: Hao Wang Oppdragsgiver: Innit AS Kontaktperson: Hao Wang, [email protected], +47 70 16 15 34 Nøkkelord: Blockchain, Billettsystem, Ethereum, Hyperledger Fabric, Solidity, JavaScript Antall sider: 43 Antall vedlegg: 6 Tilgjengelighet: Åpen Sammendrag: Innit AS har flere lisensierte applikasjoner for billettsalg for ishockey lag i den norske hockey ligaen. De forbedrer kontinuerlig sine billettsystemer, og de vil se om de kan forbedre sin eksisterende løsning ved hjelp av blockchain- teknologi. Blockchain er en relativt ny teknologi med mange bruksområder. Det gjør det mulig for medlemmer av et nettverk å dele informasjon sikkert og har forbedret loggegenskaper sammenlignet med tradis- jonelle databaser. Denne oppgaven undersøker bruken av blockchain i billett systemer. Først presenteres en bakgrunnsstudie av blockchain-teknologien og dens utviklingsplattformer. Deretter en undersøkelse av dagens marked og eksis- terende løsninger bygget på blockchain. Basert på disse funnene ble en prototype av et billettsystem utviklet som et "proof of concept" for å fremheve mulighetene for disse systemene. i Blockchain-based Ticketing Summary of Graduate Project Title: Blockchain-based Ticketing Date: May 19, 2019 Authors: Andrine Celine Flatby Ole Bjørn Gran Marius Lillevik Supervisor: Hao Wang Employer: Innit AS Contact Person: Hao Wang, [email protected], +47 70 16 15 34 Keywords: Blockchain, Ticket systems, Ethereum, Hyperledger Fab- ric, Solidity, JavaScript Pages: 43 Attachments: 6 Availability: Open Abstract: Innit AS has multiple licensed applications for ticket sales for ice hockey teams in the Norwegian hockey league. They are continuously improving their ticketing systems, and they want to see if they could improve their existing solution by using blockchain technology. Blockchain is a relatively new technology with a wide variety of applications. It allows members of a network to share information securely and has improved logging capabilities compared to traditional databases. This thesis investigates the applications of blockchain in ticketing systems. First, a background study of the blockchain technology and its development platforms are presented. Then an investigation into the current market and the existing solutions using blockchain. Based on these findings, a prototype ticketing system was developed as a proof-of-concept to showcase the feasibility of these systems. ii Blockchain-based Ticketing Preface We want to thank Øyvind Tangen and Olafur Trollebø at Innit for the interesting bachelor thesis and for their continuous support during this period. We also want to thank our supervisor Hao Wang for his input on the report; he helped structure and proofread our report from day one. We also want to thank Mariusz Nowostawski for his help during the development of our prototype. He helped us with most of the questions we had about developing the prototype on a blockchain. iii Blockchain-based Ticketing Contents Preface .......................................... iii Contents ......................................... iv List of Figures ...................................... vii List of Tables ....................................... viii Listings .......................................... ix Abbreviations ...................................... x 1 Introduction ..................................... 1 1.1 Background...................................1 1.2 Problem area..................................1 1.3 Project description...............................2 1.4 Delimitations..................................2 1.5 Target audience.................................2 1.6 Academic background.............................2 1.7 Project organization..............................3 1.8 Document structure..............................3 2 Blockchain ...................................... 4 2.1 What is blockchain?..............................4 2.1.1 Decentralization............................5 2.1.2 Different types.............................5 2.1.3 Frameworks and platforms......................6 2.2 How it works..................................6 2.2.1 Distributed ledger...........................7 2.2.2 Smart contract.............................7 2.2.3 Consensus protocol vs algorithms...................8 2.3 Why blockchain in ticketing system?.....................8 2.3.1 Benefits.................................8 2.3.2 Challenges...............................9 3 Existing services ................................... 10 3.1 Services..................................... 10 3.1.1 Evopass................................. 10 3.1.2 Blocktix................................. 10 3.1.3 GUTS.................................. 11 3.2 Protocols.................................... 11 3.2.1 Aventus................................. 11 3.2.2 GET................................... 11 iv Blockchain-based Ticketing 3.3 Their solutions................................. 12 3.3.1 Platforms................................ 12 3.3.2 Smart tickets.............................. 12 3.3.3 Security................................. 12 3.4 Market challenges............................... 12 4 Platforms and Protocols .............................. 15 4.1 Ethereum vs Hyperledger Fabric........................ 15 4.1.1 Ethereum................................ 15 4.1.2 Hyperledger............................... 16 4.1.3 Comparing Ethereum and Hyperledger Fabric............ 17 4.2 Comparing GET and Ethereum........................ 18 4.3 Choice of platform............................... 19 5 Design ......................................... 20 5.1 Requirements.................................. 20 5.2 Technical Design................................ 20 5.2.1 Use case model............................. 21 5.2.2 System structure............................ 24 5.2.3 GUI................................... 25 6 Implementation ................................... 26 6.1 Development Environment........................... 26 6.1.1 Software................................ 26 6.1.2 Skyhigh server............................. 26 6.2 Development.................................. 26 6.3 Finished Product................................ 31 6.3.1 Web interface.............................. 31 6.3.2 Testing.................................. 34 7 Discussion ...................................... 36 7.1 Discussion.................................... 36 7.2 Group Evaluation................................ 37 7.2.1 Initially................................. 37 7.2.2 Distribution of work.......................... 37 8 Conclusion ...................................... 38 8.1 Future work................................... 38 8.2 Conclusion................................... 38 Bibliography ....................................... 39 A Definitions ...................................... 44 B Source Code ..................................... 45 C Installation guide .................................. 57 D Meeting Logs ..................................... 63 E Project Plan ..................................... 65 v Blockchain-based Ticketing F Project Agreement .................................. 76 vi Blockchain-based Ticketing List of Figures 1 Example of how blockchain works......................6 2 Use Case Diagram............................... 21 3 Shows the system structure and dependencies................ 24 4 The proposed design for the web interface.................. 25 5 Page to event organizer............................ 31 6 Page to user................................... 32 7 Page to game.................................. 32 8 Page to ticket.................................. 33 9 Page to log................................... 34 vii Blockchain-based Ticketing List of Tables 1 Comparing Ethereum and Hyperleger Fabric................. 17 2 Comparing GET and Ethereum........................ 18 viii Blockchain-based Ticketing Listings 6.1 global arrays.................................. 27 6.2 createEventOrganizer function........................ 28 6.3 createGame function.............................. 28 6.4 createTicket function.............................. 29 6.5 buy function................................... 29 6.6 validateTicket function............................. 30 ix Blockchain-based Ticketing Abbreviations P2P, peer-to-peer DLT, distributed ledger technology Geth, Go-Ethereum PoW, Proof of Work PoS, Proof of Stake PBFT, Practical Byzantine Faul Tolerance VM, Virtual Machine EVM, Ethereum Virtual Machine Dapp, Decentralized application DAO, Decentralized Autonomous Organizations MVP, Minimum Viable Product x Blockchain-based Ticketing 1 Introduction