PSP-22 (Polkadot) Börsenlexikon Vorheriger Begriff: Prysm Nächster Begriff: PSP-34 (Polkadot)

Eine Standard-Schnittstelle für fungible Token in der Polkadot-Ökosystem, die Interoperabilität von WASM-Smart-Contracts auf Substrate-Parachains ermöglicht

PSP-22 ist ein Token-Standard auf der Polkadot- und Substrate-basierten Smart-Contract-Plattform Phala Network bzw. ink!, der sich funktional am bekannten ERC-20-Standard aus dem Ethereum-Ökosystem orientiert. Der Begriff „PSP“ steht für Pink! Standard Proposal, wobei „22“ die laufende Nummer des Vorschlags darstellt. PSP-22 definiert einheitliche Schnittstellen und Verhaltensweisen für fungible Token (FTs), um deren Interoperabilität, Sicherheit und Wiederverwendbarkeit im Polkadot-Ökosystem sicherzustellen.

Einordnung im Kontext von Substrate und ink!

Die Grundlage für PSP-22 bildet die Smart-Contract-Plattform ink!, die von Parity Technologies als domänenspezifische Sprache für Substrate-basierte Blockchains entwickelt wurde. Substrate selbst ist ein modulares Blockchain-Framework, das für die Erstellung anpassbarer Blockchains innerhalb des Polkadot-Ökosystems dient. Ink! erlaubt die Entwicklung von Smart Contracts in der Programmiersprache Rust, wobei Token-Standards wie PSP-22 als wiederverwendbare Module eingebunden werden können.

Die Definition und Pflege der PSP-Standards erfolgt durch das OpenBrush-Projekt, das ein Äquivalent zu OpenZeppelin für ink! darstellt. OpenBrush stellt standardisierte, geprüfte Implementierungen von Smart-Contract-Bibliotheken für ink! zur Verfügung.

Technische Struktur und Funktionen von PSP-22

PSP-22 definiert die Grundfunktionen, die ein fungibler Token-Contract bereitstellen muss. Diese orientieren sich eng am ERC-20-Standard von Ethereum, sind jedoch in Rust und ink!-kompatibler Weise umgesetzt. Die wichtigsten Schnittstellen und Funktionen umfassen:

  1. total_supply()
    Gibt die gesamte im Umlauf befindliche Menge des Tokens zurück.

  2. balance_of(account: AccountId)
    Gibt das aktuelle Guthaben eines bestimmten Kontos zurück.

  3. transfer(to: AccountId, value: Balance)
    Überträgt eine bestimmte Anzahl von Token vom Absender an einen Empfänger.

  4. approve(spender: AccountId, value: Balance)
    Autorisiert einen Dritten, eine bestimmte Menge an Token vom Konto des Absenders abzuziehen.

  5. allowance(owner: AccountId, spender: AccountId)
    Gibt an, wie viele Token ein Dritter noch vom Konto eines bestimmten Inhabers abziehen darf.

  6. transfer_from(from: AccountId, to: AccountId, value: Balance)
    Führt eine Token-Übertragung im Auftrag des ursprünglichen Tokeninhabers durch, wenn dieser zuvor seine Zustimmung erteilt hat.

Zusätzlich zu diesen Funktionen definiert PSP-22 auch Ereignisse (Events), die ausgelöst werden, z. B. bei erfolgreichen Übertragungen oder Genehmigungen, um externen Systemen (wie Block-Explorern oder Wallets) Zustandsänderungen mitzuteilen.

Erweiterungen und Modularität

Einer der Vorteile von PSP-22 gegenüber älteren Token-Standards liegt in seiner Modularität und Erweiterbarkeit. OpenBrush bietet zahlreiche Erweiterungsmodule, die PSP-22 um zusätzliche Funktionalitäten ergänzen können. Beispiele hierfür sind:

  • Mintable: Ermöglicht das Schaffen neuer Token durch autorisierte Akteure.

  • Burnable: Erlaubt das Vernichten von Token zur Reduktion der Gesamtmenge.

  • Pausable: Erlaubt das temporäre Aussetzen kritischer Funktionen durch einen Administrator.

  • Capped: Begrenzt die maximale Menge an Token, die jemals erzeugt werden dürfen.

