Dandelion++: προώθηση συναλλαγών με stem και fluff

· Ανάγνωση: 6 λεπ.

Το Dandelion++ είναι τρόπος προώθησης νέων συναλλαγών σε ένα ομότιμο δίκτυο, ώστε όσοι παρακολουθούν το δίκτυο να μην μπορούν εύκολα να καταλάβουν ποιος υπολογιστής τις έστειλε. Αυτός ο οδηγός εξηγεί το πρόβλημα που λύνει, πώς λειτουργούν οι φάσεις stem και fluff, τι πρόσθεσε η εργασία του 2018 στον αρχικό σχεδιασμό και πώς το Blocknet το χρησιμοποιεί σε κάθε πληρωμή.

Τι είναι το Dandelion++;

Σύντομη απάντηση

Το Dandelion++ είναι πρωτόκολλο προώθησης συναλλαγών που κρύβει ποιος κόμβος δημιούργησε μια συναλλαγή. Μια νέα συναλλαγή ταξιδεύει πρώτα κατά μήκος ενός «στελέχους», στη φάση stem, περνώντας από έναν κόμβο σε έναν μόνο επόμενο για αρκετά βήματα. Έπειτα περνά στη φάση fluff και διαδίδεται σε ολόκληρο το δίκτυο, σαν να ξεκίνησε από κόμβο μακριά από τον πραγματικό αποστολέα.

Το όνομα προέρχεται από το σχήμα της διαδρομής: ένα λεπτό στέλεχος και μετά ένα σύννεφο σπόρων που σκορπίζουν παντού. Το Dandelion++ δημοσιεύτηκε το 2018 από τους Giulia Fanti, Shaileshh Bojja Venkatakrishnan, Surya Bakshi, Bradley Denby, Shruti Bhargava, Andrew Miller και Pramod Viswanath στο Proceedings of the ACM on Measurement and Analysis of Computing Systems (προδημοσίευση στο arXiv) και παρουσιάστηκε στο ACM SIGMETRICS 2018. Βελτιώνει την πρόταση Dandelion της ίδιας ομάδας από το 2017.

Γιατί η αναμετάδοση μιας συναλλαγής αποκαλύπτει την προέλευσή της;

Το μήνυμα της συναλλαγής δεν περιέχει τη διεύθυνση IP σας. Ο τρόπος διάδοσής του όμως την προδίδει. Σε ένα τυπικό δίκτυο κρυπτονομίσματος, ο κόμβος που δημιουργεί μια συναλλαγή τη στέλνει σε όλους τους συνδεδεμένους κόμβους, εκείνοι στους δικούς τους, και η διάδοση απλώνεται σε δακτυλίους από την πηγή.

Οι ερευνητές έδειξαν ότι αυτή η διάδοση μπορεί να μετρηθεί. Το 2014, οι Biryukov, Khovratovich και Pustogarov και, ανεξάρτητα, οι Koshy, Koshy και McDaniel εκτέλεσαν έναν «υπερκόμβο» που συνδεόταν σχεδόν με κάθε προσβάσιμο κόμβο Bitcoin και κατέγραφε πότε έφτανε κάθε συναλλαγή από κάθε συνδεδεμένο κόμβο. Ο κόμβος που παρέδιδε πρώτος μια συναλλαγή ήταν συχνά αυτός που την είχε δημιουργήσει. Η εργασία του Dandelion++ ονομάζει αυτή τη μέθοδο first-spy estimator: εκτιμά ότι ο πρώτος ειλικρινής κόμβος που παραδίδει τη συναλλαγή είναι η πηγή της. Είναι απλή και λειτουργεί καλά απέναντι στη μαζική διάδοση, το flooding.

Η προσθήκη τυχαίων καθυστερήσεων πριν από κάθε προώθηση, όπως κάνει το Bitcoin Core με ένα σχήμα που ονομάζεται diffusion, κάνει τον χρονισμό πιο ασαφή. Η έρευνα του Dandelion ακολούθησε άλλη κατεύθυνση και άλλαξε το ίδιο το σχήμα της διαδρομής.

Πώς λειτουργούν οι φάσεις stem και fluff;

Σύντομη απάντηση

Στη φάση stem, κάθε κόμβος διαβιβάζει τη συναλλαγή σε ακριβώς έναν συνδεδεμένο κόμβο. Σε κάθε βήμα κάνει μια τυχαία επιλογή με άνισες πιθανότητες: συνήθως συνεχίζει το stem, μερικές φορές περνά στο fluff. Στη φάση fluff, η συναλλαγή αναμεταδίδεται κανονικά σε όλους τους συνδεδεμένους κόμβους, οπότε οι παρατηρητές τη βλέπουν να διαδίδεται από τον κόμβο που ξεκίνησε το fluff.

Βήμα προς βήμα:

  1. Ο κόμβος σας ξεκινά ένα stem. Στέλνει τη νέα συναλλαγή σε έναν μόνο συνδεδεμένο κόμβο.
  2. Κάθε κόμβος προώθησης αποφασίζει. Είτε τη στέλνει σε έναν ακόμη κόμβο (stem) είτε την αναμεταδίδει σε όλους (fluff).
  3. Το fluff τη διαδίδει παντού. Από τον κόμβο που ξεκινά το fluff, η συναλλαγή διαχέεται στο δίκτυο με τον συνηθισμένο τρόπο και φτάνει στους miners.

