> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Konsep

> Pahami cara kerja Helius Privacy, termasuk alur pengguna, hal yang tetap publik atau privat dalam transfer, dan Ring dengan kebijakan yang dapat disesuaikan.

## Pengantar Ring

Setiap transaksi di Solana dapat dibaca secara publik: alamat, saldo, dan riwayat transfer dapat dilihat oleh siapa saja.
Ring mengenkripsi saldo onchain dan secara default selalu bersifat nonkustodial:

* Dalam Ring rahasia, aset dan jumlah bersifat privat, sedangkan pengirim dan penerima tetap terlihat.
* Dalam Ring anonim, aset, jumlah, pengirim, dan penerima bersifat privat.

<img src="https://mintcdn.com/helius/ANceN_N6YhA2y60D/images/privacy/transaction-visibility-cards.svg?fit=max&auto=format&n=ANceN_N6YhA2y60D&q=85&s=d775dd0d4ebcf7b299ef0f3ccfb025ca" alt="Two Solana transaction cards side by side. The confidential card shows the transaction hash, sender, and recipient while the asset and amount are blacked out. The anonymous card shows only the transaction hash; the sender, asset, amount, and recipient are all blacked out. The transaction hash stays public on both." width="2320" height="540" data-path="images/privacy/transaction-visibility-cards.svg" />

Terdapat beberapa jenis Ring:

1. Default Ring tidak memerlukan izin dan bersifat rahasia. Ring ini mengenkripsi aset dan jumlah, dapat digunakan oleh siapa saja, serta tidak memiliki kontrol kebijakan khusus.
2. Custom Ring adalah program Solana yang membuat privasi di Solana dapat diprogram, serupa dengan Token-2022. Custom Ring dapat bersifat rahasia atau anonim dengan aturan kebijakan, pelaporan, dan visibilitas khusus.

