29 min read

Λύση του Χρωματισμού των Εμπορεύσιμων Token - Μια Έκδοση για Σπασίκλες

Λύση του Χρωματισμού των Εμπορεύσιμων Token - Μια Έκδοση για Σπασίκλες

Αυτό το έγγραφο διευκρινίζει τη σχεδιαστική μας διαδρομή για το έργο ColorTrace, περιγράφοντας την εξέλιξη των εννοιών μας και την τυποποίηση του προβλήματος. Σκοπός του δεν είναι να χρησιμεύσει ως τεχνική αναφορά. Η πλήρης τεχνική ακρίβεια του παρόντος εγγράφου δεν διασφαλίζεται ρητά (ανατρέξτε στις λευκές βίβλους των ColorTrace, ColorFloat) και προορίζεται κυρίως για την επικοινωνία ιδεών υψηλού επιπέδου και την εξερεύνηση του χώρου σχεδίασης.

Η ασφάλεια είναι υψίστης σημασίας για το LayerZero Labs και είμαστε σταθεροί στη δέσμευσή μας να βρίσκουμε τα πιο πρακτικά, κομψά και ασφαλή σχέδια για κάθε πρωτόκολλο που αναπτύσσουμε. Τα παρακάτω παρέχουν μια χρονολογική επισκόπηση σε μεγάλο βαθμό της διερεύνησης του σχεδιασμού μας, προσφέροντας πληροφορίες για διάφορες λεπτομέρειες του ColorTrace που παραλήφθηκαν από την δημοσίευση για λόγους συντομίας.

Καθορισμός του προβλήματος

Πριν ξεκινήσουμε, θα θέλαμε να παρουσιάσουμε εν συντομία το πρόβλημα όπως το ορίζουμε.

Ορίζουμε το πρόβλημα του χρωματισμού των token ως το πρόβλημα (1) του εντοπισμού του εκδότη νομισματοκοπίας για δίκαιη καύση και (2) του εντοπισμού της απόδοσης του αριθμού των χρωματισμένων token που έχουν κοπεί από ένα δεδομένο εκδότη (δηλ. την νομισματοκοπία ενός εκδότη) σε αναλογία με την παγκόσμια προσφορά token. Η νομισματοκοπία αποθηκεύεται σε μια πρωτογενή αλυσίδα, η οποία μπορεί να θεωρηθεί ως ένα στιγμιότυπο της στιγμιαίας κυκλοφορίας σε όλες τις αλυσίδες, συμπεριλαμβανομένης της πρωτογενούς και μιας συλλογής δευτερογενών αλυσίδων. Για λογοτεχνικούς σκοπούς, αναφερόμαστε στο μοναδικό αναγνωριστικό ενός εκδότη ως το χρώμα του και αναφερόμαστε σε αυτά τα χρώματα χρησιμοποιώντας ονόματα χρωμάτων όπως κόκκινο, πράσινο και μπλε. Αυτά τα χρώματα θα είναι πάντοτε αριθμητικά αναγνωριστικά στην πράξη.

Το πιο σημαντικό μέρος αυτού του προβλήματος είναι ο εντοπισμός χρωμάτων για τη δίκαιη καύση token: αν ένας χρήστης εξαργυρώσει ένα token, πώς θα προσδιορίσουμε ποιος εκδότης το έκοψε αρχικά; Αυτό το πρόβλημα φαίνεται απίστευτα απλό με την πρώτη ματιά, αλλά στην πραγματικότητα είναι το γνωστό και δύσκολο πρόβλημα των Χρωματιστών Νομισμάτων (Colored Coins). Η εφαρμογή του πρωτοκόλλου Colored Coins σε αυτό το πρόβλημα θα οδηγούσε σε O(N) αποθήκευση και O(N) υπολογισμό για ένα σύστημα με N εκδότες, και έτσι προσκρούει σε προβλήματα κλιμάκωσης στο blockchain. Δεν παρουσιάζουμε μόνο μια λύση O(1) για αυτό το πρόβλημα, αλλά σχεδιάζουμε επίσης έναν πρακτικό μηχανισμό O(1) για να επιτρέπουμε και μεταφορές μεταξύ αλυσίδων.

Οι δύο εργασίες που απαιτούν σχολαστική εφαρμογή είναι η μεταφορά και η επανακοπή. Η μεταφορά, μια απλή λειτουργία, συνεπάγεται την αποστολή token από ένα πορτοφόλι σε ένα άλλο εντός και μεταξύ blockchains. Και οι δύο λειτουργίες είναι εγγενώς O(N), και παρουσιάζουμε την πρώτη λύση (χρωματισμός με απώλειες) στο πρόβλημα του χρωματισμού των token. Ο χρωματισμός με απώλειες χρησιμεύει ως βάση για τους τέσσερις αλγορίθμους που σχεδιάσαμε για την επίλυση του χρωματισμού των token: ColorFloat, ColorTrace, rho και ColorAge. Και οι τέσσερις αυτοί αλγόριθμοι είναι πλήρεις και Pareto-βέλτιστοι και πιστεύουμε ότι υπάρχει δυνατότητα χρήσης και των τεσσάρων αλγορίθμων σε μελλοντικά οικοσυστήματα Web3. Ωστόσο, το Verified USD Foundation έκρινε ότι το ColorTrace έχει τις πιο επιθυμητές ιδιότητες για το USDV ειδικότερα.

Επιπλέον, υπάρχουν αρκετές ιδιαιτερότητες των μεταφορών μεταξύ αλυσίδων που προκαλούνται από την ασυγχρονία μεταξύ της χρέωσης της πηγής και της πίστωσης του προορισμού, τις οποίες επίσης επιλύουμε προκειμένου να σχεδιάσουμε μια ολοκληρωμένη λύση omnichain.

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

Θέτοντας τα θεμέλια: ColorFloat

Στην αρχική μας προσέγγιση, εισαγάγαμε την έννοια του token κινητής υποδιαστολής, το οποίο μπορεί να εννοηθεί ως ένα έγχρωμο token που έχει μετατραπεί σε άχρωμο token (ανατρέξτε στη λευκή βίβλο για περισσότερες λεπτομέρειες). Αυτά τα άχρωμα tokens, με τη σειρά τους, είναι ανταλλάξιμα και μπορούν να συνυπάρχουν στην ίδια ισορροπία με οποιοδήποτε άλλο έγχρωμο token. Κάθε πορτοφόλι επιτρέπεται να κατέχει tokens ενός χρώματος (χρωματισμός με απώλειες) μαζί με μια ποσότητα από tokens κινητής υποδιαστολής. Αυτό επιτρέπει την κωδικοποίηση ενός χρώματος χωρίς απώλειες, ενώ το υπόλοιπο κωδικοποιείται με απώλειες ως tokens κινητής υποδιαστολής. Όμορφη σε απλότητα, ο χρωματισμός με απώλειες είναι η βασική λύση στο πρόβλημα του χρωματισμού των token που χρησιμοποιούμε ως βάση τόσο για το ColorFloat όσο και για όλες τις επόμενες λύσεις.

Σε αυτόν τον αλγόριθμο, όταν αποστέλλονται μπλε tokens σε ένα πορτοφόλι με πράσινο υπόλοιπο, αυτά τα μπλε tokens (ή πράσινα tokens) μπορούν να ενθυλακωθούν σε tokens κινητής υποδιαστολής πριν συγχωνευθούν με το έγχρωμο υπόλοιπο. Κάθε συμβόλαιο token διατηρεί ένα αρχείο με τον αριθμό των tokens κάθε χρώματος που έχουν τυλιχθεί σε κινητής υποδιαστολής (αναφέρεται ως λίστα ελλείμματος). Τα tokens κινητής υποδιαστολής μπορούν να ξετυλιχθούν σε χρώματα μέχρι το έλλειμμα που είναι αποθηκευμένο στον κατάλογο ελλείμματος. Αυτός ο μηχανισμός διευκολύνει τις τοπικές μεταφορές O(1), αν και η επανακοπή αλλά και οι μεταφορές μεταξύ των αλυσίδων γίνονται περίπλοκες.