Ένας κατάσκοπος που παρακολουθεί πολλούς κόμβους βλέπει τώρα τη διάδοση να ξεκινά από τον κόμβο του fluff, ο οποίος μπορεί να απέχει πολλά βήματα από εσάς. Το μήκος του stem είναι τυχαίο, οπότε ο κατάσκοπος δεν μπορεί απλώς να μετρήσει προς τα πίσω έναν σταθερό αριθμό βημάτων. Η εργασία δίνει αναμενόμενο μήκος stem 1/q, όπου q είναι η πιθανότητα έναρξης fluff σε κάθε βήμα. Με q = 0,1, ένα stem έχει κατά μέσο όρο περίπου δέκα βήματα.

Τι άλλαξε το Dandelion++ σε σχέση με το Dandelion;

Ο σχεδιασμός Dandelion του 2017 έστελνε τα stems σε μία γραμμή κόμβων προώθησης και αποδείκνυε ισχυρά αποτελέσματα με τρεις παραδοχές: κάθε κόμβος ακολουθεί τους κανόνες, κάθε κόμβος στέλνει μία συναλλαγή και κάθε κόμβος εκτελεί Dandelion. Η εργασία του 2018 έδειξε πώς κατάσκοποι που παραβιάζουν αυτές τις παραδοχές θα μπορούσαν να μάθουν περισσότερα και έπειτα άλλαξε τον σχεδιασμό ώστε οι εγγυήσεις να ισχύουν και απέναντί τους. Λειτουργεί σε εποχές, με κάθε κόμβο να περνά σε νέα εποχή «της τάξης των 10 λεπτών», και μέσα σε κάθε εποχή χρησιμοποιεί τέσσερις μηχανισμούς:

Μηχανισμός Τι κάνει
Γράφος προώθησης περίπου κανονικός βαθμού 4 Κάθε κόμβος επιλέγει έως δύο εξερχόμενες συνδέσεις για προώθηση, σχηματίζοντας πλέγμα διασταυρούμενων διαδρομών αντί για μία γραμμή.
Μία ακμή για τις δικές σας συναλλαγές Ο κόμβος στέλνει κάθε συναλλαγή που δημιουργεί μέσω της ίδιας εξερχόμενης ακμής, ώστε η αποστολή πολλών συναλλαγών να μην αποκαλύπτει περισσότερα.
Ψευδοτυχαία προώθηση Σε κάθε εποχή, ένας κόμβος είτε προωθεί είτε διαχέει όλες τις συναλλαγές που λαμβάνει στη φάση stem και αντιστοιχίζει κάθε εισερχόμενη ακμή σε μία εξερχόμενη.
Χρονόμετρα ασφαλείας Ένας κόμβος που έστειλε ή προώθησε συναλλαγή stem περιμένει τυχαίο χρόνο να τη δει στη φάση fluff και την αναμεταδίδει ο ίδιος αν δεν τη δει.

Για την επιλογή του q, οι προσομοιώσεις της εργασίας έδειξαν ότι το q ίσο ή μικρότερο από 0,2 περιορίζει όσα μπορεί να κερδίσει ένας κατάσκοπος χειραγωγώντας τον γράφο προώθησης. Οι συγγραφείς εκτέλεσαν την υλοποίησή τους στο ενεργό δίκτυο Bitcoin και επέλεξαν q = 0,1 ή q = 0,2 για να κρατήσουν τη διάδοση εντός του στόχου των 4,5 δευτερολέπτων.

Το Dandelion προτάθηκε για το Bitcoin ως BIP 156. Το Monero πρόσθεσε το Dandelion++ στην έκδοση 0.16, που κυκλοφόρησε τον Μάιο του 2020.

Πώς χρησιμοποιεί το Blocknet το Dandelion++;

Κάθε κόμβος Blocknet προωθεί συναλλαγές με Dandelion++ και δεν χρειάζεται να ενεργοποιήσετε τίποτε. Όταν στέλνετε BNT, ο κόμβος σας ελέγχει πρώτα τη συναλλαγή και την προσθέτει στο δικό του mempool, έπειτα την παραδίδει στον δρομολογητή Dandelion++. Οι ρυθμίσεις του daemon είναι οι εξής:

Ρύθμιση Τιμή Τι σημαίνει
Πιθανότητα stem 0,9 Κάθε κόμβος προώθησης συνεχίζει το stem στο 90% των περιπτώσεων και ξεκινά fluff στο 10% (q = 0,1), το ίδιο q που δοκίμασε η εργασία.
Εποχή 10 λεπτά Οι διαδρομές stem ανακατανέμονται κάθε 10 λεπτά.
Χρονόμετρο αναμονής 45 δευτερόλεπτα Αν η συναλλαγή σας δεν επιστρέψει στον κόμβο σας στη φάση fluff μέχρι τότε, ο κόμβος σας την αναμεταδίδει ο ίδιος.

