Τέσσερις υποψήφιοι αρχιτεκτονικής για αποκεντρωμένες εφαρμογές που βασίζονται σε Blockchain

Το Blockchain έχει ένα διαφορετικό σύνολο περιπτώσεων χρήσης, που κυμαίνονται από χρηματοδότηση έως αποκεντρωμένο Διαδίκτυο. Ωστόσο, οι περισσότερες περιπτώσεις χρήσης blockchain μπορούν να εφαρμοστούν χρησιμοποιώντας σχετικά λίγα μοτίβα. Για παράδειγμα, μια συλλογή προτύπων για εφαρμογές που βασίζονται σε Blockchain παρέχει μια λίστα με 15 μοτίβα Blockchain.

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

Ας αρχίσουμε. Για να περιγράψω μοτίβα, θα χρησιμοποιήσω το πρότυπο που περιγράφεται από τον Aleksandra Tešanovic στο Τι είναι ένα μοτίβο;

Αρχιτεκτονική μοτίβο για IAM.

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

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

Λύση: Ο προτεινόμενος υποψήφιος μοτίβου χρησιμοποιεί την προδιαγραφή World Wide Web Consortium (W3C) DID και την προδιαγραφή επαληθεύσιμων αξιώσεων W3C με τον ακόλουθο τρόπο.

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

Οι επαληθεύσιμες αξιώσεις είναι μάρκες ανάθεσης που υπογράφονται από αρμόδια αρχή Ο δημιουργός τις καταγράφει επίσης σε ένα blockchain μαζί με το hash της αξίωσης με τρόπο παρόμοιο με το DID.

Η Αλίκη λαμβάνει πρώτα τις επαληθεύσιμες αξιώσεις πηγαίνοντας στις αρχές. Για παράδειγμα, το τμήμα προσωπικής εγγραφής ή ισοδύναμο είναι η κατάλληλη αρχή για επαληθεύσιμες αξιώσεις ονόματος, διεύθυνσης και ημερομηνίας γέννησης. Υποθέτοντας ότι οι αρχές εκδίδουν επαληθεύσιμους ισχυρισμούς, η Alice αποδεικνύει πρώτα ότι η ιδιοκτησία της του DID χρησιμοποιεί ένα πρωτόκολλο πρόκλησης-απόκρισης. Στη συνέχεια, υποβάλλει αιτήματα για επαληθεύσιμες αξιώσεις για τα χαρακτηριστικά της, τα οποία μπορεί, για παράδειγμα, να περιλαμβάνουν το όνομα, τη διεύθυνση, τον βαθμό και την ημερομηνία γέννησής της. Για να ενημερώσει τα δεδομένα του προφίλ της, η Αλίκη θα προσθέσει μια νέα καταχώριση στο blockchain με ένα νέο κατακερματισμό του προφίλ.

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

Ένας διαφορετικός χρήστης ή ένας οργανισμός (επικυρωτής), ο Bob, που θέλει να αναγνωρίσει την Alice, λαμβάνει πρώτα το DID από την Alice, διαβάζει όλες τις καταχωρήσεις που σχετίζονται με αυτό το DID από το blockchain, ανακτά τα δεδομένα προφίλ της Alice και τα επαληθεύει. Ο Μπομπ μπορεί να επαληθεύσει ξανά την ταυτότητα της Αλίκης (ταυτοποίηση) χρησιμοποιώντας το πρωτόκολλο πρόκλησης-απόκρισης. Τότε ο Μπομπ μπορεί να επιβεβαιώσει τις επαληθεύσιμες αξιώσεις και να βεβαιωθεί ότι οι ισχυρισμοί για την Αλίκη είναι αληθινοί.

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

Αρχιτεκτονική μοτίβο για ελεγχόμενο ιστορικό ή χώρο εργασίας

Πλαίσιο: Δύο ή περισσότερα μέρη εκτελούν συναλλαγές ή συνεργάζονται και οι δραστηριότητές τους πρέπει να καταγράφονται με αδιαμφισβήτητο τρόπο.

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

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

Για παράδειγμα, ας υποθέσουμε ότι η Αλίκη θέλει να πληρώσει φόρο. Ο Tax Server αποδέχεται την αίτηση πληρωμής, δημιουργεί μια ψηφιακή απόδειξη, καταγράφει τον κατακερματισμό της στο blockchain και στέλνει την απόδειξη στην Alice. Η Alice μπορεί να επαληθεύσει την απόδειξη υπολογίζοντας τον κατακερματισμό και ελέγχοντας την τιμή που είναι αποθηκευμένη στο blockchain. Μετά από αυτό, ο Μπομπ δεν μπορεί να αρνηθεί την απόδειξη επειδή ο κατακερματισμός και ο χρόνος της απόδειξης καταγράφονται στο blockchain.

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

Αρχιτεκτονική Μοτίβο για Μητρώο ή Αγορά

Περιεχόμενο: Ένα μητρώο είναι μια συλλογή καταχωρίσεων δεδομένων που μπορούν να αναζητηθούν και να ανακτηθούν μέσω του δικτύου. Μια αγορά είναι ένα μητρώο που επιτρέπει στους χρήστες να αγοράζουν τις υπηρεσίες ή τα προϊόντα που αντιπροσωπεύονται από καταχωρήσεις δεδομένων. Για παράδειγμα, ένα μητρώο μπορεί να είναι ένας κατάλογος διαθέσιμων API.

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

