NEU: Helius übernimmt Light Protocol
Was sind Token-Erweiterungen?
Blog/Forschung

Was sind Token-Erweiterungen?

Developer Experience EngineerOwen Venter auf XOwen Venter auf LinkedIn
13 Min. Lesezeit

Das Solana-Ökosystem hat sich im vergangenen Jahr rasant weiterentwickelt. Viele neue, spannende Technologien wurden veröffentlicht. Solana ist für seine extrem hohe Verarbeitungsgeschwindigkeit und niedrigen Transaktionsgebühren bekannt. Doch selbst bei diesen beeindruckenden Vorteilen gibt es immer Raum für Verbesserungen. Hier kommen Token-Erweiterungen ins Spiel: ein neues Token-Programm, das die bestehende Token-Funktionalität von Solana verbessert. Sehen wir uns an, was der Token-Extensions-Standard für das Solana-Ökosystem bereithält.

Das aktuelle Token-Programm auf Solana

Alle Token auf Solana, die nicht der native $SOL-Token sind, gelten als SPL-Token. Dazu gehören sowohl fungible Token (wie $BONK) als auch nicht fungible Token (NFTs). Das Token-Programm definiert allgemeine Funktionen zum Erstellen und Verwenden fungibler und nicht fungibler Token. Es bietet einige Funktionen, an die sich Entwickler und Endnutzer gewöhnt haben. Dazu gehören das Prägen, Übertragen und Verbrennen von Token. Außerdem lassen sich Token aktualisieren und einfrieren. So kann ein Token-Konto eingefroren werden, wodurch Änderungen am Kontostatus verhindert werden, bis es wieder freigegeben wird.

Was sind Token-Erweiterungen und warum werden sie benötigt?

Du kannst dir Token-Erweiterungen als neue und verbesserte Version des Token-Programms auf Solana vorstellen. Sie unterstützen sowohl fungible als auch nicht fungible Token. Das neue Programm bietet weiterhin alle Funktionen des alten Token-Programms, ergänzt sie aber um eine Reihe nützlicher Features, die die Token-Funktionalität auf Solana verbessern. Diese neuen Funktionen bilden den eigentlichen Kern von Token2022 und werden als Erweiterungen bereitgestellt.

Doch warum werden Token-Erweiterungen benötigt? Mit der Weiterentwicklung von Solana steigt die Nachfrage nach komplexeren und flexibleren Token-Funktionen. Das aktuelle Token-Programm auf Solana deckt mit einfachen Funktionen zwar die grundlegenden Anforderungen fungibler und nicht fungibler Token ab. Seine Einfachheit führt jedoch zu Einschränkungen, die Innovationen behindern können. Entwickler mit neuen Ideen mussten das Token-Programm häufig forken, um benötigte Funktionen hinzuzufügen. Das erschwert eine breite Akzeptanz. Das Programmiermodell von Solana verlangt, dass sowohl Programme als auch Konten in Transaktionen enthalten sind. Dadurch wird das Erstellen von Transaktionen mit mehreren Token-Programmen komplizierter. Zudem müssen Wallets und On-Chain-Programme jedem unterstützten Token-Programm vertrauen, was riskant sein kann. Als Antwort auf diese Entwicklung bietet Solana Token2022: eine Sammlung zusätzlicher Funktionen und Verbesserungen, die die Möglichkeiten von Token im Ökosystem erweitern.

Erweiterungen vorgestellt: ein evolutionärer Schritt

Die bahnbrechenden Möglichkeiten dieses neuen Standards stecken in den verfügbaren Erweiterungen. Dabei handelt es sich um neue Felder für unterschiedliche Anforderungen. Einfach ausgedrückt ist eine Erweiterung im Kontext von Token-Erweiterungen eine zusätzliche Funktion, die einem Token hinzugefügt werden kann, um seine Fähigkeiten und seinen Nutzen zu erweitern. Mit Erweiterungen können Token-Ersteller das Verhalten und die Eigenschaften ihrer Token an bestimmte Anforderungen oder Ziele anpassen. Beim Erstellen eines Tokens lassen sich beliebig viele dieser Erweiterungen verwenden. Sehen wir uns einige der wichtigsten Erweiterungen und ihre möglichen Auswirkungen auf das Solana-Ökosystem genauer an. Beachte, dass derzeit noch nicht alle diese Erweiterungen live sind.

Mint-Erweiterungen

Hier findest du Erklärungen zu den einzelnen Mint-Erweiterungen:

1. Übertragungsgebühren

Das bestehende Token-Programm erlaubt keine Gebühren für Übertragungen. Der Token-Extensions-Standard ändert dies und ermöglicht die Konfiguration einer Übertragungsgebühr auf Protokollebene. Dieser Mechanismus schafft eine neue Ebene der finanziellen Kontrolle über Transaktionen.

2. Transfer Hooks

Die Transfer-Hook-Erweiterung gibt Token-Erstellern eine zusätzliche Kontrollebene für die Übertragung ihrer Token. Das ist besonders wichtig, um Herausforderungen im Zusammenhang mit NFT-Lizenzgebühren zu bewältigen. Mit der Transfer-Hook-Erweiterung können Token-Ersteller eigene Programme entwickeln, die Token bei jeder Übertragung verwenden. Sobald eine Token-Übertragung gestartet wird, kommuniziert der Token mit diesem benutzerdefinierten Programm. Anschließend können weitere Aktionen ausgeführt werden.

3. Mint schließen

Token-Erweiterungen schließen eine wichtige Lücke im Token-Programm: Mint-Konten können nun durch eine frei wählbare Adresse geschlossen werden, was zuvor nicht möglich war. Dazu wird die Erweiterung MintCloseAuthority initialisiert, bevor der Mint initialisiert wird. So kann eine andere Person als der Authority-Wallet-Inhaber den Mint eines Tokens schließen.

4. Verzinsliche Token

Token-Erweiterungen führen die Erweiterung InterestBearingMint ein. Damit kann der Token-Betrag in der Benutzeroberfläche unter Berücksichtigung der angesammelten Zinsen anders dargestellt werden. Diese Funktion ermöglicht es Token im Wesentlichen, „Zinsen zu verdienen“. Je länger du sie hältst, desto wertvoller werden sie.

5. Nicht übertragbare Token (Soulbound Tokens)

Mit der Mint-Erweiterung NonTransferable lassen sich „Soulbound“-Token erstellen, die nicht aus einer Wallet verschoben werden können. Das eignet sich ideal für besondere Erfolge oder Belohnungen. Auch für Veranstaltungstickets sind diese Token gut geeignet, da sich das Ticket nicht an andere Personen senden lässt.

6. Vertrauliche Übertragungen

Token-Erweiterungen führen eine neue vertrauliche Token-Erweiterung namens Confidential Transfers ein. Diese Datenschutzfunktion nutzt Zero-Knowledge-Beweise, um Token-Guthaben und Übertragungsbeträge für SPL-Token zu verschlüsseln.

Das übergeordnete Ziel dieser Erweiterung ist ein besserer Schutz der Privatsphäre durch Vertraulichkeit statt Anonymität. Da Guthaben erhöht oder verringert werden können, benötigt der Token-Extensions-Standard ein Verschlüsselungsverfahren, das diese verborgenen mathematischen Operationen ermöglicht. Die Verschlüsselung muss homomorph sein. Homomorphe Verschlüsselung ist eine besondere Klasse von Verschlüsselungsverfahren, bei denen bestimmte Berechnungen auf verschlüsselten Daten ausgeführt werden können, ohne die Daten tatsächlich zu entschlüsseln. Diese verborgenen Berechnungen liefern somit ein verschlüsseltes Ergebnis, das nach der Entschlüsselung dem Ergebnis derselben mathematischen Operationen im Klartext entspricht. Confidential Transfers verwenden „Twisted ElGamal Encryption“, um verborgene mathematische Operationen auf Chiffretext auszuführen.

Für alle, die tiefer einsteigen möchten: Twisted ElGamal Encryption ist eine einfache Variante des standardmäßigen ElGamal-Verschlüsselungsverfahrens. Dabei wird ein Chiffretext in ein Pedersen-Commitment der verschlüsselten Nachricht und einen Entschlüsselungs-Handle aufgeteilt, um verborgene mathematische Operationen auf dem Chiffretext zu ermöglichen.

Confidential Transfers werden mit Sigma-Protokollen validiert. Dabei handelt es sich um eine bestimmte Klasse von Zero-Knowledge-Beweisen, bei denen eine Partei (der Beweiser) einer anderen Partei (dem Prüfer) beweisen kann, dass sie ein Geheimnis kennt, ohne das Geheimnis selbst offenzulegen. Diese Sigma-Protokolle sind für mehrere Anweisungen der Erweiterung erforderlich. Sehen wir uns die einzelnen Beweise genauer an:

Gültigkeitsbeweis (öffentlicher Schlüssel)

  • Prüft, ob ein öffentlicher Twisted-ElGamal-Schlüssel korrekt formatiert ist
  • Stell dir vor, du prüfst den „digitalen Ausweis“ einer anderen Person, bevor du einen sicheren Chat beginnst
  • Dieser Beweis ist für die ConfigureAccount-Anweisung erforderlich

Gültigkeitsbeweis (Chiffretext)

  • Stellt sicher, dass die verschlüsselte Nachricht korrekt aufgebaut ist
  • Stell dir vor, du erhältst eine versiegelte Kiste. Da sie noch versiegelt ist, weißt du, dass sie nicht manipuliert wurde
  • Dieser Beweis ist für die Anweisungen Withdraw, Transfer und TransferWithFee erforderlich

Nullsaldo-Beweis

  • Beweist, dass der Twisted-ElGamal-Chiffretext die Zahl Null verschlüsselt
  • Stell dir vor, du prüfst, ob dein Bankkonto einen Saldo von null hat, ohne deine Banking-App zu öffnen
  • Dieser Beweis ist für die Anweisung EmptyAccount erforderlich

Gleichheitsbeweis

  • Bestätigt zwei Arten von Gleichheit: zwischen zwei ElGamal-Chiffretexten oder zwischen einem ElGamal-Chiffretext und einem Pedersen-Commitment
  • Stell dir zwei verschlossene Schuppen voller Werkzeuge vor. Du beweist, dass beide exakt dieselben Werkzeuge enthalten, ohne die Schuppen zu öffnen
  • Dieser Beweis ist für die Anweisungen Transfer, TransferWithFee, WithdrawWithheldTokensFromMint und WithdrawWithheldTokensFromAccounts erforderlich

Gebühren-Sigma-Beweis

  • Beweist, dass eine zugesagte Übertragungsgebühr korrekt ist
  • Stell dir vor, du bestätigst FedEx, dass du die Zollgebühren für dein Paket bezahlt hast, ohne den genauen Betrag offenzulegen
  • Dieser Beweis ist für die Anweisung TransferWithFee erforderlich

Bereichsbeweis

  • Bestätigt, dass eine verschlüsselte Zahl innerhalb eines bestimmten Bereichs liegt
  • Stell dir vor, du schätzt die Größe einer Person und beweist, dass deine Schätzung in einem bestimmten korrekten Bereich liegt, ohne die tatsächliche Größe der Person zu verraten
  • Solana verwendet für diese Beweise Bulletproofs. Mehr dazu erfährst du in diesem wissenschaftlichen Artikel und in der dalek-Implementierung

Kurz gesagt: Mit diesen Zero-Knowledge-Beweisen lässt sich bestätigen, dass eine Partei ein Geheimnis kennt, das eine andere Partei überprüfen kann, ohne dass es ausgesprochen wird. Die verschiedenen Beweistypen stellen auf mathematischer Ebene sicher, dass Token-Guthaben und Übertragungen wie vorgesehen funktionieren. Durch Verschlüsselung bleibt der Vorgang vollständig vertraulich.

In diesem vertraulichen System kann nur der Kontoinhaber mit dem Entschlüsselungsschlüssel sein Guthaben sehen. Es kann jedoch Fälle geben, in denen ein externer Dritter die Guthaben prüfen muss, etwa für Audits oder Compliance-Zwecke. Die vertrauliche Token-Erweiterung ermöglicht dies mit ihrem Global-Auditor-System. In diesem System kann jedes Konto einen separaten Entschlüsselungsschlüssel besitzen. So kann ein Inhaber gezielt Lesezugriff auf bestimmte Konten gewähren. Der Mint beziehungsweise die Organisation, die die Assets ausgibt, besitzt eine spezielle Datenstruktur. Sie kann optional einen globalen „Auditor-Verschlüsselungsschlüssel“ enthalten. Der Code sieht so aus:

Code
Transfer {
  amount_sender: PKE::encrypt(pke_pubkey_sender, 10),
  amount_receiver: PKE::encrypt(pke_pubkey_receiver, 10),
  amount_auditor: PKE::encrypt(pke_pubkey_auditor, 10),
  range_proof: RangeProof,
  equality_proof: EqualityProof,
  ...
}

