Skip to main content
Ein privates Wallet besteht aus einem Solana-Schlüsselpaar zum Signieren, einem Nullifier-Schlüssel und einem Anzeigeschlüssel zur Verschlüsselung – zusammen bilden diese Schlüssel das geschützte Schlüsselpaar. Ihr Schlüsselmanagement hält das geschützte Schlüsselpaar. Der Wallet-Code verwendet die Privacy Interface und SDK, um private Transaktionen zu erstellen. Schlüsselmanagement und das Privacy SDK verbinden sich über die Privacy Interface. Das Privacy SDK ruft die Privacy API auf. Die Privacy API übermittelt die Transaktion an Solana. Die Integration ermöglicht Ihren Nutzern Folgendes:
  1. Erstellen Sie ein selbstverwaltetes privates Wallet
  2. Empfangen Sie private Überweisungen mit einer Solana-Adresse
  3. Hinterlegen Sie Token in einem privaten Guthaben
  4. Senden Sie privat an eine Solana-Adresse
  5. Abheben an jede Solana-Adresse
  6. Entschlüsseln Sie private Guthaben und Transaktionshistorie lokal
Die Integration umfasst:
  1. Geschütztes Schlüsselpaar – in Ihrem Schlüsselmanagement zur Verschlüsselung
  2. Privacy Interface und SDK – um private Transaktionen zu erstellen
  3. Benutzerabläufe – zur Integration in Ihr Wallet

Kontext für Ihr KI

Add a Private Wallet to an existing Solana wallet

In Cursor öffnen
1

Integrieren Sie das geschützte Schlüsselpaar

Eine Integration privater Wallets fügt Ihrem Schlüsselmanagement ein geschütztes Schlüsselpaar hinzu. Ein geschütztes Schlüsselpaar signiert, verschlüsselt und entschlüsselt Transaktionen.Das geschützte Schlüsselpaar ist ein Bündel aus den Signatur-, Nullifier- und Anzeigeschlüsseln.
  • Signaturschlüssel: Das Ed25519 Solana-Schlüsselpaar der Wallet zum Signieren von Transaktionen.
  • Anzeigeschlüssel: Ein P-256 Schlüsselpaar, das zum Verschlüsseln und Entschlüsseln von Transaktionen verwendet wird.
  • Nullifier-Schlüssel:
Eine Wallet kann das geschützte Schlüsselpaar auf zwei Arten erstellen:
  1. Für seed-basierte Wallets wählen Sie Ableiten aus Seed-Phrase.
  2. Für nicht seed-basierte Wallets wählen Sie Ableiten aus EdDSA-Signatur.
Eine Seed-basierte Wallet leitet das geschützte Schlüsselpaar aus einem BIP-39 Mnemonic und einem Kontoindex ab (0, 1, …).Jeder Kontoindex ordnet ein Solana-Schlüsselpaar einem geschützten Schlüsselpaar zu. Sie können das geschützte Schlüsselpaar auf die gleiche Weise wiederherstellen, wie Sie das Solana-Schlüsselpaar wiederherstellen.Zum Beispiel:
  • Konto 0: Solana-Schlüsselpaar 0 und geschütztes Schlüsselpaar 0
  • Konto 1: Solana-Schlüsselpaar 1 und geschütztes Schlüsselpaar 1
Der geschützte Signaturschlüssel ist das Solana Ed25519-Schlüssel des Kontos. Die Nullifier- und Anzeigeschlüssel sind zusätzliche Schlüssel, die aus demselben Seed abgeleitet werden.
Beispielimplementierung: TypeScript-Beispiel · Rust-Beispiel
2

Integrieren Sie die Privacy Interface und SDK

Die Privacy Interface ermöglicht es Ihrem Code, das Privacy SDK zu verwenden, um private Transaktionen zu erstellen, ohne direkt auf das Schlüsselmater zuzugreifen. Ihr Schlüsselmanagement implementiert die Privacy Interface in zwei Teilen.
  1. Signing Interface zum Erstellen von Transaktionen mit dem Privacy SDK. Quellansicht: TypeScript/ Rust
  2. Verschlüsselungs- & Entschlüsselungsinterface. Quellansicht: TypeScript/ Rust