Το ColorFloat παρουσιάζει αρκετές ιδιότητες που μπορεί να το καθιστούν πιο πλεονεκτικό από το ColorTrace σε ορισμένες εφαρμογές. Πρωτίστως, το token κινητής υποδιαστολής παρέχει μια σαφή οριοθέτηση στην απόδοση των tokens μέσα σε ένα συγκεκριμένο ισοζύγιο. Αυτή η ιδιότητα θα μπορούσε να αποδειχθεί πολύτιμη σε ένα σύστημα που χρησιμοποιεί περίπλοκους κανόνες (ανα)χρωματισμού για την αποτελεσματική κωδικοποίηση γνώσης συγκεκριμένου τομέα σχετικά με την ιστορική κίνηση ενός token. Για παράδειγμα, θα μπορούσε να είναι χρήσιμο σε σενάρια που αφορούν την παγκόσμια προτεραιότητα χρώματος ή τον προσδιορισμό του κατά πόσον ένα token έχει αλληλεπιδράσει με μια συγκεκριμένη εφαρμογή στο παρελθόν.

Ένα άλλο πλεονεκτικό χαρακτηριστικό του ColorFloat είναι ότι τα υπόλοιπα του πορτοφολιού μπορούν να περιέχουν έναν αυθαίρετο αριθμό (K) χρωματιστών υπολοίπων σε συνδυασμό με ένα υπόλοιπο token κινητής υποδιαστολής. Καθώς το K πλησιάζει στο άπειρο, ο αλγόριθμος πλησιάζει την έλλειψη απωλειών- αυτή η ευελιξία στον έλεγχο του βαθμού έλλειψης απωλειών είναι ένα χαρακτηριστικό που δεν είναι ιδιαίτερα χρήσιμο για το USDV, αλλά θα μπορούσε να είναι απίστευτα ισχυρό σε άλλες εφαρμογές.

Η επανακοπή περιλαμβάνει τη διαδικασία του ξετυλίγματος των tokens κινητής υποδιαστολής στο χρώμα που έχει ορίσει ο εκδότης. Αυτή η προσέγγιση παρέχει ορισμένους περιορισμούς στη συμπεριφορά των εκδοτών, δεδομένου ότι μπορούν να κάνουν επανακοπή μόνο τη στιγμή που κρατούν tokens κινητής υποδιαστολής. Ειδικά για το USDV, το Verified USD Foundation έκρινε ότι είναι καλύτερη εμπειρία για τους εκδότες να μπορούν να συγκεντρώνουν δυναμική επανακοπής με την πάροδο του χρόνου και να ξαναφτιάχνουν μεγάλες παρτίδες από tokens χωρίς να χρειάζεται να τις κρατούν όλες ταυτόχρονα.

Όσον αφορά το πρώτο σημείο, οι εκδότες που παράγουν σημαντικό όγκο κίνησης token αλλά διατηρούν σχετικά μικρή ποσότητα token ανά πάσα στιγμή είναι αναγκασμένοι να κάνουν συχνά επανακοπή. Το σενάριο αυτό μειώνει την κεφαλαιακή τους αποδοτικότητα, καθώς η μειωμένη δυνατότητα απόσβεσης του κόστους συναλλαγών (συμπεριλαμβανομένης της ανταλλαγής μηνυμάτων μεταξύ αλυσίδων) καθίσταται σημαντικός παράγοντας.

Αναπτύσσοντας το δεύτερο σημείο, οι εκδότες αντιμετωπίζουν προκλήσεις όσον αφορά την "προστασία" της νομισματοκοπίας τους με την απλή κατοχή μιας συγκεκριμένης ποσότητας token. Για να αποτρέψουν την πτώση της νομισματοκοπίας τους κάτω από ένα συγκεκριμένο όριο, οι νομισματοκόποι πρέπει να κατέχουν tokens του δικού τους χρώματος. Ωστόσο, η κατοχή tokens κινητής υποδιαστολής, παρά το γεγονός ότι έχουν την ίδια εγγενή αξία με ένα έγχρωμο token, δεν συμβάλλει άμεσα στη μείωση του ελλείμματός τους. Αυτή η εγγενής αντίφαση στη φύση των tokens κινητής υποδιαστολής υποδηλώνει μια πιο θεμελιώδη έλλειψη του μοντέλου token κινητής υποδιαστολής - το ανταλλάξιμο έγχρωμο token, στο πλαίσιο αυτού του σχεδιασμού, δεν είναι πλήρως ανταλλάξιμο από τη σκοπιά του εκδότη. Αυτή η ιδιότητα, αν και ασήμαντη σε πολλές εφαρμογές, αποδείχθηκε κάπως σημαντική για το USDV.

Οι μεταφορές μεταξύ αλυσίδων αντιμετωπίζουν παρόμοιους περιορισμούς, καθώς δεν είναι ασφαλές να μεταφέρονται tokens κινητής υποδιαστολής ως έχουν μεταξύ blockchains. Τα tokens κινητής υποδιαστολής πρέπει να μεταφερθούν μαζί με μια αντίστοιχη ποσότητα ελλειμμάτων, γεγονός που ουσιαστικά απαιτεί το ξετύλιγμα όλων των tokens κινητής υποδιαστολής πριν από τη μεταφορά τους. Αυτό δημιουργεί δύο ζητήματα: μη ντετερμινιστικό gas και τεχνητά ανώτατα όρια μεταφοράς.

Σε αυτό το παράδειγμα, το κόστος gas για την αποστολή token από την αλυσίδα Α στην αλυσίδα Β γίνεται μη ντετερμινιστικό. Στην καλύτερη περίπτωση, 10 tokens κινητής υποδιαστολής μπορούν να ξετυλιχτούν σε 1 χρώμα, ενώ στη χειρότερη περίπτωση, μπορούν να ξετυλιχτούν σε 10 χρώματα. Αυτή η απρόβλεπτη εξέλιξη του κόστους gas είναι αναμφισβήτητα πιο προβληματική από τα προβλήματα με την αναδιαμόρφωση, καθώς επηρεάζει άμεσα την εμπειρία του χρήστη.

Επιπλέον, οι περιορισμοί σχετικά με το μέγεθος των πακέτων μηνυμάτων διαδοχικής αλυσίδας επιβάλλουν ένα όριο στον μέγιστο αριθμό χρωμάτων που μπορούν να μεταφερθούν διαδοχικά. Συνεπώς, η επιτυχία μιας μεταφοράς, για παράδειγμα, 1 εκατομμυρίου tokens από την αλυσίδα Α στην αλυσίδα Β εξαρτάται εν μέρει από την τύχη. Σε ένα τυχερό σενάριο, τα tokens μπορεί να ξετυλιχθούν σε ένα μόνο χρώμα, επιτρέποντας μια επιτυχή μεταφορά. Ωστόσο, σε μια ατυχή κατάσταση όπου ο μέγιστος αριθμός χρωμάτων ανά πακέτο είναι, για παράδειγμα, 100, η μεταφορά μπορεί να περιοριστεί σε 100 μόνο tokens. Αυτό όχι μόνο επηρεάζει δυσμενώς την εμπειρία του χρήστη, αλλά μπορεί επίσης να περιορίσει σοβαρά τη δυνατότητα σύνθεσης, καθώς ο αριθμός των συναλλαγών που απαιτούνται για την αποστολή tokens στην αλυσίδα γίνεται πρακτικά απεριόριστος.

Τοπικό και Παγκόσμιο Νομισματοκοπείο

Σε μια προσπάθεια να αντιμετωπιστεί η έλλειψη ανταλλαξιμότητας στο μοντέλο του token κινητής υποδιαστολής, η μετέπειτα εξέλιξη του αλγορίθμου περιελάμβανε τη μετατόπιση του token κινητής υποδιαστολής από μια ποσότητα ανά πορτοφόλι σε μια ποσότητα ανά συμβόλαιο token. Υιοθετήσαμε έναν σχεδιασμό όπου το σιωπηρό περιτύλιγμα και ξετύλιγμα του token κινητής υποδιαστολής συγκεντρώνονται για να το χειρίζονται ασύγχρονα οι νομισματοκόπτες. Αυτή η προσαρμογή όχι μόνο βελτιώνει την εμπειρία του χρήστη, αλλά προσφέρει επίσης μια πιο αποτελεσματική και εξορθολογισμένη προσέγγιση για τους νομισματοκόπτες στο πλαίσιο του USDV. Στην ουσία, αυξήσαμε την απώλεια του συστήματος με έναν τρόπο που θεωρήσαμε ότι θα προσέφερε καλύτερη εμπειρία στον χρήστη και στους νομισματοκόπτες. Το να κάνουμε το άλμα της πίστης για να αποδεχτούμε την αυξημένη απώλεια ήταν ένα από τα πιο σημαντικά μέρη αυτού του έργου, καθώς μας βοήθησε να διευρύνουμε το όραμά μας για το πρόβλημα στο σύνολό του και να εξερευνήσουμε πληρέστερα τον χώρο σχεδιασμού.

