NEU: Helius übernimmt Light Protocol
Solana-NFT-Komprimierung
Blog/Grundlagen

NFT-Komprimierung auf Solana erkunden

Mitgründer & CEOMert Mumtaz auf XMert Mumtaz auf LinkedIn
8 Min. Lesezeit

Eine der jüngsten Entwicklungen in der Kryptowelt ist das Aufkommen digitaler Assets – meist als Non-Fungible Tokens oder kurz NFTs bezeichnet. NFTs ermöglichen zensurresistentes Eigentum an digitalen Assets wie Kunstwerken, Spielgegenständen oder Tickets. Gleichzeitig schaffen sie lebendige Peer-to-Peer-Wirtschaftssysteme für den Handel mit diesen Assets. Man könnte sogar argumentieren, dass NFTs nach digitalem Geld die zweite große Kryptoanwendung sind, die Product-Market-Fit (PMF) erreicht hat.  

NFTs bringen jedoch auch Herausforderungen mit sich.

Eine große Herausforderung auf Solana sind insbesondere die Kosten für die On-Chain-Speicherung dieser Assets. Solana bietet zwar sehr niedrige Transaktionsgebühren, doch bei den Speicherkosten sieht es anders aus. Damit digitale Assets in der digitalen Welt wirklich allgegenwärtig werden können, muss ihre Speicherung so günstig wie möglich sein. Hier kommt die NFT-Komprimierung auf Solana ins Spiel.

NFT-Komprimierung ermöglicht die nächste Generation kryptobasierter Anwendungen. Entwickler und Kreative können damit große Mengen an NFTs zu deutlich niedrigeren Kosten minten. Stell dir ein MMORPG vor, in dem Spielgegenstände handelbare NFTs sind und die Spielwirtschaft nahtlos mit der globalen Wirtschaft verbunden ist. Solche Spiele würden natürlich Millionen oder sogar Milliarden von Gegenständen enthalten. Deren Minting würde auf einer Blockchain wie Ethereum ein Vermögen kosten. NFT-Komprimierung macht das auf Solana möglich – und zwar schon heute.

Ein Beispiel zeigt, wie leistungsfähig das ist: Polygon, eine Skalierungslösung für Ethereum, berechnet derzeit etwa 0,05 USD für das Minting eines NFTs. Eine Milliarde NFTs auf Polygon zu minten, würde somit rund 50 Millionen US-Dollar kosten.

Auf Solana kostet ein NFT mit Komprimierung etwa 0,0000005 SOL. Eine Milliarde NFTs kosten zum Zeitpunkt der Veröffentlichung also rund 11.000 USD. Das ist ~50 Millionen US-Dollar oder etwa drei Größenordnungen günstiger. Das ist die Stärke der Komprimierung.

Doch wie funktioniert die Komprimierung? Finden wir es heraus.

Hintergrund zu Solana-NFTs (optional)

Bevor wir uns mit der Komprimierung beschäftigen, sehen wir uns zunächst an, wie NFTs auf Solana funktionieren. Wenn du bereits Erfahrung mit Solana-NFTs hast, kannst du direkt zum nächsten Abschnitt springen.

Token auf Solana verwenden zwei Arten von Accounts: Mint-Accounts und Token-Accounts. Der Mint-Account enthält globale Informationen zu einem Token, etwa die verfügbare Menge. Der Token-Account verknüpft den Token mit einem anderen Benutzer-Account.

Wenn Benutzer A beispielsweise 1.500 USDC erhält, speichert sein USDC-Token-Account, der von seinem primären Benutzer-Account abgeleitet wird, diese Token. Dieser Prozess gilt für alle Token. Wenn ich 100 USDT an Benutzer A senden möchte, leitet das Transfer Program zunächst den USDT-Token-Account von Benutzer A ab, falls dieser noch nicht existiert. Andernfalls ruft es ihn ab.

Das ist so, als hättest du in deinem physischen Portemonnaie für jede Währung einen eigenen Beutel. In einem bewahrst du Euro auf, in einem anderen Dollar und so weiter. Das Hauptportemonnaie gehört jedoch dir, dem Benutzer.

NFTs auf Solana sind Token mit einer Gesamtmenge von eins, es existiert also jeweils nur ein Exemplar. Metaplex hat außerdem das sogenannte Token Metadata Program eingeführt, das dem NFT einen Metadaten-Account zuordnet. Dieser enthält Informationen wie Name, Symbol, Collection und natürlich das NFT-Bild selbst. Das Thema ist sehr umfangreich, daher gehen wir hier nicht näher darauf ein.

Hintergrund zur Komprimierung

Die Komprimierung soll die On-Chain-Datenmenge reduzieren. Dazu werden die Daten, beispielsweise die Bildmetadaten, in Merkle-Bäumen im Solana-Ledger gespeichert, während die Wurzeln on-chain gespeichert werden.

Indexer halten den aktuellen Zustand des Merkle-Baums aufrecht, indem sie alle Transaktionen verarbeiten, die den Baum betreffen. Benutzer können ihre Daten schnell vom Indexer abrufen. Die On-Chain-Wurzel stellt sicher, dass Programminteraktionen gültig und sicher sind. Benutzer können die Indexerdaten mit der On-Chain-Wurzel abgleichen, um zu prüfen, ob sie aktuell und gültig sind.

Moment mal – was ist ein Merkle-Baum?

Ein Merkle-Baum ist eine Datenstruktur, mit der du die Integrität großer Datenmengen schnell und effizient überprüfen kannst. Dazu werden die Daten in kleinere Teile zerlegt, die sogenannten „Blätter“. Anschließend werden diese Blätter zu immer größeren „Knoten“ zusammengeführt.

