Autor: w1nt3r.eth

Kompiliert von: ShenChao TechFlow

Vielleicht wird die Blockchain ewig bestehen, aber die Lebensdauer dezentraler Anwendungen (dApps) ist sehr kurz.

An Halloween 2024 versuchte ich, die dApps zu öffnen, die ich 2021 genutzt hatte, und das Ergebnis war erschreckend: abgelaufene Domains, pausierte Deployments, nicht gefundene Seiten, nicht verfügbare Dienste.

Moment mal, sollten diese Anwendungen nicht dezentral sein? Sie sollten von zentralen Entitäten unabhängig sein, kostenlos wie Bier, frei wie Redefreiheit und zensurresistente Anwendungen. Sie sind die Anwendungen, die Web3 zum neuen Internet machen.

Aber diese Anwendungen sind fast alle verschwunden, die meisten, die ich vor zwei Jahren benutzt habe, existieren nicht mehr. Ihre „Gespenster“ könnten noch irgendwo in der Blockchain verweilen, solange du die richtige Vertragsadresse findest und die richtigen Aufrufdaten errätst.

Warum passiert das? Wo liegt das Problem? Was können wir tun, um die Situation zu ändern?

Was ist also eine „dApp“?

Lass uns einige alte Dokumente durchblättern, die wir aus der prähistorischen Zeit (2016) gefunden haben.

„dApp“ steht für „dezentrale Anwendung“. Das Konzept ist, dass du mit offenen Technologien (wie HTML/CSS/JS) eine Webanwendung erstellen kannst, die auf dezentralen und genehmigungsfreien Infrastrukturen (wie IPFS) gehostet wird. dApps interagieren über deine Wallet mit der Blockchain. Du kannst die neuesten Daten abrufen und Transaktionen senden, ohne auf zentralisierte Unternehmen angewiesen zu sein.

Das macht dApps nahezu unaufhaltsam. Kostenlos, ohne Genehmigung, dezentral. Das ist der Traum, den die echte Punk-Essenz verfolgt.

Schöne Landingpage

Die meisten Menschen interessiert die Dezentralisierung und Genehmigungsfreiheit jedoch nicht. Sie sind mehr daran interessiert, ob die Anwendung nützlich ist (und ob die Zahlen steigen).

Die Entwickler von Web3 erkennen schnell, dass sie um die Aufmerksamkeit der Benutzer konkurrieren, die sich ansprechend gestaltete, schnelle und anziehende Web2-Anwendungen gewöhnt haben, während Dezentralisierung auf diesem Schlachtfeld ihnen nicht viel Vorteil verschafft.

Diejenigen, die sich mit der Technik auskennen, verstehen, dass die Blockchain einen echten Paradigmenwechsel darstellt. Aber alles auf der Blockchain ist „Open Source“ und kann kopiert werden, sodass es zu einer Ware wird. Es gibt keine Wettbewerbsvorteile. Jeder kann Uniswap-Verträge überall bereitstellen. Tatsächlich kann jeder seine eigene L2 erstellen!

Der wirkliche Unterschied liegt in der Marke, den Vertriebskanälen, den Netzwerkeffekten und der Benutzererfahrung. Bei den zig Millionen von Uniswap-Deployments wählen die Benutzer das, was sie vertrauen (Marke), das, was leicht zugänglich ist (Vertrieb), das, was alle verwenden (Netzwerkeffekte) und was benutzerfreundlich ist (Benutzererfahrung).

Obwohl ich die Benutzererfahrung zuletzt erwähne, ist sie nicht unwichtig. Eine schlechte Benutzererfahrung kann negative Auswirkungen haben. Jeder Besitzer eines E-Commerce-Shops weiß, dass eine Verzögerung von 100 Millisekunden den Verlust von 10 % der Benutzer zur Folge haben kann. Wenn die Benutzererfahrung schlecht ist, kannst du keine Premium-Marke aufbauen. Wenn deine Anwendung frustrierend ist, kannst du die Benutzer nicht halten.

Das Bereitstellen auf Vercel ist einfacher als das Bereitstellen auf IPFS.

Es ist nicht einfach, gute Dinge zu tun.

Selbst wenn die meisten Benutzer nicht an Dezentralisierung interessiert sind, kümmern sich echte Krypto-Punks darum. Es geht nicht darum, dass „jeder ein Dezentralisierungsfanatiker sein sollte“, sondern darum, dass „es das Richtige ist“. Selbst wenn zentrale Entitäten feindlich oder zensierend werden, kann Dezentralisierung den Menschen Macht und Autonomie verleihen.