Πώς ταξιδεύει μια πληρωμή Blocknet:

Πώς συνδυάζεται το Dandelion++ με το υπόλοιπο απόρρητο του Blocknet;

Το Dandelion++ λειτουργεί στο επίπεδο δικτύου: προστατεύει τη σύνδεση ανάμεσα σε μια συναλλαγή και τον υπολογιστή που την έστειλε. Το απόρρητο στην αλυσίδα, που κάνει το Blocknet νόμισμα απορρήτου, προστατεύει το περιεχόμενο της συναλλαγής: ένας δακτύλιος CLSAG 16 μελών σε κάθε είσοδο κρύβει τον αποστολέα, οι stealth διευθύνσεις μίας χρήσης κρύβουν τον παραλήπτη και οι δεσμεύσεις Pedersen με αποδείξεις εύρους Bulletproofs κρύβουν τα ποσά. Αυτές οι προστασίες είναι υποχρεωτικές, οπότε όλες οι συναλλαγές μοιάζουν μεταξύ τους πριν καν τις μεταφέρει το Dandelion++.

Τα δύο επίπεδα αλληλοσυμπληρώνονται. Οι υπογραφές δακτυλίου κρύβουν ποια έξοδος πλήρωσε και το Dandelion++ κρύβει ποιος κόμβος αναμετέδωσε την πληρωμή. Το άρθρο Πώς το Blocknet κρατά τις πληρωμές ιδιωτικές εξετάζει κάθε επίπεδο της αλυσίδας, ενώ το Τι είναι το Blocknet; δίνει την επισκόπηση, συμπεριλαμβανομένης της πληρωμής με όνομα μέσω Blocknet ID.

Για να αποκτήσετε δικά σας BNT για αποστολή, μπορείτε να τα εξορύξετε στο σπίτι. Ακολουθήστε τον οδηγό εξόρυξης Blocknet για να κατεβάσετε το seine, να το συνδέσετε στο bntpool.com και να λαμβάνετε πληρωμές στη διεύθυνση του πορτοφολιού σας ή στο @name.

Συχνές ερωτήσεις

Κρύβει το Dandelion++ τη διεύθυνση IP μου;

Κρύβει ποιος κόμβος ξεκίνησε μια συναλλαγή από παρατηρητές διάσπαρτους στο δίκτυο. Η συναλλαγή διαδίδεται ευρέως μόνο όταν περάσει στη φάση fluff, αρκετά βήματα μακριά σας. Ο πρώτος κόμβος stem βλέπει τη συναλλαγή να φτάνει από τον δικό σας κόμβο, αλλά τα μηνύματα stem είναι ίδια είτε ο κόμβος δημιούργησε τη συναλλαγή είτε απλώς την προωθεί, οπότε δεν μπορεί να ξεχωρίσει τις δύο περιπτώσεις.

Ποια είναι η διαφορά μεταξύ Dandelion και Dandelion++;

Το Dandelion (2017) εισήγαγε τις φάσεις stem και fluff σε μία γραμμή κόμβων προώθησης. Το Dandelion++ (2018) κρατά τις δύο φάσεις και τις ενισχύει απέναντι σε κατασκόπους που παραβιάζουν τους κανόνες. Χρησιμοποιεί γράφο όπου κάθε κόμβος επιλέγει δύο κόμβους προώθησης, στέλνει τις δικές του συναλλαγές μέσω μίας σταθερής ακμής, επιλέγει νέους κόμβους προώθησης σε κάθε εποχή και προσθέτει χρονόμετρο ασφαλείας.

Ποια κρυπτονομίσματα χρησιμοποιούν Dandelion++;

Το Monero πρόσθεσε το Dandelion++ στην έκδοση 0.16, που κυκλοφόρησε τον Μάιο του 2020, και το Blocknet προωθεί κάθε συναλλαγή με αυτό. Το Dandelion προτάθηκε αρχικά για το Bitcoin ως BIP 156 από την ίδια ερευνητική ομάδα. Οποιοδήποτε νόμισμα βασίζεται σε ομότιμο δίκτυο μπορεί να το υιοθετήσει, επειδή αλλάζει μόνο τον τρόπο με τον οποίο οι κόμβοι διαβιβάζουν νέες συναλλαγές μεταξύ τους.

Ποιες ρυθμίσεις Dandelion++ χρησιμοποιεί το Blocknet;

Οι κόμβοι Blocknet συνεχίζουν τη φάση stem με πιθανότητα 0,9 σε κάθε βήμα, οπότε μια συναλλαγή περνά στη φάση fluff με πιθανότητα 10% σε κάθε προώθηση. Οι διαδρομές stem αλλάζουν κάθε 10 λεπτά. Αν η δική σας συναλλαγή δεν επιστρέψει στον κόμβο σας στη φάση fluff μέσα σε 45 δευτερόλεπτα, ο κόμβος σας την αναμεταδίδει ο ίδιος, ώστε να φτάνει πάντα στο δίκτυο.