Λύση: Το προτεινόμενο μοτίβο λειτουργεί ως εξής.

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

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

Το Blockchain λειτουργεί καλά ως «αγορά υπηρεσιών», καθώς η ίδια υπηρεσία μπορεί να πουληθεί πολλές φορές. Ωστόσο, λόγω περιορισμών απόδοσης, οι αγορές που βασίζονται σε blockchain δεν είναι κατάλληλες για αντικείμενα που μπορούν να πωληθούν μόνο μία φορά.

Για να διευκρινίσουμε, τη λειτουργικότητα ενός μητρώου που βασίζεται σε blockchain, ας δούμε πότε η Alice θέλει να εγγραφεί στην «υπηρεσία ειδήσεων καιρού» στην αγορά blockchain. Όταν υποβάλλει το αίτημά της, το μητρώο δημιουργεί διαπιστευτήρια για την υπηρεσία και τη μοιράζεται με την Alice. Η πληρωμή μπορεί να πραγματοποιηθεί με έναν από τους διάφορους τρόπους: χρησιμοποιώντας Bitcoin, μέσω έξυπνης σύμβασης όπου οι πληρωμές γίνονται έγκαιρα ή με κάποια εξωσχολικά μέσα.

Αρχιτεκτονική μοτίβο για έξυπνες συμβάσεις και διαχειριζόμενα πράγματα

Υπό αυτό το μοτίβο, εξετάζουμε δύο περιπτώσεις. Πρώτον, θεωρούμε έξυπνα συμβόλαια και, ως δεύτερο, θεωρούμε μια κοινή ειδική περίπτωση έξυπνων συμβάσεων: «Διαχειριζόμενα πράγματα».

Πρότυπο έξυπνων συμβάσεων

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

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

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

Πρότυπο διαχειριζόμενων πραγμάτων

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

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

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

Μπορούμε να εφαρμόσουμε ένα blockchain για ένα διαχειριζόμενο πράγμα, σε αυτήν την περίπτωση, ένα αυτοκίνητο, σε δύο βήματα. Πρώτον, ο κατασκευαστής καταγράφει το DID και το δημόσιο κλειδί του ιδιοκτήτη του αυτοκινήτου. Όταν αλλάζει η ιδιοκτησία, ο κάτοχος προσθέτει μια νέα εγγραφή στο blockchain καθορίζοντας τον νέο κάτοχο. Δεύτερον, κατά τον έλεγχο της ιδιοκτησίας, το αυτοκίνητο ανακτά πρώτα όλες τις εγγραφές στο blockchain και επαληθεύει ότι κάθε εγγραφή προστέθηκε από τον κάτοχο εκείνη τη στιγμή. Αυτό γίνεται ελέγχοντας το δημόσιο κλειδί του χρήστη που έγραψε την εγγραφή έναντι του δημόσιου κλειδιού που περιλαμβάνεται στην προηγούμενη εγγραφή ιδιοκτησίας. Ο τελευταίος κάτοχος σε αυτήν την έγκυρη αλυσίδα είναι ο τρέχων κάτοχος.

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

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

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

Για παράδειγμα, η Alice αγοράζει το αυτοκίνητο από τον Bob χρησιμοποιώντας ένα έξυπνο συμβόλαιο που πληρώνει τον Bob και ενημερώνει την ιδιοκτησία του οχήματος. Μετά τη συναλλαγή, η Alice περπατά στο αυτοκίνητο, το οποίο διαβάζει το DID της Alice από το τηλέφωνο, ανακτά το δημόσιο κλειδί της, την επικυρώνει χρησιμοποιώντας ένα πρωτόκολλο απόκρισης-απόκρισης επικοινωνώντας με το τηλέφωνο που έχει το ιδιωτικό κλειδί της Alice, επαληθεύει την ιδιοκτησία της και ξεκλειδώνει το αυτοκίνητο.

συμπέρασμα

Συζητήσαμε τέσσερα σχέδια αρχιτεκτονικής βασισμένα σε blockchain. Το έγγραφο GitHub, Case Block-based Integration Use Case, δείχνει αυτά τα μοτίβα σε δράση, περιγράφοντας τον τρόπο με τον οποίο μπορούν να υλοποιηθούν 30-plus περιπτώσεις χρήσης blockchain χρησιμοποιώντας αυτά τα τέσσερα μοτίβα.

Εάν έχετε απόψεις για τα παραπάνω μοτίβα ή γνωρίζετε για άλλα μοτίβα, θα ήθελα πραγματικά να μάθω γι 'αυτά.

Ελπίζω να ήταν χρήσιμο. Εάν σας αρέσει αυτό, ίσως θέλετε επίσης μια λεπτομερή ανάλυση blockchain στην πρόσφατα δημοσιευμένη εφημερίδα μας, "Μια κεντρική έρευνα περί χρήσης για το Blockchain: status quo και μελλοντικές οδηγίες."