Das ist das Problem. Es ist nicht einfach, eine Anwendung zu erstellen, die sowohl dezentral als auch benutzerfreundlich ist. Aber der Grund für die Schwierigkeiten liegt darin, dass wir (die Entwickler) faul geworden sind.

Analysiere BasePaint

Lass uns einen Blick auf das heutige typische „dApp“ und die Technologien werfen, auf die sie angewiesen sind. Ich werde mein eigenes entwickeltes BasePaint als Beispiel verwenden. In gewisser Hinsicht sollte es eine „Web3-dApp“ sein: Es verwendet die Blockchain (Base L2) und interagiert über die Wallet des Benutzers. Aber das reicht nicht aus, um eine gute Benutzererfahrung zu bieten, also musste ich einige nicht-dezentrale Elemente hinzufügen. Tatsächlich waren es viele.

Die technischen Dienstleistungen von BasePaint

Hier sind einige zentrale Technologien, die ich in der Entwicklung verwenden musste:

  • Domainnamen. Ich hoffe, die Benutzer können uns leicht finden und die Website besuchen. Da Browser ENS nicht unterstützen, musste ich einen Domainnamen bei einem Registrar kaufen und DNS so konfigurieren, dass es auf den richtigen Server verweist.

  • Hosting-Dienste. Ich muss die Anwendung (einschließlich HTML/CSS/JS-Dateien) irgendwo hosten und sicherstellen, dass der Zugriff schnell und stabil ist. Obwohl IPFS vielversprechend ist, unterstützen die meisten Browser es nicht, die Gateways sind langsam und die URLs sind nicht benutzerfreundlich.

