One of the most important new technologies, which is rapidly developing and attracting more and more interest, is Blockchain technology. Following the steps taken in 2008, the ever growing Blockchain networks aim to completely overhaul the way online transactions are completed. Beyond the economic sector, the aim is also to change web applications into modern decentralized applications that offer numerous advantages over conventional ones. These applications (decentralized Applications) offer absolute security and data immutability making them ideal for use in most areas of everyday life. The continued growth and expansion of the Internet of Things is causing problems in the way data from these devices are managed. The emerging technology of Edge Computing is coming to replace traditional Cloud systems to address these problems. Processing data close to the edges of the network provides solutions to the issues of processing speed and security of personal data. The lack of storage space and computing power of IoT devices cease to be a problem and their use for performing complex calculations is made possible by having an edge node that manages them. Of course, there are many hurdles to overcome and many solutions to be found to replace Cloud Computing systems with their Edge counterparts. This thesis deals with the collaboration of the two technologies and more specifically the application of Blockchain technologies for the creation of a decentralized power market from Edge devices. By studying Blockchain technology, a decentralized application was created that allows users to leverage their IoT devices to execute another user's code. This decentralized power market aims to leverage Edge nodes to provide faster and more efficient service to users who request the execution of their own code. An ERC-20 cryptocurrency was created to service transactions between users which was deployed on one of the Ethereum Blockchain testnets. A detailed description of the application's use cases is given, and its mode of operation is presented in detail. Finally, the numerous tools used for its completion are presented, making it evident that the development of decentralized applications is still at an early stage.
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Application of Blockchain technologies to create a decentralized power market from Edge devices
1. Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης
Πολυτεχνική Σχολή
Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Τομέας Ηλεκτρονικής καιΥπολογιστών
Εφαρμογή τεχνολογιών Blockchain για τη δημιουργία
αποκεντρωμένης αγοράς ισχύος από Edge συσκευές
Διπλωματική εργασία
Εκπόνηση: Ταβάγιος Συνοδινός (ΑΕΜ: 8915)
Επίβλεψη: Καθ. Συμεωνίδης Ανδρέας
Συνεπίβλεψη:Υπ. Δρ. Παναγιώτου Κωνσταντίνος
8 Δεκεμβρίου 2022
2. ΠΕΡΙΛΗΨΗ
Διατύπωση του σκοπού της εργασίας
Ανασκόπηση της ερευνητικής περιοχής
Θεωρητική ανάλυση των τεχνολογιών που εξετάζονται
Παρουσίαση των εργαλείων ανάπτυξης
αποκεντρωμένων εφαρμογών που χρησιμοποιήθηκαν
Περιγραφή της αρχιτεκτονικής της εφαρμογής που
υλοποιήθηκε
Ανάπτυξη των σεναρίων χρήσης της εφαρμογής
Επίδειξη demo χρήσης της εφαρμογής
Παρουσίαση των πιθανών μελλοντικών επεκτάσεων
2
3. Σκοπός της διπλωματικής
Blockchain
Edge Computing
Αποκεντρωμένες εφαρμογές (dApps) και εργαλεία ανάπτυξής τους
dApp που εξυπηρετεί την αποκεντρωμένη αγορά ισχύος
3
7. Θεωρητική ανάλυση των τεχνολογιών
Blockchain
Κατηγοριοποίηση ανά μοντέλο άδειας
ή τρόπο διοίκησης
Smart contracts
Εφαρμογές
Πλεονεκτήματα
Πιθανές επιθέσεις
7
8. Θεωρητική ανάλυση των τεχνολογιών
Directed Acyclic Graph
Δίκτυο κόμβων - συναλλαγών
Εφαρμογές στο IoT
Πλεονεκτήματα σε επεκτασιμότητα
και ταχύτητα συναλλαγών
8
9. Θεωρητική ανάλυση των τεχνολογιών
Edge computing
Αντικατάσταση του cloud
Αρχιτεκτονική 3 επιπέδων
Εξυπηρέτηση του ΙοΤ
Πλεονεκτήματα
Επεξεργασία σε πραγματικό χρόνο
Μειονεκτήματα
9
10. Θεωρητική ανάλυση των τεχνολογιών
Αποκεντρωμένες εφαρμογές
Ασφάλεια και
αμεταβλητότητα
Διάφορες αρχιτεκτονικές
Εκμετάλλευση του
Blockchain
Πολλαπλές εφαρμογές
Πλεονεκτήματα -
Μειονεκτήματα
10
15. Πιθανές μελλοντικές επεκτάσεις
Μεταφορά στο Ethereum mainnet
On-chain λειτουργίες
Δεύτερο smart contract
Decentralized database
Λήψη και μεταφορά αρχείων
15
16. Ενδεικτική βιβλιογραφία
Nakamoto, S. (2008). Bitcoin: A Peer-to-Peer Electronic Cash System. bitcoin.org. Retrieved 2022, from
https://bitcoin.org/bitcoin.pdf
Buterin, V. (n.d.). Ethereum whitepaper. ethereum.org. Retrieved March 15, 2022, from
https://ethereum.org/en/whitepaper/
Ali Syed, T., Alzahrani, A., Jan, S., Siddiqui, M. S., Nadeem, A., & Alghamdi, T. (2019). A comparative analysis of
blockchain architecture and its applications: Problems and recommendations. IEEE Access, 7, 176838–176869.
https://doi.org/10.1109/access.2019.2957660
Yaga, D., Mell, P., Roby, N., & Scarfone, K. (2019, June 26). Blockchain Technology Overview. arXiv.org. Retrieved
April 20, 2022, from https://arxiv.org/abs/1906.11078
Popov, S. (2018). The Tangle.
Cao, K., Liu, Y., Meng, G., & Sun, Q. (2020). An overview on Edge computing research. IEEE Access, 8, 85714–
85728. https://doi.org/10.1109/access.2020.2991734
Shi, W., Cao, J., Zhang, Q., Li, Y., & Xu, L. (2016). Edge computing: Vision and challenges. IEEE Internet of Things
Journal, 3(5), 637–646. https://doi.org/10.1109/jiot.2016.2579198
16
Η μελέτη των τεχνολογιών Blockchain και Edge computing, των λειτουργιών και εφαρμογών τους.
Να εξεταστούν οι αποκεντρωμένες εφαρμογές, οι χρήσεις και αρχιτεκτονικές τους αλλά και τα εργαλεία ανάπτυξής τους.
Τέλος, στο πρακτικό κομμάτι η δημιουργία μιας τέτοιας εφαρμογής που εξυπηρετεί…
Πολλές εφαρμογές που βασίζονται στην ύπαρξη περισσότερων από ένα Blockchain, ένα κεντρικό και πολλά βοηθητικά
ΙΟΤΕΧ πολλά Blockchains με ένα ως διαχειριστή
Cortex & Aeternity εξειδίκευση σε AI smart contracts με χρήση vms
Ethereum, avalance % cardano : Δυνατότητα δημιουργίας smart contracts όλων των λειτουργιών
IBM, AMAZON blockchain as a service υποδομες
Τα Blockchains είναι κατανεμημένα λογιστικά βιβλία (ledgers) κρυπτογραφικά υπογεγραμμένων συναλλαγών που ομαδοποιούνται σε μπλοκ. Κάθε μπλοκ συνδέεται κρυπτογραφικά με το προηγούμενο αφού επικυρωθεί και υποβληθεί σε απόφαση συναίνεσης. Με αυτό τον τρόπο όλα τα μπλοκ είναι εμφανή προς την παραποίηση.
Bitcoin:
Satoshi Nakamoto 2008
Το πρώτο Blockchain βασισμένο σε εργασίες των δεκαετιών του ’80 και ’90.
Σκόπευε στην αντικατάσταση των τραπεζών για διαδικτυακές συναλλαγές
Ιδιαίτερη έμφαση στο πρόβλημα διπλών δαπανών
Χρησιμοποιεί τον Poof of Work αλγόριθμο
Ethereum:
Εκτελεί smart contracts γραμμένα σε Solidity με το Ethereum Virtual Machine
Είναι Turing-complete, δηλαδή υποστηρίζει όλους τους υπολογισμούς
Ολοκληρώνεται η μετάβαση σε Proof of Stake αλγόριθμο
Το Hyperledger Fabric είναι δίκτυο Blockchain διαφορετικής δομής με σκοπό υψηλή επεκτασιμότητα. Είναι Permissioned και λειτουργεί με την διαδικασία execute – order – validate
Πολλοί και διάφοροι αλγόριθμοι συναίνεσης. Διαδικασία με την οποία οι κόμβοι αποφασίζουν για την ορθότητα του κάθε μπλοκ που είναι προς δημοσίευση. Σημαντικότεροι οι Proof of Work και Proof of Stake
Συστατικά στοιχεία ενός Blockchain είναι το μπλοκ, οι κρυπτογραφικές συναρτήσεις κατακερματισμού και οι συναλλαγές.
Τα μπλοκ αποτελούνται από την επικεφαλίδα και το σώμα του μπλοκ.
Η επικεφαλίδα μεταξύ άλλων στοιχείων έχει και την τιμή κατακερματισμού του προηγούμενου μπλοκ εξασφαλίζοντας την αμεταβλητότητα.
Στο σώμα βρίσκονται οι συναλλαγές.
Οι κρυπτογραφικές συναρτήσεις κατακερματισμού είναι πολύ σημαντικές γιατί εξασφαλίζουν με τις ιδιότητές τους ότι δεν μπορεί να μεταβληθεί κανένα από τα δεδομένα.
Μία είσοδος έχει μία μοναδική έξοδο χωρίς δυνατότητα αναστροφής.
Μια συναλλαγή αντιπροσωπεύει μια αλληλεπίδραση μεταξύ δύο ή περισσότερων μερών.
Ανάλογα το δίκτυο μπορεί να διαφέρουν οι συναλλαγές, σε γενικό πλαίσιο όμως είναι η αποστολή πληροφοριών προς το δίκτυο από έναν χρήστη.
Χωρίζονται σύμφωνα με το μοντέλο άδειας σε:
Blockchain με άδεια, συμμετέχει οποιοσδήποτε
Blockchain χωρίς άδεια, χρειάζεται άδεια από την αρχή του δικτύου
Χωρίζονται σύμφωνα με τον τρόπο διοίκησης σε:
Δημόσιο Blockchain, καμία αρχή
Ιδιωτικό Blockchain, μία κεντρική αρχή
Blockchain κοινοπραξίας, μια ομάδα
Ένα smart contract είναι ένα πρωτόκολλο συναλλαγών που εκτελεί τους όρους ενός συμβολαίου όταν ικανοποιούνται οι καθορισμένες συνθήκες
Εφαρμογές σχεδόν σε όλα τα πεδία της καθημερινότητας, όπως υγεία και οικονομία
Πλεονεκτήματα σε ασφάλεια, εξοικονόμηση χρόνου και κόστους συναλλαγών
Πολλαπλές πιθανές επιθέσεις όπως double spending, brute-force & sybil attack
Είναι δομή κατανεμημένου ledger όπως το Blockchain.
Ο κάθε κόμβος πρακτικά είναι μια συναλλαγή, η οποία εγκρίνεται όταν επικυρωθεί από δύο επόμενες.
Εφαρμογές στον τομέα του IoT όπως IOTA
Βελτιώσεις συγκριτικά με το Blockchain σε ταχύτητα συναλλαγών και επεκτασιμότητα
Διάδοχος του cloud computing για την εξυπηρέτηση των αναγκών του IoT για μεγαλύτερο εύρος ζώνης λόγω αυξημένου όγκου δεδομένων
Η δομή αποτελείται από το τερματικό επίπεδο: ΙΟΤ, το επίπεδο άκρου: edge κόμβος & το cloud
Πλεονεκτήματα είναι η ταχύτητα επεξεργασίας δεδομένων σε πραγματικό χρόνο & το χαμηλό κόστος υπηρεσιών και εξοπλισμού
Μειονεκτήματα είναι η διαχείριση και οι πιθανές επιθέσεις
Ασφαλείς και αμετάβλητες εφαρμογές
Βασίζονται σε σύνολο στοιχείων όπως το Blockchain, τα smart contracts, o provider, o signer και αποκεντρωμένα συστήματα αρχείων.
Διάφορες αρχιτεκτονικές για κάθε εφαρμογή όπως τα βιντεοπαιχνίδια και το IoT
Πλεονεκτήματα είναι η απουσία κεντρικής αρχής, η διαθεσιμότητα, η ασφάλεια και η ιδιωτικότητα που προσφέρουν
Μειονεκτήματα είναι η δημόσια διάθεση των συναλλαγών, η δυσκολία στην συντήρηση των συστημάτων και η δυσκολία δημιουργίας εύχρηστου περιβάλλοντος χρήστη
Truffle suite: Αποτελείται από το Truffle, το Ganache και το Drizzle. Προσφέρει σύνολο λειτουργιών για την δημιουργία αποκεντρωμένων εφαρμογών όπως το τοπικό blockchain
Infura: Εκτελεί τον ρόλο του Provider για το Ethereum Blockchain και το IPFS
Metamask: Ψηφιακό πορτοφόλι με ευρεία διάδοση και ευκολία στη χρήση
Flask: Web Framework της Python για την δημιουργία web εφαρμογών
InterPlanetary File System(IPFS): Διανεμημένο σύστημα αρχείων
Στην βάση βρίσκεται το Ethereum Blockchain (Görli Testnet)
Δημιουργήθηκε smart contract 18 μεθόδων που ακολουθεί το πρότυπο ERC-20 για την αναγνώριση του token
Ως provider για την επικοινωνία με το Ethereum και το IPFS χρησιμοποιήθηκε το Infura
Για την web εφαρμογή χρησιμοποιήθηκε το Flask και το Bootstrap
Ως signer αλλά και για την αυθεντικοποίηση των χρηστών χρησιμοποιήθηκε το Metamask
Για την αποθήκευση των δεδομένων χρησιμοποιήθηκε Sqlite3 και IPFS
Αρχικά γίνεται σύνδεση του χρήση στον λογαριασμό Metamask του
Σενάριο εγγραφής νέας συσκευής (επιλογή “Register your device”):
Εισαγωγή των χαρακτηριστικών της νέας συσκευής
Εισαγωγή του μοναδικού αναγνωριστικού MAC της συσκευής
Επιλογή “Submit”
Σενάριο εκτέλεσης αρχείου κώδικα (επιλογή “Execute your code”):
Εισαγωγή των ελάχιστων απαιτήσεων του αρχείου προς εκτέλεση
Υπολογισμός του κόστους εκτέλεσης με την επιλογή “Calculate the execution cost”
Upload του αρχείου προς εκτέλεση
Επιλογή “Submit”
Μεταφορά του smart contract στο Ethereum mainnet
Αυθεντικοποίηση χρηστών και αποθήκευση δεδομένων on-chain
Δημιουργία δεύτερου smart contract για την αποθήκευση των δεδομένων
Χρήση decentralized database υπηρεσίας όπως Orbit-db
Υλοποίηση συστήματος λήψης και μεταφοράς των αρχείων κώδικα μεταξύ των χρηστών