> ## 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.

# Concepts

> Comprendre le fonctionnement de la confidentialité Helius, y compris les flux utilisateur, ce qui reste public ou privé lors d'un transfert, et les anneaux avec politique personnalisable.

## Introduction aux anneaux

Chaque transaction sur Solana est lisible publiquement : adresses, soldes et historique des transferts sont visibles par tous.
Les anneaux chiffrent les soldes onchain et sont toujours non-custodiaux par défaut :

* Dans les anneaux confidentiels, l'actif et le montant sont privés, tandis que l'expéditeur et le destinataire restent visibles.
* Dans les anneaux anonymes, l'actif, le montant, l'expéditeur et le destinataire sont privés.

<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="Deux cartes de transaction Solana côte à côte. La carte confidentielle montre le hash de la transaction, l'expéditeur et le destinataire tandis que l'actif et le montant sont occultés. La carte anonyme ne montre que le hash de la transaction ; l'expéditeur, l'actif, le montant et le destinataire sont tous occultés. Le hash de la transaction reste public sur les deux." width="2320" height="540" data-path="images/privacy/transaction-visibility-cards.svg" />

Il existe différents types d'anneaux :

1. L'anneau par défaut est sans permission et confidentiel. Il chiffre l'actif et le montant, peut être utilisé par quiconque, et n'a pas de contrôles de politique personnalisés.
2. Les anneaux personnalisés sont des programmes Solana qui rendent la confidentialité sur Solana programmable, similaire à Token-2022. Un anneau personnalisé peut être confidentiel ou anonyme avec des politiques, rapports et règles de visibilité personnalisés.