(Hast du schon einmal versucht, auf deinem Handy einzugeben?

QmRxM6Fz3jYBNLTNn59Whtj8uiFodC53Z5nEep6eSkwf8V?

  • Datenbanken. Die Blockchain ist in bestimmten Fällen eine gute Datenbank, aber nicht für alle Szenarien geeignet. Zum Beispiel speichern wir Chatnachrichten in einer Postgres-Datenbank, weil dies günstiger und schneller ist. Auch wenn man versuchen könnte, es on-chain zu bringen, wird die Geschwindigkeit niemals mit einer zentralisierten Datenbank mithalten können.

  • Backend-Dienste. BasePaint benötigt einige Berechnungen, die nicht auf Ethereum verarbeitet werden können. Beispielsweise das Generieren von Videos, das Synchronisieren der Cursorposition mehrerer Benutzer, das Überprüfen von Chatberechtigungen usw. Außerdem müssen wir einige sensible Informationen wie Datenbankverbindungsanmeldeinformationen und private Token schützen.

  • Ethereum JSON-RPC-Anbieter. Theoretisch könnten wir über die Wallet des Benutzers auf die Blockchain zugreifen. Aber das bedeutet, dass Benutzer ohne einen „Web3 unterstützenden“ Browser nichts sehen können. Noch komplizierter ist, dass es Unterschiede zwischen den RPC-Anbietern verschiedener Wallets gibt. Zum Beispiel beschränkt QuickNode die Protokollabfragen auf 10.000, während Alchemy eigene Berechnungseinheiten verwendet, um Anfragen zu begrenzen. Die Verwendung von Wallet-RPC bedeutet, dass man mit diesen feinen Unterschieden umgehen muss.

  • Indexer. Die Speicherung von Daten auf der Blockchain ist teuer. BasePaint löst dieses Problem, indem es Pixel nicht im Vertrag speichert. Stattdessen sendet es alle notwendigen Daten über das Painted-Event. Du kannst durch Abfragen der Smart-Contract-Events jede Leinwand rekonstruieren. Aber stelle dir vor, dies auf der BasePaint-Galerie-Seite zu tun (wir zeigen Hunderte von Leinwänden!). Um eine reibungslose Benutzererfahrung zu bieten, betreiben wir einen Indexer, der Blockchain-Events verfolgt und die Daten in einer schnell abfragbaren Weise speichert.

  • Andere Dienste. Wir verwenden Reservoir, um Daten aus dem Sekundärmarkt zu erhalten und Cross-Chain-Prägungen durchzuführen, Cloudflare als CDN, R2 für Videospeicherung und Caching, DataDog für das Logging, PostHog für die Analyse und Neynar, um die Wallet-Adressen von Farcaster-Benutzern zu finden. Jeder dieser Dienste spart uns Wochen oder sogar Monate an Entwicklungszeit, macht unsere Anwendung jedoch weniger dezentralisiert. Zudem fehlt vielen Tools ein nachhaltiges Geschäftmodell, sodass sie jederzeit abschalten könnten.

  • Kreditkarten. Diese Frage bringt mich immer zum Lachen und Weinen. Weißt du, die meisten Krypto-SaaS-Produkte können nicht mit Kryptowährung bezahlt werden? Wenn mein Kreditkartenkonto nicht ausreicht oder abgelaufen ist, werden meine Domain, Datenbank, Server, RPC-Endpunkte und andere SaaS-Produkte offline.

Wie kann die Dezentralisierung der Anwendung erreicht werden?

Als Web3-Entwickler sehe ich derzeit folgende Optionen:

  1. Verzichte auf zentrale Technologien und baue eine Hardcore-dApp, die vollständig von dezentralen Diensten abhängt. Während dies bei Projekten wie Tornado Cash machbar sein könnte, würde es bei gewöhnlichen Verbraucherprodukten Barrieren in der Benutzererfahrung schaffen, die die meisten Benutzer abschrecken könnten.

  2. Behalte zentrale Anwendungen bei und entwickle eine vereinfachte dApp, die nur von dezentralen Technologie-Stacks abhängt. Das bedeutet, dass zwei unabhängige Anwendungen gepflegt werden müssen, was den Arbeitsaufwand und die Kosten erhöht.

  3. Verwende eine Strategie des „progressiven Verbesserns“. Starte mit einer vereinfachten dApp und nutze den Server zur Geschwindigkeitssteigerung, wenn er verfügbar ist. Das erfordert strenge Verwaltung, und die Zeitersparnis ist im Vergleich zur zweiten Option nicht signifikant.

  4. Open-Source-Code, damit die Benutzer ihn selbst ausführen können (das ist unser gewählter Weg). Aber tatsächlich erfordert der Start des gesamten Systems erhebliches Software-Engineering-Know-how, das viel komplexer ist, als eine Seite von IPFS zu laden.

Die obigen Optionen erfordern alle erhebliche Anstrengungen und sind keine Standardwahl. In jedem dApp-Tutorial oder -Template werden diese Probleme kaum angesprochen. Tatsächlich muss die Entwicklung dezentraler Anwendungen nicht so schwierig sein. Wenn wir die Komplexität auf die Infrastrukturebene verlagern könnten, sollte die Erstellung von dApps einfacher sein.

Vielleicht sollten wir uns diesen kniffligen Fragen widmen?

Wir sollten versuchen, Dezentralisierung auf der Infrastrukturebene zu erreichen. Beispielsweise die Integration von ENS-Unterstützung in getaddrinfo, damit alle Browser IPFS nativ unterstützen können und die Geschwindigkeit von IPFS mit den derzeit fortschrittlichsten CDNs vergleichbar wird. Wir könnten auch Ethereums JSON-RPC verbessern, um es für dezentrale Anwendungen (dApps) praktischer zu machen. Aber das ist nur der einfache Teil.

Um zentrale Datenbanken und Server zu ersetzen, müssen wir eine Reihe von Technologien entwickeln, die derzeit noch nicht existieren. Vielleicht benötigen wir ein verteiltes Computingsystem auf Basis von Zero-Knowledge-Proofs (ZK), das Belohnungen für die Ausführung von Code bietet, oder einen Super-Ethereum, das allgemeine x86-Instruktionen effizient ausführen kann.

Darüber hinaus müssen wir dezentrale Lösungen für alle Dienste finden, die rund um Kryptowährungen aufgebaut sind. Wir müssen neue Anreizmechanismen entwerfen - wer wird für diese Rechenressourcen bezahlen? In einem wirklich dezentralen System wird das bestehende SaaS-Geschäftsmodell nicht funktionieren. (Aber hoffentlich können die Kosten für diese Dienste in Kryptowährung bezahlt werden, ohne Kreditkarte.)

Darüber hinaus müssen wir sicherstellen, dass die Entwicklungserfahrung in diesem neuen System mindestens so gut ist wie die aktuellen zentralisierten Plattformen. Diese Plattformen haben Milliarden von Dollar an Ingenieurzeit investiert, um sie zu optimieren, und haben große Summen in Marketing investiert, um das Internet mit Tutorials zu überschwemmen, um alle davon zu überzeugen, dass ihre Lösungen die besten sind.

Ist das wirklich wichtig?

„Eure Wissenschaftler haben sich zu sehr auf die Machbarkeit der Technik konzentriert und nicht darüber nachgedacht, ob es angemessen ist, dies zu tun.“ - Zitat aus (Jurassic Park)

Aber muss die Anwendungsebene wirklich dezentralisiert sein?

Nouns zeigt uns, dass vielleicht nur die Dezentralisierung der Blockchain ausreichend ist. Nouns hat ein florierendes Anwendungsökosystem, in dem alle Anwendungen mit demselben Vertrag interagieren. Du kannst durch Camp oder Agora abstimmen, das spielt keine Rolle, du musst nur die Benutzeroberfläche wählen, die dir gefällt.

Um Milliarden von Benutzern anzuziehen, könnte es notwendig sein, dass Kryptowährungen zu einem nahtlos integrierten Bestandteil des bestehenden Systems werden. Das bedeutet, dass die ideale Krypto-Erfahrung ist, dass die Benutzer nicht einmal wissen, dass sie Kryptowährungen verwenden, weil es auf ein unerhebliches Maß abstrahierte ist. Zum Beispiel, einfach durch Antippen des Handys einen Kaffee zu kaufen, egal ob es sich um USDC oder das Visa-Netzwerk handelt, das interessiert die Benutzer nicht.

Der Markt hat eine lokale optimale Lösung gefunden:

  • Die Blockchain als Basisschicht ist dezentralisiert, sie sichert Billionen von Dollar an Vermögenswerten und bietet starke Unterstützung für Eigentum und Zensurresistenz.

  • Die Anwendungsschicht ist hingegen zentralisiert. Unternehmen entwickeln zentrale Anwendungen, um die beste Benutzererfahrung zu bieten. Ihre geschlossenen Systeme bilden Barrieren gegen den Wettbewerb, aber diese Anwendungen interagieren dennoch mit derselben Blockchain.

Fehlende Werkzeuge

Ich hoffe, dass dieses Gleichgewicht mehr in Richtung Dezentralisierung neigt. Ich wünsche mir, dass ich meine eigene Nouns Camp oder Agora-Version so einfach lokal ausführen kann wie das Klicken auf einen Link. Ich hoffe, dass wir einige Werkzeuge haben, die den Bau dieser dezentralen Anwendungen erleichtern, ohne die Benutzererfahrung zu beeinträchtigen.

BasePaint ist beeindruckend. Es ist ein selbsttragendes Ökosystem: Künstler schaffen Werke, Sammler kaufen und profitieren auf dem Sekundärmarkt, und Eigentümer können durch Abstimmungen die täglichen Geschäfte beeinflussen. Dieses Modell funktioniert und wir haben auf diese Weise bereits über eine Million Dollar an die Schöpfer verteilt.

Der schwächste Punkt im gesamten System ist jedoch unser Team. Die Wartung der Anwendung erfordert erhebliche Anstrengungen, wie das Beheben von Fehlern und die Verbesserung der Benutzererfahrung. Gleichzeitig arbeiten wir daran, das System dezentraler zu machen, indem wir die Anwendung benutzerfreundlicher für das Selbst-Hosting gestalten und die Berechtigungssteuerung aufgeben, anstatt Hürden zu setzen.

Fazit

Dezentrale Anwendungen (dApps) scheinen ihre Vitalität verloren zu haben, da die Vorteile der „Dezentralisierung“ derzeit nicht von den Benutzern geschätzt werden, weshalb die Entwickler Anpassungen vornehmen müssen. Wir haben die Entwicklung von Tools eingestellt, die darauf abzielen, Anwendungen zu dezentralisieren.

Glücklicherweise ist die zugrunde liegende Infrastruktur der Blockchain stabiler als je zuvor. Die grundlegenden Technologien sind robuster und die Entwicklungsfahrpläne sind vielversprechend. Wir haben tatsächlich die Chance, eine globale Rechenplattform aufzubauen.

Leider wurde die Diskussion darüber, wie die Benutzeroberfläche verbessert werden kann, nicht genügend beachtet. Das Konzept der dApp wurde vorübergehend auf Eis gelegt…