diff --git a/bibliography/references.bib b/bibliography/references.bib index 3df2fa9..6818e1f 100644 --- a/bibliography/references.bib +++ b/bibliography/references.bib @@ -113,12 +113,12 @@ title = {Getting Started with OrbitDB}, url = {https://github.com/orbitdb/orbit-db/blob/main/GUIDE.md} } -@misc{5.4-privacy-on-ethereum, +@misc{5.2-privacy-on-ethereum, title = {Privacy on Ethereum}, url = {https://docs.ethhub.io/ethereum-roadmap/privacy/}, urldate = {2021-12-12} } -@article{5.4-taxonomy-of-reputation-systems, +@article{5.2-taxonomy-of-reputation-systems, title = {Reputation systems: A survey and taxonomy}, author = {Hendrikx, Ferry and Bubendorfer, Kris and Chard, Ryan}, year = 2014, diff --git a/chapters/4.application-implementation/4.0.application-implementation.tex b/chapters/4.application-implementation/4.0.application-implementation.tex index f75b58c..be1cd7f 100644 --- a/chapters/4.application-implementation/4.0.application-implementation.tex +++ b/chapters/4.application-implementation/4.0.application-implementation.tex @@ -4,3 +4,6 @@ \input{chapters/4.application-implementation/4.2.implementation-methodology} \input{chapters/4.application-implementation/4.3.implementation-technology-stack} \input{chapters/4.application-implementation/4.4.implementation-architecture} + +%TODO: add \section{Προβλήματα ανάπτυξης} +%TODO: add \section{Διαφορές σχεδιασμού-υλοποίησης} \ No newline at end of file diff --git a/chapters/5.conclusions-open-areas/5.0.conclusions-open-areas.tex b/chapters/5.conclusions-open-areas/5.0.conclusions-open-areas.tex index 1183c56..a7bb80f 100644 --- a/chapters/5.conclusions-open-areas/5.0.conclusions-open-areas.tex +++ b/chapters/5.conclusions-open-areas/5.0.conclusions-open-areas.tex @@ -1,6 +1,4 @@ \chapter[Συμπεράσματα και ανοιχτά θέματα]{Συμπεράσματα \\και ανοιχτά θέματα}\label{chapter:5-conclusions-open-areas} -\input{chapters/5.conclusions-open-areas/5.1.problems-faced} -\input{chapters/5.conclusions-open-areas/5.2.design-implementation-differences} -\input{chapters/5.conclusions-open-areas/5.3.conclusions} -\input{chapters/5.conclusions-open-areas/5.4.open-areas} \ No newline at end of file +\input{chapters/5.conclusions-open-areas/5.1.conclusions} +\input{chapters/5.conclusions-open-areas/5.2.open-areas} \ No newline at end of file diff --git a/chapters/5.conclusions-open-areas/5.1.conclusions.tex b/chapters/5.conclusions-open-areas/5.1.conclusions.tex new file mode 100644 index 0000000..5eccced --- /dev/null +++ b/chapters/5.conclusions-open-areas/5.1.conclusions.tex @@ -0,0 +1 @@ +\section{Συμπεράσματα}\label{section:5-1-conclusions} diff --git a/chapters/5.conclusions-open-areas/5.1.problems-faced.tex b/chapters/5.conclusions-open-areas/5.1.problems-faced.tex deleted file mode 100644 index 568b01c..0000000 --- a/chapters/5.conclusions-open-areas/5.1.problems-faced.tex +++ /dev/null @@ -1,3 +0,0 @@ -\section{Προβλήματα ανάπτυξης} - -%TODO: [Discuss] Move this section to chapter 4 \ No newline at end of file diff --git a/chapters/5.conclusions-open-areas/5.2.design-implementation-differences.tex b/chapters/5.conclusions-open-areas/5.2.design-implementation-differences.tex deleted file mode 100644 index 8aa9fef..0000000 --- a/chapters/5.conclusions-open-areas/5.2.design-implementation-differences.tex +++ /dev/null @@ -1,3 +0,0 @@ -\section{Διαφορές σχεδιασμού-υλοποίησης} - -%TODO: [Discuss] Move this section to chapter 4 \ No newline at end of file diff --git a/chapters/5.conclusions-open-areas/5.4.open-areas.tex b/chapters/5.conclusions-open-areas/5.2.open-areas.tex similarity index 91% rename from chapters/5.conclusions-open-areas/5.4.open-areas.tex rename to chapters/5.conclusions-open-areas/5.2.open-areas.tex index 413e8a5..d5475e6 100644 --- a/chapters/5.conclusions-open-areas/5.4.open-areas.tex +++ b/chapters/5.conclusions-open-areas/5.2.open-areas.tex @@ -1,14 +1,14 @@ -\section{Ανοιχτά θέματα}\label{section:5-4-open-areas} +\section{Ανοιχτά θέματα}\label{section:5-2-open-areas} -\subsection{Τέλη Ethereum}\label{subsection:5-4-1-ethereum-fees} +\subsection{Διαχείριση των τελών του Ethereum}\label{subsection:5-2-1-ethereum-fees-management} Οι ανάγκες κάθε υπολογιστικού συστήματος σε πόρους που σχετίζονται με τις διάφορες λειτουργίες του (π.χ. επεξεργασία, αποθήκευση δεδομένων, δίκτυα) μεταφράζονται σε κάποιο οικονομικό κόστος. Στην περίπτωση της παρούσας εφαρμογής, ενώ η αποθήκευση των δεδομένων διαμοιράζεται αυτοβούλως ανάμεσα στους συμμετέχοντες κόμβους, η χρήση του Ethereum απαιτεί από τα μέλη την καταβολή τελών για τη δημιουργία συναλλαγών. Αν και αυτά τα τέλη είναι απαραίτητα για τη λειτουργία του blockchain και την προάσπισή του από επιθέσεις, αποτελούν ισχυρό εμπόδιο για την ένταξη των τελικών χρηστών στο οικοσύστημα των αποκεντρωμένων εφαρμογών του Ethereum. Στα πλαίσια της εφαρμογής Concordia, η λήψη μέτρων για τη διαχείριση των τελών θεωρείται υψίστης σημασίας. Ωστόσο, η συμπερίληψη ενός τέτοιου μηχανισμού θα περιέπλεκε εξαιρετικά τον σχεδιασμό της και, ως εκ τούτου, λήφθηκε η απόφαση να συμπεριληφθεί ως πρόταση για μελλοντική της επέκταση. Ένας τέτοιος μηχανισμός θα παρείχε τη δυνατότητα στα μέλη της πλατφόρμας να τη χρησιμοποιούν χωρίς να κατέχουν ή να δαπανούν ETH. Αυτό θα μπορούσε να ήταν εφικτό μέσω της δημιουργίας μίας meta transaction, υπογεγραμμένης από τον Ethereum λογαριασμό τους, η οποία θα μεταβίβαζε την αποπληρωμή των τελών στις κοινότητες που ανήκουν οι χρήστες. -Αυτή τη στιγμή υπάρχουν ήδη προσεγγίσεις υλοποιήσεων τέτοιου είδους μηχανισμών, όπως το Gas Station Network\footnote{\url{https://opengsn.org/}}, ενώ η προγραμματιστική ομάδα του Ethereum εργάζεται ενεργά για την εγγενή υποστήριξη αυτή της δυνατότητας από την ίδια πλατφόρμα. +Αυτή τη στιγμή υπάρχουν ήδη προσεγγίσεις υλοποιήσεων τέτοιου είδους μηχανισμών, όπως το Gas Station Network\footnote{\url{https://opengsn.org/}}, ενώ η προγραμματιστική ομάδα του Ethereum εργάζεται ενεργά για την εγγενή υποστήριξη αυτής της δυνατότητας από την ίδια την πλατφόρμα. -\subsection{Διανομή των Ethereum token}\label{subsection:5-4-2-token-distribution} +\subsection{Διανομή των Ethereum token}\label{subsection:5-2-2-token-distribution} Στον φυσικό κόσμο, η έγκυρη και ανώνυμη διανομή ενός συνόλου μοναδικών πιστοποιητικών αυθεντικοποίησης στα μέλη μίας κοινότητας θα μπορούσε να ήταν μία διαδικασία, η οποία θα απαιτούσε την φυσική παρουσία των χρηστών και την επιλογή ενός λαχνού-πιστοποιητικού από μία κληρωτίδα. Σε αυτήν την περίπτωση θα έπρεπε είτε να υπήρχε ολομέλεια και, έτσι, διαμοιρασμός της εμπιστοσύνης σε όλα τα μέλη, είτε να υπήρχε μεταβίβαση της εμπιστοσύνης σε μία επιτροπή. @@ -20,11 +20,11 @@ Λύση στο παραπάνω πρόβλημα μπορεί να επέλθει μόνο με τη μετακίνηση της διαδικασίας ανωνυμοποίησης των πιστοποιητικών επί του blockchain. Αυτό απαιτεί την ύπαρξη ενός μηχανισμού στο οικοσύστημα του Ethereum, ο οποίος να παρέχει τη δυνατότητα μεταφοράς token αποκρύπτοντας τις διευθύνσεις προέλευσης και προορισμού. Έτσι, οι χρήστες απλώς θα μετακινούσαν τα token που αρχικά παρέλαβαν σε μία διεύθυνση μη προσδιορίσιμη από τρίτους. -Στο ευρύτερο οικοσύστημα των blockchain υπάρχουν ήδη υλοποιήσεις που προσφέρουν αυτήν την δυνατότητα επί του εγγενούς τους νομίσματος (π.χ. Zcash, Monero), ενώ διάφορες ομάδες εργάζονται ενεργά για την ανάπτυξη τέτοιων μηχανισμών και στο Ethereum. Αν και υπάρχουν διαφοροποιήσεις στις προσεγγίσεις τους, η κύρια τεχνολογία στην οποία βασίζονται είναι αυτή των λεγόμενων "zero knowledge proof", με επικρατέστερα πρωτόκολλα τα zk-SNARK και zk-STARK. Ως μία ήδη λειτουργική λύση τύπου μίκτη συναλλαγών θα μπορούσε να θεωρηθεί ο Tornado\footnote{\url{https://tornado.cash/}}, ο οποίος παρέχει τη δυνατότητα ανώνυμης μεταφοράς ETH ή ERC20 token αξιοποιώντας τα zk-SNARK.\cite{5.4-privacy-on-ethereum} +Στο ευρύτερο οικοσύστημα των blockchain υπάρχουν ήδη υλοποιήσεις που προσφέρουν αυτήν την δυνατότητα επί του εγγενούς τους νομίσματος (π.χ. Zcash, Monero), ενώ διάφορες ομάδες εργάζονται ενεργά για την ανάπτυξη τέτοιων μηχανισμών και στο Ethereum. Αν και υπάρχουν διαφοροποιήσεις στις προσεγγίσεις τους, η κύρια τεχνολογία στην οποία βασίζονται είναι αυτή των λεγόμενων "zero knowledge proof", με επικρατέστερα πρωτόκολλα τα zk-SNARK και zk-STARK. Ως μία ήδη λειτουργική λύση τύπου μίκτη συναλλαγών θα μπορούσε να θεωρηθεί ο Tornado\footnote{\url{https://tornado.cash/}}, ο οποίος παρέχει τη δυνατότητα ανώνυμης μεταφοράς ETH ή ERC20 token αξιοποιώντας τα zk-SNARK.\cite{5.2-privacy-on-ethereum} -\subsection{Εναλλακτικά συστήματα ψηφοφορίας}\label{subsection:5-4-3-alternative-voting-systems} +\subsection{Εναλλακτικά συστήματα ψηφοφορίας}\label{subsection:5-2-3-alternative-voting-systems} -Επί του παρόντος, η εφαρμογή λειτουργεί αποκλειστικά αμεσοδημοκρατικά, με καθολικές ψηφοφορίες και ισάξιες ψήφους, όπως ορίζεται από το έξυπνο συμβόλαιο \texttt{Voting.sol}. +Επί του παρόντος, η εφαρμογή λειτουργεί αποκλειστικά αμεσοδημοκρατικά, με καθολικές ψηφοφορίες και ισάξιες ψήφους, όπως ορίζεται από το έξυπνο συμβόλαιο \texttt{Voting.sol}. Τροποποιώντας την τρέχουσα υλοποίηση, η πλατφόρμα μπορεί να υποστηρίξει εναλλακτικά συστήματα ψηφοφορίας, μέσω της ανάπτυξης προσαρμοσμένων έξυπνων συμβολαίων. Αυτό θα έχει ως αποτέλεσμα να παρέχεται στην κάθε κοινότητα η δυνατότητα να ορίσει το voting smart contract που επιθυμεί, ανάλογα με τις ανάγκες και τις επιδιώξεις της. @@ -39,12 +39,12 @@ Φυσικά τα παραπάνω είναι καθαρά ενδεικτικά, πράγμα που σημαίνει ότι θα είναι εφικτό να μπορούν να δημιουργούνται εντελώς διαφορετικά συμβόλαια συστημάτων ψηφοφορίας, ανά πάσα στιγμή και από τον οποιονδήποτε. Η δε σύνδεσή τους με την εφαρμογή θα είναι όμοια με τα ήδη υλοποιημένα, αφού η μοναδική απαιτούμενη ενέργεια θα είναι η αποθήκευση ενός pointer προς το voting contract της εκάστοτε κοινότητας. -\subsection{Συστήματα απόδοσης εμπιστοσύνης}\label{subsection:5-4-4-reputation-systems} +\subsection{Συστήματα απόδοσης εμπιστοσύνης}\label{subsection:5-2-4-reputation-systems} Μία επιπλέον προσθήκη στην εφαρμογή μπορεί είναι ένα σύστημα απόδοσης εμπιστοσύνης (reputation system). Μέσω ενός reputation system, οι χρήστες μπορούν να κερδίζουν ή να χάνουν βαθμούς εμπιστοσύνης, με τον τρόπο που ορίζεται από το εκάστοτε smart contract. -Ορισμένες ενδεικτικές χρήσεις του είναι η συνεργασία του με τους μηχανισμούς που περιγράφονται στις υποενότητες \ref{subsection:5-4-1-ethereum-fees} και \ref{subsection:5-4-3-alternative-voting-systems}. Για παράδειγμα, η ισχύς της ψήφου ενός μέλους μίας κοινότητας ή το ποσό των τελών που καλείται να καταβάλλει στο Ethereum θα μπορούσαν να υπολογίζονται αναλογα με τον βαθμό εμπιστοσύνης που έχει κατακτήσει. +Ορισμένες ενδεικτικές χρήσεις του είναι η συνεργασία του με τους μηχανισμούς που περιγράφονται στις υποενότητες \ref{subsection:5-2-1-ethereum-fees-management} και \ref{subsection:5-2-3-alternative-voting-systems}. Για παράδειγμα, η ισχύς της ψήφου ενός μέλους μίας κοινότητας ή το ποσό των τελών που καλείται να καταβάλλει στο Ethereum θα μπορούσαν να υπολογίζονται αναλογα με τον βαθμό εμπιστοσύνης που έχει κατακτήσει. -Υιοθετώντας την αφηρημένη λογική που περιγράφηκε στα συστήματα ψηφοφορίας της προηγούμενης παραγράφου, είναι εφικτό να παρέχεται η δυνατότητα σε κάθε κοινότητα να επιλέγει μεταξύ ενός συνόλου διαφορετικών συστημάτων απόδοσης εμπιστοσύνης για τα μέλη της, μέσω εναλλακτικών reputation smart contract. Ήδη υπάρχει μία πλούσια γκάμα τέτοιων συστημάτων που μπορούν να υλοποιηθούν επί του Ethereum, με την ταξινομία τους να ορίζεται επί μίας πληθώρας ανεξάρτητων διαστάσεων.\cite{5.4-taxonomy-of-reputation-systems} Ωστόσο, η περαιτέρω ανάλυση τους, είναι θέμα που εκτείνεται πέρα από τα πλαίσια της παρούσας διπλωματικής εργασίας. +Υιοθετώντας την αφηρημένη λογική που περιγράφηκε στα συστήματα ψηφοφορίας της προηγούμενης παραγράφου, είναι εφικτό να παρέχεται η δυνατότητα σε κάθε κοινότητα να επιλέγει μεταξύ ενός συνόλου διαφορετικών συστημάτων απόδοσης εμπιστοσύνης για τα μέλη της, μέσω εναλλακτικών reputation smart contract. Ήδη υπάρχει μία πλούσια γκάμα τέτοιων συστημάτων που μπορούν να υλοποιηθούν επί του Ethereum, με την ταξινομία τους να ορίζεται επί μίας πληθώρας ανεξάρτητων διαστάσεων.\cite{5.2-taxonomy-of-reputation-systems} Ωστόσο, η περαιτέρω ανάλυση τους, είναι θέμα που εκτείνεται πέρα από τα πλαίσια της παρούσας διπλωματικής εργασίας. -\subsection{Βελτιώσεις στα Ethereum και IPFS}\label{subsection:5-4-5-ethereum-ipfs-improvements} \ No newline at end of file +\subsection{Βελτιώσεις στα Ethereum και IPFS}\label{subsection:5-2-5-ethereum-ipfs-improvements} diff --git a/chapters/5.conclusions-open-areas/5.3.conclusions.tex b/chapters/5.conclusions-open-areas/5.3.conclusions.tex deleted file mode 100644 index 2567d67..0000000 --- a/chapters/5.conclusions-open-areas/5.3.conclusions.tex +++ /dev/null @@ -1 +0,0 @@ -\section{Συμπεράσματα}\label{section:5-3-conclusions} diff --git a/thesis.pdf b/thesis.pdf index 5d8b510..e672e52 100644 Binary files a/thesis.pdf and b/thesis.pdf differ