Was sind Confidential Balances?
Confidential Balances ist eine Token-2022-Erweiterung, mit der Sie Token zwischen token accounts übertragen können, ohne den Transferbetrag offenzulegen. Dies ist nützlich für datenschutzwahrende Transaktionen. Nur Transferbeträge und Token-Guthaben sind privat. Die Adressen der token accounts bleiben öffentlich.
- Protokollübersicht - Details zum zugrunde liegenden kryptografischen Protokoll
- Schnellstartanleitung - Einrichtung und grundlegende CLI-Befehle
- Confidential Balances Cookbook - Code-Snippets, die zeigen, wie Confidential Balances verwendet werden
Wie funktioniert es?
Die Confidential Balances-Erweiterung fügt dem Token Extension Program Anweisungen hinzu, mit denen Sie Token zwischen Konten übertragen können, ohne den Transferbetrag offenzulegen.
Der grundlegende Ablauf vertraulicher Token-Transfers ist wie folgt:
- Erstellen Sie einen mint account mit aktivierten Confidential Balances.
- Erstellen Sie token accounts mit aktivierten Confidential Balances für den Sender und den Empfänger.
- Prägen Sie Token auf das Sender-Konten.
- Einzahlen des öffentlichen Guthabens des Senders auf das vertrauliche ausstehende Guthaben.
- Anwenden des ausstehenden Guthabens des Senders auf das vertrauliche verfügbare Guthaben.
- Vertrauliches Übertragen von Token vom sender token account zum recipient token account.
- Anwenden des ausstehenden Guthabens des Empfängers auf das vertrauliche verfügbare Guthaben.
- Abheben des vertraulichen verfügbaren Guthabens des Empfängers auf das öffentliche Guthaben.
Prüferschlüssel
Ein Confidential Balances-Mint kann einen optionalen globalen ElGamal-Public-Key für Prüfer speichern. Wenn einer konfiguriert ist, enthält jede vertrauliche Übertragung den für Sender, Empfänger und Prüfer verschlüsselten Betrag. Der Übertragungsnachweis verifiziert, dass alle drei Chiffretexte denselben Betrag enthalten. Die Öffentlichkeit kann den Betrag weiterhin nicht lesen, aber der Inhaber des geheimen Prüferschlüssels kann Transferbeträge für diesen Mint entschlüsseln.
Die Confidential Balances-Autorität legt den Prüferschlüssel bei der Initialisierung der Erweiterung fest oder ändert ihn später mit UpdateMint. Die Autorität kann den Schlüssel rotieren oder löschen. Eine Rotation gilt nur für zukünftige Übertragungen. Bewahren Sie daher frühere geheime Schlüssel auf, wenn ein historischer Prüfzugang erforderlich ist. Prüferschlüssel gewähren Lesezugriff; sie autorisieren keine Token-Übertragungen und geben nicht das vollständige vertrauliche Guthaben eines Kontos preis.
Beispiele zur Einrichtung und Rotation finden Sie unter Einen Prüfer konfigurieren. Wallets, Explorer, Börsen und Compliance-Anbieter sollten außerdem die Integrationshinweise für Prüfer lesen.
Weitere Details zu den Schritten im vertraulichen Transfer-Ablauf finden Sie auf den entsprechenden Seiten:
Mint Account erstellen
So erstellen Sie einen mint account mit aktivierten Confidential Balances
Token Account erstellen
So konfigurieren Sie ein token account mit aktivierten Confidential Balances
Token einzahlen
So zahlen Sie Token auf das vertrauliche ausstehende Guthaben ein
Ausstehendes Guthaben anwenden
So wenden Sie ausstehendes Guthaben auf das verfügbare vertrauliche Guthaben an
Token abheben
So heben Sie Token vom vertraulichen verfügbaren Guthaben ab
Token übertragen
So übertragen Sie Token vertraulich zwischen token accounts
Integrationsleitfaden
Wie Wallets, Explorer und Börsen Confidential Balances-Token unterstützen können
Emittentenleitfaden
So geben Sie ein Confidential Balances-Token aus und verwalten es (Genehmigungsrichtlinie, Prüfer, Fee, Mint und Burn)
Das folgende Diagramm zeigt eine detaillierte Abfolge des grundlegenden Ablaufs für vertrauliche Token-Transfers:
Confidential Balances Anweisungen
Die vollständige Liste der Confidential Balances-Erweiterungs- Anweisungen lautet wie folgt:
| Instruction | Beschreibung |
|---|---|
InitializeMint | Aktiviert Confidential Balances auf einem mint account. Diese Anweisung muss in derselben Transaktion wie die TokenInstruction::InitializeMint-Anweisung enthalten sein. |
UpdateMint | Aktualisiert die Kontogenehmigungsrichtlinie des Mints sowie den optionalen globalen ElGamal-Public-Key für Prüfer. |
ConfigureAccount | Aktiviert Confidential Balances auf einem token account. |
ApproveAccount | Genehmigt ein token account für Confidential Balances, wenn der Mint eine Genehmigung für neue token accounts erfordert. |
EmptyAccount | Leert die ausstehenden und verfügbaren vertraulichen Salden, um das Schließen eines token account zu ermöglichen. |
Deposit | Wandelt das öffentliche Token-Guthaben in ein ausstehendes vertrauliches Guthaben um. |
Withdraw | Wandelt verfügbares vertrauliches Guthaben zurück in öffentliches Guthaben um. |
Transfer | Überträgt Token vertraulich zwischen token accounts. |
ApplyPendingBalance | Wandelt ausstehende Guthaben nach Einzahlungen oder Transfers in verfügbare Guthaben um. |
EnableConfidentialCredits | Ermöglicht einem token account, vertrauliche Token-Transfers zu empfangen. |
DisableConfidentialCredits | Blockiert eingehende vertrauliche Transfers, erlaubt jedoch weiterhin öffentliche Transfers. |
EnableNonConfidentialCredits | Ermöglicht einem token account, öffentliche Token-Transfers zu empfangen. |
DisableNonConfidentialCredits | Blockiert reguläre Transfers, sodass Konten nur vertrauliche Transfers empfangen können. |
TransferWithFee | Überträgt Token vertraulich zwischen token accounts mit einer Gebühr. |
ConfigureAccountWithRegistry | Alternative Methode zur Konfiguration von token accounts für Confidential Balances unter Verwendung eines ElGamalRegistry-Kontos anstelle eines VerifyPubkeyValidity-Nachweises. |
Is this page helpful?