PSP-34 (Polkadot) Börsenlexikon Vorheriger Begriff: PSP-22 (Polkadot) Nächster Begriff: Qualified Custodian
Eine Standard-Schnittstelle für nicht-fungible Token (NFTs) im Polkadot-Ökosystem, die die Erstellung und Interoperabilität von einzigartigen digitalen Assets auf Substrate-Parachains ermöglicht
PSP-34 ist ein Token-Standard für nicht-fungible Token (NFTs) im Ökosystem von ink!, der Smart-Contract-Plattform für Substrate- und Polkadot-basierte Blockchains. Er bildet das funktionale Pendant zum bekannten ERC-721-Standard aus dem Ethereum-Umfeld und dient der Definition von Schnittstellen und Interaktionen für digitale Unikate wie digitale Kunstwerke, Sammlerstücke, Spielfiguren oder Eigentumsnachweise auf der Blockchain.
PSP steht für Pink! Standard Proposal, wobei die Nummer 34 die laufende Kennung des Vorschlags bezeichnet. Der Standard wird im Rahmen des OpenBrush-Projekts gepflegt, das standardisierte ink!-Vertragsmodule analog zu OpenZeppelin für Solidity bereitstellt.
Einordnung im Substrate- und ink!-Kontext
Im Gegensatz zu Ethereum, das auf die Programmiersprache Solidity setzt, basiert das Polkadot-Ökosystem auf Substrate, einem modularen Blockchain-Framework. Für Smart-Contract-Funktionalität innerhalb von Substrate-Parachains wird ink! verwendet, eine domänenspezifische Sprache auf Basis von Rust. Innerhalb dieses Kontexts ermöglicht PSP-34 die Erstellung, Verwaltung und Übertragung von NFTs mit standardisierten Methoden, wobei Entwickler dank der Modularität von OpenBrush zusätzliche Erweiterungen einbinden können.
Grundlegende Eigenschaften von PSP-34
PSP-34 definiert eine standardisierte API für nicht-fungible Token, die auf individuellen, eindeutig identifizierbaren Objekten basieren. Die wichtigsten Grundfunktionen von PSP-34 umfassen:
-
owner_of(id: Id)
Gibt die Adresse zurück, die Eigentümer des NFTs mit der angegebenen ID ist. -
balance_of(owner: AccountId)
Gibt die Anzahl der NFTs zurück, die ein bestimmter Account besitzt. -
transfer(to: AccountId, id: Id, data: Vec<u8>)
Überträgt einen bestimmten Token an eine andere Adresse. Optional können zusätzliche Daten mitgegeben werden. -
approve(to: AccountId, id: Id)
Erlaubt einem Dritten, einen bestimmten Token im Namen des Eigentümers zu transferieren. -
get_approved(id: Id)
Gibt zurück, wer derzeit berechtigt ist, den angegebenen Token zu transferieren. -
set_approval_for_all(operator: AccountId, approved: bool)
Aktiviert oder deaktiviert eine globale Genehmigung für einen Operator, alle NFTs eines Eigentümers zu verwalten. -
is_approved_for_all(owner: AccountId, operator: AccountId)
Gibt zurück, ob ein Operator generelle Berechtigung für alle NFTs eines Eigentümers hat.
Darüber hinaus sind Events wie Transfer, Approval oder ApprovalForAll definiert, die externen Diensten das Nachverfolgen von Änderungen im Tokenbesitz ermöglichen.
Datenstruktur und ID-Design
Im Gegensatz zu ERC-721, wo Token-IDs als uint256 definiert sind, verwendet PSP-34 den abstrakteren Typ Id, der unterschiedliche Darstellungen erlaubt:
-
U8,U16,U32,U64,U128für numerische IDs -
Bytes(Vec<u8>)für beliebige binäre Repräsentationen
Diese Flexibilität ermöglicht es, Token-IDs spezifisch für den Anwendungsfall zu gestalten – etwa durch kodierte Seriennummern, Hashes oder zusammengesetzte Schlüssel.
Erweiterungen und Modularität
Der PSP-34-Standard lässt sich durch OpenBrush-Module um zusätzliche Funktionalitäten erweitern. Häufig genutzte Erweiterungen sind:
-
Mintable: Ermöglicht das Erzeugen neuer NFTs durch autorisierte Accounts.
-
Burnable: Ermöglicht das Löschen von NFTs, z. B. zur Entwertung oder Rücknahme.
-
Enumerable: Erlaubt die Auflistung aller NFTs und ist insbesondere für Marktplätze relevant.
-
Metadata: Ermöglicht die Verknüpfung mit beschreibenden Informationen wie Name, Bild-URI oder Attributen.
Diese Erweiterungen basieren auf definierten Traits (Interfaces), die je nach Bedarf in den Smart Contract integriert werden können. Dadurch lässt sich die Komplexität eines NFT-Systems gezielt steuern.
Unterschiede zu ERC-721 und Vorteile im ink!-Ökosystem
Obwohl PSP-34 funktional sehr eng an ERC-721 angelehnt ist, ergeben sich durch die Architektur von ink! und Substrate einige spezifische Unterschiede und Vorteile:
-
Sprachspezifische Sicherheit: Rust gilt als speichersichere Sprache, was in Kombination mit ink! zu geringerer Anfälligkeit für typische Smart-Contract-Fehler wie Buffer Overflows oder Nullreferenzen führt.
-
Modularität: Die Trennung zwischen Core-Standard und Erweiterungen erleichtert die Entwicklung maßgeschneiderter NFT-Systeme, ohne unnötigen Overhead zu erzeugen.
-
Zukunftsfähige ID-Struktur: Der abstrakte ID-Typ
Iderlaubt mehr Flexibilität bei der Definition und Verarbeitung von Token-Identifikatoren, was insbesondere für komplexe NFT-Ökosysteme wie Spiele oder Supply-Chain-Anwendungen von Vorteil ist. -
Substrate-Kompatibilität: PSP-34-Verträge sind direkt in Parachains integrierbar, wodurch sie von nativen Features wie On-Chain-Governance, Cross-Chain-Messaging (XCMP) oder Chain-spezifischer Logik profitieren.
Praktische Anwendungsfälle
PSP-34 wird in zahlreichen Anwendungsfeldern eingesetzt, etwa:
-
Digitale Kunstwerke: Künstler können eindeutige digitale Werke als NFTs emittieren, die über Marktplätze gehandelt werden.
-
Gaming-Assets: Spielinterne Gegenstände, Avatare oder Spielfortschritte lassen sich als unverwechselbare NFTs abbilden.
-
Zertifikate und Nachweise: Universitäten, Organisationen oder Events können Teilnehmerzertifikate fälschungssicher als NFT ausgeben.
-
Tokenisierte Rechte: Urheberrechte, Nutzungsrechte oder exklusive Zugangsrechte lassen sich durch NFTs im PSP-34-Format darstellen.
-
Logistik und Supply Chain: Die eindeutige Nachverfolgbarkeit physischer Objekte kann durch PSP-34-Token auf der Blockchain gespiegelt werden.
Sicherheit und Standardisierung
Die Implementierung von PSP-34 im Rahmen von OpenBrush folgt festen Sicherheitsstandards. Durch Community-Audits, standardisierte Tests und formale Verifikationen wird ein hohes Maß an Zuverlässigkeit erreicht. Entwickler profitieren von getesteten Templates, klar dokumentierten Interfaces und modularer Architektur.
Die Nutzung von ink! als Typsystem erlaubt zudem eine feingranulare Kontrolle über Sichtbarkeiten, Berechtigungen und Speicherzugriffe innerhalb des Contracts, was das Risiko typischer Fehler reduziert.
Fazit
PSP-34 stellt den führenden NFT-Standard im ink!-basierten Substrate-Ökosystem dar und bildet das funktionale Gegenstück zum ERC-721-Standard auf Ethereum. Durch die Modularität von OpenBrush, die Sprachsicherheit von Rust und die Flexibilität des ID-Systems eignet sich PSP-34 für vielfältige Anwendungen im Bereich der digitalen Einzigartigkeit. Die nahtlose Integration in Polkadot-Parachains sowie die Erweiterbarkeit durch standardisierte Module machen PSP-34 zu einem zukunftsfähigen und sicheren Standard für nicht-fungible Token in einem interoperablen Blockchain-Ökosystem.