Κάθε συμβόλαιο token αποθηκεύει δύο ποσότητες: localMint και globalMint (αναφέρονται ως χρωματισμένα και νομισματοκοπημένα στον κώδικα). Το LocalMint είναι η στιγμιαία κυκλοφορία ενός συγκεκριμένου χρώματος εντός του τοπικού blockchain και το globalMint είναι η τελευταία τιμή που συγχρονίστηκε από την τοπική αλυσίδα στο θησαυροφυλάκιο της πρωτογενούς αλυσίδας.

Σε αντίθεση με την προηγούμενη προσέγγιση του περιτυλίγματος των χρωματιστών tokens σε tokens κινητής υποδιαστολής που βρίσκονται σε μεμονωμένα πορτοφόλια, η βελτιωμένη στρατηγική περιλαμβάνει τον άμεσο επαναχρωματισμό των χρωματιστών tokens κατά τη διάρκεια των μεταφορών. Σε αυτό το μοντέλο, κάθε πορτοφόλι κατέχει tokens ακριβώς ενός χρώματος. Οι επαναχρωματισμοί κωδικοποιούνται ως μεταβολές στο localMint, με τη διαφορά μεταξύ localMint και globalMint να σηματοδοτεί είτε έλλειμμα, που υπόκειται σε ψαλίδισμα κατά τη διάρκεια της επανακοπής, είτε πλεόνασμα, διαθέσιμο για επανακοπή έναντι ενός αντίθετου και ισοδύναμου μεγέθους ελλείμματος. Αυτή η προσαρμογή εξορθολογίζει τη διαδικασία, καθιστώντας την πιο άμεση και αποτελεσματική.

Αυτό λύνει τα προβλήματα με την επανεκκαθάριση, καθώς τα πλεονάσματα μπορούν να συσσωρευτούν συνολικά για απεριόριστο χρονικό διάστημα πριν ο νομισματοκόπτης τα συγχρονίσει με το θησαυροφυλάκιο, και ένας νομισματοκόπτης που κατέχει μια συγκεκριμένη ποσότητα tokens εγγυάται ότι τα χρωματισμένα δεν θα πέσουν ποτέ κάτω από αυτή την ποσότητα. Αυτό περιορίζει το μέγεθος του ελλείμματος στην τοπική αλυσίδα.

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

DeltaZero

Συνεχίζοντας την εξερεύνηση των χρωματισμένων και νομισματοκοπειμένων tokens, καταλήξαμε στη διαπίστωση ότι, στην πράξη, η μόνη απαραίτητη λογιστική για ασφαλείς επαναχρωματισμούς και μεταφορές μεταξύ αλυσίδων είναι η διαφορά ανά χρώμα μεταξύ localMint και globalMint, που αναφέρεται ως delta. Θεωρητικά, η παρακολούθηση της δέλτα ανά χρώμα μαζί με έναν μηχανισμό παρατήρησης του αθροίσματος όλων των δέλτα σε μια αλυσίδα μπορεί να δημιουργήσει ένα μαθηματικά ορθό σύστημα για τον χρωματισμό των token σε διαφορετικές αλυσίδες. Ωστόσο, είναι συνήθως προτιμότερο να αποθηκεύεται τουλάχιστον το χρωματισμένο ή το νομισματοκοπειμένο, ώστε να μπορούν οι νομισματοκοποί να προσδιορίζουν γρήγορα την κυκλοφορία των token τους σε κάθε blockchain.

Δύσκολα σημεία: κατάλογος ελλείμματος

Όλα τα μοντέλα που συζητήθηκαν προηγουμένως μοιράζονται έναν κρίσιμο περιορισμό: τον κατάλογο ελλείψεων. Η διατήρηση αυτού του καταλόγου όχι μόνο συνεπάγεται σημαντικό κόστος gas, αλλά, το σημαντικότερο, οδηγεί σε απρόβλεπτο κόστος gas ανά συναλλαγή με tokens. Σε τυχερά σενάρια, οι μεταφορές μεταξύ αλυσίδων μπορεί να περιλαμβάνουν την αποθήκευση ενός θετικού και ενός αρνητικού delta. Ωστόσο, στη χειρότερη περίπτωση, οι μεταφορές μεταξύ αλυσίδων μπορεί να έχουν ως αποτέλεσμα την αποθήκευση ενός θετικού delta μαζί με εκατοντάδες ή ακόμη και χιλιάδες αρνητικά delta (αν και στην πράξη η πιθανότητα αυτού του γεγονότος είναι σχεδόν μηδενική). Για να επιδεινωθούν τα πράγματα, το όριο μεγέθους πακέτου επιβάλλει ένα μη ντετερμινιστικό ανώτατο όριο στον αριθμό των tokens που μπορούν να σταλούν από ενα blockchain ένα άλλο. Αυτή η απρόβλεπτη εμπειρία του χρήστη μπορεί να χαρακτηριστεί, για να το θέσουμε ευγενικά, ως μη βέλτιστη.

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

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

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

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

DeltaTheta, DeltaSigma, Debt, και ColorTrace

Η τελική ιδέα στην οποία καταλήξαμε τελικά για αυτόν τον λογιστικό μηχανισμό ήταν το DeltaTheta.Ο επικεφαλής αρχιτέκτονας και ο τεχνικός μας σύμβουλος κατέληξαν και οι δύο στην ίδια λύση, με τον πρώτο να την ονομάζει ΔΣ και τον δεύτερο Debt. Η τελική ονομασία αποτέλεσε σημείο διαφωνίας, και τελικά καταλήξαμε στο DeltaTheta (Δθ).

Το DeltaTheta μπορεί να εννοηθεί ως η ανά αλυσίδα συνολική συνάθροιση κινητής υποδιαστολής ή ως ένα είδος "μη χρωματισμένου delta μεταξύ αλυσίδων". Όταν ένα πλεόνασμα μεταφέρεται από την αλυσίδα Α στην αλυσίδα Β, αυτό το πλεόνασμα αντικαθίσταται από μια ισοδύναμη αύξηση του DeltaTheta στην αλυσίδα προέλευσης και εξισορροπείται από μια αρνητική μεταβολή ίσου μεγέθους στο DeltaTheta στην αλυσίδα προορισμού. Έτσι, κατά κάποιον τρόπο "κλέβουμε" μεταθέτοντας το πρόβλημα του αντίστοιχου πλεονασμάτος με ελλείμματα στη συνέχεια σε αυτό που ονομάζουμε επίπεδο συγχρονισμού.

Το προφανές πρόβλημα με το DeltaTheta είναι ότι δεν μπορεί να χρησιμοποιηθεί για την επανακοπή πλεονασμάτων (ποιανού κοπή θα μείωνες για να επανεκκαθαρίσεις το πλεόνασμα;), αλλά ταυτόχρονα ένα αρνητικό DeltaTheta υποδηλώνει ότι υπάρχουν περισσότερα έγχρωμα πλεονάσματα από έγχρωμα ελλείμματα στην τοπική αλυσίδα. Έτσι, αν το DeltaTheta είναι αρνητικό, υπάρχουν τοπικά πλεονάσματα που δεν μπορούν να ξαναμινωθούν λόγω έλλειψης έγχρωμου ελλείμματος- η εργασία της εξισορρόπησης του DeltaTheta σε όλα τα blockchains ανατίθεται στο επίπεδο συγχρονισμού.

Το επίπεδο συγχρονισμού μπορεί να υλοποιηθεί με πολλούς διαφορετικούς τρόπους, και θα επικεντρωθούμε στην παρουσίαση του τρόπου στον οποίο τελικά καταλήξαμε

