Wie erstelle ich eine dezentrale Anwendung, die sich skalieren lässt? Verwenden Sie weniger Blockchain

Nein, das Ausführen einer dezentralen Anwendung (dapp) in der Blockchain führt nicht zu einem erfolgreichen Geschäft. Tatsächlich denken die meisten Benutzer nicht einmal darüber nach, ob die Anwendung in der Blockchain funktioniert - sie wählen einfach ein Produkt, das billiger, schneller und einfacher ist.


Leider sind die meisten Anwendungen, die auf der Blockchain ausgeführt werden, viel teurer, langsamer und weniger verständlich als ihre zentralen Konkurrenten, selbst wenn sie ihre eigenen einzigartigen Merkmale und Vorteile aufweisen.



Im Whitepaper zu Anwendungen, die auf der Blockchain basieren, finden Sie häufig einen Absatz, der besagt: „Die Blockchain ist teuer und kann die erforderliche Anzahl von Transaktionen pro Sekunde nicht unterstützen. Glücklicherweise arbeiten viele clevere Leute daran, die Blockchain zu skalieren, selbst wenn unsere Anwendung gestartet wird es wird skalierbar genug. "


In einem einfachen Absatz kann ein Entwickler von dapp auf eine eingehendere Diskussion über Skalierbarkeitsprobleme und alternative Problemlösungen verzichten. Dies führt häufig zu einer ineffizienten Architektur, bei der das Backend und der Anwendungskern intelligente Verträge sind, die in der Blockchain ausgeführt werden.


Es gibt jedoch immer noch unerprobte Ansätze in der Architektur von dezentralen Anwendungen, die aufgrund einer geringeren Abhängigkeit von der Blockchain eine wesentlich bessere Skalierbarkeit ermöglichen. Beispielsweise arbeitet Blockstack mit einer Architektur, in der die meisten Daten und Anwendungslogiken außerhalb der Blockchain gespeichert sind.


Betrachten wir zunächst einen traditionelleren Ansatz, bei dem die Blockchain als direkter Vermittler zwischen Benutzern der Anwendung verwendet wird und der sich nicht sehr gut skalieren lässt.


Ansatz 1: Blockchain als Backend


Nehmen wir zur Verdeutlichung die Hotellerie als Beispiel. Dies ist eine riesige Branche, in der Wiederverkäufer wie Booking.com riesige Gebühren für die Verbindung von Gästen und Hotels erheben .


In jeder Situation, in der wir einen solchen Intermediär mit diesem Ansatz besiegen wollen, werden wir versuchen, seine Geschäftslogik mit intelligenten Verträgen auf einer solchen Blockchain wie beispielsweise Ethereum zu wiederholen.


Open-Source-Smart-Verträge, die auf einem "globalen Computer" ausgeführt werden, können Verkäufer mit Verbrauchern verbinden, ohne dass ein Drittunternehmen zwischen ihnen besteht, und so die Gebühren und Provisionen des Zwischenhändlers senken.


Wie in der Abbildung unten gezeigt, verwenden Hotels eine dezentrale Anwendung, um Informationen zu Zimmern, deren Verfügbarkeit und Preisen an Wochentagen oder Wochenenden in der Blockchain zu platzieren, und sogar eine Beschreibung von Zimmern mit allen anderen relevanten Informationen ist möglich.



Jeder, der ein Zimmer buchen möchte, sucht mit dieser Anwendung nach Hotels und Zimmern in der Blockchain. Sobald der Benutzer ein Zimmer auswählt, wird die Reservierung gesendet, indem die erforderliche Menge an Token als Anzahlung an das Hotel gesendet wird. Als Reaktion darauf aktualisiert der Smart-Vertrag die Informationen in der Blockchain, dass die Nummer nicht mehr verfügbar ist.


Das Skalierbarkeitsproblem bei diesem Ansatz hat zwei Seiten. Erstens die maximale Anzahl von Transaktionen pro Sekunde. Zweitens die Datenmenge, die in der Blockchain gespeichert werden kann.


Lassen Sie uns einige grobe Berechnungen durchführen. Booking.com behauptet, fast 2 Millionen registrierte Hotels zu haben. Angenommen, ein durchschnittliches Hotel hat 10 Zimmer und jedes Zimmer wird nur 20 Mal im Jahr gebucht - dies ergibt einen Durchschnitt von 13 Buchungen pro Sekunde.