Jeder Knoten im Baum repräsentiert einen Hash seiner untergeordneten Knoten. Der übergeordnete Knoten kombiniert dann die Hashes seiner untergeordneten Knoten und erzeugt daraus seinen eigenen eindeutigen Hash. Dieser Vorgang wird wiederholt, bis alle Blätter in einem einzigen Hash an der Spitze des Baums zusammengeführt sind: dem „Wurzel-Hash“. Mit dem Wurzel-Hash lässt sich prüfen, ob alle Daten im Baum vollständig und unverändert sind, ohne jedes einzelne Blatt überprüfen zu müssen.

Die Solana-Komprimierung basiert auf dem Account Compression Program. Mit diesem Programm können Entwickler einen Merkle-Baum-Account erstellen, der den Wurzel-Hash speichert. Anschließend können sie neue Blätter hinzufügen oder vorhandene ersetzen. Für jeden Austausch eines Blatts ist ein „Beweispfad“ erforderlich. Das ist die kleinste Teilmenge des Baums, die das Blatt und alle zur Berechnung des Wurzel-Hashs erforderlichen Knoten enthält. Das Compression Program gleicht den Beweis mit dem Wurzel-Hash ab, um die Gültigkeit der Daten zu prüfen. Das ist erforderlich, weil der tatsächliche Inhalt des Baums nicht on-chain gespeichert wird.

Zusammengefasst können Entwickler mit dem Compression Program Merkle-Bäume erstellen und Elemente im Baum hinzufügen oder aktualisieren. Der Verlauf des Baums ist im Solana-Ledger verfügbar, da jede Aktion über Solana-Transaktionen ausgeführt wird. Der gesamte Baum lässt sich durch erneutes Abspielen seines Verlaufs rekonstruieren, wenn ein Indexer oder RPC-Anbieter ausfällt oder der Entwickler den Anbieter wechseln möchte.

Die Wurzel des Baums wird schließlich zur Datenprüfung und Sicherheit on-chain gespeichert. Zusammengenommen macht dieses System die On-Chain-Speicherung des Zustands überflüssig. Das senkt die Kosten und „komprimiert“ die Daten effektiv.

NFT-Komprimierung

NFT-Komprimierung basiert auf einem Programm namens Bubblegum. Bubblegum nutzt das Compression Program, um jedes NFT in einem Merkle-Baum zu speichern. Dadurch sind keine Mint-, Token- und Metadaten-Accounts mehr erforderlich. Deshalb sind komprimierte NFTs so günstig!

Das Minting eines komprimierten NFTs ist so einfach wie das Anhängen eines neuen Elements an den Merkle-Baum. Jedes angehängte Element enthält Informationen wie NFT-Name, Collection, Eigentümer und mehr. Zusätzlich zum Minting bietet Bubblegum folgende Methoden:

  • Transfer
  • Burn
  • Delegate, CancelDelegate
  • Burn
  • Redeem, CancelRedeem
  • Decompress
  • VerifyCreator, SetAndVerifyCreator
  • VerifyCollection, SetAndVerifyCollection

Wir haben außerdem eine Dokumentation erstellt, die dir den Einstieg in diese Methoden erleichtert. Du findest sie hier.

Komprimierte NFTs lesen

Komprimierte NFTs lassen sich am einfachsten über die Digital Asset Standard (DAS) API lesen. Diese Open-Source-Spezifikation samt System bietet eine einheitliche Schnittstelle zum Abfragen von Token. Das System basiert auf einem Indexer, der alle Bubblegum-Transaktionen verarbeitet und die Merkle-Bäume speichert. Außerdem ermöglicht die API das Abfragen von NFTs nach Ersteller, Collection und Eigentümer. Ja, du hast richtig gelesen. Die DAS API gilt nicht nur für komprimierte NFTs, sondern auch für reguläre Solana-NFTs! So kannst du mit einem einzigen API-Aufruf und in enormer Geschwindigkeit On-Chain-Mint-Listen abrufen oder alle NFTs anzeigen, die ein Benutzer oder Programm hält.

Auch für diese API haben wir eine Dokumentation und sogar Beispielcode für den Einstieg erstellt. Du findest beides hier.

Anwendungsfälle für Komprimierung

Zum Zeitpunkt der Veröffentlichung dieses Artikels gibt es die Komprimierung erst seit einigen Wochen. Trotzdem entstehen bereits beeindruckende Anwendungsfälle. Einige Beispiele:

  • Dialect nutzt NFT-Komprimierung für Stickerpakete im Chat
  • Helium nutzt NFT-Komprimierung, um Helium Hotspots abzubilden
  • Crossmint nutzt NFT-Komprimierung für Airdrops an Hunderttausende Menschen und bietet dir eine Minting-API zum Ausprobieren
  • Drip Haus nutzt NFT-Komprimierung für groß angelegte Airdrops
  • Render erwägt den Wechsel zu Solana, um NFT-Komprimierung zu nutzen und vollständige Szenengraphen für das GPU-Rendering zu tokenisieren

Entwickle die Zukunft digitaler Assets

Möchtest du mit komprimierten NFTs arbeiten? Dann kannst du noch heute mit Helius loslegen! Helius unterstützt NFT-Komprimierung und stellt die DAS API sowohl im Devnet als auch im Mainnet bereit. Du kannst hier kostenlos einen API-Schlüssel generieren, ohne eine E-Mail-Adresse oder Kreditkartendaten einzugeben. Verbinde einfach dein Solana-Wallet. Du weißt noch nicht, wie du ein komprimiertes NFT mintest? Dann sieh dir unser Open-Source-Repository Compression Examples an. Wir sind gespannt, was du entwickelst!

Helius abonnieren

Bleib bei der Solana-Entwicklung auf dem Laufenden und erhalte Updates, wenn wir neue Beiträge veröffentlichen

Vergrößertes Bild