Η πρώτη εναλλακτική λύση, την οποία τελικά υιοθετήσαμε, περιλαμβάνει τον ελεύθερο συγχρονισμό του θετικού DeltaTheta με την αρνητικό χρωματιστό blockchains (ελλείμματα) μεταξύ των δευτερευουσών αλυσίδων. Εάν ένα blockchain έχει θετικό DeltaTheta, το ισοδύναμο μέγεθος του έγχρωμου ελλείμματος μπορεί να μεταφερθεί σε οποιοδήποτε απομακρυσμένο blockchain. Η προσέγγιση αυτή λειτουργεί με την αισιόδοξη υπόθεση ότι το DeltaTheta θα συγκλίνει τελικά στο μηδέν σε όλα τα blockchains.

Παρόλο που η προσέγγιση αυτή παρουσιάζει ορισμένα μειονεκτήματα, ιδίως την απουσία σκληρής εγγύησης της σύγκλισης του συστήματος, αποτελεί την πιο πρακτική λύση για τον συγχρονισμό delta εντός των περιορισμών των υφιστάμενων δικτύων blockchain.

Πρώτον, η επανακοπή εξακολουθεί να πραγματοποιείται απευθείας από δευτερεύουσα blockchains και είναι ευάλωτο στον κατακερματισμό του χρώματος. Σε περιπτώσεις όπου πολλά μικρά ελλείμματα αθροιστικά αντιστοιχούν σε ένα μεγάλο πλεόνασμα, οι περιορισμοί στο μέγεθος των πακέτων μπορεί να οδηγήσουν σε σημαντικό κόστος για την επανακοπή. Αυτό αναδεικνύει μια πιθανή πρόκληση όσον αφορά την αποδοτικότητα και τη σχέση κόστους-αποτελεσματικότητας.

Δεύτερον, η έλλειψη εγγύησης σύγκλισης επιτρέπει στους κακόβουλους φορείς να κρύβουν ενδεχομένως τα ελλείμματά τους σε ένα πακέτο επ' αόριστον, μεταφέροντάς το μεταξύ δύο blockchains. Υποθέτοντας ότι το DeltaTheta στην αλυσίδα 1 είναι θετικό K, ο επιτιθέμενος μπορεί να συγχρονίσει K δικά του χρωματικά ελλείμματα από την αλυσίδα 1 στην αλυσίδα 2 με DeltaTheta=0, και στη συνέχεια να συνθέσει τη συναλλαγή συγχρονισμού της αλυσίδας προορισμού με έναν άλλο συγχρονισμό πίσω στην αλυσίδα 1. Ένας επιτιθέμενος με επαρκή ρευστότητα μπορεί να εντοπίσει αλυσίδες με λιγότερη ρευστότητα για να επιτεθεί χρησιμοποιώντας αυτή την επίθεση ping pong και να κρύψει επ' αόριστον τα ελλείμματά του.

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

Εάν η remint R3 εκτελεστεί πριν από την R1, τόσο η R1 όσο και η R2 είναι ανεξάρτητα μη εκτελέσιμες, αλλά αλληλοεξουδετερώνονται. Αυτό καθιστά αναγκαίο ένα κοινόχρηστο ταμείο delta που επιτρέπει τη συσσώρευση και συγχώνευση των αιτήσεων επανακοπής χωρίς την εφαρμογή τους στο θησαυροφυλάκιο. Τα περιεχόμενα αυτού του κοινόχρηστου ταμείου delta συγχρονίζονται τμηματικά με το θησαυροφυλάκιο όταν η κατάσταση του θησαυροφυλακίου και του κοινόχρηστου ταμείου delta είναι συνεπής.

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

Το Transfer (TransferSend & TransferReceive), στην κορυφή, απεικονίζει τη μεταφορά ενός πλεονάσματος χρώματος C από την αλυσίδα Source στην αλυσίδα Destination. Τα πραγματικά tokens αφαιρούνται από το πορτοφόλι της πηγής και το πλεόνασμα αφαιρείται από την πηγή ΔC. Αυτή η αλλαγή στο ΔC εξισορροπείται από μια ίση και αντίθετη κίνηση στο Δθ στην αλυσίδα προέλευσης, διατηρώντας το αμετάβλητο delta-μηδέν. Στη συνέχεια μετακινούμε τα tokens, την αλλαγή στο ΔC και την αλλαγή στο Δθ από την αλυσίδα της πηγής στο πακέτο. Στην αλυσίδα προορισμού, μια παρόμοια λειτουργία εκτελείται από το TransferReceive, αφαιρώντας αυτές τις τιμές από το πακέτο και πιστώνοντας (προσθέτοντάς τις) στο συμβόλαιο token προορισμού. Παρουσιάζουμε μόνο την περίπτωση όπου ΔC > 0 στην πηγή, καθώς όλες οι άλλες περιπτώσεις μπορούν απλώς να στείλουν tokens χωρίς να αλλάξουν το ΔC ή το Δθ.

Το Sync (SyncSend & SyncReceive) είναι παρόμοιο με τη λειτουργία Transfer, με τη διαφορά ότι δεν μετακινεί πραγματικά tokens και το χρωματισμένο delta πρέπει να είναι αρνητικό.

Το Recolor απλά αυξάνει ένα delta και μειώνει ένα άλλο κατά το ίδιο ποσό στην αλυσίδα πηγής.

Το Remint (RemintSend & RemintReceive) βρίσκει ένα θετικό K τέτοιο ώστε ΔM (το χρώμα επανακοπής) να είναι μεγαλύτερο ή ίσο με K και ένα άλλο ΔV (το χρώμα που καθιστάται θύμα που πρέπει να διαγραφεί) να είναι μεγαλύτερο ή ίσο με -K. Στη συνέχεια, τα ΔV και ΔM μειώνονται σε μέγεθος (συγκλίνουν προς το μηδέν) κατά K.

Κοινόχρηστο Ταμείο Delta

Δεδομένου ότι το χειρότερο σενάριο περιλαμβάνει τη συγκέντρωση των αιτήσεων επανακοπής στο κοινόχρηστο ταμείο delta, προτάθηκε ένας πιο κομψός σχεδιασμός: η απευθείας συγκέντρωση όλων των deltas στο κοινόχρηστο ταμείο delta πριν από την έναρξη της διαδικασίας επανακοπής από το ταμείο delta στο θησαυροφυλάκιο. Η έρευνα αυτή εξέτασε επίσης την έννοια του μονόπλευρου (μη μηδενικού delta) συγχρονισμού, επιτρέποντας την αποστολή πλεονάσματος στο θησαυροφυλάκιο χωρίς αντίστοιχο έλλειμμα και αντίστροφα. Αυτή η εκλεπτυσμένη προσέγγιση αποσκοπεί στον εξορθολογισμό της διαδικασίας επανακοπής και στη βελτίωση της συνολικής αποδοτικότητας του συστήματος.

Το κοινόχρηστο ταμείο delta διαθέτει αρκετές ευνοϊκές ιδιότητες, οι οποίες προκύπτουν κυρίως από τη μονόδρομη ροή των delta στο ταμείο. Αυτή η διαμόρφωση προσφέρει ισχυρότερες εγγυήσεις σύγκλισης, μειώνει τις επιφάνειες επίθεσης και απλοποιεί την εμπειρία των εκδοτών με την αυτοματοποίηση της συγχώνευσης και της ακύρωσης των delta στο ταμείο delta. Ωστόσο, αυτή η προσέγγιση απαιτεί τη συμμετοχή μιας εξωτερικής οντότητας (π.χ. ίδρυμα token) για την ανιδιοτελή κάλυψη του κόστους συγχρονισμού με τη ταμείο delta στο Ethereum. Αυτό ανοίγει κάποιες πιθανές επιφάνειες griefing, καθώς οι χρήστες μπορεί να επιχειρήσουν να δημιουργήσουν ψευδώς επιπλέον κόστος συγχρονισμού. Η εξεύρεση ισορροπίας μεταξύ της ακεραιότητας του συστήματος και της εμπειρίας των χρηστών καθίσταται κρίσιμο ζήτημα σε αυτό το πλαίσιο.