Diese modularen Erweiterungen ermöglichen es Entwicklern, maßgeschneiderte Token-Verträge zu erstellen, ohne dabei Sicherheitsstandards oder Interoperabilität aufzugeben.

Unterschiede zu ERC-20 und Besonderheiten im ink!-Ökosystem

Obwohl PSP-22 stark an ERC-20 angelehnt ist, gibt es einige wesentliche Unterschiede, die sich aus der Architektur von ink! und Substrate ergeben:

  • Sprachspezifität: PSP-22 ist in Rust implementiert und nutzt die Makros und Datenstrukturen von ink!, im Gegensatz zu ERC-20, das typischerweise in Solidity geschrieben wird.

  • Zugriffssteuerung: ink! erfordert explizitere Definitionen von Sichtbarkeiten und Speicherstrukturen, was eine genauere Kontrolle und erhöhte Typsicherheit erlaubt.

  • Gasmodelle: Die Kostenstruktur für Smart-Contract-Aufrufe unterscheidet sich von Ethereum. Substrate verwendet sogenannte „Weight“-Modelle statt Gas, was sich auch auf die Implementierung von PSP-22 auswirkt.

  • On-Chain-Governance und Parachains: PSP-22-Token können auf spezifischen Parachains innerhalb von Polkadot ausgeführt werden. Dadurch können Governance-Mechanismen oder Chain-spezifische Regeln direkt in die Token-Logik eingebunden werden.

Praktische Anwendungsfälle

PSP-22 kommt in einer Vielzahl von Szenarien zum Einsatz, etwa bei:

  1. Staking-Token: In Proof-of-Stake-basierten Projekten innerhalb von Polkadot kann PSP-22 zur Repräsentation gestakter Werte genutzt werden.

  2. Stablecoins: Projekte können auf PSP-22 basierende Stablecoins emittieren, die durch Fiat oder andere digitale Werte gedeckt sind.

  3. Governance-Token: Viele dezentrale Organisationen nutzen PSP-22-Token zur Abbildung von Stimmrechten.

  4. Zahlungsabwicklung: In DApps (dezentralen Anwendungen) können PSP-22-Token als universelles Zahlungsmittel integriert werden.

  5. Brücken-Token (Wrapped Assets): Über Brücken zwischen Polkadot und anderen Chains können ERC-20-Token in PSP-22-Token überführt werden.

Sicherheit und Standardisierung

PSP-22 wird regelmäßig auf Sicherheitsaspekte überprüft, insbesondere durch Community-Audits und Beiträge aus dem OpenBrush-Projekt. Durch die Verwendung standardisierter Schnittstellen können externe Audits effizienter durchgeführt werden, da bekannte Angriffsmuster und Implementierungsfehler leichter erkannt werden.

Ein weiterer Vorteil liegt in der Verwendung von generischen Tests und formalen Verifikationen, die für Rust-basierte Smart Contracts besser unterstützt werden als für einige andere Sprachen wie Solidity.

Fazit

PSP-22 stellt den zentralen Token-Standard für fungible Token im ink!-basierten Smart-Contract-Ökosystem von Substrate und Polkadot dar. Er ist funktional vergleichbar mit dem etablierten ERC-20-Standard von Ethereum, bietet jedoch durch die Architektur von ink!, Rust und Substrate eine erhöhte Modularität, Typsicherheit und Erweiterbarkeit. Die breite Anwendbarkeit in dezentralen Finanzanwendungen, Governance-Systemen und interoperablen Brückenlösungen macht PSP-22 zu einem fundamentalen Baustein für die Tokenisierung innerhalb des Polkadot-Ökosystems. Durch standardisierte Schnittstellen, formale Sicherheit und eine aktive Entwicklergemeinschaft bietet PSP-22 eine zukunftssichere Grundlage für die Entwicklung robuster und interoperabler Blockchain-Anwendungen.