Wat zijn Confidential Balances?
Confidential Balances is een Token-2022-extensie waarmee je tokens kunt overdragen tussen token accounts zonder het overdrachtsbedrag te onthullen. Dit is nuttig voor privacybeschermende transacties. Alleen overdrachtsbedragen en tokensaldi zijn privé. Token account-adressen blijven openbaar.
- Protocoloverzicht - Details over het onderliggende cryptografische protocol
- Snelstartgids - Installatie en basis CLI-opdrachten
- Confidential Balances Cookbook - Codefragmenten die laten zien hoe je Confidential Balances gebruikt
Hoe werkt het?
De Confidential Balances-extensie voegt instructies toe aan het Token Extensions Program waarmee je tokens tussen accounts kunt overdragen zonder het overdrachtsbedrag te onthullen.
De basisstroom van vertrouwelijke tokenoverdrachten is als volgt:
- Maak een mint account aan met Confidential Balances ingeschakeld.
- Maak token accounts aan met Confidential Balances ingeschakeld voor de verzender en ontvanger.
- Mint tokens naar het account van de verzender.
- Stort het publieke saldo van de verzender naar het vertrouwelijk uitstaand saldo.
- Pas het uitstaande saldo van de verzender toe op het vertrouwelijk beschikbaar saldo.
- Draag tokens vertrouwelijk over van het token account van de verzender naar het token account van de ontvanger.
- Pas het uitstaande saldo van de ontvanger toe op het vertrouwelijk beschikbaar saldo.
- Hef het vertrouwelijk beschikbaar saldo van de ontvanger op naar het publiek saldo.
Auditorsleutels
Een Confidential Balances-mint kan een optionele globale auditor ElGamal-openbare sleutel opslaan. Wanneer er een is geconfigureerd, bevat elke vertrouwelijke overdracht het bedrag versleuteld voor de verzender, ontvanger en auditor. Het overdrachtsbewijs verifieert dat alle drie de cipherteksten hetzelfde bedrag bevatten. Het publiek kan het bedrag nog steeds niet lezen, maar de houder van de geheime auditorsleutel kan overdrachtsbedragen voor die mint ontsleutelen.
De Confidential Balances-autoriteit stelt de auditorsleutel in bij het initialiseren van de extensie of wijzigt deze later met UpdateMint. De autoriteit kan de sleutel roteren of wissen. Een rotatie geldt alleen voor toekomstige overdrachten, bewaar dus eerdere geheime sleutels wanneer historische audittoegang vereist is. Auditorsleutels bieden leestoegang; ze machtigen geen tokenoverdrachten en onthullen het volledige vertrouwelijke saldo van een account niet.
Voor voorbeelden van instelling en rotatie, zie Een auditor configureren. Wallets, verkenners, exchanges en compliance-providers moeten ook de richtlijnen voor auditorintegratie raadplegen.
Voor meer details over de stappen in de vertrouwelijke overdrachtsstroom, zie de bijbehorende pagina's:
Mint Account Aanmaken
Een mint account aanmaken met Confidential Balances ingeschakeld
Token Account Aanmaken
Een token account configureren met Confidential Balances ingeschakeld
Tokens Storten
Hoe je tokens stort naar het vertrouwelijk uitstaand saldo
Uitstaand Saldo Toepassen
Hoe je het uitstaande saldo toepast op het vertrouwelijk beschikbaar saldo
Tokens Opnemen
Hoe je tokens opneemt van het vertrouwelijk beschikbaar saldo
Tokens Overdragen
Hoe je tokens vertrouwelijk overdraagt tussen token accounts
Integratiegids
Hoe wallets, verkenners en exchanges Confidential Balances-tokens kunnen ondersteunen
Uitgeversgids
Hoe je een Confidential Balances-token uitgeeft en beheert (goedkeuringsbeleid, auditors, kosten, mint en burn)
Het onderstaande diagram toont een gedetailleerde volgorde van de basisstroom voor vertrouwelijke token-overdrachten:
Confidential Balances-instructies
De volledige lijst van Confidential Balances-extensie instructies is als volgt:
| Instructie | Beschrijving |
|---|---|
InitializeMint | Schakelt Confidential Balances in op een mint account. Deze instructie moet worden opgenomen in dezelfde transactie als de TokenInstruction::InitializeMint-instructie. |
UpdateMint | Werkt het goedkeuringsbeleid van de mint-account en de optionele globale auditor ElGamal-openbare sleutel bij. |
ConfigureAccount | Schakelt Confidential Balances in op een token account. |
ApproveAccount | Keurt een token account goed voor Confidential Balances als de mint goedkeuring vereist voor nieuwe token accounts. |
EmptyAccount | Leegt de openstaande en beschikbare vertrouwelijke saldi om het sluiten van een token account mogelijk te maken. |
Deposit | Converteert het publieke tokensaldo naar een openstaand vertrouwelijk saldo. |
Withdraw | Converteert het beschikbare vertrouwelijke saldo terug naar een publiek saldo. |
Transfer | Draagt tokens vertrouwelijk over tussen token accounts. |
ApplyPendingBalance | Converteert het openstaande saldo naar een beschikbaar saldo na stortingen of overdrachten. |
EnableConfidentialCredits | Staat een token account toe om vertrouwelijke token-overdrachten te ontvangen. |
DisableConfidentialCredits | Blokkeert inkomende vertrouwelijke overdrachten maar staat publieke overdrachten nog steeds toe. |
EnableNonConfidentialCredits | Staat een token account toe om publieke token-overdrachten te ontvangen. |
DisableNonConfidentialCredits | Blokkeert reguliere overdrachten zodat het account alleen vertrouwelijke overdrachten ontvangt. |
TransferWithFee | Draagt tokens vertrouwelijk over tussen token accounts met een vergoeding. |
ConfigureAccountWithRegistry | Alternatieve manier om token accounts te configureren voor Confidential Balances met behulp van een ElGamalRegistry-account in plaats van een VerifyPubkeyValidity-bewijs. |
Is this page helpful?