Apa itu Confidential Balances?
Confidential Balances adalah ekstensi Token-2022 yang memungkinkan Anda mentransfer token antara token account tanpa mengungkapkan jumlah transfer. Ini berguna untuk transaksi yang menjaga privasi. Hanya jumlah transfer dan saldo token yang bersifat privat. Alamat token account tetap bersifat publik.
- Ikhtisar Protokol - Detail tentang protokol kriptografi yang mendasarinya
- Panduan Mulai Cepat - Pengaturan dan perintah CLI dasar
- Confidential Balances Cookbook - Cuplikan kode yang menunjukkan cara menggunakan Confidential Balances
Bagaimana cara kerjanya?
Ekstensi Confidential Balances menambahkan instruksi ke program Token Extension yang memungkinkan Anda mentransfer token antara akun tanpa mengungkapkan jumlah transfer.
Alur dasar transfer token rahasia adalah sebagai berikut:
- Buat mint account dengan Confidential Balances yang diaktifkan.
- Buat token account dengan Confidential Balances yang diaktifkan untuk pengirim dan penerima.
- Mint token ke akun pengirim.
- Setor saldo publik pengirim ke saldo tertunda rahasia.
- Terapkan saldo tertunda pengirim ke saldo tersedia rahasia.
- Transfer token secara rahasia dari token account pengirim ke token account penerima.
- Terapkan saldo tertunda penerima ke saldo tersedia rahasia.
- Tarik saldo tersedia rahasia penerima ke saldo publik.
Kunci auditor
Mint account Confidential Balances dapat menyimpan kunci publik ElGamal auditor global yang bersifat opsional. Jika sudah dikonfigurasi, setiap transfer rahasia menyertakan jumlah yang dienkripsi untuk pengirim, penerima, dan auditor. Bukti transfer memverifikasi bahwa ketiga ciphertext berisi jumlah yang sama. Publik tetap tidak dapat membaca jumlahnya, tetapi pemegang kunci rahasia auditor dapat mendekripsi jumlah transfer untuk mint tersebut.
Otoritas Confidential Balances menetapkan kunci auditor saat menginisialisasi ekstensi atau mengubahnya kemudian dengan UpdateMint. Otoritas dapat merotasi atau menghapus kunci tersebut. Rotasi hanya berlaku untuk transfer di masa mendatang, sehingga simpan kunci rahasia sebelumnya jika akses audit historis diperlukan. Kunci auditor memberikan akses baca; kunci ini tidak mengotorisasi transfer token atau mengungkapkan saldo rahasia penuh suatu akun.
Untuk contoh pengaturan dan rotasi, lihat Konfigurasi auditor. Dompet, penjelajah, bursa, dan penyedia kepatuhan juga harus meninjau panduan integrasi auditor.
Untuk detail lebih lanjut tentang langkah-langkah dalam alur transfer rahasia, lihat halaman yang sesuai:
Buat Mint Account
Cara membuat mint account dengan Confidential Balances yang diaktifkan
Buat Token Account
Cara mengonfigurasi token account dengan Confidential Balances yang diaktifkan
Setor Token
Cara menyetor token ke saldo tertunda rahasia
Terapkan Saldo Tertunda
Cara menerapkan saldo tertunda ke saldo rahasia yang tersedia
Tarik Token
Cara menarik token dari saldo rahasia yang tersedia
Transfer Token
Cara mentransfer token secara rahasia antara token account
Panduan Integrasi
Cara dompet, penjelajah, dan bursa dapat mendukung token Confidential Balances
Panduan Penerbit
Cara menerbitkan dan mengoperasikan token Confidential Balances (kebijakan persetujuan, auditor, biaya, mint dan burn)
Diagram di bawah ini menunjukkan urutan detail alur dasar untuk transfer token rahasia:
Instruksi Confidential Balances
Daftar lengkap instruksi extensi Confidential Balances adalah sebagai berikut:
| Instruction | Description |
|---|---|
InitializeMint | Mengaktifkan Confidential Balances pada mint account. Instruksi ini harus disertakan dalam transaksi yang sama dengan instruksi TokenInstruction::InitializeMint. |
UpdateMint | Memperbarui kebijakan persetujuan akun mint dan kunci publik ElGamal auditor global yang bersifat opsional. |
ConfigureAccount | Mengaktifkan Confidential Balances pada token account. |
ApproveAccount | Menyetujui token account untuk Confidential Balances jika mint memerlukan persetujuan untuk token account baru. |
EmptyAccount | Mengosongkan saldo rahasia yang tertunda dan tersedia untuk memungkinkan penutupan token account. |
Deposit | Mengonversi saldo token publik menjadi saldo rahasia yang tertunda. |
Withdraw | Mengonversi saldo rahasia yang tersedia kembali menjadi saldo publik. |
Transfer | Mentransfer token antar token account secara rahasia. |
ApplyPendingBalance | Mengonversi saldo yang tertunda menjadi saldo yang tersedia setelah deposit atau transfer. |
EnableConfidentialCredits | Memungkinkan token account menerima transfer token rahasia. |
DisableConfidentialCredits | Memblokir transfer rahasia yang masuk sambil tetap mengizinkan transfer publik. |
EnableNonConfidentialCredits | Memungkinkan token account menerima transfer token publik. |
DisableNonConfidentialCredits | Memblokir transfer biasa agar akun hanya menerima transfer rahasia. |
TransferWithFee | Mentransfer token antar token account secara rahasia dengan biaya. |
ConfigureAccountWithRegistry | Cara alternatif untuk mengonfigurasi token account untuk Confidential Balances menggunakan akun ElGamalRegistry sebagai pengganti bukti VerifyPubkeyValidity. |
Is this page helpful?