<Info>
  Pour la plupart des applications, nous recommandons l'anneau par défaut, sans permission et confidentiel.
  Pour des contrôles de politique et de conformité personnalisés, [contactez-nous](https://www.helius.dev/contact) pour commencer avec un anneau personnalisé.
</Info>

<img src="https://mintcdn.com/helius/iNBk0QZ3vdaUiFW5/images/privacy/privacy-network.svg?fit=max&auto=format&n=iNBk0QZ3vdaUiFW5&q=85&s=af61b324d07f1184da1f3912d9f050fb" alt="Soldes privés montrés comme une zone onchain en pointillés contenant deux anneaux. L'anneau par défaut est confidentiel, auto-custodial et sans permission. L'anneau personnalisé est confidentiel ou anonyme, auto-custodial, et ajoute des politiques et conformités personnalisées. Un transfert privé connecte les anneaux, et chacun dépose et retire à partir d'une couche de soldes publics Solana en dessous." width="850" height="540" data-path="images/privacy/privacy-network.svg" />

### Les anneaux personnalisés sont programmables

Les anneaux personnalisés sont de simples programmes Solana qui rendent la confidentialité programmable, avec des fonctionnalités similaires à Token-2022.

Un anneau personnalisé peut définir des règles entièrement personnalisées pour les transferts et la visibilité/audit.

<Accordion title="Exemples de politiques d'anneaux personnalisés">
  | Politique                     | Exemple                                                                                            |
  | ----------------------------- | -------------------------------------------------------------------------------------------------- |
  | Actifs autorisés              | Uniquement USDC ou un stablecoin spécifique émis                                                   |
  | Limites de transfert          | Nécessitent une approbation supplémentaire au-dessus d'un seuil                                    |
  | Co-signature                  | Nécessitent une approbation de conformité pour les paiements sélectionnés                          |
  | Listes blanches               | N'autoriser les transferts que vers des comptes, marchands ou anneaux approuvés                    |
  | Listes noires                 | Bloquer les destinations sanctionnées ou risquées                                                  |
  | Gel/dégel                     | Geler un solde pendant qu'une enquête est en cours                                                 |
  | Délégué permanent             | Permettre à une autorité configurée de déplacer des fonds selon la politique                       |
  | Visibilité de l'auditeur      | Permettre à la conformité, la comptabilité ou aux régulateurs de visualiser l'activité de l'anneau |
  | Règles inter-anneaux          | Permettre ou bloquer les mouvements entre des anneaux spécifiques                                  |
  | Règles de retrait             | Restreindre les retraits publics ou nécessitent une approbation                                    |
  | Support de compte intelligent | Permettre l'utilisation native avec des comptes intelligents                                       |
  | Récupération de compte        | Permettre à une autorité configurée ou une identité de secours de récupérer des comptes            |
</Accordion>

Les autorités des anneaux sont déclarées lors de la création de l'anneau, pour que les utilisateurs puissent inspecter la politique avant de choisir un anneau.
L'anneau par défaut est sans permission et n'a pas d'autorité ou d'auditeur personnalisé.

<Tip>
  Si vous souhaitez configurer votre propre anneau personnalisé, [contactez-nous](https://www.helius.dev/contact) et nous vous aiderons à le mettre en place.
  Vous pouvez soit apporter votre propre conformité, soit utiliser la solution de gestion de KYC et de filtrage des sanctions de Helius.
</Tip>

## Flux utilisateurs et garanties de confidentialité

Les transactions avec Helius Privacy sont exécutées nativement onchain et composées avec d'autres programmes Solana en une seule transaction.
Les utilisateurs peuvent entrer, transférer en privé, ou sortir d'un anneau :

**1. Dépôt ou on ramp.** Les utilisateurs envoient des tokens d'un solde public Solana, ou d'un solde fiat, directement vers un solde privé.

**2. Transfert privé.** Les utilisateurs envoient des tokens entre soldes privés dans le même anneau, ou vers un autre.

**3. Retrait ou off ramp.** Les utilisateurs envoient des tokens d'un solde privé à un solde public Solana, ou directement à un solde 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="Diagramme du cycle de vie de l'anneau. Un solde public de 100 USDC dépose dans un anneau et un solde fiat de USD / EUR / ... on-rampe dans le même anneau, les fonds se déplacent entre deux soldes privés via un transfert privé, puis se retirent vers un solde public ou off-rampe vers un solde fiat." width="1420" height="240" data-path="images/privacy/privacy-rings-lifecycle.svg" />

Les utilisateurs envoient des tokens à une adresse de portefeuille Solana, comme ils le font avec des soldes publics.
L'API de confidentialité achemine automatiquement le transfert vers le portefeuille privé, si le destinataire en a un.
Sinon le transfert est un retrait vers l'adresse publique du destinataire.

N'importe qui peut déposer sur un portefeuille privé simplement en connaissant l'adresse publique du portefeuille du destinataire.
Lorsque l'application de l'expéditeur ne supporte pas la confidentialité, le destinataire reçoit les fonds publiquement et peut les chiffrer vers son propre solde privé en une seconde étape.

### Dépôt vers un solde privé : ce qui est privé

Les utilisateurs peuvent déposer vers un solde privé de deux façons :

1. On-ramp d'un solde fiat vers un solde crypto privé
2. Dépôt d'un solde crypto public vers un solde crypto privé

<Tabs>
  <Tab title="On-ramp from fiat balance">
    | Field                    | Visibility                                                  | Why                                                                                                                                                                                                                                                                                                   |
    | ------------------------ | ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | Fiat balance and payment | Not onchain                                                 | The fiat payment is not onchain                                                                                                                                                                                                                                                                       |
    | Asset                    | Private                                                     | The asset is encrypted onchain                                                                                                                                                                                                                                                                        |
    | Amount                   | Private                                                     | The transferred amount is encrypted onchain                                                                                                                                                                                                                                                           |
    | Onramp Provider          | Public in a confidential Ring, private in an anonymous Ring | In a confidential Ring the wallet address of the provider is visible. An anonymous Ring uses a relayer, so the public ledger does not reveal the source private wallet.                                                                                                                               |
    | User wallet address      | Public in a confidential Ring, private in an anonymous Ring | In a confidential Ring the user wallet address is visible onchain. The user address used for the onramp cannot be linked to the user, if it is new and is not later tied to a known wallet address by a confidential transfer. In an anonymous Ring, the public ledger does not reveal the recipient. |
  </Tab>

  <Tab title="Deposit from public crypto balance">
    | Field                      | Visibility | Why                                                |
    | -------------------------- | ---------- | -------------------------------------------------- |
    | Source public wallet       | Public     | The source wallet address is visible onchain       |
    | Asset                      | Public     | The asset is visible onchain                       |
    | Amount                     | Public     | The deposited amount is visible onchain            |
    | Destination wallet address | Public     | The destination wallet address is visible onchain  |
    | Resulting private balance  | Private    | The resulting private balance is encrypted onchain |
  </Tab>
</Tabs>

### Transfert privé : ce qui est privé

Les utilisateurs peuvent envoyer un transfert privé de deux façons :

1. Transfert dans le même anneau
2. Transfert vers un anneau différent

<Info>
  Pour la plupart des applications, nous recommandons l'anneau par défaut, sans permission et confidentiel.
  Pour des contrôles de politique et de conformité personnalisés, [contactez-nous](https://www.helius.dev/contact) pour commencer avec un anneau personnalisé.
</Info>

<Tabs>
  <Tab title="Permissionless Confidential Ring">
    | Field                 | Visibility | Why                                                                  |
    | --------------------- | ---------- | -------------------------------------------------------------------- |
    | Asset                 | Private    | The asset is encrypted onchain                                       |
    | Amount                | Private    | The transferred amount is encrypted onchain                          |
    | Source private wallet | Public     | In a confidential Ring the source private wallet is visible onchain. |
    | Recipient             | Public     | In a confidential Ring the recipient is visible onchain.             |
  </Tab>

  <Tab title="Custom Rings">
    Transfers from and within a ring reveal the program ID of the custom Ring.

    A balance in a Custom Ring can exit to an SPL token account, to the Default Ring, or to another Ring, as long as the source Ring's policy permits it.
    The default Ring is permissionless and does not have a policy or authority.

    One transaction can combine balances from the Default Ring and one Custom Ring. A transfer between two Custom Rings routes through the Default Ring.

    | Private transfer       | Custom confidential Rings | Custom anonymous Rings                                                                                      | Default confidential to or from Custom confidential | Confidential (Default or Custom) to Custom anonymous | Custom anonymous to confidential (Default or Custom)                                                        |
    | ---------------------- | ------------------------- | ----------------------------------------------------------------------------------------------------------- | --------------------------------------------------- | ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
    | Amount                 | Private                   | Private                                                                                                     | Private                                             | Private                                              | Private                                                                                                     |
    | Asset                  | Private                   | Private                                                                                                     | Private                                             | Private                                              | Private                                                                                                     |
    | Source private wallet  | Public                    | Private. A relayer submits the transaction, so the public ledger does not reveal the source private wallet. | Public                                              | Public                                               | Private. A relayer submits the transaction, so the public ledger does not reveal the source private wallet. |
    | Recipient              | Public                    | Private                                                                                                     | Public                                              | Private                                              | Public                                                                                                      |
    | Custom Ring program ID | Public                    | Public                                                                                                      | Public                                              | Public                                               | Public                                                                                                      |
  </Tab>
</Tabs>

### Retrait d'un solde privé : ce qui est privé

Les utilisateurs peuvent retirer d'un solde privé de deux façons :

1. Off-ramp de crypto privée vers un solde fiat
2. Retrait de crypto privée vers un solde crypto public

<Tabs>
  <Tab title="Off-ramp to fiat balance">
    | Field               | Visibility                                                  | Why                                                                                                                                                                                                                                                                                                        |
    | ------------------- | ----------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | Fiat payout         | Not onchain                                                 | The fiat payout is not onchain                                                                                                                                                                                                                                                                             |
    | Asset               | Private                                                     | The asset is encrypted onchain                                                                                                                                                                                                                                                                             |
    | Amount              | Private                                                     | The transferred amount is encrypted onchain                                                                                                                                                                                                                                                                |
    | Offramp Provider    | Public in a confidential Ring, private in an anonymous Ring | In a confidential Ring an observer can see that a user offramped with this Offramp Provider. In an anonymous Ring the public ledger does not reveal sender and recipient.                                                                                                                                  |
    | User wallet address | Public in a confidential Ring, private in an anonymous Ring | In a confidential Ring the user wallet address is visible onchain. Another wallet address cannot be linked to this address if this address is new and is not later tied to a known wallet address by a confidential transfer. In an anonymous Ring the public ledger does not reveal sender and recipient. |
  </Tab>

  <Tab title="Withdraw to public crypto balance">
    | Field                     | Visibility | Why                                                                  |
    | ------------------------- | ---------- | -------------------------------------------------------------------- |
    | Source private wallet     | Public     | In a confidential Ring the source private wallet is visible onchain. |
    | Asset                     | Public     | The asset is visible onchain                                         |
    | Amount                    | Public     | The withdrawn amount is visible onchain                              |
    | Destination public wallet | Public     | The destination wallet address is visible onchain                    |
    | Resulting public balance  | Public     | The resulting public balance is visible onchain                      |
    | Remaining private balance | Private    | The remaining balance is encrypted onchain                           |
  </Tab>
</Tabs>

## Flux de transaction à haut niveau

Un transfert privé se comporte de manière similaire aux transferts publics et est exécuté en une seule transaction Solana.

<Tabs>
  <Tab title="Transfert privé">
    1. Le solde SOL ou SPL de l'utilisateur est chiffré onchain.
    2. Récupération de l'état chiffré et déchiffrement localement, ou un prestataire délégué déchiffre et fournit l'état déchiffré.
    3. Le portefeuille définit le montant et le destinataire, puis demande une preuve ZK.
    4. Le prestataire RPC génère la preuve ZK par défaut et la retourne. Un anneau personnalisé nécessite aussi une preuve de politique.
    5. Le portefeuille construit la transaction Solana. Les preuves ZK sont vérifiées sans révéler l'état chiffré. Les programmes invoqués et qui signe et soumet dépendent de l'anneau :

    |                     | Anneau confidentiel sans permission                  | Anneau confidentiel personnalisé                                     | Anneau anonyme personnalisé                                          |
    | ------------------- | ---------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- |
    | Programmes invoqués | Programme de confidentialité Solana                  | Programme anneau personnalisé et programme de confidentialité Solana | Programme anneau personnalisé et programme de confidentialité Solana |
    | Signataire          | L'expéditeur signe. Un sponsor peut payer les frais. | L'expéditeur signe. Un sponsor peut payer les frais.                 | Un relais, donc l'expéditeur n'est pas lié à la transaction.         |

    6. L'application suit le statut via le hash de transaction Solana.

    <Tabs sync={false}>
      <Tab title="Anneau confidentiel sans permission">
        ```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="Anneau confidentiel personnalisé">
        ```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="Anneau anonyme personnalisé">
        ```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="Transfert Solana">
    1. Le solde SOL ou SPL de l'utilisateur est public onchain.
    2. Le portefeuille lit l'état public, construit un transfert, et le propriétaire signe.
    3. Le runtime Solana vérifie les signatures et invoque le programme Système ou Token, qui met à jour le solde public.
    4. L'application suit le statut via le hash de transaction 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>

## Portefeuille privé

Les utilisateurs conservent leur solde chiffré dans un portefeuille privé.

Le portefeuille privé reçoit les transferts à l'adresse publique Solana de l'utilisateur, servant de `inbox`.
De cette manière, l'expéditeur entre toujours l'adresse Solana du destinataire, comme ils le font avec les transferts publics.

| Comparaison        | Portefeuille Solana       | Portefeuille privé               |
| ------------------ | ------------------------- | -------------------------------- |
| Identifiant public | Adresse Solana            | La même adresse Solana           |
| Stockage onchain   | Comptes de tokens publics | Comptes de tokens privés (UTXOs) |

### Création d'un portefeuille privé

Lors de la création d'un portefeuille privé, l'adresse Solana est enregistrée dans un registre onchain.

Le registre mappe une adresse Solana à une <Tooltip tip="L'adresse protégée n'est pas une paire de clés Solana. Elle est dérivée de manière déterministe à partir des clés publiques de signature, de nullificateur et de visualisation.">adresse protégée</Tooltip>.
Les transferts sont chiffrés discrètement à l'adresse protégée.
Plusieurs adresses Solana ne peuvent pas partager une adresse protégée.
Chaque enregistrement de registre est un PDA possédé par le <Tooltip tip="regyS5rkAcw2YzDJCmTwCTHs2s246FXxbmuRZ42u2PD">[programme de registre](https://orbmarkets.io/address/regyS5rkAcw2YzDJCmTwCTHs2s246FXxbmuRZ42u2PD)</Tooltip>, que tout le monde peut consulter pour voir si une adresse Solana peut recevoir des transferts privés.

<img src="https://mintcdn.com/helius/NHXFc7ysJd1NoY9P/images/privacy/wallet-shape.svg?fit=max&auto=format&n=NHXFc7ysJd1NoY9P&q=85&s=7e96783047c79ed30c4e995623f197a6" alt="Portefeuille utilisateur montrant deux portefeuilles Solana publics et un portefeuille privé. Une flèche de boîte de réception connecte la clé publique du portefeuille public A à l'adresse protégée du portefeuille privé." width="1120" height="570" data-path="images/privacy/wallet-shape.svg" />

<Info>
  Dans votre application de portefeuille, vous pouvez laisser vos utilisateurs créer des portefeuilles privés uniquement pour une clé publique "Portefeuille privé" dédiée,
  ou pour n'importe quelle clé publique.
</Info>

### Transferts vers un portefeuille privé

À chaque transfert, l'API de confidentialité consulte l'adresse du portefeuille dans le registre onchain pour vérifier si le destinataire a un portefeuille privé.
En cas de correspondance, elle utilise l'adresse protégée discrètement pour chiffrer le transfert.

<Info>
  Lorsque le destinataire d'un transfert privé n'a pas de portefeuille privé, l'API de confidentialité résout le transfert en un retrait privé vers public.

  Nous recommandons de demander une signature utilisateur séparée dans l'interface pour s'assurer que l'utilisateur ne retire pas par accident vers un solde public.
</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
```

### Gestion des clés

Un portefeuille privé ajoute une paire de clés protégées à un portefeuille Solana à partir de votre paire de clés Solana.

| Clé                     | Portefeuille Solana                   | Portefeuille privé                                             |
| ----------------------- | ------------------------------------- | -------------------------------------------------------------- |
| Clé publique            | Partagée pour recevoir des transferts | Partagée pour recevoir des transferts                          |
| Clé privée              | Utilisée pour signer des transactions | Utilisée pour signer des transactions                          |
| Phrase de récupération  | Recréée le portefeuille               | Recréée le portefeuille                                        |
| Paire de clés protégées | N/A                                   | Ensemble des clés de signature, nullificateur et visualisation |

La paire de clés protégées est un ensemble des clés de signature, nullificateur et visualisation. Ce n'est pas une paire de clés Solana.

| Clé                  | Anneaux confidentiels                            | Anneaux anonymes personnalisés                   |
| -------------------- | ------------------------------------------------ | ------------------------------------------------ |
| Clé de signature     | Clé publique Ed25519 du portefeuille public      | Clé P-256 du portefeuille privé                  |
| Clé de nullificateur | Marque les UTXOs comme dépensés                  | Marque les UTXOs comme dépensés                  |
| Clé de visualisation | P-256 en mode lecture seule. Décrypte les soldes | P-256 en mode lecture seule. Décrypte les soldes |

L'adresse protégée est les clés publiques de la paire de clés protégées. Les transferts sont chiffrés à elle.

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

#### Création d'une paire de clés protégées

Un portefeuille peut créer la paire de clés protégées de deux manières.

1. **Dériver les clés à partir de la phrase de récupération.**

   * La méthode recommandée pour les portefeuilles basés sur la phrase de récupération.
   * Anneaux confidentiels : la clé de signature est la même clé Ed25519 qu'un portefeuille Solana dérive de cette phrase. Les clés de nullificateur et de visualisation sont des clés supplémentaires dérivées de la même phrase.
   * Anneaux anonymes personnalisés : la clé de signature est une clé P-256 supplémentaire dérivée de la phrase de récupération du portefeuille.
   * Vous pouvez toujours recréer la paire de clés protégées de la même manière que vous recréez le portefeuille Solana.

2. **Dériver les clés à partir d'un message fixe avec la clé Solana existante.**

   * Les signatures Solana sont déterministes, donc la même paire de clés Solana produit toujours la même paire de clés protégées. L'application ne reçoit jamais la clé privée.
   * La méthode recommandée pour les tests et les portefeuilles qui n'utilisent pas de phrase de récupération. Le portefeuille intégrateur doit s'assurer que la signature n'est pas exposée à des tiers.

#### Intégration d'une paire de clés protégées

Un portefeuille peut conserver la paire de clés protégées lui-même via l'[Intégration de portefeuille native](/docs/fr/privacy/integration/wallet).
Avec le [Portefeuille de confidentialité embarqué](/docs/fr/privacy/integration/embedded-wallet), un Fournisseur de portefeuille conserve la paire de clés protégées et effectue ses opérations de clés à la place.

| Gestion des clés                                                                    | Qui détient la paire de clés protégées | Où ses opérations s'exécutent                        |
| ----------------------------------------------------------------------------------- | -------------------------------------- | ---------------------------------------------------- |
| [Intégration de portefeuille native](/docs/fr/privacy/integration/wallet)                | Le portefeuille                        | Sur l'appareil                                       |
| [Portefeuille de confidentialité embarqué](/docs/fr/privacy/integration/embedded-wallet) | Un Fournisseur de portefeuille         | Dans l'infrastructure du Fournisseur de portefeuille |

### Modes de déchiffrement et synchronisation du portefeuille

Seul le propriétaire peut déchiffrer un solde de portefeuille privé avec une clé de visualisation.

Pour une divulgation sélective, un propriétaire peut partager une clé de visualisation avec un auditeur, afin que l'auditeur puisse lire l'activité sans pouvoir dépenser.
Dans les anneaux personnalisés, la politique peut déclarer un auditeur qui peut déchiffrer tous les soldes de cet anneau personnalisé.

Les anneaux confidentiels (l'anneau par défaut et les anneaux personnalisés confidentiels) supportent le déchiffrement local et délégué.
Les anneaux anonymes (uniquement les anneaux personnalisés) supportent uniquement le déchiffrement délégué.

| Mode    | Où le déchiffrement se produit | Qui a accès à la visualisation | Compromis du portefeuille                                                                           | Qui utilise cela                                                                       |
| ------- | ------------------------------ | ------------------------------ | --------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| Local   | Dans le portefeuille           | Portefeuille seulement         | Meilleure confidentialité mais nécessite un état local et un cycle de vie synchronisé               | Anneaux confidentiels : l'anneau par défaut et les anneaux personnalisés confidentiels |
| Délégué | Prestataire RPC autorisé       | Portefeuille + prestataire     | Moins de travail de synchronisation locale mais le prestataire peut voir les soldes et l'historique | Tout anneau ; le seul mode dans les anneaux anonymes personnalisés                     |

<Info>
  Un portefeuille doit déchiffrer et mettre à jour les soldes partout où il relance le remplissage : à l'ouverture du portefeuille,
  l'ouverture du portefeuille privé, reprise de l'application, reconnexion au réseau, écart de flux, ou restauration de portefeuille.
</Info>

#### Déchiffrement local

En mode de déchiffrement local, le portefeuille déchiffre et synchronise les soldes et l'historique localement.
Les serveurs Helius ne reçoivent pas la phrase mnémotechnique, la graine, la clé privée de signature, les clés privées de visualisation, ou le secret de nullificateur.

#### Déchiffrement délégué

En mode de déchiffrement délégué, le portefeuille et le prestataire sélectionné partagent une clé de visualisation.
Cela permet au prestataire de déchiffrer les soldes et l'historique, mais cela ne confère pas l'autorité de dépense.
Un portefeuille peut également partager les clés de visualisation antérieures lorsqu'il autorise le prestataire à synchroniser l'activité historique.

L'accès de l'auditeur est séparé du déchiffrement délégué.
Un auditeur reçoit la visibilité de l'anneau définie par la politique, tandis qu'un prestataire délégué reçoit un accès de synchronisation limité au portefeuille.

#### L'indexeur sert l'état chiffré

Tout comme les portefeuilles publics reposent sur un RPC Solana, les portefeuilles privés reposent sur un indexeur.
L'indexeur fournit l'état chiffré dont un portefeuille a besoin pour lire les soldes et construire des transactions privées.

Par défaut, l'indexeur est accessible via l'<Tooltip tip="https://devnet.helius-rpc.com/?api-key=<API_KEY>">URL RPC Helius</Tooltip>; toute personne peut également exécuter son propre indexeur sans permission comme solution de secours.

## Solde du portefeuille privé

Le solde du portefeuille privé est conservé onchain dans des comptes de tokens Solana privés sous forme de UTXOs (sorties de transactions non dépensées), pas dans un compte de tokens Solana.
L'anneau par défaut et tous les anneaux personnalisés stockent les soldes privés dans un arbre Merkle d'état.

Le solde du portefeuille privé est la somme de tous les UTXOs possédés par un portefeuille privé.
Les programmes Solana peuvent posséder des UTXOs de manière similaire aux comptes Solana réguliers.
Cette documentation utilise les comptes de tokens Solana privés et les UTXOs de manière interchangeable.

<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="Un portefeuille privé relié par des lignes pointillées à plusieurs notes UTXO, chacune détenant un montant d'un actif. Le solde du portefeuille est la somme des notes." width="700" height="276" data-path="images/privacy/utxo-set-to-wallet.svg" />

<Accordion title="Soldes dans les UTXOs vs comptes Solana">
  Pour l'expérience utilisateur, il n'importe pas si le solde est conservé dans des UTXOs ou des comptes de tokens Solana.

  À un niveau technique, dépenser un solde public réduit le `amount` dans un compte de tokens Solana.
  Dépenser un solde privé n'écrase pas le champ `amount` d'un UTXO.
  Au lieu de cela, les transactions privées prennent les UTXOs existants en entrée (choisis automatiquement par le SDK),
  consomment les entrées et créent de nouvelles sorties pour le destinataire et pour le solde restant de l'expéditeur.

  Par exemple, Alice a 50 USDC et envoie 35 à Bob.

  * Dans un compte de tokens Solana, son champ `amount` passe de 50 à 15, et celui de Bob augmente de 35. Le nombre change sur place.
  * Avec les UTXOs, Alice détient une note de 50 USDC. La transaction la dépense et crée deux nouvelles notes : une note de 35 USDC pour Bob, et une note de change de 15 USDC pour Alice. Sa vieille note de 50 est maintenant dépensée.

  <Tabs>
    <Tab title="Une note d'entrée">
      <img src="https://mintcdn.com/helius/KNGZoSuCXDUVm6yU/images/privacy/spend-comparison.svg?fit=max&auto=format&n=KNGZoSuCXDUVm6yU&q=85&s=3d0ce046ce268daf75ab8546766bc427" alt="Alice envoie 35 de ses 50 USDC à Bob. Sur un compte de tokens Solana, le montant change sur place de 50 à 15. Avec les UTXOs, la seule note de 50 USDC d'Alice est dépensée et deux nouvelles notes sont créées : une note de 35 USDC pour Bob et une note de change de 15 USDC pour Alice." width="1016" height="240" data-path="images/privacy/spend-comparison.svg" />
    </Tab>

    <Tab title="Plusieurs notes d'entrée">
      <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 envoie 35 de ses 50 USDC à Bob, détenus sous forme de trois notes de 20, 20, et 10. Sur un compte de tokens Solana, le montant change sur place de 50 à 15. Avec les UTXOs, les trois notes d'entrée sont dépensées et deux nouvelles notes sont créées : une note de 35 USDC pour Bob et une note de change de 15 USDC pour Alice." width="1016" height="240" data-path="images/privacy/spend-comparison-multi.svg" />
    </Tab>
  </Tabs>

  |            | Compte de tokens Solana                        | Compte de tokens private Solana (UTXO)                        |
  | ---------- | ---------------------------------------------- | ------------------------------------------------------------- |
  | Contient   | Un seul numéro de solde dans le champ `amount` | Un ensemble de notes, chacune un montant fixe d'un actif      |
  | Solde      | Le numéro sur le compte                        | La somme de tous les UTXOs non dépensés                       |
  | Dépense    | Soustrait du champ `amount` sur place          | Consomme des UTXOs d'entrée et écrit un nouvel UTXO de change |
  | Visibilité | Public onchain                                 | Chiffré onchain                                               |

  <Info>
    Lors du dépôt à un solde privé de SOL et d'actifs SPL, un PDA d'interface possédé par le programme de Confidentialité Solana met les tokens en séquestre et crée des UTXOs avec l'utilisateur comme propriétaire.

    Lors du retrait vers un solde public, les UTXOs existants sont marqués comme dépensés, et les tokens sont libérés vers les comptes de tokens Solana.
  </Info>
</Accordion>

Un portefeuille privé peut détenir des soldes dans plusieurs anneaux en même temps sans limites quant au nombre d'anneaux.
À quel anneau un solde appartient n'est pas une propriété du portefeuille. C'est une propriété de chaque UTXO, stockée dans son champ `policy_program_id`.

## Comptes de tokens Solana privés

Un compte de tokens Solana privé est un UTXO qui se comporte de manière similaire à un compte de tokens Solana avec deux différences principales :

* un compte de tokens Solana privé ne nécessite pas d'exemption de loyer lors de sa création, et
* son solde est chiffré onchain.

Cependant, les comptes de tokens Solana privés stockent les mêmes données, telles que :

* **Actif :** la frappe que l'UTXO contient des unités de. SOL est l'adresse de frappe par défaut. L'actif peut être SOL ou n'importe quel actif SPL ou Token-2022.
* **Montant :** le nombre d'unités de `asset` que la note contient, dans l'unité la plus petite de l'actif.
* **Données de programme et de politique :** données facultatives pour la politique d'anneau configurée pour ajouter une fonctionnalité similaire à Token-2022

<Tabs>
  <Tab title="Diagramme">
    <img src="https://mintcdn.com/helius/KNGZoSuCXDUVm6yU/images/privacy/account-comparison-private.svg?fit=max&auto=format&n=KNGZoSuCXDUVm6yU&q=85&s=860d0d2f3894b0a0ac169b82e538a934" alt="Un compte de tokens Solana privé. Le programme de confidentialité Solana possède un compte de tokens privé, qui s'étend dans ses champs PrivateAccount : propriétaire, actif, montant, données de politique et ID de programme de politique." width="1080" height="590" data-path="images/privacy/account-comparison-private.svg" />
  </Tab>

  <Tab title="Code">
    ```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="Voir le compte de tokens Solana">
  <Tabs>
    <Tab title="Diagramme">
      <img src="https://mintcdn.com/helius/KNGZoSuCXDUVm6yU/images/privacy/account-comparison-solana.svg?fit=max&auto=format&n=KNGZoSuCXDUVm6yU&q=85&s=89ff901091255f2038972208fcb5d538" alt="Un compte de tokens Solana. Le programme de tokens possède un compte de tokens, déployé dans ses champs AccountInfo (Données, Exécutable, Lamports, Propriétaire) et le champ Data déployé dans les Données de compte (Frappe, Propriétaire, Montant)." 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>

## Sur la concurrence

Les utilisateurs peuvent dépenser les soldes privés dès que les transactions sont finales.

Autrement dit, le solde d'une paire de clés peut être utilisé simultanément lorsqu'il est réparti entre plusieurs UTXOs.
Le portefeuille sélectionne quels UTXOs dépenser.

Un arbre Merkle stocke l'état privé pour l'anneau par défaut sans permission et tous les anneaux personnalisés.
L'arbre est stocké dans un compte Solana modifiable.
Les transferts privés qui écrivent dans ce compte partagent la limite de verrouillage d'écriture de 12 millions CU par compte de Solana par bloc.

Un transfert privé consomme environ 220 000 CU.
Un arbre supporte donc environ 54 transferts privés par bloc, ou environ 130 transactions par seconde avec les temps de bloc actuels de Solana d'environ 400 millisecondes.

Le protocole peut ajouter plus d'arbres pour augmenter le débit.
Chaque arbre est un compte modifiable séparé avec son propre budget de calcul par compte, donc les transactions sur différents arbres ne se disputent pas le même budget de verrouillage d'écriture.

## Sur le temps de génération de preuve

Les preuves de zéro connaissance sont actuellement générées par un serveur de prouveur ; un transfert confidentiel typique est prouvé en quelques dizaines de millisecondes ; la preuve locale pour les anneaux confidentiels est prévue.
Le temps de preuve est activement optimisé pour assurer une expérience utilisateur fluide.

## Termes

| Terme                         | Signification                                                                                                                                                                                                                                                         | Également écrit comme                                                                                                                            |
| ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| AES-GCM                       | Le chiffrement symétrique qui chiffre le contenu des UTXOs et détecte les altérations                                                                                                                                                                                 |                                                                                                                                                  |
| Auditeur                      | Un visualiseur configuré pour un anneau personnalisé. Les auditeurs peuvent lire les données de l'anneau mais ne peuvent pas dépenser                                                                                                                                 |                                                                                                                                                  |
| Anneau personnalisé           | Un anneau d'entreprise dédié avec des règles, une visibilité et des autorités personnalisées.                                                                                                                                                                         | anciennement "Anneau de politique"                                                                                                               |
| Mode de déchiffrement         | Comment un anneau supporte le déchiffrement des soldes et de l'historique : les anneaux confidentiels (l'anneau par défaut et les anneaux personnalisés confidentiels) supportent Local et Délégué ; les anneaux anonymes personnalisés supportent uniquement Délégué |                                                                                                                                                  |
| Déchiffrement délégué         | Mode de synchronisation dans lequel un prestataire sélectionné utilise une clé de visualisation partagée pour lire les soldes et l'historique sans autorité de dépense                                                                                                |                                                                                                                                                  |
| Anneau par défaut             | Un groupe de portefeuilles privés avec des soldes dans l'anneau confidentiel sans permission ; l'actif et le montant sont privés tandis que l'expéditeur et le destinataire restent publics                                                                           |                                                                                                                                                  |
| Dépôt                         | Un transfert public-vers-privé dans un anneau depuis une adresse publique Solana                                                                                                                                                                                      | entrer, dépôt public-vers-privé                                                                                                                  |
| ECDH                          | Elliptic Curve Diffie-Hellman, qui permet à l'expéditeur et au destinataire de dériver un secret partagé à partir de leurs clés sans l'échanger                                                                                                                       |                                                                                                                                                  |
| Autorité de gel               | Une autorité configurée qui peut geler ou dégeler les soldes lorsque la politique le permet                                                                                                                                                                           |                                                                                                                                                  |
| HPKE                          | Hybrid Public Key Encryption, le schéma combinant l'accord de clé ECDH avec un chiffrement symétrique pour chiffrer un UTXO pour la clé d'un destinataire                                                                                                             |                                                                                                                                                  |
| Boîte de réception            | La clé publique Solana utilisée comme adresse de réception publique pour un portefeuille privé                                                                                                                                                                        | adresse de réception publique                                                                                                                    |
| Propriétaire                  | La clé publique Solana, le compte intelligent ou le signataire soutenu par un prestataire qui autorise les actions du portefeuille privé                                                                                                                              |                                                                                                                                                  |
| Programme de politique        | Le programme onchain public qui fait respecter les règles d'un anneau personnalisé et révèle quel anneau personnalisé utilise une transaction                                                                                                                         | ensemble de règles de politique, politique d'anneau                                                                                              |
| API de confidentialité        | API de Helius pour créer des portefeuilles privés, lire les soldes/l'historique, préparer les transferts, générer des preuves, et soumettre des transactions                                                                                                          | Fournisseur RPC (les docs combinent les deux comme "API de confidentialité / Fournisseur RPC" ; voir le Modèle de confiance dans enterprise.mdx) |
| Solde privé                   | Le solde chiffré d'un utilisateur conservé dans un anneau                                                                                                                                                                                                             | solde protégé, solde chiffré, fonds privés                                                                                                       |
| Compte de tokens Solana privé | Un UTXO onchain détenant un montant d'un actif, possédé par un portefeuille privé. Le solde du portefeuille privé est la somme de tous les UTXOs non dépensés                                                                                                         | UTXO, note, sortie de transaction non dépensée                                                                                                   |
| Transfert privé               | Un transfert entre portefeuilles privés qui ne révèle ni l'actif ni le montant. Sur l'anneau public confidentiel, l'expéditeur et le destinataire restent visibles ; un anneau anonyme utilise un relais et ne révèle aucune des deux parties                         | transfert privé-à-privé, transfert dans l'anneau                                                                                                 |
| Portefeuille privé            | Un compte de paiement avec des soldes et des transferts chiffrés onchain                                                                                                                                                                                              | compte privé, compte de paiement privé, compte privé géré                                                                                        |
| Solde du portefeuille privé   | La somme de tous les UTXOs non dépensés possédés par un portefeuille privé                                                                                                                                                                                            |                                                                                                                                                  |
| Solde public                  | Le solde SPL token normal, public, d'un utilisateur en dehors de tout anneau                                                                                                                                                                                          | compte public, compte token public, solde SPL token                                                                                              |
| Registre                      | Mappe une adresse Solana à son adresse protégée pour que les expéditeurs puissent payer l'adresse en privé. Un enregistrement signifie que l'adresse peut recevoir des transferts privés, pas qu'elle détient des fonds privés                                        |                                                                                                                                                  |
| Relais                        | Soumet des transactions d'anneau anonyme et paie leurs frais de transaction Solana, donc l'expéditeur n'est pas lié à la transaction                                                                                                                                  |                                                                                                                                                  |
| Adresse protégée              | L'ensemble des clés publiques (signatures, nullificateur et visualisation) publié dans l'enregistrement de registre d'un utilisateur. Pas une adresse onchain                                                                                                         | Clé publique protégée, clé publique protégée                                                                                                     |
| Paire de clés protégées       | L'ensemble des clés de signature, de nullificateur et de visualisation d'un portefeuille privé. Détenu par le portefeuille, ou par un Fournisseur de portefeuille dans le Portefeuille de confidentialité embarqué                                                    | clés protégées                                                                                                                                   |
| TSPP                          | Le protocole open-source de confidentialité Solana, une norme développée et maintenue par Helius Labs qui alimente les transitions d'état onchain.                                                                                                                    | Protocole de confidentialité Solana                                                                                                              |
| Clé de visualisation          | Une paire de clés P-256 en mode lecture seule qui décrypte un solde de portefeuille privé. Le propriétaire peut la partager avec un auditeur pour une divulgation sélective                                                                                           | clé de visualisation                                                                                                                             |
| Fournisseur de portefeuille   | Le système qui gère les comptes utilisateurs, signataires, comptes intelligents, ou portefeuilles de trésorerie et détient des clés de confidentialité non exportables, comme Turnkey, Privy, Squads, Rain, ou une infrastructure de garde interne                    | Gestion du portefeuille, service de gestion des clés, infrastructure de clés sécurisée                                                           |
| Retrait                       | Un transfert privé-vers-public sortant d'un anneau vers une adresse publique                                                                                                                                                                                          | retrait privé-vers-public                                                                                                                        |

## Didn't find what you were looking for?

<Callout type="info">
  Reach out! [Telegram](https://t.me/tilo_light) | [E-Mail](mailto:sales@helius.xyz) | [Contact](https://www.helius.dev/contact)
</Callout>
