Skip to main content

Portefeuille privé et utilisateur

Les utilisateurs conservent leur solde chiffré dans un portefeuille privé et signent les transactions privées avec leur clé Solana Ed25519 existante. L’intégration d’un portefeuille privé ajoute une paire de clés protégée à votre gestion des clés. Vous pouvez l’intégrer vous-même ou utiliser le portefeuille privé intégré.

Transactions privées

Les transferts privés sont des transactions Solana normales. L’environnement d’exécution Solana vérifie les signatures et invoque le programme de confidentialité Solana, qui vérifie la preuve ZK sans révéler l’état chiffré. Un transfert confidentiel standard utilise environ 927 octets, ce qui reste largement dans la limite de 4 096 octets de la v1.
Pour l’exemple de transfert confidentiel à 2 entrées et 3 sorties de la spécification. Consultez le code source : Spécification · xtask/src/main.rsConsultez la structure des transactions Solana v1.

RPC

Une donne accès au RPC Solana, à l’indexeur et à un générateur de preuves distant.
  • RPC Solana – Renvoie le solde public et soumet les transactions au réseau Solana.
  • Indexeur – L’indexeur fournit l’état chiffré dont un portefeuille a besoin pour lire les soldes et créer des transactions privées. N’importe qui peut également exécuter son propre indexeur sans autorisation comme solution de secours.
  • Générateur de preuves – Les preuves à divulgation nulle de connaissance peuvent être générées localement ou par un serveur de génération de preuves en quelques millisecondes, selon la transaction et le matériel. Helius utilise des GPU pour générer les preuves.
Pour les anneaux personnalisés, les fonctionnalités facultatives comprennent un RPC d’anneau facultatif permettant de fournir les soldes déchiffrés et l’historique à l’aide d’une clé de visualisation partagée ou d’une clé d’auditeur d’anneau configurée. De plus, les transactions anonymes utilisent un relais afin que l’utilisateur n’apparaisse pas comme payeur des frais de transaction.

Confidentialité et programmes Solana

Le programme de confidentialité Solana (SPP) est le programme principal qui vérifie et exécute toutes les transitions d’état privé. Les programmes d’anneaux personnalisés et les programmes Solana ZK ajoutent une logique de conformité ou d’application, puis invoquent SPP pour mettre à jour l’état privé. D’autres programmes Solana peuvent interagir avec ces programmes par CPI dans la même transaction, dans les limites des transactions Solana, telles que la profondeur maximale de CPI de 5.

Programme de confidentialité Solana (SPP)

Le programme de confidentialité Solana vérifie les preuves à divulgation nulle de connaissance et met à jour l’état privé. Utilisez-le pour déposer des jetons, transférer des soldes privés et retirer des jetons vers des comptes publics. D’autres programmes invoquent SPP par CPI pour exécuter des transitions d’état privé.

Programme d’anneau personnalisé

Un programme d’anneau personnalisé définit les autorisations de transfert et toute autorité supplémentaire, de manière similaire à Token-2022. Utilisez-le pour configurer des auditeurs, exiger un cosignataire ou permettre à une autorité de geler des soldes. Il vérifie une preuve ZK pour appliquer sa logique de conformité personnalisée, puis invoque SPP afin de mettre à jour l’état privé.

Programme Solana ZK

Les programmes Solana à divulgation nulle de connaissance (ZK) permettent aux programmes Solana d’utiliser des comptes séquestres privés afin d’appliquer une logique applicative aux soldes privés. Vous pouvez créer des échanges privés, du staking, des prêts et bien plus encore avec les programmes Solana ZK. Par exemple, un échange confidentiel peut imposer les montants et le prix convenus sans les rendre publics. Le programme vérifie une preuve ZK de sa logique applicative, puis invoque SPP, directement ou par l’intermédiaire d’un programme d’anneau personnalisé, afin de mettre à jour l’état privé.

Arbre de Merkle d’état et Forester

L’anneau par défaut et tous les anneaux personnalisés stockent l’état privé dans un compte d’arbre de Merkle d’état, géré par un nœud Forester. Les comptes d’arbre engagent l’état privé sans le stocker dans des comptes Solana distincts. Vous lisez donc les soldes et l’historique des transactions à l’aide de méthodes RPC d’indexeur dédiées, telles que getShieldedTransactionsByTags, plutôt qu’avec des méthodes de compte Solana comme getAccountInfo. Consultez Lire un solde privé et Lire l’historique des transactions privées.

Débit

L’arbre est stocké dans un compte Solana accessible en écriture. Les transferts privés qui écrivent dans ce compte partagent la limite de verrouillage en écriture de 12 millions de CU par compte et par bloc de Solana. Différents UTXO peuvent être dépensés indépendamment, mais les transactions qui écrivent dans le même arbre partagent toujours les verrouillages de comptes et les limites de calcul de Solana. Un transfert confidentiel consomme environ 140 000 CU dans le benchmark d’instruction. Un arbre prend donc en charge environ 86 transferts privés par bloc, soit environ 215 transactions par seconde avec les temps de bloc Solana actuels d’environ 400 millisecondes. Le protocole peut ajouter davantage d’arbres pour augmenter le débit. Chaque arbre est un compte accessible en écriture distinct, avec son propre budget de calcul par compte. Les transactions sur des arbres différents ne se disputent donc pas le même budget de verrouillage en écriture.

Interface SPL

L’interface SPL assure l’interopérabilité entre les jetons détenus publiquement et en privé. Il s’agit d’un compte séquestre par mint, qui peut être créé sans autorisation, mais qui ne doit être créé qu’une seule fois par mint.
  • Lors d’un dépôt vers un solde privé de SOL et d’actifs SPL, un PDA d’interface détenu par le programme de confidentialité Solana place les jetons sous séquestre et crée des UTXO dont l’utilisateur est propriétaire.
  • Lors d’un retrait vers un solde public, les UTXO existants sont marqués comme dépensés et les jetons sont libérés vers les comptes de jetons Solana.
Pour les mints qui ne disposent pas encore d’un PDA d’interface, le premier dépôt peut inclure une instruction permettant de créer le PDA d’interface dans la même transaction.

En savoir plus

Overview

Anneaux, garanties de confidentialité et flux de transaction.

Private State and UTXOs

Comment les soldes privés sont stockés et dépensés.

Encryption and Privacy Guarantees

Comment les actifs sont chiffrés et le rôle de la paire de clés protégée.

Custom Enterprise Rings

Découvrez comment configurer un anneau personnalisé.

Vous n’avez pas trouvé ce que vous cherchiez ?

Contactez-nous ! Telegram | E-Mail | Contact