Before Width: | Height: | Size: 138 KiB After Width: | Height: | Size: 138 KiB |
Before Width: | Height: | Size: 410 KiB After Width: | Height: | Size: 411 KiB |
After Width: | Height: | Size: 61 KiB |
Before Width: | Height: | Size: 639 KiB After Width: | Height: | Size: 737 KiB |
Before Width: | Height: | Size: 72 KiB |
Before Width: | Height: | Size: 99 KiB |
Before Width: | Height: | Size: 974 KiB After Width: | Height: | Size: 1.0 MiB |
@ -1,16 +1,15 @@ |
|||||
\chapter*{Abstract} |
\chapter*{Abstract} |
||||
\addcontentsline{toc}{chapter}{Abstract} |
\addcontentsline{toc}{chapter}{Abstract} |
||||
|
|
||||
\textenglish{In recent decades, the rapid growth of the internet has radically changed human |
\textenglish{In recent decades, the rapid growth of the internet has radically changed society, through a plethora of digital applications, the vast majority of which are offered by cloud computing service providers, following the client-server architecture. |
||||
societies, through a plethora of digital applications, the vast majority of which are offered by cloud computing service providers, following 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 a number of problems. First of all, the user is required to trust his personal data to an external entity. Maintaining full control over them, the latter gains the ability to process, share and censor them, 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 and 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 a number of problems. Firstly, users are required to trust their personal data to an external entity. Maintaining full control over them, the latter gains the ability to process, share and censor them, 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 and for a variety of reasons, such as a cyber attack 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, that are based on technologies such as blockchain and peer-to-peer networks. The aforementioned, 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 innovating open source software, that are based on technologies such as 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, |
The goal of this thesis is the implementation of an autonomous social platform, |
||||
which, by utilizing decentralization technologies, on the one hand will return the ownership of the data to the end user, on the other hand will provide transparent democratic voting processes. These in a context resistant to both faults and attacks, as well as attempts at censorship and falsification. |
which, by utilizing decentralization technologies, on the one hand will return the ownership of the data to the end user, on the other hand will provide transparent democratic voting processes. These 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. |
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] |
\\[2\baselineskip] |
||||
\textbf {Keywords}: Decentralization, Ethereum, Blockchain, Smart Contract, Decentralized Application, IPFS, OrbitDB, React, Redux, Jenkins} |
\textbf {Keywords}: Decentralization, Ethereum, Blockchain, Smart Contract, Decentralized Application, IPFS, OrbitDB, React, Redux, Jenkins} |
||||
|
@ -0,0 +1,9 @@ |
|||||
|
\section{Τυπογραφικές παραδοχές} \label{section:1-6-typography} |
||||
|
|
||||
|
Το παρόν έγγραφο αποτυπώνεται με τη γραμματοσειρά 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}.}. |
@ -1,11 +1,9 @@ |
|||||
\section{Σύλληψη της ιδέας} \label{section:3-1-idea-conception} |
\section{Σύλληψη της ιδέας} \label{section:3-1-idea-conception} |
||||
|
|
||||
Η σύλληψη της ιδέας για τη δημιουργία της εφαρμογής της παρούσας διπλωματικής εργασίας είχε ως εφαλτήριο την αναγνώριση ενός διδιάστατου προβλήματος. |
Η σύλληψη της ιδέας για τη δημιουργία της εφαρμογής της παρούσας διπλωματικής εργασίας έχει ως εφαλτήριο την αναγνώριση ενός διδιάστατου προβλήματος. |
||||
|
|
||||
Η πρώτη διάσταση εστιάζει στον χώρο των μέσων κοινωνικής δικτύωσης. Εκεί παρατηρείται αδιαμφισβήτητη επικράτηση πλατφορμών επικοινωνίας συγκεντρωτικής μορφής (π.χ. Facebook, Twitter, Instagram), ενώ προσπάθειες δημιουργίας αντίστοιχων αποκεντρωτικών εφαρμογών βρίσκονται σε πρώιμα στάδια, τόσο ανάπτυξης, όσο και υιοθέτησης από το ευρύ κοινό. Όπως αναλύθηκε και στην ενότητα \ref{section:1-3-problem-definition}, η τρέχουσα αυτή κατάσταση θέτει αξιοσημείωτα προβλήματα τεχνικής φύσεως (έλλειψη ασφάλειας και διαθεσιμότητας) και, κυρίως, πολιτικής (έλλειψη εμπιστοσύνης, εγγύησης της αυθεντικότητας των δεδομένων και της ελευθερίας του λόγου). |
Η πρώτη διάσταση εστιάζει στον χώρο των μέσων κοινωνικής δικτύωσης. Εκεί παρατηρείται αδιαμφισβήτητη επικράτηση πλατφορμών επικοινωνίας συγκεντρωτικής μορφής (π.χ. Facebook, Twitter, Instagram), ενώ προσπάθειες δημιουργίας αντίστοιχων αποκεντρωτικών εφαρμογών βρίσκονται σε πρώιμα στάδια, τόσο ανάπτυξης, όσο και υιοθέτησης από το ευρύ κοινό. Όπως αναλύθηκε και στην ενότητα \ref{section:1-3-problem-definition}, η τρέχουσα αυτή κατάσταση θέτει αξιοσημείωτα προβλήματα τεχνικής φύσεως (έλλειψη ασφάλειας και διαθεσιμότητας) και, κυρίως, πολιτικής (έλλειψη εμπιστοσύνης, εγγύησης της αυθεντικότητας των δεδομένων και της ελευθερίας του λόγου). |
||||
|
|
||||
Η δεύτερη διάσταση εστιάζει στον χώρο της ψηφιακής δημοκρατίας (digital democracy). Συγκεκριμένα, παρατηρείται έλλειψη εργαλείων, ικανών να παρέχουν τη δυνατότητα διενέργειας αυθεντικών δημοκρατικών διαδικασιών. Ψηφοφορίες και αυτοδιαχείριση εντός συστημάτων κεντροποιημένης λογικής αδυνατούν, για αρχιτεκτονικούς λόγους, να εξασφαλίσουν τις απαραίτητες θεμελιώδεις ιδιότητες τέτοιων διαδικασιών, δηλαδή της ανωνυμίας και της επαληθευσιμότητας. |
Η δεύτερη διάσταση εστιάζει στον χώρο της ψηφιακής δημοκρατίας (digital democracy). Συγκεκριμένα, παρατηρείται έλλειψη εργαλείων, ικανών να παρέχουν τη δυνατότητα διενέργειας αυθεντικών δημοκρατικών διαδικασιών. Ψηφοφορίες και αυτοδιαχείριση εντός συστημάτων κεντροποιημένης λογικής αδυνατούν, για αρχιτεκτονικούς λόγους, να εξασφαλίσουν τις απαραίτητες θεμελιώδεις ιδιότητες τέτοιων διαδικασιών, δηλαδή της ανωνυμίας και της επαληθευσιμότητας. |
||||
|
|
||||
Βάσει των παραπάνω, γεννήθηκε η ιδέα δημιουργίας μίας εφαρμογής, η οποία, μέσω ενός προτεινόμενου συνδυασμού αποκεντρωτικών τεχνολογιών, να ορίσει έναν ψηφιακό χώρο που θα έρθει αντιμέτωπος με τα παραπάνω. Έτσι, κεντρικός στόχος της πιλοτικής εφαρμογής Concordia, είναι να αποτελέσει μία αυτόνομη κοινωνική πλατφόρμα, που θα κατοχυρώνει στους χρήστες της ελευθερία του λόγου και πλήρη κυριότητα επί των δεδομένων τους. Επιπλέον, θα παρέχει τη δυνατότητα διενέργειας αυθεντικών, ανώνυμων ψηφοφοριών, κάτι που θα την καθιστά ένα αξιόπιστο δημοκρατικό βήμα για τη λήψη αποφάσεων εντός των αυτοδιαχειριζόμενων κοινοτήτων της. |
Αυτές οι παρατηρήσεις αποτέλεσαν την έμπνευση για τη δημιουργία μίας εφαρμογής, η οποία, μέσω ενός προτεινόμενου συνδυασμού αποκεντρωτικών τεχνολογιών, να ορίσει έναν ψηφιακό χώρο που θα έρθει αντιμέτωπος με το παραπάνω πρόβλημα. Έτσι, κεντρικός στόχος της πιλοτικής εφαρμογής Concordia, είναι να αποτελέσει μία αυτόνομη κοινωνική πλατφόρμα, που θα κατοχυρώνει στους χρήστες της ελευθερία του λόγου και πλήρη κυριότητα επί των δεδομένων τους. Επιπλέον, θα παρέχει τη δυνατότητα διενέργειας αυθεντικών, ανώνυμων ψηφοφοριών, κάτι που θα την καθιστά ένα αξιόπιστο δημοκρατικό βήμα για τη λήψη αποφάσεων εντός των αυτοδιαχειριζόμενων κοινοτήτων της. |
||||
|
|
||||
\newpage |
|
||||
|
@ -1,4 +1,4 @@ |
|||||
\chapter*{Παράρτημα Αʹ\\[20pt]Στιγμιότυπα οθόνης πλατφόρμας}\label{screenshots-appendix} |
\chapter*{Παράρτημα Αʹ\\[20pt]Στιγμιότυπα οθόνης πλατφόρμας}\label{appendix-a} |
||||
\addcontentsline{toc}{section}{Αʹ Στιγμιότυπα οθόνης πλατφόρμας} |
\addcontentsline{toc}{section}{Αʹ Στιγμιότυπα οθόνης πλατφόρμας} |
||||
|
|
||||
% TODO: add screenshots of application |
% TODO: add screenshots of application |
@ -0,0 +1,56 @@ |
|||||
|
\chapter*{Παράρτημα Βʹ\\[20pt]Στατιστικά κώδικα}\label{appendix-b} |
||||
|
\addcontentsline{toc}{section}{Βʹ Στατιστικά κώδικα} |
||||
|
|
||||
|
\captionsetup{labelformat=AppendixBTables} |
||||
|
\setcounter{table}{0} |
||||
|
|
||||
|
Στο παρόν παράρτημα παρατίθενται πίνακες με στατιστικά στοιχεία του κώδικα της εφαρμογής Concordia, καθώς και των υλοποιημένων βιβλιοθηκών. Συγκεκριμένα, πραγματοποιήθηκε καταμέτρηση των αρχείων και των γραμμών κώδικα μέσω του προγραμμάτος cloc\footnote{\url{https://github.com/AlDanial/cloc}}, διαδικασία στην οποία αγνοήθηκαν αυτόματα configuration και auto-generated αρχεία (π.χ. yarn.lock, .gitignore). |
||||
|
|
||||
|
\begin{center} |
||||
|
\codestatstable{Concordia}{https://gitlab.com/ecentrics/concordia} |
||||
|
{ |
||||
|
JSX & 54 & 510 & 14 & 4491 \\ |
||||
|
JavaScript & 81 & 302 & 84 & 2035 \\ |
||||
|
Groovy & 1 & 76 & 32 & 673 \\ |
||||
|
Solidity & 5 & 142 & 20 & 553 \\ |
||||
|
CSS & 26 & 87 & 8 & 426 \\ |
||||
|
JSON & 10 & 0 & 0 & 352 \\ |
||||
|
Markdown & 7 & 157 & 0 & 352 \\ |
||||
|
Dockerfile & 5 & 68 & 51 & 128 \\ |
||||
|
Bourne Shell & 9 & 27 & 10 & 117 \\ |
||||
|
make & 1 & 10 & 8 & 77 \\ |
||||
|
YAML & 1 & 3 & 0 & 30 \\ |
||||
|
SVG & 6 & 0 & 0 & 25 \\ |
||||
|
HTML & 1 & 3 & 23 & 16 \\ |
||||
|
diff & 1 & 0 & 8 & 7 \\ |
||||
|
\hline |
||||
|
\textbf{Σύνολο} & 208 & 1385 & 258 & 9282 \\ |
||||
|
} |
||||
|
|
||||
|
\codestatstable{drizzle}{https://gitlab.com/ecentrics/drizzle} |
||||
|
{ |
||||
|
JavaScript & 36 & 281 & 137 & 1448 \\ |
||||
|
JSON & 1 & 0 & 0 & 16 \\ |
||||
|
Markdown & 1 & 2 & 0 & 4 \\ |
||||
|
\hline |
||||
|
\textbf{Σύνολο} & 38 & 283 & 137 & 1468 \\ |
||||
|
} |
||||
|
|
||||
|
\codestatstable{breeze}{https://gitlab.com/ecentrics/breeze} |
||||
|
{ |
||||
|
JavaScript & 16 & 105 & 56 & 583 \\ |
||||
|
JSON & 1 & 0 & 0 & 17 \\ |
||||
|
Markdown & 1 & 2 & 0 & 4 \\ |
||||
|
\hline |
||||
|
\textbf{Σύνολο} & 18 & 107 & 56 & 604 \\ |
||||
|
} |
||||
|
|
||||
|
\codestatstable{eth-identity-provider}{https://gitlab.com/ecentrics/eth-identity-provider} |
||||
|
{ |
||||
|
JavaScript & 4 & 36 & 23 & 211 \\ |
||||
|
JSON & 1 & 0 & 0 & 13 \\ |
||||
|
Markdown & 1 & 2 & 0 & 4 \\ |
||||
|
\hline |
||||
|
\textbf{Σύνολο} & 6 & 38 & 23 & 228 \\ |
||||
|
} |
||||
|
\end{center} |
@ -1 +1,2 @@ |
|||||
\input{chapters/appendix/screenshots-appendix} |
\input{chapters/appendix/appendix-a} |
||||
|
\input{chapters/appendix/appendix-b} |
@ -0,0 +1,19 @@ |
|||||
|
\newcommand{\codestatstable}[3]{ |
||||
|
\begin{table}[H] |
||||
|
\centering |
||||
|
\rowcolors{3}{}{gray2} |
||||
|
\begin{tabular}{ |l|r|r|r|r| } |
||||
|
\hline |
||||
|
\rowcolor{gray1} |
||||
|
\multicolumn{5}{|c|}{\large{\textbf{#1}}} \\ |
||||
|
\rowcolor{gray1} |
||||
|
\multicolumn{5}{|c|}{\small{\url{#2}}} \\ |
||||
|
\hline |
||||
|
\textbf{Γλώσσα} & \textbf{Αρχεία} & \textbf{Κενές γραμμές} & \textbf{Σχόλια} & \textbf{Κώδικας} \\ |
||||
|
\hline |
||||
|
#3 |
||||
|
\hline |
||||
|
\end{tabular} |
||||
|
\caption{#1 - στατιστικά κώδικα} |
||||
|
\end{table} |
||||
|
} |