Browse Source

Merge branch 'feature/merkle-trees' into develop

develop
Ezerous 4 years ago
parent
commit
8c81be6940
  1. 11
      chapters/2.theoretical-background/2.0.theoretical-background.tex
  2. 16
      chapters/2.theoretical-background/2.3.merkle-trees.tex
  3. 0
      chapters/2.theoretical-background/2.4.p2p-networks.tex
  4. 0
      chapters/2.theoretical-background/2.5.blockchain.tex
  5. 0
      chapters/2.theoretical-background/2.6.smart-contracts.tex
  6. 0
      chapters/2.theoretical-background/2.7.distributed-databases.tex
  7. 0
      chapters/2.theoretical-background/2.8.decentralized-apps.tex
  8. BIN
      thesis.pdf

11
chapters/2.theoretical-background/2.0.theoretical-background.tex

@ -2,8 +2,9 @@
\input{chapters/2.theoretical-background/2.1.hash-functions}
\input{chapters/2.theoretical-background/2.2.asymmetric-cryptography}
\input{chapters/2.theoretical-background/2.3.p2p-networks}
\input{chapters/2.theoretical-background/2.4.blockchain}
\input{chapters/2.theoretical-background/2.5.smart-contracts}
\input{chapters/2.theoretical-background/2.6.distributed-databases}
\input{chapters/2.theoretical-background/2.7.decentralized-apps}
\input{chapters/2.theoretical-background/2.3.merkle-trees}
\input{chapters/2.theoretical-background/2.4.p2p-networks}
\input{chapters/2.theoretical-background/2.5.blockchain}
\input{chapters/2.theoretical-background/2.6.smart-contracts}
\input{chapters/2.theoretical-background/2.7.distributed-databases}
\input{chapters/2.theoretical-background/2.8.decentralized-apps}

16
chapters/2.theoretical-background/2.3.merkle-trees.tex

@ -0,0 +1,16 @@
\section{Δένδρα Merkle}
Ένα δένδρο Merkle (Merkle tree ή hash tree) είναι μία δενδρική δομή δεδομένων, η οποία απαρτίζεται από φύλλα (leaf nodes), που περιέχουν hashes από blocks δεδομένων, και από άλλους κόμβους (non-leaf nodes), οι οποίοι περιέχουν τα hashes των θυγατρικών τους. Στην κορυφή του δένδρου βρίσκεται το λεγόμενο root hash. %TODO add reference: https://en.wikipedia.org/wiki/Merkle_tree
Η πιο συνηθισμένη υλοποίηση είναι το δυαδικό (binary) δένδρο Merkle, το οποίο περιλαμβάνει δύο θυγατρικούς κόμβους (child nodes) κάτω από κάθε γονικό non-leaf κόμβο, και είναι αυτό που αναλύεται στη συνέχεια.
%TODO create and add image of a binary hash tree like: https://en.wikipedia.org/wiki/File:Hash_Tree.svg
Τα Merkle trees επιτρέπουν την αποδοτική και ασφαλή επαλήθευση των περιεχομένων που ανήκουν σε σετ δεδομένων μεγάλου μεγέθους. Η βασική ιδιότητα είναι ότι για κάθε σετ δεδομένων υπάρχει ακριβώς ένα πιθανό δένδρο, το οποίο δε γίνεται να τροποποιηθεί χωρίς να αλλάξει ταυτόχρονα και το root hash.
Έτσι, μέσω των λεγόμενων Merkle proofs, μπορούμε: %TODO add reference: https://medium.com/crypto-0-nite/merkle-proofs-explained-6dd429623dc5
\begin{itemize}
\item Να αποφανθούμε εάν κάποια δεδομένα ανήκουν στο δένδρο (με τον αριθμό των hashes που θα πρέπει να υπολογιστούν να είναι ανάλογος του λογαρίθμου του αριθμού των leaf nodes).
\item Να αποδείξουμε συνοπτικά την εγκυρότητα ενός τμήματος κάποιου σετ δεδομένων, χωρίς να χρειαστεί να αποθηκεύσουμε ολόκληρο το σύνολο δεδομένων.
\item Να διασφαλίσουμε την εγκυρότητα ενός συγκεκριμένου συνόλου δεδομένων εντός ενός μεγαλύτερου σύνολου, χωρίς να χρειαστεί να αποκαλυφθεί το περιεχόμενο οποιουδήποτε εκ των δύο.
\end{itemize}

0
chapters/2.theoretical-background/2.3.p2p-networks.tex → chapters/2.theoretical-background/2.4.p2p-networks.tex

0
chapters/2.theoretical-background/2.4.blockchain.tex → chapters/2.theoretical-background/2.5.blockchain.tex

0
chapters/2.theoretical-background/2.5.smart-contracts.tex → chapters/2.theoretical-background/2.6.smart-contracts.tex

0
chapters/2.theoretical-background/2.6.distributed-databases.tex → chapters/2.theoretical-background/2.7.distributed-databases.tex

0
chapters/2.theoretical-background/2.7.decentralized-apps.tex → chapters/2.theoretical-background/2.8.decentralized-apps.tex

BIN
thesis.pdf

Binary file not shown.
Loading…
Cancel
Save