Σε αυτή τη μορφή του ταμείου delta, η επανακοπή γίνεται αποκλειστικά με τη χρήση delta που είναι αποθηκευμένα στο ταμείο και τόσο τα χρωματισμένα πλεονάσματα όσο και τα ελλείμματα πρέπει να συγχρονίζονται με το ταμείο δέλτα για να διευκολύνεται η επανακοπή. Ωστόσο, διάφοροι λόγοι οδήγησαν στην απόφαση να μην υιοθετηθεί αυτή η εκδοχή του ταμείου δέλτα. Πρώτον, υπάρχει μια κατάσταση ανταγωνισμού όπου ένας εκδότης συγχρονίζει ένα έλλειμμα στο ταμείο delta, αλλά ένας άλλος εκδότης εκτελεί εκ των προτέρων τη συναλλαγή επανακοπής για να καταναλώσει το έλλειμμα. Δεύτερον, αυτός ο σχεδιασμός βασίζεται στην υπόθεση ότι ένας φορέας που έχει κίνητρο να πληρώνει τέλη για τη μείωση της εντροπίας του συστήματος (π.χ. ίδρυμα token) καλύπτει το κόστος συγχρονισμού των delta στο ταμείο delta. Η σημασιολογία αυτού του αλτρουιστικού συγχρονισμού είναι δύσκολο να οριστεί, καθώς οι εκδότες μπορεί να έχουν διαφορετικές συναρτήσεις βελτιστοποίησης για το κόστος έναντι του οφέλους με τον συγχρονισμό. Αυτές οι εκτιμήσεις υπογραμμίζουν την πολυπλοκότητα και τα πιθανά μειονεκτήματα που σχετίζονται με αυτή τη μορφή του ταμείου delta.

Μονόπλευρος συγχρονισμός, Donuts και Rho

Το μοντέλο του ταμείου delta ανοίγει την ευκαιρία για μονόπλευρο συγχρονισμό ή συγχρονισμό χωρίς deltazero από δευτερεύουσες αλυσίδες προς το ταμείο delta. Για παράδειγμα, ένας εκδότης μπορεί να συγχρονίσει μόνο το δικό του πλεόνασμα και να εξαρτάται από κάποια άλλη οντότητα να συγχρονίσει μια αντίστοιχη ποσότητα ελλειμμάτων για να διευκολύνει την επανακοπή. Αυτό μπορεί θεωρητικά να ενισχυθεί με ένα μοντέλο αμοιβής και ανταμοιβής, όπου ένας καθαρά θετικός (καθαρό πλεόνασμα) συγχρονισμός συνεπάγεται αμοιβή, ενώ ένας καθαρά αρνητικός (καθαρό έλλειμμα) συγχρονισμός λαμβάνει ανταμοιβή για να δοθούν κίνητρα και στις δύο πλευρές του συγχρονισμού.

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

Η επίθεση donut εξελίσσεται ως εξής:

  1. Ο επιτιθέμενος ελέγχει δύο χρώματα, το Κόκκινο και το Μπλε, κρατώντας αρχικά Κ κόκκινα tokens και όλα τα delta είναι μηδέν στην αλυσίδα 1.
  2. Ο επιτιθέμενος επαναχρωματίζει το Red|K σε Blue|K, συγχρονίζει το deltaBlue = +K και στη συνέχεια μεταφέρει το Blue|K στην αλυσίδα 2.
  3. Στην αλυσίδα 2, ο επιτιθέμενος επαναχρωματίζει το Blue|K σε Red|K και στη συνέχεια μεταφέρει το Red|K στην αλυσίδα 1.
  4. Στην αλυσίδα 1, ο επιτιθέμενος επαναχρωματίζει το Red|K σε Blue|K, και στη συνέχεια συγχρονίζει το deltaBlue = +K.
  5. Αυτός ο κύκλος επαναλαμβάνεται επ' άπειρον, δημιουργώντας άπειρο deltaBlue στο ταμείο delta, deltaBlue μείον άπειρο στην αλυσίδα 2 και deltaRed μείον άπειρο στην αλυσίδα 1.

Η επίθεση donut απεικονίζει έναν αέναο βρόχο που οδηγεί σε απεριόριστες τιμές δέλτα, παρουσιάζοντας μια σημαντική ευπάθεια στο σύστημα.

Αυτό το πρόβλημα έχει μια σωστή λύση σε σταθερό χρόνο, αλλά εισάγει αρκετά μεγάλα γενικά έξοδα. Αρχικά, παρουσιάζουμε αυτή τη λύση με έναν διαισθητικό αλλά αναποτελεσματικό τρόπο και στη συνέχεια αναλύουμε πώς μπορεί να βελτιστοποιηθεί. Η λύση περιλαμβάνει τον ορισμό ειδικών χρωματιστών συμβόλων "κλειδώματος" και "κλειδιού" που είναι ανταλλάξιμα και παράγονται κατά τη μεταφορά ενός πλεονάσματος σε άλλη αλυσίδα. Συγκεκριμένα, εάν K tokens πλεονάσματος αποστέλλονται από την αλυσίδα 1 στην αλυσίδα 2, δημιουργούνται K tokens κλειδώματος στην αλυσίδα 1 και K tokens κλειδιού μεταφέρονται στην αλυσίδα 2.

Όταν ένα πλεόνασμα συγχρονίζεται στο ταμείο delta, συνοδεύεται από τυχόν tokens κλειδώματος που υπάρχουν στην τοπική αλυσίδα μέχρι το ποσό της αξίας του συγχρονισμένου πλεονάσματος. Ταυτόχρονα, όταν συγχρονίζεται ένα έλλειμμα, συνοδεύεται από τυχόν tokens κλειδιού που υπάρχουν στην τοπική αλυσίδα μέχρι το ποσό της συγχρονισμένης ελλειμματικής αξίας. Στο ταμείο delta, τα tokens κλειδώματος αποτρέπουν το ξαναγράψιμο ενός αντίστοιχου πλεονάσματος, και τα tokens κλειδιού αντίστοιχα αποτρέπουν το ψαλίδισμα των ελλειμμάτων. Εάν υπάρχουν tokens κλειδώματος στο ταμείο delta όταν συγχρονίζονται tokens κλειδιού, ή το αντίστροφο, ακυρώνεται ισοδύναμη ποσότητα tokens κλειδώματος και tokens κλειδιού. Αυτός ο μηχανισμός παρέχει έναν τρόπο αποτελεσματικής διαχείρισης και εξισορρόπησης των πλεονασματικών και ελλειμματικών tokens στο ταμείο delta.

Για να επισημοποιήσουμε και να βελτιστοποιήσουμε περαιτέρω αυτό το μοντέλο, εισάγουμε ένα νέο έγχρωμο μετα-token που ονομάζεται rho, όπου ένα αρνητικό rho αντιστοιχεί σε κλειδί και ένα θετικό rho αντιστοιχεί σε κλείδωμα. Κατά τον συγχρονισμό των delta στο θησαυροφυλάκιο, οι τιμές rho πρέπει να συγχρονίζονται μαζί με τα delta. Κατά τη μεταφορά του πλεονάσματος K από μια αλυσίδα σε μια άλλη, το rho της αλυσίδας προέλευσης αυξάνεται κατά K και το rho της αλυσίδας προορισμού μειώνεται κατά K. Αυτή η λύση παρέχει έναν μαθηματικά ορθό μηχανισμό για να επιτρέπεται ο μονόπλευρος συγχρονισμός με τρόπο που να είναι ανθεκτικός στις επιθέσεις donut. Στην περίπτωση επίθεσης donut που δημιουργεί ένα απεριόριστο πλεόνασμα, αυτό το πλεόνασμα κλειδώνεται και δεν μπορεί να επανακοπεί. Μια άλλη προοπτική για το rho είναι ως ένα ανά-χρώμα DeltaTheta, που διευκολύνει τον ασφαλή μονόπλευρο συγχρονισμό delta. Το μοντέλο Rho επιβαρύνει τα γενικά έξοδα σε κάθε λειτουργία με αντάλλαγμα μια πολύ οριακή αύξηση της συνοχής σε όλο το σύστημα.

