diff --git a/chapters/0.preamble/0.1.summary.tex b/chapters/0.preamble/0.1.summary.tex index 0532b95..46b041a 100644 --- a/chapters/0.preamble/0.1.summary.tex +++ b/chapters/0.preamble/0.1.summary.tex @@ -2,7 +2,7 @@ \addcontentsline{toc}{chapter}{Περίληψη} Τις τελευταίες δεκαετίες, η ραγδαία ανάπτυξη του διαδικτύου μετέβαλε ριζικά τις ανθρώπινες -κοινωνίες, μέσω μίας πληθώρας ψηφιακών εφαρμογών, οι οποίες, στη συντριπτική τους πλειοψηφία, προσφέρονται από παρόχους υπηρεσιών υπολογιστικού νέφους, ακολουθώντας την αρχιτεκτονική πελάτη-εξυπηρετητή. +κοινωνίες, μέσω μίας πληθώρας ψηφιακών εφαρμογών. Αυτές, στη συντριπτική τους πλειοψηφία, προσφέρονται από παρόχους υπηρεσιών υπολογιστικού νέφους, ακολουθώντας την αρχιτεκτονική πελάτη-εξυπηρετητή. Μολονότι αυτό το μοντέλο υλοποίησης έχει αποδειχθεί ιδιαίτερα λειτουργικό και έχει βελτιωθεί αξιοσημείωτα ανά τα χρόνια, η συγκεντρωτική του λογική συνοδεύεται από ορισμένα προβλήματα. Καταρχάς, οι χρήστες καλούνται να εμπιστευθούν τα προσωπικά τους δεδομένα στη διαχειριστική αρχή της εκάστοτε εφαρμογής. Εκείνη, διατηρώντας πλήρη έλεγχο επί αυτών, αποκτάει τη δυνατότητα να τα επεξεργάζεται, να τα διαμοιράζεται και να τα λογοκρίνει, είτε για να εξυπηρετήσει τα συμφέροντά της, είτε για να συμμορφωθεί με άλλες αρχές που της ασκούν εξουσία. Επιπλέον, απουσιάζει η εγγύηση της διαθεσιμότητας των δεδομένων, καθώς, ανά πάσα στιγμή, ο εξυπηρετητής μπορεί να αποσυνδεθεί για αόριστο χρονικό διάστημα και λόγω ποικίλων αιτιών, όπως κάποιας κυβερνοεπίθεσης ή κάποιας φυσικής καταστροφής. @@ -12,6 +12,6 @@ η οποία, αξιοποιώντας τεχνολογίες αποκέντρωσης, αφενός θα επιστρέφει την κυριότητα των προσωπικών δεδομένων στον χρήστη, αφετέρου θα παρέχει τη δυνατότητα διενέργειας διαφανών δημοκρατικών ψηφοφοριών. Αυτά μέσα σε ένα πλαίσιο ανθεκτικό, τόσο σε σφάλματα και επιθέσεις, όσο και σε απόπειρες λογοκρισίας και παραποίησης. -Η αναπτυχθείσα πιλοτική εφαρμογή "Concordia" προσεγγίζει τον παραπάνω στόχο συνδυάζοντας τις τεχνολογίες Ethereum και IPFS, ώστε να ορίσει έναν ψηφιακό χώρο, αποκεντρωμένο τόσο σε αρχιτεκτονικό, όσο και πολιτικό επίπεδο. +Η αναπτυχθείσα πιλοτική εφαρμογή "Concordia" προσεγγίζει τον παραπάνω στόχο συνδυάζοντας τις τεχνολογίες Ethereum και IPFS, ώστε να ορίσει έναν ψηφιακό χώρο, αποκεντρωμένο τόσο σε αρχιτεκτονικό, όσο και σε πολιτικό επίπεδο. \\[2\baselineskip] -\textbf{Λέξεις-Κλειδιά}: Αποκεντροποίηση, Ψηφιακή δημοκρατία, Ethereum, Blockchain, Έξυπνο Συμβόλαιο, Αποκεντρωμένη Εφαρμογή, IPFS \ No newline at end of file +\textbf{Λέξεις-Κλειδιά}: Αποκέντρωση, Ψηφιακή δημοκρατία, Ethereum, Blockchain, Έξυπνα συμβόλαια, Αποκεντρωμένες εφαρμογές, IPFS \ No newline at end of file diff --git a/chapters/0.preamble/0.2.abstract.tex b/chapters/0.preamble/0.2.abstract.tex index 25b7a0a..e93a04f 100644 --- a/chapters/0.preamble/0.2.abstract.tex +++ b/chapters/0.preamble/0.2.abstract.tex @@ -3,12 +3,12 @@ \textenglish{In recent decades, the rapid growth of the internet has radically transformed society, through a plethora of digital applications. The vast majority of these are offered by cloud computing service providers, using the client-server architecture. -Although this implementation model has proven to be highly functional and has improved significantly over the years, its centralized logic is accompanied by certain problems. Users are required to trust their personal data to an administrative entity, granting it full control of their data. This entity gains the ability to process, share and censor them, either to serve its own interests or to comply with other authorities in power. There is no guarantee of data availability, as, at any time, the server can be disconnected indefinitely for a variety of reasons, such as a cyber attack or a natural disaster. +Although this implementation model has proven to be highly functional and has improved significantly over the years, its centralized logic is accompanied by certain problems. Users are required to trust their personal data to an administrative entity, granting it full control over them. This entity gains the ability to process, share and censor the data, either to serve its own interests, or to comply with other authorities in power. Furthermore, there is no guarantee of data availability, as, at any time, the server can be disconnected indefinitely for a variety of reasons, such as a cyberattack or a natural disaster. -These are some of the key factors that have led to the rapid development of a wide range of innovating open source software, which are based on technologies such as the blockchain and peer-to-peer networks. The aforementioned technologies, although at a relatively early stage, are already powerful tools for creating distributed and decentralized applications. +These are some of the key factors that have led to the rapid development of a wide range of innovative open-source software, which is based on technologies such as the blockchain and peer-to-peer networks. The aforementioned technologies, although at a relatively early stage, are already powerful tools for creating distributed and decentralized applications. The goal of this thesis is the implementation of an autonomous social platform by utilizing decentralization technologies. This implementation will firstly return the ownership of the data to the end user and secondly provide transparent democratic voting processes. The above are provided in a context resistant to both faults and attacks, as well as attempts at censorship and falsification. The developed proof-of-concept application “Concordia” approaches the above goal by combining Ethereum and IPFS, in order to define a digital space, that is decentralized both at architectural and political level. \\[2\baselineskip] -\textbf {Keywords}: Decentralization, Digital democracy, Ethereum, Blockchain, Smart Contract, Decentralized Application, IPFS} \ No newline at end of file +\textbf {Keywords}: Decentralization, Digital democracy, Ethereum, Blockchain, Smart contracts, Decentralized applications, IPFS} \ No newline at end of file diff --git a/chapters/1.introduction/1.6.typography.tex b/chapters/1.introduction/1.6.typography.tex index d6b7ff0..5fbc7ac 100644 --- a/chapters/1.introduction/1.6.typography.tex +++ b/chapters/1.introduction/1.6.typography.tex @@ -1,9 +1,11 @@ \section{Τυπογραφικές παραδοχές} \label{section:1-6-typography} -Το παρόν έγγραφο αποτυπώνεται με τη γραμματοσειρά Linux Libertine O\footnote{\url{https://libertine-fonts.org/}}, ενώ για τα κομμάτια κώδικα χρησιμοποιείται η Hack\footnote{\url{https://sourcefoundry.org/hack/}}. Το μέγεθος του κυρίως κειμένου είναι 12pt και το διάστιχό του είναι επαυξημένο του προκαθορισμένου κατά το ήμισυ για άνεση κατά την ανάγνωση. +Το παρόν έγγραφο αποτυπώνεται με τη γραμματοσειρά Linux Libertine O\footnote{\url{https://libertine-fonts.org/}}, ενώ για τα κομμάτια κώδικα και τους υπερσυνδέσμους χρησιμοποιείται η Hack\footnote{\url{https://sourcefoundry.org/hack/}}. Το μέγεθος του κυρίως κειμένου είναι 12pt και το διάστιχό του είναι επαυξημένο του προκαθορισμένου κατά το ήμισυ για άνεση κατά την ανάγνωση. Καταβάλλεται η μέγιστη δυνατή προσπάθεια για τη χρήση ελληνικών όρων, όπου αυτό είναι εφικτό, με τους αντίστοιχους αγγλικούς να τους συνοδεύουν σε ακόλουθες παρενθέσεις. Τα εισαγωγικά που χρησιμοποιούνται είναι τα διπλά γωνιώδη (« »), τόσο για ελληνικούς, όσο και για ξενόγλωσσους χαρακτηρισμούς. Επίσης, αριθμούνται επί της συνολικής έκτασης της εργασίας οι λεζάντες των σχημάτων και των πινάκων, οι υποσημειώσεις και οι βιβλιογραφικές αναφορές, με τις τελευταίες να παρατίθενται στο τέλος του εγγράφου. Τέλος, επισημαίνεται ότι η συγγραφή της αναφοράς πραγματοποιήθηκε στο ηλεκτρονικό τυπογραφικό σύστημα \LaTeX. Ο πηγαίος της κώδικας μπορεί να βρεθεί στο αντίστοιχο αποθετήριο κώδικα της διπλωματικής εργασίας\footnote{\url{https://gitlab.com/ecentrics/thesis-report}}. + +\newpage \ No newline at end of file diff --git a/chapters/4.application-implementation/4.2.implementation-technology-stack/4.2.2.ui-technologies/4.2.2.2.redux.tex b/chapters/4.application-implementation/4.2.implementation-technology-stack/4.2.2.ui-technologies/4.2.2.2.redux.tex index 56ce705..ec40964 100644 --- a/chapters/4.application-implementation/4.2.implementation-technology-stack/4.2.2.ui-technologies/4.2.2.2.redux.tex +++ b/chapters/4.application-implementation/4.2.implementation-technology-stack/4.2.2.ui-technologies/4.2.2.2.redux.tex @@ -12,7 +12,7 @@ \item \textbf{Middleware}: Προαιρετικά κομμάτια κώδικα που λαμβάνουν actions πριν εκείνα φτάσουν στους reducer και τα οποία εκτελούν κάποιο side effect. Συνήθως χρησιμοποιούνται για ενέργειες όπως logging και error reporting, ή για να ενώσουν το Redux με εξωτερικά API. \end{itemize} -Αν και το ίδιο το Redux είναι μικροσκοπικό σε μέγεθος, ο τρόπος υλοποίησής του έχει επιτρέψει τη δημιουργία ενός τεράστιου οικοσυστήματος εργαλείων και επεκτάσεων, τα οποία συνδέονται μαζί του ή βασίζονται σε αυτό. Για παράδειγμα, μία από τις κύριες χρήσεις του είναι η κατασκευή διεπαφών χρήστη σε συνδύασμό με άλλες βιβλιοθήκες, όπως με τη React. Σε αυτήν την περίπτωση, συνδέεται μαζί της με το npm πακέτο \texttt{react-redux} και η λειτουργία του υπό ανάπτυξη UI προκύπτει ως εξής: +Αν και το ίδιο το Redux είναι μικροσκοπικό σε μέγεθος, ο τρόπος υλοποίησής του έχει επιτρέψει τη δημιουργία ενός τεράστιου οικοσυστήματος εργαλείων και επεκτάσεων, τα οποία συνδέονται μαζί του ή βασίζονται σε αυτό. Για παράδειγμα, μία από τις κύριες χρήσεις του είναι η κατασκευή διεπαφών χρήστη σε συνδύασμό με άλλες βιβλιοθήκες, όπως με τη React. Σε αυτήν την περίπτωση, συνδέεται μαζί της με το npm πακέτο react-redux και η λειτουργία του υπό ανάπτυξη UI προκύπτει ως εξής: \begin{figure}[H] \centering diff --git a/chapters/4.application-implementation/4.2.implementation-technology-stack/4.2.4.ipfs-technologies/4.2.4.2.orbit-db.tex b/chapters/4.application-implementation/4.2.implementation-technology-stack/4.2.4.ipfs-technologies/4.2.4.2.orbit-db.tex index d4c2d75..53ec314 100644 --- a/chapters/4.application-implementation/4.2.implementation-technology-stack/4.2.4.ipfs-technologies/4.2.4.2.orbit-db.tex +++ b/chapters/4.application-implementation/4.2.implementation-technology-stack/4.2.4.ipfs-technologies/4.2.4.2.orbit-db.tex @@ -16,9 +16,9 @@ \item counter: μία βάση δεδομένων για καταμέτρηση συμβάντων. \end{itemize} - Όλα τα store υλοποιούνται πάνω στο \texttt{ipfs-log}, μία αμετάβλητη, operation-based CRDT για κατανεμημένα συστήματα, ενώ υπάρχει και η δυνατότητα δημιουργίας προσαρμοσμένων store ανάλογα με την περίπτωση. + Όλα τα store υλοποιούνται πάνω στο ipfs-log, μία αμετάβλητη, operation-based CRDT για κατανεμημένα συστήματα, ενώ υπάρχει και η δυνατότητα δημιουργίας προσαρμοσμένων store ανάλογα με την περίπτωση. - \item \textbf{Address}: Κάθε βάση δεδομένων λαμβάνει κατά τη δημιουργία της μία διεύθυνση της μορφής \texttt{/orbitdb/CID/DATABASE\_NAME}, όπου \texttt{CID} είναι το IPFS multihash του μανιφέστου της και \texttt{DATABASE\_NAME} το όνομα της βάσης.\cite{4.2-orbitdb-guide}Το μανιφέστο είναι ένα IPFS object που περιέχει πληροφορίες της βάσης όπως το όνομα, τον τύπο και έναν δείκτη στον ελεγκτή πρόσβασης (access controller). + \item \textbf{Address}: Κάθε βάση δεδομένων λαμβάνει κατά τη δημιουργία της μία διεύθυνση της μορφής \texttt{/orbitdb/CID/DATABASE\_NAME}, όπου \texttt{CID} είναι το IPFS multihash του μανιφέστου της και \texttt{DATABASE\_NAME} το όνομα της βάσης\cite{4.2-orbitdb-guide}. Το μανιφέστο είναι ένα IPFS object που περιέχει πληροφορίες της βάσης όπως το όνομα, τον τύπο και έναν δείκτη στον ελεγκτή πρόσβασης (access controller). \item \textbf{Identity}: Κάθε φορά που προστίθεται μία εγγραφή στη βάση υπογράφεται από τον δημιουργό της, ο οποίος προσδιορίζεται από μία ταυτότητα (identity). Το Identity object, πέρα από τον προεπιλεγμένο τρόπο λειτουργίας, μπορεί να προσαρμοστεί έτσι ώστε να συνδέεται με κάποιο εξωτερικό αναγνωριστικό. Η μορφή του έχει ως εξής\footnote{Βλ. και \url{https://github.com/orbitdb/orbit-db-identity-provider}}: diff --git a/thesis.pdf b/thesis.pdf index 3560492..0446b64 100644 Binary files a/thesis.pdf and b/thesis.pdf differ