Guides ·

Generation de Portefeuille Solana : Cles ed25519 et Adresses


Solana est l'une des blockchains les plus utilisees pour la DeFi et les applications grand public, mais son processus de generation de portefeuille differe significativement de Bitcoin et Ethereum. Courbe elliptique differente, chemins de derivation differents, encodage d'adresse different et hypotheses differentes sur la gestion des cles. Si vous venez du monde Bitcoin ou Ethereum, ces differences comptent --- et les mal comprendre peut entrainer la perte de fonds ou une securite compromise.

Ce guide couvre l'ensemble du processus de generation de portefeuille Solana : la courbe elliptique ed25519, les chemins de derivation specifiques a Solana, l'encodage d'adresse Base58 et les considerations de securite propres a l'ecosysteme Solana.

Comment Solana Differe de Bitcoin et Ethereum

Au plus haut niveau, la difference est la courbe elliptique. Bitcoin et Ethereum utilisent tous deux secp256k1, une courbe du Standards for Efficient Cryptography Group (SECG). Solana utilise ed25519, une courbe sous forme d'Edwards concue par Daniel J. Bernstein et ses collegues. Le choix de la courbe se repercute a travers chaque couche de la pile.

Propriete Bitcoin / Ethereum Solana
Courbe elliptique secp256k1 ed25519
Schema de signature ECDSA EdDSA (Ed25519)
Taille de cle privee 32 octets 64 octets (etendue)
Taille de cle publique 33 octets (compressee) 32 octets
Encodage d'adresse Bech32 / Hex Base58
Chemin de derivation m/44'/0'/0' ou m/44'/60'/0'/0 m/44'/501'/0'/0'

Les choix de conception de Solana refletent ses priorites : haut debit et verification rapide des signatures. Les signatures Ed25519 sont environ deux fois plus rapides a verifier que les signatures ECDSA sur secp256k1, ce qui compte lorsque vous traitez des milliers de transactions par seconde. Pour une comparaison technique plus approfondie des deux courbes, consultez secp256k1 vs ed25519.

La Courbe ed25519