Um diese Zahl zu schätzen, ist es erwähnenswert, dass Ethereum ungefähr 15 Transaktionen pro Sekunde verarbeiten kann.


Gleichzeitig ist zu berücksichtigen, dass es in unserer Anwendung auch Transaktionen von Hotels geben wird - um Informationen über ihre Zimmer herunterzuladen und ständig zu aktualisieren. Hotels aktualisieren den Zimmerpreis sehr oft, manchmal sogar täglich, und jede Änderung des Preises oder der Beschreibung erfordert eine Transaktion in der Blockchain.


Hier gibt es auch Größenprobleme - das Gewicht der Ethereum-Blockchain hat kürzlich die 2-TB-Marke überschritten. Wenn Anwendungen mit diesem Ansatz wirklich populär werden, wird das Ethereum-Netzwerk extrem instabil.


Ein solches Blockchain-basiertes System kann aufgrund seiner Unparteilichkeit und fehlenden Zentralisierung Außenstehende ausschließen - die Hauptvorteile der Blockchain-Technologie. Die Blockchain hat aber auch andere Funktionen - sie ist verteilt und nicht wiederbeschreibbar, dies sind hervorragende Eigenschaften, aber Sie müssen sie mit Geschwindigkeit und Transaktionsgebühren bezahlen.


Entwickler von Dapps sollten daher sorgfältig prüfen, ob jedes Feature, das die Blockchain verwendet, tatsächlich verteilt werden muss und nicht wiederbeschreibbar ist.


Zum Beispiel: Was ist der Vorteil, wenn die Daten jedes Hotels an Hunderte von Autos auf der ganzen Welt verteilt und dort dauerhaft gespeichert werden? Ist es wirklich wichtig, dass historische Daten zu Preisen und Zimmerverfügbarkeit immer in der Blockchain enthalten sind? Wahrscheinlich nicht.


Wenn wir solche Fragen stellen, werden wir feststellen, dass wir nicht unbedingt alle teuren Eigenschaften der Blockchain für alle unsere Funktionen benötigen. Also, was ist die Alternative?


Ansatz 2: Blockstack-inspirierte Architektur


Obwohl der Schwerpunkt von Blockstack auf Anwendungen liegt, in denen Benutzer ihre Daten besitzen (z. B. Airtext , BentenSound , ImageOptimizer oder Graphite ), verwendet Blockstack die Blockchain nur dann, wenn dies unbedingt erforderlich ist. Ihr Hauptargument ist, dass die Blockchain langsam und teuer ist, was bedeutet, dass sie nur für einzelne oder seltene Operationen verwendet werden sollte. Der Rest der Interaktion mit Anwendungen sollte über Peer-to-Peer erfolgen, d.h. Benutzer von dezentralen Anwendungen sollten Daten direkt miteinander teilen und nicht über die Blockchain. Am Ende wurden die ältesten und erfolgreichsten dezentralen Apps wie BitTorrent, E-Mail und Tor vor dem eigentlichen Konzept der Blockchain erstellt.



Links: Der erste Ansatz, bei dem Benutzer über die Blockchain interagieren. Richtig: Benutzer interagieren direkt miteinander und die Blockchain wird nur zur Identifizierung und dergleichen verwendet .


Kehren wir zum Hotelbuchungsbeispiel zurück. Wir wollen ein unparteiisches, unabhängiges und offenes Protokoll, um Gäste mit Hotels zu verbinden. Mit anderen Worten, wir möchten den zentralisierten Vermittler entfernen. Wir müssen zum Beispiel nicht ständig Zimmerpreise in einem gemeinsamen verteilten Register speichern.


Warum lassen wir nicht einfach Gäste und Hotels direkt interagieren und nicht über die Blockchain. Hotels können ihre Preise, die Verfügbarkeit von Zimmern und andere Informationen an einem Ort speichern, an dem sie allen zur Verfügung stehen - zum Beispiel IPFS, Amazon S3 oder sogar ihren eigenen lokalen Server. Genau das bietet das dezentrale Speichersystem von Blockstack, Gaia . Benutzer können wählen, wo sie ihre Daten speichern möchten, und steuern, wer über einen als Mehrbenutzerspeicher bezeichneten Ansatz auf sie zugreifen kann.