Die Privacy Interface ist zustandslos und speichert daher keine Guthaben oder Transaktionshistorie. Zur Leistungssteigerung empfehlen wir, Benutzerkonten und Transaktionshistorie lokal zwischenspeichern.

Zur Beweiserzeugung

Die Erzeugung von Zero-Knowledge-Beweisen erfordert Klartext-Eingaben der vollständigen Benutzertransaktionsdaten und Nullifierschlüssel.Derzeit ist die serverseitige Beweiserzeugung über die Standard-Helius-RPC-URL verfügbar.Lokale Beweiserzeugung kommt bald. Ende-zu-Ende-verschlüsselte Server-Beweiserzeugung auf AWS Nitro ist vor dem Start des Mainnets geplant.
3

Integrieren Sie Benutzerabläufe

Erstellen Sie ein privates Wallet

Ein privates Wallet wird in zwei Schritten erstellt:
  1. Ableiten des geschützten Schlüsselpaares
  2. Registrieren der Solana-Adresse im On-Chain-Register.
Das Register verknüpft den öffentlichen Signaturschlüssel mit den Nullifier- und Anzeigeschlüsseln – zusammen bilden diese öffentlichen Schlüssel die geschützte Adresse.
Jeder Registereintrag ist ein PDA, das vom verwaltet wird, das jeder einsehen kann, um zu überprüfen, ob eine Solana-Adresse private Überweisungen empfangen kann.

Synchronisieren Sie privates Guthaben & Transaktionshistorie

Die Guthabensynchronisierung ruft verschlüsselten Status vom RPC ab und entschlüsselt ihn im Wallet.Das RPC entschlüsselt nicht. Nur der Besitzer kann ein privates Guthaben mit einem Anzeigeschlüssel entschlüsseln.
Eine Wallet sollte Guthaben entschlüsseln und aktualisieren, bevor private Transaktionen erfolgen und wann immer es Backfills ausführt: Beim Entsperren der Wallet, Öffnen der privaten Wallet, App-Wiederaufnahme, Netzwerk-Wiederverbindung, Stream-Lücken oder Wallet-Wiederherstellung.

Lesen Sie ein privates Guthaben

Lesen Sie private Transaktionshistorie

Einzahlung auf ein privates Guthaben

Nutzer können auf zwei Arten auf ein privates Guthaben einzahlen:
  1. Aufladen von einem Fiat-Guthaben zu einem privaten Kryptoguthaben
  2. Einzahlung von einem öffentlichen SPL-Konto zu einem privaten Guthaben
Aufladen und Einzahlung unterscheiden sich in ihrer Datenschutzgarantie. Wir empfehlen, für besseren Datenschutz das Aufladen über die Einzahlung zu verwenden.

Auf-/Ab-Rampe

Auf-/Ab-Rampe Fiat direkt zu und von einem privaten Guthaben.

Einzahlung

Einzahlung von einem öffentlichen Kryptoguthaben.

Private Überweisungen

Benutzer können private Überweisungen an jede Solana-Wallet-Adresse senden.Für jede private Überweisung überprüft das Privacy SDK die Wallet-Adresse im On-Chain-Register, um festzustellen, ob der Empfänger ein privates Wallet hat.Das Privacy SDK kann eine private Überweisung zu einer Auszahlung von privat zu öffentlich auflösen, wenn der Empfänger kein privates Wallet hat.
Wir empfehlen, die Transaktion in der Benutzeroberfläche als Auszahlung zu kennzeichnen, um sicherzustellen, dass der Benutzer nicht versehentlich auf ein öffentliches Guthaben auszahlt.

Private Überweisung

Überweisen Sie privat auf ein privates Guthaben.

Abheben auf ein öffentliches Guthaben

Abhebungen können auf zwei Arten verwendet werden:
  1. Als Rückfall für private Überweisungen an Empfänger, die kein privates Wallet haben, oder
  2. Direkte Abhebung auf ein öffentliches SPL-Token-Konto.
Für Abhebungen empfehlen wir, deutlich zu kennzeichnen, dass der Benutzer das private Guthaben verlässt, ähnlich wie bei einer Seed-Phrase oder dem Export eines privaten Schlüssels.

Abheben

Abheben auf ein öffentliches Kryptoguthaben.

Didn’t find what you were looking for?

Reach out! Telegram | E-Mail | Contact