Ed25519 est une instance specifique de l'Algorithme de Signature Numerique a courbe d'Edwards (EdDSA), operant sur Curve25519. La courbe est definie sur le corps premier 2^255 - 19 (d'ou le nom) et utilise une forme d'Edwards tordue :

-x^2 + y^2 = 1 + d*x^2*y^2

ou d est une constante specifique. Le niveau de securite est d'environ 128 bits --- comparable a secp256k1 --- mais les caracteristiques d'implementation different significativement.

Generation de Cles

Une cle privee Solana commence comme un scalaire aleatoire de 32 octets, souvent appele "seed" dans la terminologie ed25519 (a ne pas confondre avec une seed phrase BIP39). Cette valeur de 32 octets est hachee avec SHA-512 pour produire une cle etendue de 64 octets. Les 32 octets inferieurs (apres le clamping de bits) deviennent le scalaire utilise pour la signature. Les 32 octets superieurs sont utilises comme aleatoire supplementaire dans le processus de signature.

La cle publique est derivee en multipliant le point de base B de la courbe par le scalaire ajuste. Le resultat est un point de 32 octets sous forme Edwards compressee. Cette cle publique de 32 octets est egalement l'adresse Solana --- il n'y a pas d'etape de hachage supplementaire comme le Keccak-256 d'Ethereum.

32 octets aleatoires  SHA-512  cle etendue de 64 octets
     32 octets inferieurs (ajustes) × Point de base B  cle publique de 32 octets = adresse Solana

Signatures Deterministes

L'un des avantages d'ed25519 par rapport a ECDSA est que les signatures sont deterministes. ECDSA necessite un nonce aleatoire pour chaque signature, et un generateur de nombres aleatoires defaillant peut catastrophiquement reveler la cle privee (cela s'est produit plusieurs fois dans l'histoire de Bitcoin et Ethereum). Ed25519 derive le nonce du message et de la cle privee, eliminant cette classe entiere de vulnerabilite.

Performance

La verification des signatures Ed25519 est rapide --- environ 70 000 verifications par seconde sur un seul coeur de CPU moderne. C'est approximativement le double de la vitesse de verification ECDSA sur secp256k1. Pour l'architecture de Solana, qui vise des temps de bloc de 400 millisecondes et un haut debit de transactions, cet avantage de vitesse est significatif.

Chemins de Derivation Solana

Comme Bitcoin et Ethereum, les portefeuilles Solana utilisent la derivation de portefeuille HD pour generer plusieurs cles a partir d'une seule seed phrase. Le standard reste BIP39 pour la generation de mnemoniques et BIP32 pour la derivation hierarchique, mais avec des chemins specifiques a Solana.

Le Chemin Standard : m/44'/501'/0'/0'

Le chemin de derivation canonique de Solana est :

m/44'/501'/0'/0'

En le decomposant selon BIP44 :

  • 44' --- Objectif : hierarchie multi-comptes BIP44.
  • 501' --- Type de monnaie : 501 est l'indice enregistre dans SLIP44 pour Solana.
  • 0' --- Compte : premier compte.
  • 0' --- Le niveau "change", mais dans la convention Solana, c'est l'indice d'adresse.

Notez que les quatre niveaux utilisent une derivation renforcee (indiquee par l'apostrophe). Cela differe du m/44'/60'/0'/0/0 d'Ethereum, qui utilise une derivation non renforcee pour les deux derniers niveaux. Le choix de Solana de chemins entierement renforces fournit une isolation plus forte entre les cles derivees : compromettre une cle derivee ne peut pas mener a la compromission des cles soeurs.

Comptes Multiples

Pour des comptes supplementaires, incrementez l'indice de compte :

  • Premier compte : m/44'/501'/0'/0'
  • Deuxieme compte : m/44'/501'/1'/0'
  • Troisieme compte : m/44'/501'/2'/0'

Certains portefeuilles (comme Phantom) peuvent aussi supporter l'incrementation de l'indice final :

  • m/44'/501'/0'/0'
  • m/44'/501'/0'/1'
  • m/44'/501'/0'/2'

Considerations de Compatibilite

Tous les portefeuilles Solana n'utilisent pas exactement le meme chemin de derivation. Historiquement, le CLI Solana utilisait m/44'/501' (seulement deux niveaux), tandis que la plupart des portefeuilles avec interface graphique utilisent m/44'/501'/0'/0'. Cette divergence signifie que la meme seed phrase peut produire des adresses differentes dans differents portefeuilles. Lors de la recuperation d'un portefeuille, confirmez toujours quel chemin de derivation le portefeuille attend.

Le Generateur de Seed Phrase Solana de SafeSeed affiche le chemin de derivation exact utilise, pour que vous sachiez precisement quel chemin correspond a quelle adresse.

Generation de Portefeuille Etape par Etape

Voici le processus complet pour generer un portefeuille Solana a partir d'une seed phrase BIP39, decompose en etapes discretes.

Etape 1 : Generer l'Entropie

Utilisez un generateur de nombres aleatoires cryptographiquement securise pour produire 128 bits (pour une phrase de 12 mots) ou 256 bits (pour une phrase de 24 mots) d'entropie. Sur SafeSeed, cela utilise la Web Crypto API du navigateur via crypto.getRandomValues().

Etape 2 : Creer le Mnemonique

Ajoutez les bits de checksum SHA-256 a l'entropie, divisez en segments de 11 bits et associez chaque segment a un mot dans la liste de mots BIP39. Le resultat est 12 ou 24 mots anglais. Ce processus est identique a Bitcoin et Ethereum --- BIP39 est agnostique de blockchain. Pour une analyse complete, consultez BIP39 Explique.

Etape 3 : Deriver la Seed Maitresse

Appliquez PBKDF2-HMAC-SHA512 avec 2 048 iterations a la chaine du mnemonique (avec sel de phrase de passe optionnel), produisant une seed maitresse de 512 bits.

Etape 4 : Deriver la Cle Solana

Parcourez le chemin de derivation m/44'/501'/0'/0', en effectuant une derivation de cle fille HMAC-SHA512 a chaque niveau. Comme Solana utilise ed25519 plutot que secp256k1, la derivation de cle fille utilise le standard SLIP-0010 (pas BIP32 directement), qui specifie comment deriver des cles ed25519 hierarchiquement.

La sortie a la fin du chemin est une seed ed25519 de 32 octets.

Etape 5 : Generer la Paire de Cles

Alimentez la seed de 32 octets dans la generation de cles ed25519 :

  1. Calculez le SHA-512 de la seed pour obtenir 64 octets.
  2. Appliquez le clamping de bits aux 32 octets inferieurs (effacez les 3 bits les plus bas, effacez le bit le plus haut, definissez le deuxieme bit le plus haut).
  3. Multipliez le point de base B par le scalaire ajuste pour obtenir la cle publique de 32 octets.

La paire de cles consiste en la cle privee etendue de 64 octets (seed + cle publique) et la cle publique de 32 octets.

Etape 6 : Encoder l'Adresse

La cle publique de 32 octets est encodee en Base58 pour produire l'adresse Solana lisible par l'homme. Pas de hachage supplementaire, pas d'octet de prefixe --- juste l'encodage Base58 brut des octets de la cle publique.

Vous pouvez generer et inspecter l'ensemble de ce flux en utilisant le Generateur de Cle Privee Solana de SafeSeed, qui affiche la seed phrase, le chemin de derivation, la cle privee, la cle publique et l'adresse finale.

Format d'Adresse Base58

Les adresses Solana utilisent l'encodage Base58 --- le meme alphabet Base58 utilise par les adresses heritees de Bitcoin, qui exclut les caracteres visuellement confondants : 0 (zero), O (o majuscule), I (i majuscule) et l (L minuscule).

Une adresse Solana typique ressemble a :

7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV

Proprietes

  • Longueur : 32--44 caracteres (le plus souvent 43--44). La longueur varie car l'encodage Base58 n'est pas a largeur fixe ; les octets zero en tete produisent des caracteres 1 en tete.
  • Jeu de caracteres : 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
  • Pas de prefixe : Contrairement a Bitcoin (commence par 1, 3 ou bc1) ou Ethereum (commence par 0x), les adresses Solana n'ont pas de prefixe fixe. Cela rend l'identification visuelle plus difficile mais garde les adresses courtes.
  • Pas de checksum integre : Contrairement au Base58Check (utilise par les adresses heritees de Bitcoin), l'encodage Base58 de Solana n'inclut pas de checksum. Une erreur de transcription pourrait produire une adresse d'apparence valide qui appartient a quelqu'un d'autre ou a personne.

L'absence de checksum rend la manipulation soigneuse essentielle. Utilisez toujours le copier-coller plutot que la transcription manuelle. Quand c'est possible, utilisez des codes QR. Et validez le format de l'adresse en utilisant le Validateur d'Adresse Solana avant d'envoyer des fonds. Pour une comparaison plus large des formats d'adresses entre blockchains, consultez Formats d'Adresses Crypto Expliques.

Considerations de Securite pour Solana

Les principes generaux de securite des cles s'appliquent a Solana comme a toute blockchain, mais plusieurs facteurs specifiques a Solana meritent attention.

La Generation Hors Ligne Est Critique

Comme les adresses Solana n'ont pas de checksum integre, les erreurs pendant la generation sont plus difficiles a detecter. Generer votre portefeuille hors ligne --- sur une machine sans connexion reseau --- elimine le risque d'exfiltration et vous donne un environnement controle pour verifier soigneusement la sortie. Les outils de SafeSeed sont concus pour cela : chargez la page, deconnectez-vous, generez et enregistrez. Pour les principes generaux de generation hors ligne, consultez Les Generateurs de Seed en Ligne Sont-ils Surs ?.

Fichiers de Paire de Cles

Le CLI Solana stocke les cles privees sous forme de tableaux JSON de 64 octets (la paire de cles ed25519) dans des fichiers generalement nommes id.json. Si vous exportez votre portefeuille depuis une interface graphique et l'importez dans le CLI (ou vice versa), vous pouvez rencontrer ce format. Protegez les fichiers de paire de cles avec la meme rigueur que les seed phrases : chiffrez-les, stockez-les sur des supports air-gapped et ne les laissez jamais sur des machines connectees au reseau.

Comptes de Tokens

Contrairement a Ethereum, ou les tokens ERC-20 sont detenus a la meme adresse que l'ETH, Solana utilise des comptes de tokens associes (ATAs) --- des comptes on-chain separes pour chaque type de token. C'est un detail d'implementation, pas une preoccupation de securite des cles, mais cela signifie que votre adresse Solana seule ne raconte pas l'histoire complete de vos avoirs. Tous les ATAs derives d'une adresse de portefeuille donnee sont controles par la meme cle privee, donc votre sauvegarde de seed phrase reste suffisante.

Adresses Derivees de Programme (PDAs)

Le modele de programmation de Solana utilise des Adresses Derivees de Programme --- des adresses generees de maniere deterministe a partir d'un ID de programme et d'un ensemble de seeds, et qui intentionnellement n'ont pas de cle privee correspondante. Les PDAs sont utilisees par les contrats intelligents (programmes) pour gerer l'etat on-chain. Vous n'avez pas besoin de generer ou sauvegarder les PDAs ; ce ne sont pas des portefeuilles controles par les utilisateurs.

Nonces Durables et Signature de Transactions

Les transactions Solana incluent un blockhash recent pour la protection contre le rejeu, ce qui signifie que les transactions expirent apres environ 60 a 90 secondes. Cela est pertinent pour les workflows de signature hors ligne : vous devez recuperer un blockhash recent (ou utiliser un nonce durable) sur une machine en ligne, le transferer a la machine hors ligne pour signature, puis diffuser la transaction signee avant que le blockhash n'expire. Les portefeuilles materiels gerent cela automatiquement, mais si vous construisez un pipeline de signature hors ligne personnalise, la contrainte de temps est une consideration de conception importante.

Bonnes Pratiques de Securite des Cles Privees

Les fondamentaux restent les memes quelle que soit la chaine : ne partagez jamais votre seed phrase, ne la stockez jamais numeriquement sur un appareil connecte au reseau et utilisez le cold storage pour tout avoir significatif. Pour un traitement complet, consultez Bonnes Pratiques de Securite des Cles Privees.

Le processus de generation de portefeuille Solana est conceptuellement similaire a Bitcoin et Ethereum --- l'entropie devient une seed phrase, la seed phrase devient une cle maitresse et les chemins de derivation produisent des comptes individuels. Mais la courbe sous-jacente (ed25519), le standard de derivation (SLIP-0010) et le format d'adresse (Base58 brut sans checksum) creent un ensemble distinct de details d'implementation qui comptent pour l'interoperabilite, la recuperation et la securite. Comprendre ces differences n'est pas academique ; c'est le fondement de la protection de vos avoirs Solana.