Der Parameter amount_auditor ist der Übertragungsbetrag, der mit dem öffentlichen Verschlüsselungsschlüssel des Auditors verschlüsselt wurde. Jeder mit dem geheimen Schlüssel des Auditors kann amount_auditor entschlüsseln und damit die Transaktionsbeträge eines bestimmten Mints prüfen.

Wenn du dich für Sicherheit interessierst, ist dir möglicherweise eine potenzielle Schwachstelle in diesem Design aufgefallen. Angenommen, Alice erstellt einen Beweis für ihr verschlüsseltes Guthaben. Gleichzeitig sendet Bob Token an Alice, und seine Transaktion wird zuerst verarbeitet. Alices Transaktion wird dann abgelehnt, weil der erstellte Beweis den neu aktualisierten Kontostatus nicht berücksichtigt. Diese als Front-Running bekannte Angriffsart könnte Alices Konto unbrauchbar machen, wenn Bob das Netzwerk kontinuierlich mit Übertragungen an Alices Konto flutet. Um solche Angriffe zu verhindern, wird das verschlüsselte Guthaben eines Kontos in sein pending-Guthaben und sein available-Guthaben aufgeteilt:

Code
let ct_pending = PKE::encrypt(pke_pubkey, 10);
let ct_available = PKE::encryption(pke_pubkey, 50);

Account {
    mint: Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB,
    owner: 5vBrLAPeMjJr9UfssGbjUaBmWtrXTg2vZuMN6L4c8HE6,
    encryption_key: mpbpvs1LksLmdMhCEzyu5UEWEb3dsRPbB5,
    pending_balance: ct_pending,
    account_balance: ct_available,
    ...
}

Ausgehende Beträge werden vom verfügbaren Guthaben abgezogen, während eingehende Beträge dem ausstehenden Guthaben hinzugefügt werden.

Confidential Transfers sind noch nicht live. Auch die Solana-Dokumentation für die Abschnitte „Einführung“ und „Schnellstart“ wird noch entwickelt. Du kannst die verbleibenden Aufgaben für Confidential Transfers jedoch über dieses GitHub-Issue im solana-program-library-Repository verfolgen. Die Dokumentation enthält eine ausführliche Erläuterung des Protokolls. Du musst die darin behandelten Themen jedoch nicht verstehen, um die Erweiterung zu verwenden. Die allgemein verständliche Zusammenfassung von Confidential Transfers in den obigen Absätzen sollte mehr als ausreichen, um nach dem vollständigen Start mit Confidential Transfers loszulegen.

Kontoerweiterungen

Hier findest du Erklärungen zu den einzelnen Kontoerweiterungen:

1. Memo für eingehende Übertragungen erforderlich

Token-Erweiterungen enthalten eine Funktion, mit der Memos für alle eingehenden Übertragungen erzwungen werden können. Memos sind im Grunde kurze On-Chain-Nachrichten. Die Funktion ähnelt einer Notiz an einem Geschenk: Du weißt, von wem es stammt und warum du es erhalten hast.

2. Unveränderliche Eigentümerschaft

Die Erweiterung ImmutableOwner schafft eine zusätzliche Sicherheitsebene, da die Eigentümerschaft eines Kontos nicht neu zugewiesen werden kann. Dies erhöht die Sicherheit von Token-Transaktionen. Um das besser zu verstehen, müssen wir betrachten, wie Token im Standard-Token-Programm gespeichert werden. Wenn ein Token an eine Wallet gesendet werden soll, wird normalerweise zuerst ein Token-Konto erstellt, das den Token in der Wallet des Empfängers verwahrt. Dieses Konto wird aus einer Kombination der Mint-Adresse des Tokens und der Wallet-Adresse des Empfängers erstellt. Das funktioniert grundsätzlich gut. Allerdings kann die Eigentümerschaft des erstellten Kontos anschließend an eine andere Person übertragen werden. Mit der Immutable-Owner-Erweiterung in Token2022 ist das nicht mehr möglich.

3. Standardmäßiger Kontostatus

Mit der Erweiterung DefaultAccountState können Mint-Ersteller die Nutzung von Token einschränken, indem sie alle neuen Token-Konten standardmäßig einfrieren. Das bietet eine zusätzliche Kontrollebene für die Verteilung und Nutzung von Token. Du könntest einen Token dann zwar empfangen, aber nichts damit tun, bis die Token-Ersteller ihn freigeben.

4. Permanenter Delegierter