Um Vertrauen herzustellen, werden alle Hoteldaten vom Hotel selbst kryptografisch signiert. Unabhängig davon, wo diese Daten gespeichert sind, kann ihre Integrität mit öffentlichen Schlüsseln überprüft werden, die mit den in der Blockchain gespeicherten Identifikationsinformationen des Hotels verknüpft sind.


Im Falle von Blockstack werden nur Ihre Identifikationsdaten in der Blockchain gespeichert. Informationen zum Abrufen der Daten der einzelnen Benutzer werden in Zonendateien gespeichert und über ein Peer-to-Peer-Netzwerk mithilfe von Knoten verteilt. Und noch einmal: Sie müssen den von den Knoten ausgegebenen Daten nicht glauben, da Sie ihre Authentizität überprüfen können, indem Sie sie mit Hashes vergleichen, die in der Blockchain und von anderen Benutzern gespeichert sind.


In einer vereinfachten Version des Systems suchen die Gäste über das Peer-to-Peer-Netzwerk von Blockstack nach Hotels und erhalten Informationen zu ihren Zimmern. Die Authentizität und Integrität aller empfangenen Daten kann mit öffentlichen Schlüsseln und Hashes überprüft werden, die in der virtuellen Blockstack- Kette gespeichert sind.


Diese Architektur ist komplexer als der erste Ansatz und erfordert eine stärker integrierte Infrastruktur. Genau hier setzt Blockstack an und bietet alle notwendigen Komponenten, um ein solches dezentrales System zu erstellen.



Mit dieser Architektur speichern wir nur Daten in der Blockchain, die wirklich verteilt und nicht überschrieben werden müssen. Im Falle von Blockstack benötigen Sie nur Transaktionen in der Blockchain, um sich zu registrieren und anzugeben, wo Ihre Daten gespeichert werden sollen. Möglicherweise benötigen Sie weitere Transaktionen, wenn Sie diese Informationen ändern möchten, dies ist jedoch kein wiederkehrendes Ereignis.


Darüber hinaus funktioniert die Anwendungslogik im Gegensatz zum ersten Ansatz auf der Clientseite und nicht bei intelligenten Verträgen. Auf diese Weise kann der Entwickler diese Logik ohne kostspielige oder manchmal sogar unmögliche Aktualisierungen des Smart-Vertrags ändern. Indem Sie die Daten- und Anwendungslogik von der Blockchain fernhalten, können dezentrale Anwendungen die Leistung und Skalierbarkeit herkömmlicher zentraler Systeme erreichen.


Fazit


Anwendungen, die auf Blockstack ausgeführt werden, können viel besser skaliert werden als herkömmliche Blockchain-Anwendungen. Dies ist jedoch ein jüngerer Ansatz mit eigenen Problemen und unbeantworteten Fragen.


Wenn eine dezentrale Anwendung beispielsweise bei intelligenten Verträgen nicht funktioniert, werden weniger Utility-Token benötigt. Dies kann zu Problemen für das Unternehmen führen, da ICOs die Hauptfinanzierungsquelle für dezentrale Anwendungen waren (einschließlich Blockstack selbst).


Es gibt auch technische Probleme. Zum Beispiel ist es relativ einfach, die Hotelreservierungsfunktion in einem intelligenten Vertrag zu implementieren, bei dem während eines atomaren Vorgangs eine Zimmerreservierung gegen Token erfolgt. Und es ist nicht sehr offensichtlich, wie die Buchung in der Blockstack-Anwendung ohne intelligente Verträge funktioniert.


Anwendungen, die auf globale Märkte mit einem Potenzial von Millionen von Benutzern abzielen, müssen sehr gut skaliert werden, um erfolgreich zu sein. Es ist ein Fehler, sich in naher Zukunft ausschließlich auf Blockchains zu verlassen, um dieses Maß an Skalierbarkeit zu erreichen. Um mit wichtigen zentralen Marktteilnehmern wie Booking.com konkurrieren zu können, sollten dezentrale Anwendungsentwickler alternative Ansätze zum Entwerfen ihrer Anwendungen in Betracht ziehen, z. B. den von Blockstack angebotenen.

Source: https://habr.com/ru/post/de486100/


All Articles