Το ColorTrace είναι τελικά η λύση που επέλεξε το Ίδρυμα Verified USD για το USDV, αλλά εξακολουθήσαμε να θέλουμε να αναλύσουμε προσεκτικά τις αδυναμίες του ColorTrace και να κατανοήσουμε τις αντισταθμίσεις που συνεπάγεται η επίλυση αυτών των αδυναμιών. Η πρώτη αδυναμία είναι η ευαισθησία σε flash επανακοπή και άλλες επιθέσεις που βασίζονται στον συγχρονισμό. Η δεύτερη αδυναμία είναι η πολύπλοκη λογική συγχρονισμού εκτός αλυσίδας deltaTheta. Δεδομένων αυτών των προκλήσεων, προκύπτει το ακόλουθο ερώτημα: Υπάρχει τρόπος να εξαλειφθεί πλήρως η διαφορά μεταξύ τοπικής και παγκόσμιας νομισματοκοπίας; Μπορούμε να παρακολουθήσουμε το λεπτομερές, ακριβές ιστορικό των ενημερώσεων κυκλοφορίας και να αξιοποιήσουμε αυτές τις πληροφορίες για τον υπολογισμό των μεριδίων απόδοσης; Και αν ναι, ποιες επιθυμητές ιδιότητες του ColorTrace χάνουμε ως αποτέλεσμα; 

ColorAge

Μια εντελώς διαφορετική προσέγγιση σε σχέση με τα προαναφερθέντα μοντέλα συγχρονισμού περιλαμβάνει έναν μικρό συμβιβασμό στην εμπειρία του χρήστη και την αποκέντρωση του θησαυροφυλακίου. Τόσο στο ColorTrace όσο και στο μοντέλο rho, η χειρότερη περίπτωση επιβάρυνσης gas για τις μεταφορές token είναι η ενημέρωση των deltas για επαναχρωματισμό ή DeltaTheta, και οι δύο αυτές επιβαρύνσεις μπορούν να προβλεφθούν εύλογα με ντετερμινιστικό τρόπο. Στην επόμενη προσέγγιση για την οποία θα μιλήσουμε, το ColorAge, η διακύμανση του κόστους gas για τις μεταφορές είναι θεωρητικά απεριόριστη (αν και στην πράξη η συντριπτική πλειονότητα των μεταφορών θα έχει ακριβώς το ίδιο κόστος gas) και εξαρτάται από τον χρόνο του wall-clock, ο οποίος είναι πολύ πιο δύσκολο να αιτιολογηθεί ντετερμινιστικά.

Στο ColorAge, ορίζουμε την ηλικία ως το γινόμενο της κυκλοφορίας και του χρόνου που έχει παρέλθει. Για παράδειγμα, εάν η κυκλοφορία ενός token είναι 100 και παραμένει αμετάβλητη για 10 δευτερόλεπτα, η ηλικία του token υπολογίζεται ως 100 * 10 = 1000. Η ηλικία μπορεί να συσσωρευτεί με την πάροδο του χρόνου. Για παράδειγμα, εάν η κυκλοφορία είναι 100 για 10 δευτερόλεπτα και στη συνέχεια αυξάνεται σε 200 για τα επόμενα 10 δευτερόλεπτα, η συνολική ηλικία υπολογίζεται ως 100 * 10 + 200 * 10 = 3000. Αυτός ο υπολογισμός της ηλικίας παρέχει ένα μέτρο της δραστηριότητας και της διάρκειας κυκλοφορίας του token.

Ορίζουμε περαιτέρω το ColorAge, μια πλειάδα που αποτελείται από την ηλικία και όλες τις άλλες πληροφορίες που είναι απαραίτητες για τον υπολογισμό της ηλικίας.

Δεδομένου του ColorAge ενός συγκεκριμένου token, η ηλικία του token για μια συγκεκριμένη χρονική περίοδο μπορεί να παρεμβληθεί από τα δεδομένα που είναι αποθηκευμένα στη δομή ColorAge.

Το ColorAge παρακολουθείται (1) για κάθε χρώμα στο σύστημα και (2) για τη συνολική κυκλοφορία των token σε ένα συγκεκριμένο blockchain. Αυτή η παρακολούθηση επιτρέπει την ολοκληρωμένη κατανόηση της δυναμικής της ηλικίας τόσο σε επίπεδο μεμονωμένου χρώματος όσο και στη συνολική κυκλοφορία των token εντός ενός συγκεκριμένου blockchain.

Ο χρόνος διαιρείται σε εποχές, με κάθε εποχή να ορίζεται ως ένα σταθερό χρονικό διάστημα σε όλο το σύστημα. Αυτός ο χρόνος μπορεί να είναι είτε τοπική ώρα wall-clock είτε κάποια άλλη λογική κατασκευή χρόνου. Η διανομή των αποδόσεων γίνεται σε επίπεδο εποχής, δηλαδή οι αποδόσεις διανέμονται από τη διαχειρίστρια οντότητα στους εκδότες στο τέλος κάθε εποχής. Αυτή η προσέγγιση παρέχει ένα δομημένο και προβλέψιμο χρονοδιάγραμμα για τη διανομή των αποδόσεων, ενισχύοντας τη διαφάνεια και την αξιοπιστία του συστήματος.

Κάθε φορά που τα σημεία επαναχρωματίζονται, το ColorAge ενημερώνεται για τα χρώματα προέλευσης και προορισμού. Επιπλέον, κάθε φορά που tokens μετακινούνται μεταξύ blockchains, κόβονται ή καίγονται, το ColorAge ενημερώνεται για τα σχετικά χρώματα και τη συνολική κυκλοφορία σε όλα τα εμπλεκόμενα blockchains. Συμβολίζουμε το ColorAge για ένα δεδομένο χρώμα C ως ColorAgeC και το ColorAge για το τοπικό blockchain ως ColorAgeΣ.

Για κάθε αλυσίδα στο δίκτυο, διατηρείται το αμετάβλητο ότι Σ ColorAgeC = ColorAgeΣ

Κάθε CheckpointRoot είναι ο κατακερματισμός του ColorAge σε μια συγκεκριμένη χρονική στιγμή συνδεδεμένος με το προηγούμενο CheckpointRoot. Αυτό δημιουργεί μια δομή που μοιάζει με αλυσίδα, όπου το CheckpointRoot (ένα συμπαγές hash ή κάτι παρόμοιο) μπορεί να χρησιμοποιηθεί για την επικύρωση της αυθεντικότητας μιας δεδομένης ακολουθίας ColorAge. Πιο επίσημα,

CheckpointRoot 0 (CPR0) = keccak256(abi.encode(ColorAge0, 0)),

CPR1 = keccak256(abi.encode(CPR0, ColorAge1)) και ούτω καθεξής και ούτω καθεξής.

Αυτός ο σχεδιασμός επιτρέπει την επαλήθευση των ακολουθιών ColorAge σε ένα απομακρυσμένο blockchain, ενώ χρησιμοποιείται μόνο μια υποδοχή αποθήκευσης για το CheckpointRoot.

Σημειώστε ότι αν το CheckpointRootT-2 ήταν αποθηκευμένο στο θησαυροφυλάκιο, το τοπικό blockchain θα έπρεπε να στείλει τα CheckpointRootT, ColorAgeT-1 και ColorAgeT για να αναδημιουργήσει επαληθεύσιμα την αλυσίδα μέχρι το CheckpointRootT.

Επίπεδο διανομής

Δεδομένου του ColorAge που παρακολουθείται τοπικά σε κάθε αλυσίδα, ορίζουμε τρία πιθανά μοντέλα διανομής.

1. Η διανομή γίνεται στο θησαυροφυλάκιο.

  1. Για ένα χρώμα C και μια εποχή T, η διανομή αποδόσεων μπορεί να συμβεί εάν (1) ColorAgeC και (2) ColorAgeΣ για ένα δεδομένο δευτερεύων B blockchain παραληφθούν στο θησαυροφυλάκιο.
  2. Ο εκδότης για το χρώμα C μπορεί να λάβει ολόκληρη την απόδοσή του για την εποχή T μόνο αφού τα ColorAgeC και ColorAgeΣ παραληφθούν στο θησαυροφυλάκιο από κάθε blockchain στο δίκτυο.
  3. Εναλλακτικά, εάν το ColorAgeC για κάθε χρώμα στο blockchain Β λαμβάνεται στο θησαυροφυλάκιο, το ColorAgeΣ μπορεί να υπολογιστεί ως το άθροισμα Σ ColorAgeC, πράγμα που σημαίνει ότι το ColorAgeΣ δεν χρειάζεται απαραίτητα να αποσταλεί ρητά από το Β blockchain στο θησαυροφυλάκιο.

2. Η διανομή γίνεται στις δευτερογενείς αλυσίδες

  1. Το ColorAgeΣ χρησιμοποιείται για τον προσδιορισμό της κατανομής των αποδόσεων από το θησαυροφυλάκιο στα δευτερεύουσα blockchains. Το αναλογικό μερίδιο ενός δευτερεύων blockchain στην απόδοση δίνεται ως το ColorAgeΣ της διαιρούμενο με το άθροισμα των ColorAgeΣ σε όλα τα δευτερεύουσα blockchains.
  2. Αυτό το μοντέλο απαιτεί μόνο τον συγχρονισμό του ColorAgeΣ από τα δευτερεύουσα blockchains στο θησαυροφυλάκιο, με αποτέλεσμα η πολυπλοκότητα της ανταλλαγής μηνυμάτων να κλιμακώνεται ανάλογα με το μέγεθος του δικτύου και όχι με τον αριθμό των εκδοτών.
  3. Οι αποδόσεις διανέμονται στο τοπικό blockchains και αποθηκεύονται σε μια εποχή χαρτογράφησης => απόδοση
  4. Κάθε εκδότης διεκδικεί ένα μέρος της απόδοσης για μια δεδομένη εποχή με βάση το ColorAge του.

3. Η διανομή γίνεται εκτός αλυσίδας

  1. Η διανομή μπορεί να χρησιμοποιήσει το checkpointRoot και το ιστορικό των ενημερώσεων της ηλικίας ως ένα είδος απόδειξης για τους εκδότες ώστε να παρέχουν επαληθεύσιμες βεβαιώσεις για το ColorAge τους σε μια δεδομένη εποχή. Αυτό το ColorAge μπορεί στη συνέχεια να χρησιμοποιηθεί για τον υπολογισμό μιας κατανομής απόδοσης που μπορεί να συμβεί εκτός αλυσίδας.
  2. Η διανομή εκτός αλυσίδας είναι η πιο αποτελεσματική μέθοδος διανομής των αποδόσεων και θεωρητικά μπορεί να γίνει με μηδενικά μηνύματα μεταξύ αλυσίδων. Ωστόσο, η διανομή εκτός αλυσίδας απαιτεί από τους εκδότες να εμπιστεύονται σε κάποιο βαθμό την υποδομή διανομής και το ίδρυμα token.

Είναι τεχνικά δυνατό, αλλά με ασαφή οφέλη, να οριστούν τοπολογίες διανομής που συνδυάζουν τα παραπάνω. Για παράδειγμα, πολλαπλά θησαυροφυλάκια, ή ένα θησαυροφυλάκιο με δομή βαθμίδας/δέντρου, όπου οι αποδόσεις διαχέονται από ένα σύνολο κόμβων ρίζας προς τους κόμβους φύλλων.

Το ColorAge έχει αρκετά πλεονεκτήματα σε σχέση με το ColorTrace, αλλά έχει και αρκετά μειονεκτήματα. Το ColorAge απλοποιεί το μοντέλο συνέπειας αφαιρώντας σχεδόν όλο τον ασύγχρονο χαρακτήρα από τις κρίσιμες για την ασφάλεια λειτουργίες (δηλ. όχι delta, συγχρονισμός delta, επανακοπή) και παρέχει παρακολούθηση δευτέρου βαθμού ανάλυσης των αλλαγών απόδοσης, εξαλείφει τις επιθέσεις χρονισμού που βασίζονται στην επανακοπή (δάνειο flash κ.λπ.). Δυστυχώς, το ColorAge έχει ορισμένα μειονεκτήματα, τα οποία θα εξετάσουμε παρακάτω.

Το πρώτο μειονέκτημα είναι το μη ντετερμινιστικό και δυνητικά απίστευτα ακριβό κόστος μεταφοράς. Εάν ένα χρώμα δεν έχει επαναχρωματιστεί για πολλές εποχές και καμία οντότητα δεν έχει εκτελέσει ένα χειροκίνητο σημείο ελέγχου του ColorAge, η πρώτη μεταφορά επαναχρωματισμού ή διασταυρούμενης αλυσίδας θα πρέπει να υπολογίσει και να αποθηκεύσει πολλά σημεία ελέγχου. Αυτό μπορεί να διορθωθεί κάνοντας τις εποχές πολύ μεγάλες και το ίδρυμα token εκτελεί ενεργά σημεία ελέγχου. Υπάρχουν επίσης επιλογές για τη μείωση της πιστότητας της παρακολούθησης με αντάλλαγμα τη μείωση του μη ντετερμινισμού, αλλά το πρόβλημα είναι αδύνατο να εξαλειφθεί εντελώς.

Ένα άλλο μειονέκτημα είναι ότι η μη κεντροποιημένη διανομή μπορεί να είναι άβολη για τους εκδότες, καθώς η απόδοση θα είναι κατακερματισμένη σε κάθε αλυσίδα του δικτύου. Ωστόσο, η κεντροποιημένη διανομή έχει επίσης το μειονέκτημα ότι απαιτείται τουλάχιστον ένα μήνυμα μεταξύ αλυσίδων ανά εποχή για τη συλλογή της απόδοσης (στο ColorTrace, αυτό είναι μηδενικό αν δεν συμβαίνει επανακοπή).

Τέλος, το ColorAge δυσχεραίνει την παροχή κινήτρων για την κοπή νομισμάτων σε επίπεδο πρωτοκόλλου. Τα token δεν καίγονται ή επανακόβονται ποτέ, επομένως δεν υπάρχει τρόπος να οριστεί ή να εισπραχθεί αμοιβή επανακοπής. Αυτό μπορεί να είναι δυνατό να δοθεί κίνητρο εξωτερικά στο πρωτόκολλο, αλλά κάποιος θα πρέπει να πληρώσει από την τσέπη του για αυτά τα κίνητρα. Χωρίς αυτά τα κίνητρα, ωστόσο, μετατρέπεται σε ένα παιχνίδι μηδενικού αθροίσματος, όπου οι υπάρχοντες εκδότες μάχονται για ένα σταθερό σύνολο αποδόσεων, καθώς δεν υπάρχει κίνητρο για την εισαγωγή νέας νομισματοκοπίας σε ένα σύστημα όπου οι άλλοι εκδότες μπορούν τόσο εύκολα να κλέψουν μερίδιο απόδοσης.

Το τελικό μας συμπέρασμα

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

Το ColorAge, από την άλλη πλευρά, φαίνεται με την πρώτη ματιά να είναι μια πολύ πρακτική και αποτελεσματική λύση που ανταγωνίζεται το ColorTrace. Ωστόσο, το ColorAge έχει μια μοιραία αδυναμία στο ότι δεν δίνεται κίνητρο για την κοπή νέων tokens- αυτή η ιδιότητα από μόνη της εμποδίζει οποιοδήποτε stablecoin να κερδίσει έδαφος. Το ColorTrace παρέχει ένα κουμπί για τη ρύθμιση και τον έλεγχο του σχετικού πλεονεκτήματος του TVL (Total Value Locked) έναντι του όγκου/απόδοσης: αμοιβές επανακοπής. Ο καθορισμός ενός τέλους επανακοπής 0 θα απέδιδε οικονομικά χαρακτηριστικά σχεδόν ίδια με το ColorAge, ενώ ο καθορισμός ενός τέλους επανακοπής 100% θα κατεύθυνε όλα τα οικονομικά κίνητρα αποκλειστικά σε πρόσφατα νομισματικά στοιχεία που έχουν κοπεί. Το ColorAge μπορεί να θεωρηθεί ως ένα αποδοτικό πρωτόκολλο για την υλοποίηση των οικονομικών χαρακτηριστικών του ColorTrace χωρίς τέλη επανακοπής, αλλά χάνει όλη την ευελιξία στην ανταλλαγή. Αυτή η διαφοροποιημένη προσέγγιση επιτρέπει ευελιξία στην προσαρμογή της συμπεριφοράς του πρωτοκόλλου με βάση την επιθυμητή ισορροπία μεταξύ των φρεσκοκομμένων tokens, του TVL και του όγκου συναλλαγών.