<Info>
  Untuk sebagian besar aplikasi, kami menyarankan Default Ring yang tidak memerlukan izin dan bersifat rahasia.
  Untuk kebijakan khusus dan kontrol kepatuhan, [hubungi kami](https://www.helius.dev/contact) guna mulai menggunakan Custom Ring.
</Info>

<img src="https://mintcdn.com/helius/iNBk0QZ3vdaUiFW5/images/privacy/privacy-network.svg?fit=max&auto=format&n=iNBk0QZ3vdaUiFW5&q=85&s=af61b324d07f1184da1f3912d9f050fb" alt="Private Balances shown as a dashed onchain zone holding two rings. The Default Ring is confidential, self-custodial, and permissionless. The Custom Ring is confidential or anonymous, self-custodial, and adds custom policy and custom compliance. A private transfer connects the rings, and each deposits into and withdraws from a Solana Public Balances layer below." width="850" height="540" data-path="images/privacy/privacy-network.svg" />

### Custom Ring Dapat Diprogram

Custom Ring adalah program Solana sederhana yang membuat privasi dapat diprogram, dengan fitur yang serupa dengan Token-2022.

Custom Ring dapat menetapkan aturan yang sepenuhnya khusus untuk transfer dan visibilitas/audit.

<Accordion title="Example Custom Ring policies">
  | Kebijakan               | Contoh                                                                          |
  | ----------------------- | ------------------------------------------------------------------------------- |
  | Aset yang diizinkan     | Hanya USDC atau stablecoin tertentu yang diterbitkan                            |
  | Batas transfer          | Memerlukan persetujuan tambahan di atas ambang tertentu                         |
  | Penandatanganan bersama | Memerlukan persetujuan kepatuhan untuk pembayaran tertentu                      |
  | Daftar yang diizinkan   | Hanya mengizinkan transfer ke akun, pedagang, atau Ring yang disetujui          |
  | Daftar blokir           | Memblokir tujuan yang dikenai sanksi atau berisiko                              |
  | Bekukan/cairkan         | Membekukan saldo selama penyelidikan berlangsung                                |
  | Delegasi permanen       | Mengizinkan otoritas yang dikonfigurasi untuk memindahkan dana sesuai kebijakan |
  | Visibilitas auditor     | Memungkinkan bagian kepatuhan, akuntansi, atau regulator melihat aktivitas Ring |
  | Aturan lintas Ring      | Mengizinkan atau memblokir perpindahan antara Ring tertentu                     |
  | Aturan penarikan        | Membatasi penarikan publik atau mewajibkan persetujuan                          |
  | Dukungan akun pintar    | Mengizinkan penggunaan native dengan akun pintar                                |
  | Pemulihan akun          | Mengizinkan otoritas yang dikonfigurasi atau identitas cadangan memulihkan akun |
</Accordion>

Otoritas Ring ditetapkan saat Ring dibuat sehingga pengguna dapat memeriksa kebijakan sebelum memilih Ring.
Default Ring tidak memerlukan izin dan tidak memiliki otoritas atau auditor khusus.

<Tip>
  Jika Anda ingin menyiapkan Custom Ring sendiri, [hubungi kami](https://www.helius.dev/contact) dan kami akan membantu Anda menyiapkannya.
  Anda dapat menyediakan sistem kepatuhan sendiri atau menggunakan solusi KYC dan penyaringan sanksi terkelola dari Helius.
</Tip>

## Alur Pengguna dan Jaminan Privasi

Transaksi dengan Helius Privacy dijalankan secara native onchain dan dapat dikomposisikan dengan program Solana lainnya dalam satu transaksi.
Pengguna dapat masuk, melakukan transfer privat di dalam, atau keluar dari Ring:

**1. Deposit atau on-ramp.** Pengguna mengirim token dari saldo publik Solana atau saldo fiat langsung ke saldo privat.

**2. Transfer privat.** Pengguna mengirim token antarsaldo privat dalam Ring yang sama atau ke Ring lain.

**3. Penarikan atau off-ramp.** Pengguna mengirim token dari saldo privat ke saldo publik Solana atau langsung ke saldo fiat.

<img src="https://mintcdn.com/helius/df3Lmw7POmPkuUJN/images/privacy/privacy-rings-lifecycle.svg?fit=max&auto=format&n=df3Lmw7POmPkuUJN&q=85&s=54d057b2674ad3a194575858d35db167" alt="Diagram of the Ring lifecycle. A public balance of 100 USDC deposits into a Ring and a fiat balance of USD / EUR / ... on-ramps into the same Ring, funds move between two private balances via private transfer, then withdraw to a public balance or off-ramp to a fiat balance." width="1420" height="240" data-path="images/privacy/privacy-rings-lifecycle.svg" />

Pengguna mengirim token ke alamat dompet Solana, seperti saat menggunakan saldo publik.
Privacy API secara otomatis merutekan transfer ke Private Wallet jika penerima memilikinya.
Jika tidak, transfer menjadi penarikan ke alamat publik penerima.

Siapa pun dapat melakukan deposit ke Private Wallet mana pun hanya dengan mengetahui alamat dompet publik penerima.
Jika aplikasi pengirim tidak mendukung privasi, penerima menerima dana secara publik dan dapat mengenkripsinya ke saldo privatnya sendiri pada langkah berikutnya.

### Deposit ke Saldo Privat: Hal yang Bersifat Privat

Pengguna dapat melakukan deposit ke saldo privat dengan dua cara:

1. On-ramp dari saldo fiat ke saldo kripto privat
2. Deposit dari saldo kripto publik ke saldo kripto privat

<Tabs>
  <Tab title="On-ramp from fiat balance">
    | Bidang                    | Visibilitas                                         | Alasan                                                                                                                                                                                                                                                                                                                                    |
    | ------------------------- | --------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | Saldo fiat dan pembayaran | Tidak onchain                                       | Pembayaran fiat tidak dilakukan secara onchain                                                                                                                                                                                                                                                                                            |
    | Aset                      | Privat                                              | Aset dienkripsi secara onchain                                                                                                                                                                                                                                                                                                            |
    | Jumlah                    | Privat                                              | Jumlah yang ditransfer dienkripsi secara onchain                                                                                                                                                                                                                                                                                          |
    | Penyedia Onramp           | Publik dalam Ring rahasia, privat dalam Ring anonim | Dalam Ring rahasia, alamat dompet penyedia terlihat. Ring anonim menggunakan relayer, sehingga buku besar publik tidak mengungkapkan dompet privat sumber.                                                                                                                                                                                |
    | Alamat dompet pengguna    | Publik dalam Ring rahasia, privat dalam Ring anonim | Dalam Ring rahasia, alamat dompet pengguna terlihat secara onchain. Alamat pengguna yang digunakan untuk onramp tidak dapat ditautkan ke pengguna jika alamat tersebut baru dan kemudian tidak dikaitkan dengan alamat dompet yang diketahui melalui transfer rahasia. Dalam Ring anonim, buku besar publik tidak mengungkapkan penerima. |
  </Tab>

  <Tab title="Deposit from public crypto balance">
    | Bidang                       | Visibilitas | Alasan                                                 |
    | ---------------------------- | ----------- | ------------------------------------------------------ |
    | Dompet publik sumber         | Publik      | Alamat dompet sumber terlihat secara onchain           |
    | Aset                         | Publik      | Aset terlihat secara onchain                           |
    | Jumlah                       | Publik      | Jumlah yang disetorkan terlihat secara onchain         |
    | Alamat dompet tujuan         | Publik      | Alamat dompet tujuan terlihat secara onchain           |
    | Saldo privat yang dihasilkan | Privat      | Saldo privat yang dihasilkan dienkripsi secara onchain |
  </Tab>
</Tabs>

### Transfer Privat: Hal yang Bersifat Privat

Pengguna dapat mengirim transfer privat dengan dua cara:

1. Transfer dalam Ring yang sama
2. Transfer ke Ring lain

<Info>
  Untuk sebagian besar aplikasi, kami menyarankan Default Ring yang tidak memerlukan izin dan bersifat rahasia.
  Untuk kebijakan khusus dan kontrol kepatuhan, [hubungi kami](https://www.helius.dev/contact) guna mulai menggunakan Custom Ring.
</Info>

<Tabs>
  <Tab title="Permissionless Confidential Ring">
    | Bidang               | Visibilitas | Alasan                                                            |
    | -------------------- | ----------- | ----------------------------------------------------------------- |
    | Aset                 | Privat      | Aset dienkripsi secara onchain                                    |
    | Jumlah               | Privat      | Jumlah yang ditransfer dienkripsi secara onchain                  |
    | Dompet privat sumber | Publik      | Dalam Ring rahasia, dompet privat sumber terlihat secara onchain. |
    | Penerima             | Publik      | Dalam Ring rahasia, penerima terlihat secara onchain.             |
  </Tab>

  <Tab title="Custom Rings">
    Transfer dari dan di dalam sebuah Ring mengungkapkan ID program Ring khusus tersebut.

    Saldo dalam Ring Khusus dapat dipindahkan ke akun token SPL, Ring Default, atau Ring lain, selama kebijakan Ring sumber mengizinkannya.
    Ring default bersifat tanpa izin dan tidak memiliki kebijakan atau otoritas.

    Satu transaksi dapat menggabungkan saldo dari Ring Default dan satu Ring Khusus. Transfer antara dua Ring Khusus dirutekan melalui Ring Default.

    | Transfer privat        | Ring rahasia khusus | Ring anonim khusus                                                                                          | Ring rahasia Default ke atau dari Ring rahasia khusus | Ring rahasia (Default atau Khusus) ke Ring anonim khusus | Ring anonim khusus ke Ring rahasia (Default atau Khusus)                                                    |
    | ---------------------- | ------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
    | Jumlah                 | Privat              | Privat                                                                                                      | Privat                                                | Privat                                                   | Privat                                                                                                      |
    | Aset                   | Privat              | Privat                                                                                                      | Privat                                                | Privat                                                   | Privat                                                                                                      |
    | Dompet privat sumber   | Publik              | Privat. Relayer mengirimkan transaksi, sehingga buku besar publik tidak mengungkapkan dompet privat sumber. | Publik                                                | Publik                                                   | Privat. Relayer mengirimkan transaksi, sehingga buku besar publik tidak mengungkapkan dompet privat sumber. |
    | Penerima               | Publik              | Privat                                                                                                      | Publik                                                | Privat                                                   | Publik                                                                                                      |
    | ID program Ring Khusus | Publik              | Publik                                                                                                      | Publik                                                | Publik                                                   | Publik                                                                                                      |
  </Tab>
</Tabs>

### Penarikan dari Saldo Privat: Hal yang Bersifat Privat

Pengguna dapat menarik dana dari saldo privat dengan dua cara:

1. Off-ramp dari kripto privat ke saldo fiat
2. Penarikan dari kripto privat ke saldo kripto publik

<Tabs>
  <Tab title="Off-ramp to fiat balance">
    | Bidang                 | Visibilitas                                         | Alasan                                                                                                                                                                                                                                                                                                                     |
    | ---------------------- | --------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | Pembayaran fiat        | Tidak onchain                                       | Pembayaran fiat tidak dilakukan secara onchain                                                                                                                                                                                                                                                                             |
    | Aset                   | Privat                                              | Aset dienkripsi secara onchain                                                                                                                                                                                                                                                                                             |
    | Jumlah                 | Privat                                              | Jumlah yang ditransfer dienkripsi secara onchain                                                                                                                                                                                                                                                                           |
    | Penyedia Offramp       | Publik dalam Ring rahasia, privat dalam Ring anonim | Dalam Ring rahasia, pengamat dapat melihat bahwa pengguna melakukan offramp melalui Penyedia Offramp ini. Dalam Ring anonim, buku besar publik tidak mengungkapkan pengirim dan penerima.                                                                                                                                  |
    | Alamat dompet pengguna | Publik dalam Ring rahasia, privat dalam Ring anonim | Dalam Ring rahasia, alamat dompet pengguna terlihat secara onchain. Alamat dompet lain tidak dapat ditautkan ke alamat ini jika alamat ini baru dan kemudian tidak dikaitkan dengan alamat dompet yang diketahui melalui transfer rahasia. Dalam Ring anonim, buku besar publik tidak mengungkapkan pengirim dan penerima. |
  </Tab>

  <Tab title="Withdraw to public crypto balance">
    | Bidang                       | Visibilitas | Alasan                                                            |
    | ---------------------------- | ----------- | ----------------------------------------------------------------- |
    | Dompet privat sumber         | Publik      | Dalam Ring rahasia, dompet privat sumber terlihat secara onchain. |
    | Aset                         | Publik      | Aset terlihat secara onchain                                      |
    | Jumlah                       | Publik      | Jumlah yang ditarik terlihat secara onchain                       |
    | Dompet publik tujuan         | Publik      | Alamat dompet tujuan terlihat secara onchain                      |
    | Saldo publik yang dihasilkan | Publik      | Saldo publik yang dihasilkan terlihat secara onchain              |
    | Saldo privat yang tersisa    | Privat      | Saldo yang tersisa dienkripsi secara onchain                      |
  </Tab>
</Tabs>

## Alur Transaksi Tingkat Tinggi

Transfer privat berperilaku serupa dengan transfer publik dan dijalankan dalam satu transaksi Solana.

<Tabs>
  <Tab title="Private transfer">
    1. Saldo SOL atau SPL pengguna dienkripsi onchain.
    2. Ambil status terenkripsi dan dekripsi secara lokal, atau penyedia yang diberi delegasi mendekripsi dan menyajikan status yang telah didekripsi.
    3. Dompet menetapkan jumlah dan penerima, lalu meminta bukti ZK.
    4. Secara default, penyedia RPC menghasilkan bukti ZK dan mengembalikannya. Custom Ring juga memerlukan bukti kebijakan.
    5. Dompet menyusun transaksi Solana. Bukti ZK diverifikasi tanpa mengungkapkan status terenkripsi. Program yang dipanggil serta pihak yang menandatangani dan mengirimkannya bergantung pada Ring:

    |                        | Ring Rahasia Tanpa Izin                                    | Custom Ring Rahasia                                        | Custom Ring Anonim                                       |
    | ---------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | -------------------------------------------------------- |
    | Program yang Dipanggil | Solana Privacy Program                                     | Program Custom Ring dan Solana Privacy Program             | Program Custom Ring dan Solana Privacy Program           |
    | Penanda Tangan         | Pengirim menandatangani. Sponsor gas dapat membayar biaya. | Pengirim menandatangani. Sponsor gas dapat membayar biaya. | Relayer, sehingga pengirim tidak ditautkan ke transaksi. |

    6. Aplikasi melacak status melalui hash transaksi Solana.

    <Tabs sync={false}>
      <Tab title="Permissionless Confidential Ring">
        ```mermaid theme={"system"}
        %%{init: {
          'theme': 'base',
          'themeVariables': {
            'lineColor':           '#FF6B35',
            'primaryTextColor':    '#737373',
            'primaryBorderColor':  '#9CA3AF',
            'actorBkg':            '#FFFFFF',
            'actorBorder':         '#9CA3AF',
            'actorTextColor':      '#737373',
            'signalColor':         '#FF6B35',
            'signalTextColor':     '#737373',
            'labelBoxBkgColor':    '#FF6B351F',
            'labelBoxBorderColor': '#FF6B35',
            'noteBkgColor':        '#F5F5F5',
            'noteTextColor':       '#737373',
            'noteBorderColor':     '#9CA3AF'
          }
        }}%%
        sequenceDiagram
            participant Wallet
            participant RPC as RPC Provider
            participant Solana

            rect rgba(255, 107, 53, 0.06)
                Note left of Wallet: Local
                Wallet->>RPC: Fetch encrypted state
                RPC-->>Wallet: Encrypted state
                Note over Wallet: Decrypt locally
            end
            rect rgba(255, 107, 53, 0.06)
                Note left of Wallet: Delegated
                Wallet->>RPC: Get private balance
                Note over RPC: Decrypt and serve decrypted state
                RPC-->>Wallet: Decrypted state
            end

            Note over Wallet: Set amount and recipient
            Wallet->>RPC: Request ZK proof
            Note over RPC: Generate ZK proof
            RPC-->>Wallet: ZK proof
            Note over Wallet: Build transaction, sign

            Wallet->>RPC: Submit Transaction
            RPC->>Solana: Forward transaction
            Note over Solana: Verify signatures
            Note over Solana: CPI Solana Privacy Program
            Note over Solana: Verify ZK proof
            RPC-->>Wallet: Transaction signature
        ```
      </Tab>

      <Tab title="Custom Confidential Ring">
        ```mermaid theme={"system"}
        %%{init: {
          'theme': 'base',
          'themeVariables': {
            'lineColor':           '#FF6B35',
            'primaryTextColor':    '#737373',
            'primaryBorderColor':  '#9CA3AF',
            'actorBkg':            '#FFFFFF',
            'actorBorder':         '#9CA3AF',
            'actorTextColor':      '#737373',
            'signalColor':         '#FF6B35',
            'signalTextColor':     '#737373',
            'labelBoxBkgColor':    '#FF6B351F',
            'labelBoxBorderColor': '#FF6B35',
            'noteBkgColor':        '#F5F5F5',
            'noteTextColor':       '#737373',
            'noteBorderColor':     '#9CA3AF'
          }
        }}%%
        sequenceDiagram
            participant Wallet
            participant RPC as RPC Provider
            participant Solana

            rect rgba(255, 107, 53, 0.06)
                Note left of Wallet: Local
                Wallet->>RPC: Fetch encrypted state
                RPC-->>Wallet: Encrypted state
                Note over Wallet: Decrypt locally
            end
            rect rgba(255, 107, 53, 0.06)
                Note left of Wallet: Delegated
                Wallet->>RPC: Get private balance
                Note over RPC: Decrypt and serve decrypted state
                RPC-->>Wallet: Decrypted state
            end

            Note over Wallet: Set amount and recipient
            Wallet->>RPC: Request ZK proof
            Note over RPC: Generate ZK proof and policy proof
            RPC-->>Wallet: ZK proof and policy proof
            Note over Wallet: Build transaction, sign

            Wallet->>RPC: Submit Transaction
            RPC->>Solana: Forward transaction
            Note over Solana: Verify signatures
            Note over Solana: CPI Custom Ring Program
            Note over Solana: Verify policy ZK proof
            Note over Solana: CPI Solana Privacy Program
            Note over Solana: Verify SPP ZK proof
            RPC-->>Wallet: Transaction signature
        ```
      </Tab>

      <Tab title="Custom Anonymous Ring">
        ```mermaid theme={"system"}
        %%{init: {
          'theme': 'base',
          'themeVariables': {
            'lineColor':           '#FF6B35',
            'primaryTextColor':    '#737373',
            'primaryBorderColor':  '#9CA3AF',
            'actorBkg':            '#FFFFFF',
            'actorBorder':         '#9CA3AF',
            'actorTextColor':      '#737373',
            'signalColor':         '#FF6B35',
            'signalTextColor':     '#737373',
            'labelBoxBkgColor':    '#FF6B351F',
            'labelBoxBorderColor': '#FF6B35',
            'noteBkgColor':        '#F5F5F5',
            'noteTextColor':       '#737373',
            'noteBorderColor':     '#9CA3AF'
          }
        }}%%
        sequenceDiagram
            participant Wallet
            participant RPC as RPC Provider
            participant Relayer
            participant Solana

            rect rgba(255, 107, 53, 0.06)
                Note left of Wallet: Delegated
                Wallet->>RPC: Get private balance
                Note over RPC: Decrypt and serve decrypted state
                RPC-->>Wallet: Decrypted state
            end

            Note over Wallet: Set amount and recipient, sign
            Wallet->>RPC: Request ZK proof
            Note over RPC: Generate ZK proof and policy proof
            RPC-->>Wallet: ZK proof and policy proof
            Note over Wallet: Build transaction

            Wallet->>Relayer: Submit Transaction
            Relayer->>Solana: Forward transaction
            Note over Solana: Verify signatures
            Note over Solana: CPI Custom Ring Program
            Note over Solana: Verify policy ZK proof
            Note over Solana: CPI Solana Privacy Program
            Note over Solana: Verify SPP ZK proof
            Relayer-->>Wallet: Transaction signature
        ```
      </Tab>
    </Tabs>
  </Tab>

  <Tab title="Solana transfer">
    1. Saldo SOL atau SPL pengguna tersedia secara publik onchain.
    2. Dompet membaca status publik, menyusun transfer, lalu pemilik menandatanganinya.
    3. Runtime Solana memverifikasi tanda tangan dan memanggil System Program atau Token Program, yang memperbarui saldo publik.
    4. Aplikasi melacak status melalui hash transaksi Solana.

    ```mermaid theme={"system"}
    %%{init: {
      'theme': 'base',
      'themeVariables': {
        'lineColor':           '#FF6B35',
        'primaryTextColor':    '#737373',
        'primaryBorderColor':  '#9CA3AF',
        'actorBkg':            '#FFFFFF',
        'actorBorder':         '#9CA3AF',
        'actorTextColor':      '#737373',
        'signalColor':         '#FF6B35',
        'signalTextColor':     '#737373',
        'labelBoxBkgColor':    '#FF6B351F',
        'labelBoxBorderColor': '#FF6B35',
        'noteBkgColor':        '#F5F5F5',
        'noteTextColor':       '#737373',
        'noteBorderColor':     '#9CA3AF'
      }
    }}%%
    sequenceDiagram
        participant Wallet
        participant RPC
        participant Solana

        Wallet->>RPC: Get public balance
        RPC-->>Wallet: Public state
        Note over Wallet: Build transfer, owner signs
        Wallet->>RPC: sendTransaction
        RPC->>Solana: Forward transaction
        Note over Solana: Verify signatures
        Note over Solana: CPI System / Token Program
        Note over Solana: Update balance
        RPC-->>Wallet: Transaction signature
    ```
  </Tab>
</Tabs>

## Private Wallet

Pengguna menyimpan saldo terenkripsi mereka dalam Private Wallet.

Private Wallet menerima transfer di alamat Solana publik pengguna dan berfungsi sebagai `inbox`.
Dengan demikian, pengirim selalu memasukkan alamat Solana penerima seperti saat melakukan transfer publik.

| Perbandingan            | Dompet Solana     | Private Wallet           |
| ----------------------- | ----------------- | ------------------------ |
| Pengidentifikasi Publik | Alamat Solana     | Alamat Solana yang sama  |
| Penyimpanan Onchain     | Akun token publik | Akun token privat (UTXO) |

### Pembuatan Private Wallet

Saat Private Wallet dibuat, alamat Solana didaftarkan dalam registri onchain.

Registri memetakan satu alamat Solana ke satu <Tooltip tip="The Shielded Address is not a Solana keypair, it is deterministically derived from the signing, nullifier, and viewing public keys.">Shielded Address</Tooltip>.
Transfer dienkripsi secara internal ke Shielded Address.
Beberapa alamat Solana tidak dapat menggunakan satu Shielded Address yang sama.
Setiap catatan registri merupakan PDA yang dimiliki oleh <Tooltip tip="regyS5rkAcw2YzDJCmTwCTHs2s246FXxbmuRZ42u2PD">[program registri](https://orbmarkets.io/address/regyS5rkAcw2YzDJCmTwCTHs2s246FXxbmuRZ42u2PD)</Tooltip>, yang dapat dicari oleh siapa saja untuk mengetahui apakah alamat Solana dapat menerima transfer privat.

<img src="https://mintcdn.com/helius/NHXFc7ysJd1NoY9P/images/privacy/wallet-shape.svg?fit=max&auto=format&n=NHXFc7ysJd1NoY9P&q=85&s=7e96783047c79ed30c4e995623f197a6" alt="User wallet showing two public Solana wallets and a private wallet. An inbox arrow connects Public Wallet A's public key to the private wallet's Shielded Address." width="1120" height="570" data-path="images/privacy/wallet-shape.svg" />

<Info>
  Dalam aplikasi dompet Anda, Anda dapat mengizinkan pengguna membuat dompet privat hanya untuk kunci publik "Private Wallet" khusus,
  atau untuk kunci publik apa pun.
</Info>

### Transfer ke Private Wallet

Pada setiap transfer, Privacy API mencari alamat dompet di registri onchain untuk memeriksa apakah penerima memiliki dompet privat.
Jika ditemukan, API menggunakan Shielded Address secara internal untuk mengenkripsi transfer.

<Info>
  Jika penerima transfer privat tidak memiliki Private Wallet, Privacy API mengubah transfer menjadi penarikan dari privat ke publik.

  Kami menyarankan agar Anda meminta tanda tangan pengguna yang terpisah di UI guna memastikan pengguna tidak menarik dana ke saldo publik secara tidak sengaja.
</Info>

```mermaid theme={"system"}
%%{init: {
  'theme': 'base',
  'themeVariables': {
    'lineColor':           '#FF6B35',
    'primaryTextColor':    '#737373',
    'primaryBorderColor':  '#9CA3AF',
    'actorBkg':            '#FFFFFF',
    'actorBorder':         '#9CA3AF',
    'actorTextColor':      '#737373',
    'signalColor':         '#FF6B35',
    'signalTextColor':     '#737373',
    'labelBoxBkgColor':    '#FF6B351F',
    'labelBoxBorderColor': '#FF6B35',
    'noteBkgColor':        '#F5F5F5',
    'noteTextColor':       '#737373',
    'noteBorderColor':     '#9CA3AF'
  }
}}%%
sequenceDiagram
    participant User
    participant Privacy API
    participant Solana

    User->>Privacy API: Initiate Private Transfer
    Privacy API->>Solana: Look up Solana address
    rect rgba(255, 107, 53, 0.06)
        Note left of User: Recipient has a Private Wallet
        Solana-->>Privacy API: Registered
        Privacy API->>User: Request Signature
        User->>Privacy API: Sign private transfer
        Privacy API-->>Solana: Send Private Transfer
    end
    rect rgba(255, 107, 53, 0.06)
        Note left of User: Recipient has no Private Wallet
        Solana-->>Privacy API: Not Registered
        Privacy API->>User: Request Signature
        User->>Privacy API: Sign to Confirm Withdrawal
        Privacy API-->>Solana: Private-to-Public Withdrawal
    end
```

### Pengelolaan Kunci

Private Wallet menambahkan pasangan kunci terlindung ke dompet Solana dari pasangan kunci Solana Anda.

| Kunci                     | Dompet Solana                            | Private Wallet                                        |
| ------------------------- | ---------------------------------------- | ----------------------------------------------------- |
| Kunci publik              | Dibagikan untuk menerima transfer        | Dibagikan untuk menerima transfer                     |
| Kunci privat              | Digunakan untuk menandatangani transaksi | Digunakan untuk menandatangani transaksi              |
| Frasa seed                | Membuat ulang dompet                     | Membuat ulang dompet                                  |
| Pasangan kunci terlindung | Tidak berlaku                            | Bundel kunci penandatanganan, nullifier, dan penampil |

Pasangan kunci terlindung adalah bundel kunci penandatanganan, nullifier, dan penampil. Pasangan ini bukan pasangan kunci Solana.

| Kunci                 | Ring Rahasia                             | Custom Ring Anonim                       |
| --------------------- | ---------------------------------------- | ---------------------------------------- |
| Kunci penandatanganan | Ed25519 dompet publik                    | P-256 dompet privat                      |
| Kunci nullifier       | Menandai UTXO sebagai telah dibelanjakan | Menandai UTXO sebagai telah dibelanjakan |
| Kunci penampil        | P-256 hanya baca. Mendekripsi saldo      | P-256 hanya baca. Mendekripsi saldo      |

Shielded Address merupakan kunci publik dari pasangan kunci terlindung. Transfer dienkripsi ke alamat ini.

```
ShieldedAddress = (signing_pk, nullifier_pk, viewing_pk)
```

#### Membuat Pasangan Kunci Terlindung

Dompet dapat membuat pasangan kunci terlindung dengan dua cara.

1. **Turunkan kunci dari frasa seed.**

   * Pendekatan yang disarankan untuk dompet berbasis seed.
   * Ring Rahasia: kunci penandatanganan adalah kunci Ed25519 yang sama dengan yang diturunkan dompet Solana dari seed tersebut. Kunci nullifier dan penampil adalah kunci tambahan yang diturunkan dari seed yang sama.
   * Custom Ring Anonim: kunci penandatanganan adalah kunci P-256 tambahan yang diturunkan dari seed dompet.
   * Anda selalu dapat membuat ulang pasangan kunci terlindung dengan cara yang sama seperti saat membuat ulang dompet Solana.

2. **Turunkan kunci dari pesan tetap dengan kunci Solana yang ada.**

   * Tanda tangan Solana bersifat deterministik sehingga pasangan kunci Solana yang sama selalu menghasilkan pasangan kunci terlindung yang sama. Aplikasi tidak pernah menerima kunci privat.
   * Pendekatan yang disarankan untuk pengujian dan dompet yang tidak menggunakan frasa seed. Dompet yang diintegrasikan harus memastikan bahwa tanda tangan tidak terekspos kepada pihak ketiga.

#### Mengintegrasikan Pasangan Kunci Terlindung

Dompet dapat menyimpan sendiri pasangan kunci terlindung melalui [Integrasi Dompet](/docs/id/privacy/integration/wallet) native.
Dengan [Embedded Privacy Wallet](/docs/id/privacy/integration/embedded-wallet), Wallet Provider menyimpan pasangan kunci terlindung dan menjalankan operasi kuncinya.

| Pengelolaan kunci                                                  | Pihak yang menyimpan pasangan kunci terlindung | Tempat operasinya dijalankan        |
| ------------------------------------------------------------------ | ---------------------------------------------- | ----------------------------------- |
| [Integrasi Dompet](/docs/id/privacy/integration/wallet) Native          | Dompet                                         | Di perangkat                        |
| [Embedded Privacy Wallet](/docs/id/privacy/integration/embedded-wallet) | Wallet Provider                                | Dalam infrastruktur Wallet Provider |

### Mode Dekripsi dan Sinkronisasi Dompet

Hanya pemilik yang dapat mendekripsi Saldo Private Wallet dengan Kunci Penampil.

Untuk pengungkapan selektif, pemilik dapat membagikan kunci penampil kepada auditor agar auditor dapat membaca aktivitas tanpa dapat membelanjakan dana.
Dalam Custom Ring, kebijakan dapat menetapkan auditor yang dapat mendekripsi semua saldo dari Custom Ring tersebut.

Ring rahasia (Default Ring dan Custom Ring rahasia) mendukung dekripsi lokal dan terdelegasi.
Ring anonim (hanya Custom Ring) hanya mendukung dekripsi terdelegasi.

| Mode        | Tempat dekripsi berlangsung | Pihak yang memiliki akses melihat | Kompromi dompet                                                                             | Pengguna mode ini                                        |
| ----------- | --------------------------- | --------------------------------- | ------------------------------------------------------------------------------------------- | -------------------------------------------------------- |
| Lokal       | Di dalam dompet             | Hanya dompet                      | Privasi terbaik, tetapi memerlukan status lokal dan siklus sinkronisasi                     | Ring rahasia: Default Ring dan Custom Ring rahasia       |
| Terdelegasi | Penyedia RPC resmi          | Dompet + penyedia                 | Lebih sedikit pekerjaan sinkronisasi lokal, tetapi penyedia dapat melihat saldo dan riwayat | Ring apa pun; satu-satunya mode dalam Custom Ring anonim |

<Info>
  Dompet harus mendekripsi dan memperbarui saldo di mana pun backfill dijalankan: saat dompet dibuka kuncinya,
  Private Wallet dibuka, aplikasi dilanjutkan, jaringan terhubung kembali, terdapat celah stream, atau dompet dipulihkan.
</Info>

#### Dekripsi Lokal

Dalam mode dekripsi lokal, dompet mendekripsi dan menyinkronkan saldo serta riwayat secara lokal.
Server Helius tidak menerima mnemonik, seed, kunci privat penandatanganan, kunci privat penampil, atau rahasia nullifier.

#### Dekripsi Terdelegasi

Dalam mode dekripsi terdelegasi, dompet dan penyedia yang dipilih berbagi kunci penampil.
Hal ini memungkinkan penyedia mendekripsi saldo dan riwayat, tetapi tidak memberikan wewenang untuk membelanjakan dana.
Dompet juga dapat membagikan kunci penampil sebelumnya saat mengizinkan penyedia menyinkronkan aktivitas historis.

Akses auditor terpisah dari dekripsi terdelegasi.
Auditor menerima visibilitas Ring yang ditentukan oleh kebijakan, sedangkan penyedia terdelegasi menerima akses sinkronisasi dalam cakupan dompet.

#### Pengindeks Menyajikan Status Terenkripsi

Sama seperti dompet publik mengandalkan RPC Solana, Private Wallet mengandalkan pengindeks.
Pengindeks menyajikan status terenkripsi yang dibutuhkan dompet untuk membaca saldo dan menyusun transaksi privat.

Secara default, pengindeks dapat diakses melalui <Tooltip tip="https://devnet.helius-rpc.com/?api-key=<API_KEY>">URL RPC Helius</Tooltip>; siapa pun juga dapat menjalankan pengindeksnya sendiri tanpa izin sebagai cadangan.

## Saldo Private Wallet

Saldo Private Wallet disimpan onchain dalam Akun Token Privat Solana sebagai UTXO (output transaksi yang belum dibelanjakan), bukan dalam akun token Solana.
Default Ring dan semua Custom Ring menyimpan saldo privat dalam satu pohon Merkle status.

Saldo Private Wallet adalah jumlah semua UTXO yang dimiliki oleh Private Wallet.
Program Solana dapat memiliki UTXO seperti akun Solana biasa.
Dokumentasi ini menggunakan istilah Akun Token Privat Solana dan UTXO secara bergantian.

<img src="https://mintcdn.com/helius/KNGZoSuCXDUVm6yU/images/privacy/utxo-set-to-wallet.svg?fit=max&auto=format&n=KNGZoSuCXDUVm6yU&q=85&s=92c14cfcf72e56cbaff498a7b95c638b" alt="A Private Wallet connected by dashed lines to several UTXO notes, each holding one amount of one asset. The wallet balance is the sum of the notes." width="700" height="276" data-path="images/privacy/utxo-set-to-wallet.svg" />

<Accordion title="Balances in UTXOs vs Solana accounts">
  Untuk pengalaman pengguna, tidak ada perbedaan antara saldo yang disimpan dalam UTXO dan akun token Solana.

  Pada tingkat teknis, membelanjakan saldo publik mengurangi `amount` dalam akun token Solana.
  Membelanjakan Saldo Privat tidak menimpa kolom `amount` milik UTXO.
  Sebagai gantinya, transaksi privat mengambil UTXO yang ada sebagai input (dipilih secara otomatis oleh SDK),
  menggunakan input tersebut, dan membuat output baru untuk penerima serta sisa saldo pengirim.

  Misalnya, Alice memiliki 50 USDC dan mengirim 35 kepada Bob.

  * Dalam akun token Solana, kolom `amount` miliknya berubah dari 50 menjadi 15, sedangkan milik Bob bertambah 35. Angka tersebut berubah langsung pada tempatnya.
  * Dengan UTXO, Alice memiliki satu nota 50 USDC. Transaksi membelanjakannya dan membuat dua nota baru: nota 35 USDC untuk Bob dan nota kembalian 15 USDC untuk Alice. Nota lama Alice senilai 50 kini telah dibelanjakan.

  <Tabs>
    <Tab title="One input note">
      <img src="https://mintcdn.com/helius/KNGZoSuCXDUVm6yU/images/privacy/spend-comparison.svg?fit=max&auto=format&n=KNGZoSuCXDUVm6yU&q=85&s=3d0ce046ce268daf75ab8546766bc427" alt="Alice sends Bob 35 of her 50 USDC. On a Solana token account the amount field changes in place from 50 to 15. With UTXOs, Alice's single 50 USDC note is spent and two new notes are created: a 35 USDC note for Bob and a 15 USDC change note for Alice." width="1016" height="240" data-path="images/privacy/spend-comparison.svg" />
    </Tab>

    <Tab title="Multiple input notes">
      <img src="https://mintcdn.com/helius/KNGZoSuCXDUVm6yU/images/privacy/spend-comparison-multi.svg?fit=max&auto=format&n=KNGZoSuCXDUVm6yU&q=85&s=f4502ff2086c41f41908e337f3c12f7b" alt="Alice sends Bob 35 of her 50 USDC, held as three notes of 20, 20, and 10. On a Solana token account the amount field changes in place from 50 to 15. With UTXOs, all three input notes are spent and two new notes are created: a 35 USDC note for Bob and a 15 USDC change note for Alice." width="1016" height="240" data-path="images/privacy/spend-comparison-multi.svg" />
    </Tab>
  </Tabs>

  |              | Akun token Solana                                 | Akun token privat Solana (UTXO)                                   |
  | ------------ | ------------------------------------------------- | ----------------------------------------------------------------- |
  | Menyimpan    | Satu angka saldo dalam kolom `amount`             | Sekumpulan nota, masing-masing berisi jumlah tetap dari satu aset |
  | Saldo        | Angka pada akun                                   | Jumlah semua UTXO yang belum dibelanjakan                         |
  | Pembelanjaan | Mengurangi kolom `amount` langsung pada tempatnya | Menggunakan UTXO input dan menulis UTXO kembalian baru            |
  | Visibilitas  | Publik onchain                                    | Terenkripsi onchain                                               |

  <Info>
    Saat melakukan deposit aset SOL dan SPL ke saldo privat, PDA antarmuka yang dimiliki oleh Solana Privacy Program menyimpan token dalam eskro dan membuat UTXO dengan pengguna sebagai pemilik.

    Saat menarik dana ke saldo publik, UTXO yang ada ditandai sebagai telah dibelanjakan dan token dilepaskan ke akun token Solana.
  </Info>
</Accordion>

Satu Private Wallet dapat menyimpan saldo dalam beberapa Ring secara bersamaan tanpa batasan jumlah Ring.
Ring tempat suatu saldo berada bukanlah properti dompet. Ring tersebut merupakan properti setiap UTXO yang disimpan dalam kolom `policy_program_id`.

## Akun Token Privat Solana

Akun Token Privat Solana adalah UTXO yang berperilaku serupa dengan akun token Solana, dengan dua perbedaan utama:

* Akun Token Privat Solana tidak memerlukan pengecualian biaya sewa saat dibuat, dan
* saldonya dienkripsi onchain.

Meskipun demikian, Akun Token Privat Solana menyimpan data yang sama, seperti:

* **Aset:** mint yang unitnya disimpan oleh UTXO. SOL adalah alamat mint default. Aset dapat berupa SOL atau aset SPL maupun Token-2022 apa pun.
* **Jumlah:** jumlah unit `asset` yang disimpan nota, dalam unit terkecil aset.
* **Data program dan kebijakan:** data opsional agar kebijakan Ring yang dikonfigurasi dapat menambahkan fungsi seperti Token-2022

<Tabs>
  <Tab title="Diagram">
    <img src="https://mintcdn.com/helius/KNGZoSuCXDUVm6yU/images/privacy/account-comparison-private.svg?fit=max&auto=format&n=KNGZoSuCXDUVm6yU&q=85&s=860d0d2f3894b0a0ac169b82e538a934" alt="A Private Solana Token Account. The Solana Privacy Program owns a Private Token Account, which expands into its PrivateAccount fields: owner, asset, amount, policy data, and policy program id." width="1080" height="590" data-path="images/privacy/account-comparison-private.svg" />
  </Tab>

  <Tab title="Code">
    Catatan lengkap yang disimpan untuk setiap Akun Token Privat Solana adalah UTXO datar:

    ```rust Private Solana Token Account (UTXO) theme={"system"}
    struct Utxo {
        /// Constant separating UTXOs from other Poseidon-hashed records.
        domain: u16,
        /// Recipient's `owner_hash` from their Shielded Address.
        /// Senders write this value directly; the spender supplies the preimage
        /// components as proof witness.
        owner: [u8; 32],
        /// Asset mint. SOL is Address::default().
        asset: Address,
        /// Amount in the smallest unit of `asset`.
        amount: u64,
        /// Random bytes ensuring distinct UTXO hashes for equal
        /// `(owner, asset, amount)` triples.
        blinding: [u8; 31],
        /// Arbitrary program data.
        program_data: Option<Vec<u8>>,
        /// Arbitrary policy data.
        policy_data: Option<Vec<u8>>,
        /// The policy program that authorizes spends of this UTXO.
        policy_program_id: Option<Address>,
    }
    ```
  </Tab>
</Tabs>

<Accordion title="View Solana token account">
  <Tabs>
    <Tab title="Diagram">
      <img src="https://mintcdn.com/helius/KNGZoSuCXDUVm6yU/images/privacy/account-comparison-solana.svg?fit=max&auto=format&n=KNGZoSuCXDUVm6yU&q=85&s=89ff901091255f2038972208fcb5d538" alt="A Solana Token Account. The Token Program owns a Token Account, expanded into its AccountInfo fields (Data, Executable, Lamports, Owner) and the Data field expanded into Account Data (Mint, Owner, Amount)." width="1080" height="462" data-path="images/privacy/account-comparison-solana.svg" />
    </Tab>

    <Tab title="Code">
      ```rust Solana Token Account theme={"system"}
      pub struct Account {
          /// The mint associated with this account
          pub mint: Pubkey,
          /// The owner of this account.
          pub owner: Pubkey,
          /// The amount of tokens this account holds.
          pub amount: u64,
          /// If `delegate` is `Some` then `delegated_amount` represents
          /// the amount authorized by the delegate
          pub delegate: COption<Pubkey>,
          /// The account's state
          pub state: AccountState,
          /// If is_native.is_some, this is a native token, and the value logs the
          /// rent-exempt reserve. An Account is required to be rent-exempt, so
          /// the value is used by the Processor to ensure that wrapped SOL
          /// accounts do not drop below this threshold.
          pub is_native: COption<u64>,
          /// The amount delegated
          pub delegated_amount: u64,
          /// Optional authority to close the account.
          pub close_authority: COption<Pubkey>,
      }
      ```
    </Tab>
  </Tabs>
</Accordion>

## Tentang Konkurensi

Pengguna dapat membelanjakan saldo privat segera setelah transaksi berstatus final.

Secara khusus, saldo suatu pasangan kunci dapat digunakan secara bersamaan ketika saldo tersebut dibagi ke beberapa UTXO.
Dompet memilih UTXO yang akan dibelanjakan.

Satu pohon Merkle menyimpan status privat untuk Default Ring tanpa izin dan semua Custom Ring.
Pohon tersebut disimpan dalam satu akun Solana yang dapat ditulis.
Transfer privat yang menulis ke akun ini berbagi batas penguncian tulis per akun Solana sebesar 12 juta CU per blok.

Transfer privat menggunakan sekitar 220.000 CU.
Karena itu, satu pohon mendukung sekitar 54 transfer privat per blok atau sekitar 130 transaksi per detik dengan waktu blok Solana saat ini sekitar 400 milidetik.

Protokol dapat menambahkan lebih banyak pohon untuk meningkatkan throughput.
Setiap pohon merupakan akun terpisah yang dapat ditulis dan memiliki anggaran komputasi per akun sendiri, sehingga transaksi pada pohon yang berbeda tidak bersaing untuk anggaran penguncian tulis yang sama.

## Tentang Waktu Pembuatan Bukti

Bukti zero-knowledge saat ini dibuat oleh server prover; transfer rahasia biasa dibuktikan dalam puluhan milidetik; pembuktian lokal untuk Ring rahasia direncanakan.
Waktu pembuktian terus dioptimalkan untuk memastikan pengalaman pengguna yang lancar.

## Istilah

| Istilah                   | Arti                                                                                                                                                                                                                      | Juga ditulis sebagai                                                                                                              |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| AES-GCM                   | Sandi simetris yang mengenkripsi isi UTXO dan mendeteksi manipulasi                                                                                                                                                       |                                                                                                                                   |
| Auditor                   | Penampil yang dikonfigurasi untuk Custom Ring. Auditor dapat membaca data Ring, tetapi tidak dapat membelanjakan dana                                                                                                     |                                                                                                                                   |
| Custom Ring               | Ring khusus perusahaan dengan aturan, visibilitas, dan otoritas khusus.                                                                                                                                                   | sebelumnya "Policy Ring"                                                                                                          |
| Mode dekripsi             | Cara Ring mendukung dekripsi saldo dan riwayat: Ring rahasia (Default Ring dan Custom Ring rahasia) mendukung Lokal dan Terdelegasi; Custom Ring anonim hanya mendukung Terdelegasi                                       |                                                                                                                                   |
| Dekripsi terdelegasi      | Mode sinkronisasi tempat penyedia yang dipilih menggunakan kunci penampil bersama untuk membaca saldo dan riwayat tanpa wewenang membelanjakan dana                                                                       |                                                                                                                                   |
| Default Ring              | Sekelompok dompet privat dengan saldo dalam Ring rahasia tanpa izin; aset dan jumlah bersifat privat, sedangkan pengirim dan penerima tetap publik                                                                        |                                                                                                                                   |
| Deposit                   | Transfer publik ke privat yang masuk ke Ring dari alamat Solana publik                                                                                                                                                    | masuk, deposit publik ke privat                                                                                                   |
| ECDH                      | Elliptic Curve Diffie-Hellman, yang memungkinkan pengirim dan penerima memperoleh rahasia bersama dari kunci mereka tanpa menukarkannya                                                                                   |                                                                                                                                   |
| Otoritas Pembekuan        | Otoritas yang dikonfigurasi dan dapat membekukan atau mencairkan saldo jika diizinkan oleh kebijakan                                                                                                                      |                                                                                                                                   |
| HPKE                      | Hybrid Public Key Encryption, skema yang menggabungkan persetujuan kunci ECDH dengan sandi simetris untuk mengenkripsi UTXO bagi kunci penerima                                                                           |                                                                                                                                   |
| Kotak Masuk               | Kunci publik Solana yang digunakan sebagai alamat penerimaan publik untuk Private Wallet                                                                                                                                  | alamat penerimaan publik                                                                                                          |
| Pemilik                   | Kunci publik Solana, akun pintar, atau penanda tangan yang didukung penyedia dan memberikan otorisasi atas tindakan Private Wallet                                                                                        |                                                                                                                                   |
| Program kebijakan         | Program onchain publik yang memberlakukan aturan Custom Ring dan mengungkapkan Custom Ring yang digunakan transaksi                                                                                                       | kumpulan aturan kebijakan, kebijakan Ring                                                                                         |
| Privacy API               | Helius API untuk membuat Private Wallet, membaca saldo/riwayat, menyiapkan transfer, menghasilkan bukti, dan mengirimkan transaksi                                                                                        | Penyedia RPC (dokumentasi menggabungkan keduanya sebagai "Privacy API / RPC Provider"; lihat Model Kepercayaan di enterprise.mdx) |
| Saldo privat              | Saldo terenkripsi milik pengguna yang disimpan di dalam Ring                                                                                                                                                              | saldo terlindung, saldo terenkripsi, dana privat                                                                                  |
| Akun Token Privat Solana  | UTXO onchain yang menyimpan satu jumlah dari satu aset dan dimiliki oleh Private Wallet. Saldo Private Wallet adalah jumlah semua UTXO yang belum dibelanjakan                                                            | UTXO, nota, output transaksi yang belum dibelanjakan                                                                              |
| Transfer privat           | Transfer antar-Private Wallet yang tidak mengungkapkan aset atau jumlah. Dalam Ring publik rahasia, pengirim dan penerima tetap terlihat; Ring anonim menggunakan relayer dan tidak mengungkapkan kedua pihak             | transfer privat ke privat, transfer dalam Ring                                                                                    |
| Private Wallet            | Akun pembayaran dengan saldo dan transfer onchain terenkripsi                                                                                                                                                             | akun privat, akun pembayaran privat, akun privat terkelola                                                                        |
| Saldo Private Wallet      | Jumlah semua UTXO yang belum dibelanjakan dan dimiliki oleh Private Wallet                                                                                                                                                |                                                                                                                                   |
| Saldo publik              | Saldo token SPL publik dan normal milik pengguna di luar Ring mana pun                                                                                                                                                    | akun publik, akun token publik, saldo token SPL                                                                                   |
| Registri                  | Memetakan alamat Solana ke Shielded Address agar pengirim dapat membayar alamat tersebut secara privat. Adanya catatan berarti alamat dapat menerima transfer privat, bukan berarti alamat tersebut menyimpan dana privat |                                                                                                                                   |
| Relayer                   | Mengirimkan transaksi Ring anonim dan membayar biaya transaksi Solana sehingga pengirim tidak ditautkan ke transaksi                                                                                                      |                                                                                                                                   |
| Shielded Address          | Bundel kunci publik (kunci penandatanganan, nullifier, dan penampil) yang dipublikasikan dalam catatan registri pengguna. Bukan alamat onchain                                                                            | Shielded Public Key, kunci publik terlindung                                                                                      |
| Pasangan kunci terlindung | Bundel kunci penandatanganan, nullifier, dan penampil milik Private Wallet. Disimpan oleh dompet atau Wallet Provider dalam Embedded Privacy Wallet                                                                       | kunci terlindung                                                                                                                  |
| TSPP                      | Solana Privacy Protocol sumber terbuka, standar yang dibuat dan dikelola oleh Helius Labs serta mendukung transisi status onchain yang mendasarinya.                                                                      | Solana Privacy Protocol                                                                                                           |
| Kunci Penampil            | Pasangan kunci P-256 hanya baca yang mendekripsi Saldo Private Wallet. Pemilik dapat membagikannya kepada auditor untuk pengungkapan selektif                                                                             | kunci tampilan                                                                                                                    |
| Wallet Provider           | Sistem yang mengelola akun pengguna, penanda tangan, akun pintar, atau dompet perbendaharaan serta menyimpan kunci privasi yang tidak dapat diekspor, seperti Turnkey, Privy, Squads, Rain, atau sistem kustodi internal  | Pengelola Kunci Dompet, layanan pengelolaan kunci, infrastruktur kunci aman                                                       |
| Penarikan                 | Transfer privat ke publik yang keluar dari Ring menuju alamat publik                                                                                                                                                      | penarikan privat ke publik                                                                                                        |

## Tidak menemukan yang Anda cari?

<Callout type="info">
  Hubungi kami! [Telegram](https://t.me/tilo_light) | [Email](mailto:sales@helius.xyz) | [Kontak](https://www.helius.dev/contact)
</Callout>
