Πώς να δημιουργήσετε μια αποκεντρωμένη εφαρμογή που κλιμακώνεται; Χρησιμοποιήστε λιγότερο blockchain

Όχι, η εκκίνηση μιας αποκεντρωμένης εφαρμογής (dapp) στο blockchain δεν θα οδηγήσει σε μια επιτυχημένη επιχείρηση. Στην πραγματικότητα, οι περισσότεροι χρήστες δεν σκέφτονται καν εάν η εφαρμογή εκτελείται στο blockchain - απλώς επιλέγουν ένα προϊόν που είναι φθηνότερο, πιο γρήγορο και απλούστερο.

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

Πώς να δημιουργήσετε μια αποκεντρωμένη εφαρμογή που κλιμακώνεται; Χρησιμοποιήστε λιγότερο blockchain

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

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

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

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

Προσέγγιση #1: Το Blockchain ως Backend

Για να ξεκαθαρίσουμε τα πράγματα, ας πάρουμε ως παράδειγμα την ξενοδοχειακή βιομηχανία. Αυτή είναι μια τεράστια βιομηχανία στην οποία μεσάζοντες όπως η Booking.com, χρεώνουν τεράστια αμοιβή για τη σύνδεση επισκεπτών και ξενοδοχείων.

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

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

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

Πώς να δημιουργήσετε μια αποκεντρωμένη εφαρμογή που κλιμακώνεται; Χρησιμοποιήστε λιγότερο blockchain

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

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

Ας κάνουμε μερικούς πρόχειρους υπολογισμούς. Η Booking.com λέει ότι έχει σχεδόν 2 εκατομμύρια ξενοδοχεία εγγεγραμμένα σε αυτήν. Ας υποθέσουμε ότι το μέσο ξενοδοχείο έχει 10 δωμάτια και το καθένα κρατείται μόλις 20 φορές το χρόνο - αυτό μας δίνει κατά μέσο όρο 13 κρατήσεις ανά δευτερόλεπτο.

Για να θέσουμε σε προοπτική αυτόν τον αριθμό, αξίζει να σημειωθεί ότι το Ethereum μπορεί να επεξεργαστεί περίπου 15 συναλλαγές ανά δευτερόλεπτο.

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

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

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

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

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

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

Προσέγγιση #2: Αρχιτεκτονική εμπνευσμένη από Blockstack

Αν και η κύρια έμφαση Blockstack σε εφαρμογές στις οποίες οι χρήστες είναι οι κάτοχοι των δεδομένων τους (για παράδειγμα, όπως π.χ κείμενο αέρα, BentenSound, Image Optimizer ή γραφίτης), το blockstack έχει επίσης μια φιλοσοφία χρήσης του blockchain ελαφρά — μόνο όταν είναι απολύτως απαραίτητο. Το κύριο επιχείρημά τους είναι ότι το blockchain είναι αργό και ακριβό και επομένως θα πρέπει να χρησιμοποιείται μόνο για μεμονωμένες ή σπάνιες συναλλαγές. Η υπόλοιπη αλληλεπίδραση με τις εφαρμογές θα πρέπει να γίνεται μέσω peer-to-peer, δηλ. Οι χρήστες αποκεντρωμένων εφαρμογών πρέπει να μοιράζονται δεδομένα απευθείας μεταξύ τους και όχι μέσω του blockchain. Άλλωστε, οι παλαιότερες και πιο επιτυχημένες αποκεντρωμένες εφαρμογές όπως το BitTorrent, το email και το Tor δημιουργήθηκαν πριν από την ίδια την έννοια του blockchain.

Πώς να δημιουργήσετε μια αποκεντρωμένη εφαρμογή που κλιμακώνεται; Χρησιμοποιήστε λιγότερο blockchain
Αριστερά: Η πρώτη προσέγγιση, στην οποία οι χρήστες αλληλεπιδρούν μέσω του blockchain. Δεξιά: Οι χρήστες αλληλεπιδρούν απευθείας μεταξύ τους και το blockchain χρησιμοποιείται μόνο για αναγνώριση και παρόμοια.

Ας επιστρέψουμε στο παράδειγμα της κράτησης ξενοδοχείου. Θέλουμε ένα αμερόληπτο, ανεξάρτητο και ανοιχτό πρωτόκολλο για τη σύνδεση των επισκεπτών με τα ξενοδοχεία. Με άλλα λόγια, θέλουμε να αφαιρέσουμε τον συγκεντρωτικό μεσάζοντα. Δεν χρειάζεται, για παράδειγμα, να αποθηκεύουμε συνεχώς τις τιμές των δωματίων σε ένα κοινό κατανεμημένο καθολικό.

Γιατί δεν επιτρέπουμε απλώς στους επισκέπτες και τα ξενοδοχεία να αλληλεπιδρούν απευθείας και όχι μέσω blockchain. Τα ξενοδοχεία μπορούν να αποθηκεύσουν τις τιμές τους, τη διαθεσιμότητα των δωματίων και οποιεσδήποτε άλλες πληροφορίες κάπου όπου θα είναι προσβάσιμες σε όλους - για παράδειγμα, IPFS, Amazon S3 ή ακόμα και τον δικό τους τοπικό διακομιστή. Αυτό ακριβώς αποκαλούσε το αποκεντρωμένο σύστημα αποθήκευσης του Blockstack Γαία. Επιτρέπει στους χρήστες να επιλέξουν πού θέλουν να αποθηκεύονται τα δεδομένα τους και να ελέγχουν ποιος μπορεί να έχει πρόσβαση σε αυτά μέσω μιας προσέγγισης που ονομάζεται αποθήκευση πολλών χρηστών.

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

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

Σε μια απλοποιημένη έκδοση του συστήματος, οι επισκέπτες θα χρησιμοποιούν το δίκτυο Blockstack peer-to-peer για να αναζητήσουν ξενοδοχεία και να λάβουν πληροφορίες σχετικά με τα δωμάτιά τους. Και η αυθεντικότητα και η ακεραιότητα όλων των δεδομένων που λαμβάνετε μπορεί να επαληθευτεί χρησιμοποιώντας δημόσια κλειδιά και hashes που είναι αποθηκευμένα σε εικονικό κύκλωμα Blockstack.

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

Πώς να δημιουργήσετε μια αποκεντρωμένη εφαρμογή που κλιμακώνεται; Χρησιμοποιήστε λιγότερο blockchain

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

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

Συμπέρασμα

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

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

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

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

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο