Αποκεντρωμενη Υπηρεσια Διαθεσησ Εισιτηριων Στο Eos Blockchain
Total Page:16
File Type:pdf, Size:1020Kb
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΕΠΕΞΕΡΓΑΣΙΑΣ ΠΛΗΡΟΦΟΡΙΑΣ ΚΑΙ ΥΠΟΛΟΓΙΣΜΩΝ ΟΜΑΔΑ ΚΑΤΑΝΟΗΣΗΣ ΠΟΛΥΜΕΣΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΑΠΟΚΕΝΤΡΩΜΕΝΗ ΥΠΗΡΕΣΙΑ ΔΙΑΘΕΣΗΣ ΕΙΣΙΤΗΡΙΩΝ ΣΤΟ EOS BLOCKCHAIN Σταύρος Αντωνιάδης ΑΕΜ:8279 υπό την επίβλεψη του Καθηγητή Αναστάσιου Ντελόπουλου και του Κωνσταντίνου Καρασσάβα Θεσσαλονίκη, 23 Σεπτεμβρίου 2019 When you do enough research, the story almost writes itself. Lines of development spring loose and you’ll have choices galore. Robert Mckee Περίληψη Μελετήσαμε τη βιομηχανία των εισιτηρίων και τα προβλήματα που αυτή παρουσιάζει λόγω της πολύπλοκης και διαιρεμένης δομής της και την έλλειψη διαφάνειας που υπάρχει σε αυτήν. Μοχλεύοντας το Eos blockchain και τα έξυπνα συμβόλαια δημιουργήσαμε ένα πρωτόκολλο δημιουργίας, έκδοσης, μεταφοράς και μεταπώλησης εισιτηρίων με συγκεκριμένους κανόνες που ορίζει ο εκάστοτε δημιουργός των εισιτηρίων, το οποίο λειτουργεί κάτω από συνθήκες διαφάνειας και ασφάλειας. Ακόμα δημιουργήσαμε μια διασυνδεδεμένη διεπαφή με το πρωτόκολλο ώστε ο χρήστης να είναι σε θέση να επικοινωνήσει με αυτό. Θέματα ασφαλείας στο επίπεδο τόσο των έξυπνων συμβολαίων όσο και στο επίπεδο της εφαρμογής μελετήθηκαν και οι τεχνικές αποφυγής τους εφαρμόστηκαν. Και τέλος, αξιολογήσαμε την αποδοτικότητα των μεθόδων και τεχνικών που ακολουθήσαμε. Σταύρος Αντωνιάδης [email protected] Σεπτέμβριος, 2019 i Abstract We study the ticketing industry and the problems that arrive due to the complex and fragmented structure of it and the lack of transparency that lives inside of it. We leverage the Eos blockchain and the smart contracts to create a protocol that transparently and securely performs and provides the possibility of creation, issuing, transferring, reselling and invalidating tickets in respect with the rules that every creator establishes among a variety of choices. Along with the protocol we implemented an app for the user to easily and frictionless interact with the protocol. Security research was conducted both in the level of smart contracts and in the level of the app and best practices have been followed. Finally, we evaluate the efficiency of our implementation. ii Ευχαριστίες Σε αυτό το σημείο θα ήθελα να ευχαριστήσω τον καθηγητή μου κύριο Αναστάσιο Ντελόπουλο που μου έδωσε τη δυνατότητα να συνεργαστούμε με σκοπό την εκπόνηση της διπλωματικής μου εργασίας, καθώς και για την καθοδήγηση του. Ακόμα θα ήθελα να ευχαριστήσω τον κύριο Κωνσταντίνο Καρασάββα για την καθοδήγηση και τις συμβουλές του καθ΄ όλη τη διάρκεια της εργασίας. Και τέλος, θα ήθελα να ευχαριστήσω την οικογένεια μου για την υποστήριξη και την εμπιστοσύνη τους. iii Περιεχόμενα Περίληψη .............................................................................................................................................. i Abstract ................................................................................................................................................ ii Ευχαριστίες ......................................................................................................................................... iii 1 Εισαγωγή ........................................................................................................................................ 1 1.1 Υπάρχοντα Προβλήματα ................................................................................................................ 1 1.2 Υφιστάμενες Λύσεις ....................................................................................................................... 2 1.2.1 Τεχνολογία .............................................................................................................................. 3 1.2.2 Νομοθεσία .............................................................................................................................. 4 1.2.3 Επιβολή κανόνων από τους εμπλεκόμενους .......................................................................... 5 1.3 Προτεινόμενη Λύση ....................................................................................................................... 5 1.4 Διάρθρωση ..................................................................................................................................... 6 2 Υπόβαθρο ....................................................................................................................................... 7 2.1 Bitcoin ............................................................................................................................................ 7 2.2 Blockchain ...................................................................................................................................... 7 2.2.1 Χαρακτηριστικά ...................................................................................................................... 8 2.2.2 Τύποι Blockchain..................................................................................................................... 8 2.2.3 Αλγόριθμοι συναίνεσης .......................................................................................................... 9 2.3 Κρυπτογραφία .............................................................................................................................. 10 2.3.1 Cryptographic Hash Function ................................................................................................ 10 2.3.2 Public Key Cryptography ....................................................................................................... 10 2.4 Token Models ............................................................................................................................... 12 2.4.1 Κατηγορίες νομισμάτων ....................................................................................................... 12 2.4.2 ΕRC tokens ............................................................................................................................ 12 2.5 Eos Blockchain .............................................................................................................................. 13 2.5.1 Τι είναι το Eos? ..................................................................................................................... 13 2.5.2 Στοίβα (Stack) ....................................................................................................................... 14 2.5.3 Λογαριασμοί και Άδειες (Accounts and Permissions) .......................................................... 15 2.5.4 Συναλλαγές (Transactions) ................................................................................................... 16 2.5.5 Πόροι (Resources) ................................................................................................................. 18 2.5.6 Smart Contracts .................................................................................................................... 19 3 Τεχνικά Πλαίσια & Εργαλεία ........................................................................................................ 21 3.1 Βασικά Εργαλεία .......................................................................................................................... 21 3.1.1 Eosio ...................................................................................................................................... 21 3.1.2 Eosio.cdt ............................................................................................................................... 21 3.1.3 Universal Authenticator Library (UAL Core) ......................................................................... 22 3.1.4 Eos.js ..................................................................................................................................... 22 3.1.5 React ..................................................................................................................................... 22 3.1.6 Redux .................................................................................................................................... 22 iv 3.2 Βασικές Τεχνολογίες .................................................................................................................... 23 3.2.1 Τεχνολογίες Web .................................................................................................................. 23 3.2.2 C++ ........................................................................................................................................ 23 4 Eos & Security ............................................................................................................................... 24 4.1 Επιθέσεις στο επίπεδο του Δικτύου ............................................................................................ 24 4.2 Επιθέσεις και βέλτιστες πρακτικές στο επίπεδο των smart contract .......................................... 25 4.2.1 Numerical Overflow .............................................................................................................. 25 4.2.2 Authorization Check ............................................................................................................. 26 4.2.3 Apply Check.......................................................................................................................... 26 4.2.4 Transfer Error Prompt .......................................................................................................... 27 4.2.5 Random Number Generator ................................................................................................