Υποθέτουμε ότι ένα τέλος επανακοπής που είναι μεγαλύτερο από το μηδέν, αλλά όχι υπερβολικά υψηλό, δημιουργεί το καλύτερο οικοσύστημα για τις εφαρμογές DeFi και, ως εκ τούτου, επιλέξαμε να μην δεσμευτούμε στο μοντέλο μηδενικού τέλους επανακοπής, εκτός εάν βρούμε στοιχεία που να αποδεικνύουν ότι η υπόθεσή μας είναι λανθασμένη. Θεωρούμε εξαιρετικά απίθανο ότι οποιοδήποτε οικοσύστημα stablecoin μπορεί να αναπτυχθεί χωρίς κίνητρα νομισματοκοπίας, και συνεπώς πιστεύουμε ότι το ColorAge μπορεί να είναι πιο κατάλληλο για διαφορετικές εφαρμογές και οικοσυστήματα.

Άλλες θεωρητικές "επιθέσεις"

Μια θεωρητική "επίθεση" στην οποία δεν αναφερθήκαμε στο έγγραφο είναι γνωστή ως deficit sponge (σφουγγάρι ελλείμματος). Σε αυτό το σενάριο, ο αντίπαλος έχει τον έλεγχο δύο χρωμάτων, του Κόκκινου και του Μπλε. Η επίθεση ξεκινάει με κατοχή και πλεόνασμα από tokens Blue|K στην εγχώρια αλυσίδα.

Ο επιτιθέμενος εκτελεί αυτή τη στρατηγική μεταφέροντας το πλεόνασμα σε μια στοχευμένη αλυσίδα, αλλάζοντας το χρώμα του σε Κόκκινο και στη συνέχεια επανεκδίδοντας το πλεόνασμα έναντι ενός διαφορετικού χρώματος που παρουσιάζει επί του παρόντος έλλειμμα στην επιλεγμένη αλυσίδα. Στη συνέχεια, ο επιτιθέμενος μεταβιβάζει τα tokens Red|K πίσω στην αλυσίδα προέλευσης, τα μετατρέπει σε Blue|K και επαναλαμβάνει αυτή τη διαδικασία για κάθε αλυσίδα του δικτύου, ενδεχομένως έως και μία φορά ανά αλυσίδα. Ως συνέπεια αυτής της επίθεσης, σε ένα δίκτυο που αποτελείται από N αλυσίδες, ο επιτιθέμενος χρησιμοποιεί K tokens για να συγκεντρώσει N * K νομισματοκοπή με έλλειμμα (N-1) * K στην αρχική αλυσίδα. Πιθανώς, το έλλειμμα στην αρχική αλυσίδα μπορεί να αποκρυβεί χρησιμοποιώντας την επίθεση διαφυγόντος ελλείμματος.

Δεν θεωρούμε το σφουγγάρι ελλείμματος ως πραγματική επίθεση, επειδή η ανταμοιβή που κερδίζεται δεν δικαιολογεί τον κίνδυνο. Το έλλειμμα (N-1) * K στην εγχώρια αλυσίδα μπορεί εύκολα να μειωθεί από οποιονδήποτε επαληθευμένο εκδότη, και σε όλα τα ρεαλιστικά σενάρια θα μειωθεί πολύ πριν ο "επιτιθέμενος" μπορέσει να ανακτήσει τις αμοιβές επανακοπής. Έτσι, το σφουγγάρι ελλείμματος είναι απλώς ένας φανταχτερός τρόπος για να πληρώνετε επιπλέον αμοιβές στα "θύματά" σας, ή να το θέσετε διαφορετικά ένας τρόπος για να επιτεθείτε στον εαυτό σας. Δυστυχώς, δεν έχουμε μεγάλη συμπάθεια για τα κακόβουλα μέρη και δεν κατασκευάζουμε καμία προστασία σε επίπεδο πρωτοκόλλου ενάντια στην αυτοκαταστροφή μέσω του σφουγγαριού ελλείμματος.

Το έγγραφο του ColorTrace δεν εξετάζει την αποκέντρωση του συγχρονισμού delta. Αν και θεωρητικά εφικτή, η επίτευξη της αποκέντρωσης θα απαιτούσε σχολαστική διαχείριση της τιμολόγησης και ένα σαφώς καθορισμένο πλαίσιο κινδύνων και ανταμοιβών. Ο απώτερος στόχος είναι να δοθούν κίνητρα στα άτομα για τη σύγκλιση του DeltaTheta προς το μηδέν στην αλυσίδα προορισμού κατά τη διάρκεια του συγχρονισμού, χωρίς να επιβληθούν κυρώσεις για την πρόκληση απόκλισης του DeltaTheta.

Θεωρητικά, θα μπορούσε να παρέχεται μια ανταμοιβή στην αλυσίδα προορισμού, εάν το DeltaTheta συγκλίνει ως αποτέλεσμα μιας λειτουργίας συγχρονισμού. Ωστόσο, η τιμολόγηση αυτής της ανταμοιβής πρέπει να βαθμονομηθεί προσεκτικά - θα πρέπει να είναι μεγαλύτερη από την αμοιβή για ένα μήνυμα διασταυρούμενης αλυσίδας αλλά μικρότερη από την αμοιβή για δύο μηνύματα διασταυρούμενης αλυσίδας. Αυτή η διαφοροποιημένη προσέγγιση είναι ζωτικής σημασίας. Εάν η ανταμοιβή αντιστοιχεί στο κόστος δύο μηνυμάτων διασταυρούμενης αλυσίδας, υπάρχει ο κίνδυνος να δοθούν κίνητρα στους φορείς εκμετάλλευσης του δικτύου να δημιουργήσουν σκόπιμα αποκλίσεις χρησιμοποιώντας μια συναλλαγή διασταυρούμενης αλυσίδας, ακολουθούμενη από συγχρονισμό για την επίλυση αυτής της απόκλισης. Αυτό θα μπορούσε να τους επιτρέψει να τσεπώνουν τα τέλη δικτύου εις βάρος του ιδρύματος token.

Λαμβάνοντας υπόψη αυτές τις εκτιμήσεις, το Ίδρυμα Verified USD αποφάσισε να εφαρμόσει τον συγχρονισμό delta χωρίς κίνητρα στην έκδοση 1 του USDV. Οποιαδήποτε κίνηση προς την κατεύθυνση της αποκέντρωσης σε αυτή την πτυχή θα απαιτούσε μια ενδελεχή ανάλυση απειλών για την προσεκτική αξιολόγηση των πιθανών κινδύνων και την εκπόνηση κατάλληλων διασφαλίσεων πριν από την εφαρμογή.

Συμπέρασμα

Σας ευχαριστώ που φτάσατε μέχρι το τέλος αυτής της μακροσκελούς και πολύ τεχνικής ανάρτησης. Τελικά, το μήνυμα που θέλαμε να περάσουμε είναι ότι εμείς εδώ στo LayerZero ξοδεύουμε απίστευτο χρόνο και προσπάθεια για να εξερευνήσουμε εξαντλητικά το χώρο σχεδιασμού κάθε προβλήματος που επιλύουμε, και ο χρωματισμός token δεν αποτελεί εξαίρεση. Ξεκινήσαμε με το ColorFloat και σπάσαμε το πρόβλημα σε επίπεδα μέχρι που δεν μπορούσαμε να το υποδιαιρέσουμε περαιτέρω. Απαριθμήσαμε τα πολικά άκρα του χώρου σχεδίασης κάθε επιπέδου, εξετάσαμε το φάσμα των σχεδίων μεταξύ αυτών των άκρων και καταλήξαμε στα ColorTrace, ColorAge και ColorFloat. Αφού πεισθήκαμε ότι ο σχεδιαστικός χώρος είχε διερευνηθεί πλήρως, επιλέξαμε προσεκτικά εκείνο που θα προσέφερε τον πιο θετικό αντίκτυπο στον χώρο Web3 και το δώσαμε στον κόσμο.

Γράφτηκε από τους Thomas Kim, Isaac Zhang και Ryan Zarick και σας παρουσιάστηκε από την ομάδα μηχανικών του LayerZero.


Πρωτότυπο Άρθρο (Αγγλική)Solving Fungible Token Coloring — A Nerds Version

Συντάκτης Πρωτότυπου ΆρθρουLayerZero Official

Ημερομηνία Συγγραφής Πρωτότυπου Άρθρου: 14 Νοεμβρίου 2023