Mit Token-Erweiterungen kann für einen Token ein permanenter Kontodelegierter festgelegt werden. Du kannst damit eine Person oder Instanz ernennen, die dauerhaft berechtigt ist, Token eines Mints zu verwalten. Der Delegierte kann Token beispielsweise übertragen oder verbrennen. Wird diese Erweiterung verwendet, erhält die berechtigte Instanz uneingeschränkte Delegiertenrechte für jedes Konto dieses Mints. Das kann sehr gefährlich sein, da diese Person Token in jeder beliebigen Wallet übertragen oder verbrennen könnte.

Token-Erweiterungen im Vergleich zu Ethereum und Binance Smart Chain (BSC)

Ethereum und Binance Smart Chain (BSC) haben im DeFi-Bereich bereits erhebliche Fortschritte erzielt. Einige Funktionen der Token-Erweiterungen sind bei Token auf diesen Chains bereits verfügbar.

Ein Beispiel ist SafeMoon auf BSC. Für jede Transaktion wird eine Gebühr von 10 % erhoben, von der 5 % an andere SafeMoon-Inhaber verteilt werden. Das ermutigt Inhaber zum HODL. Auch vertrauliche Übertragungen mit Zero-Knowledge-Beweisen sind kein neues Konzept. Auf Ethereum haben Projekte wie Aztec Protocol private Transaktionen untersucht.

Solana hat diese Funktionen zwar etwas später bereitgestellt. Seine höhere Geschwindigkeit und niedrigeren Transaktionskosten schaffen jedoch ideale Bedingungen für Token-Erweiterungen und bieten damit einen Wettbewerbsvorteil gegenüber Ethereum und BSC.

Frühe Nutzer von Token-Erweiterungen

Entwickler, dApps und Wallets müssen sich an diese neuen Funktionen anpassen, um das Potenzial von Token-Erweiterungen voll auszuschöpfen. Hier sind einige frühe Anwendungsbeispiele des neuen Programms:

$BERN / BonkEarn

$BERN wurde von der $BONK-Community erstellt und ist einer der ersten Token, die auf dem Token-Extensions-Programm basieren. Derzeit nutzt $BERN die Transfer-Fee-Erweiterung, um bei allen Übertragungen eine Gebühr von 6,9 % zu erheben. Das $BERN-Team verwendet diese Gebühr, um sowohl Inhaber von $BERN als auch Inhaber von $BONK zu belohnen.

Vollständige Aufschlüsselung:

  • 5 % für die „Bernzy Bonus Fee“, mit der Inhaber von $BERN belohnt werden
  • 1 % für den Kauf und die Verbrennung von $BONK
  • 0,5 % für die Verbrennung von $BERN
  • 0,3 % für den Entwicklerfonds, um weitere Gebühren zu bezahlen und dem Liquiditätspool des Tokens Mittel hinzuzufügen.
  • 0,1 % für die $BONK DAO

Dezentrale Börsen

FluxBeam ist eine DEX auf Solana, die derzeit Token unterstützt, die mit dem Token-Extensions-Programm erstellt wurden.

Wallets

Backpack, eine beliebte Wallet-Erweiterung, unterstützt bereits Token-Erweiterungen , und Phantom wird die Funktion bald anbieten.

Tools

Tools zum Prägen deines eigenen Tokens mit dem Token-Extensions-Programm sind jetzt auf FluxBeam verfügbar.

RugCheck ist ein Tool zur Analyse von Solana-Token-Märkten und verschiedenen Token. Es unterstützt bereits die Prüfung von Token, die mit Token 2022 erstellt wurden.

Die Zukunft gestalten

Die Einführung von Token-Erweiterungen ist ein großer Fortschritt auf Solanas Web3-Weg. Sie bringt zahlreiche neue Funktionen und erweitert zugleich die Möglichkeiten bestehender Features. Die bahnbrechenden Erweiterungen geben Token-Erstellern nicht nur mehr Kontrolle und Flexibilität, sondern eröffnen auch neue Möglichkeiten im DeFi-Bereich. Andere Blockchains bieten zwar bereits ähnliche Funktionen. Doch Solanas Vorteile bei Geschwindigkeit und Kosten machen Token2022 zusammen mit seinen Funktionen zu einem starken Wettbewerber in der Kryptowelt. Während die Unterstützung durch frühe Nutzer und die breite Community weiter wächst, ist Token2022 bereit, das Solana-Ökosystem zu verbessern und auf die nächste Stufe zu heben.

Helius abonnieren

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