Czym są Poufne Salda?
Poufne Salda to rozszerzenie Token-2022, które umożliwia przesyłanie tokenów między token accounts bez ujawniania kwoty transferu. Jest to przydatne w przypadku transakcji zachowujących prywatność. Prywatne są tylko kwoty transferów i salda tokenów. Adresy token accounts pozostają publiczne.
- Przegląd protokołu - Szczegóły dotyczące bazowego protokołu kryptograficznego
- Przewodnik szybkiego startu - Konfiguracja i podstawowe polecenia CLI
- Confidential Balances Cookbook - Fragmenty kodu pokazujące, jak używać Poufnych Sald
Jak to działa?
Rozszerzenie Poufnych Sald dodaje instrukcje do programu Token Extension, które umożliwiają przesyłanie tokenów między kontami bez ujawniania kwoty transferu.
Podstawowy przebieg poufnych transferów tokenów jest następujący:
- Utwórz mint account z włączonymi Poufnymi Saldami.
- Utwórz token accounts z włączonymi Poufnymi Saldami dla nadawcy i odbiorcy.
- Wyemituj tokeny na konto nadawcy.
- Wpłać publiczne saldo nadawcy na poufne saldo oczekujące.
- Zastosuj saldo oczekujące nadawcy jako poufne saldo dostępne.
- Poufnie prześlij tokeny z token account nadawcy do token account odbiorcy.
- Zastosuj saldo oczekujące odbiorcy jako poufne saldo dostępne.
- Wypłać poufne saldo dostępne odbiorcy na saldo publiczne.
Klucze audytora
Mint account z Poufnymi Saldami może przechowywać opcjonalny globalny klucz publiczny ElGamal audytora. Gdy jest skonfigurowany, każdy poufny transfer zawiera kwotę zaszyfrowaną dla nadawcy, odbiorcy i audytora. Dowód transferu weryfikuje, że wszystkie trzy szyfrogramy zawierają tę samą kwotę. Publiczność nadal nie może odczytać kwoty, ale posiadacz tajnego klucza audytora może odszyfrować kwoty transferów dla danego minta.
Uprawnienia Poufnych Sald ustawiają klucz audytora podczas inicjalizacji rozszerzenia lub zmieniają go później za pomocą UpdateMint. Uprawnienia mogą rotować lub usuwać klucz. Rotacja dotyczy tylko przyszłych transferów, dlatego należy zachować poprzednie tajne klucze, gdy wymagany jest historyczny dostęp do audytu. Klucze audytora zapewniają dostęp do odczytu; nie autoryzują transferów tokenów ani nie ujawniają pełnego poufnego salda konta.
Przykłady konfiguracji i rotacji można znaleźć w sekcji Konfiguracja audytora. Portfele, eksploratory, giełdy i dostawcy usług compliance powinni również zapoznać się z wytycznymi dotyczącymi integracji audytora.
Aby uzyskać więcej informacji na temat kroków w procesie poufnego transferu, zapoznaj się z odpowiednimi stronami:
Utwórz Mint Account
Jak utworzyć mint account z włączonymi Poufnymi Saldami
Utwórz Token Account
Jak skonfigurować token account z włączonymi Poufnymi Saldami
Wpłać tokeny
Jak wpłacić tokeny na poufne saldo oczekujące
Zastosuj saldo oczekujące
Jak zastosować saldo oczekujące jako dostępne saldo poufne
Wypłać tokeny
Jak wypłacić tokeny z poufnego salda dostępnego
Prześlij tokeny
Jak poufnie przesyłać tokeny między token accounts
Przewodnik integracji
Jak portfele, eksploratory i giełdy mogą obsługiwać tokeny Poufnych Sald
Przewodnik dla emitentów
Jak emitować i zarządzać tokenem Poufnych Sald (polityka zatwierdzania, audytorzy, opłaty, mintowanie i spalanie)
Poniższy diagram przedstawia szczegółową sekwencję podstawowego przepływu dla poufnych przelewów tokenów:
Instrukcje Poufnych Sald
Pełna lista instrukcji rozszerzenia Poufnych Sald jest następująca:
| Instrukcja | Opis |
|---|---|
InitializeMint | Włącza Poufne Salda na mint account. Ta instrukcja musi być zawarta w tej samej transakcji co instrukcja TokenInstruction::InitializeMint. |
UpdateMint | Aktualizuje politykę zatwierdzania kont minta oraz opcjonalny globalny klucz publiczny ElGamal audytora. |
ConfigureAccount | Włącza Poufne Salda na token account. |
ApproveAccount | Zatwierdza token account dla Poufnych Sald, jeśli mint wymaga zatwierdzenia dla nowych token accounts. |
EmptyAccount | Opróżnia oczekujące i dostępne poufne salda, aby umożliwić zamknięcie token account. |
Deposit | Konwertuje publiczne saldo tokenów na oczekujące poufne saldo. |
Withdraw | Konwertuje dostępne poufne saldo z powrotem na saldo publiczne. |
Transfer | Poufnie przesyła tokeny między token accounts. |
ApplyPendingBalance | Konwertuje oczekujące saldo na dostępne saldo po wpłatach lub przelewach. |
EnableConfidentialCredits | Umożliwia token account odbieranie poufnych przelewów tokenów. |
DisableConfidentialCredits | Blokuje przychodzące poufne przelewy, jednocześnie zezwalając na publiczne przelewy. |
EnableNonConfidentialCredits | Umożliwia token account odbieranie publicznych przelewów tokenów. |
DisableNonConfidentialCredits | Blokuje zwykłe przelewy, aby token account odbierał wyłącznie poufne przelewy. |
TransferWithFee | Poufnie przesyła tokeny między token accounts z opłatą. |
ConfigureAccountWithRegistry | Alternatywny sposób konfigurowania token accounts dla Poufnych Sald przy użyciu konta ElGamalRegistry zamiast dowodu VerifyPubkeyValidity. |
Is this page helpful?