Débuter avec Bitcoin : le Wallet
J’ai déjà parlé de Bitcoin sous l’angle technique, avec l’intégration sur Faeries Space : * Lien « Soutenir » de Faeries Space, et * Mettre en cache les données de transaction
Mais pour recevoir des Bitcoins, il faut déjà avoir un wallet …
Dans cette nouvelle note, je vais reprendre quelques bases sur Bitcoin au travers de mes premiers pas sur Bitcoin.
Mais qu’est-ce que c’est, un wallet ?
Un wallet, comme son nom l’indique, c’est un portefeuille. Lorsqu’on créé un Wallet, la première chose qu’on doit noter (et absolument conserver en lieu sûr), c’est la seed. Elle se représente sous la forme d’une série de 12 mots du dictionnaire (anglais), qui servent en réalité à générer une chaîne en binaire : c’est elle qui représente notre portefeuille.
Lorsque j’ai fait mes premières recherches sur Bitcoin, le premier Wallet que m’a suggéré Grok était Electrum (à croire qu’ils ont soudoyé l’IA de Musk 👀). Electrum m’a généré une seed avec douze mots du dictionnaire, comme on a vu, mais lorsque j’ai voulu l’importer dans Bull Bitcoin (pub gratis 😁), j’ai eu un petit soucis : ma seed n’était pas reconnu par Bull Bitcoin … L’un des mots était refusé.
Et c’est là que j’ai appris un truc (enfin, que Grok m’a expliqué, et il ne s’est même pas excusé) : Electrum ne respecte pas à la lettre le standard de Wallet Bitcoin, la BIP39 (“BIP” pour “Bitcoin Improvement Proposal”). Cette BIP39 défini quels mots exactement peuvent être utilisés pour générer notre seed. Comme Electrum n’a pas respecté ce standard, mais que Bull Bitcoin s’y conforme, je n’ai pas pu récupérer mon tout premier wallet 😢
Je n’ai évidemment pas rendu les armes, sinon j’aurai manqué de matière pour cette note 😉 Après ce premier échec, j’ai donc cherché un wallet qui suive BIP39 : Proton Wallet. Je m’y suis particulièrement intéressé, et je le recommanderait volontiers à des néophytes comme moi, parce que non seulement il est simple d’usage, mais en plus, Proton est déjà connu pour plusieurs autres services, comme leur drive, la boîte e-mail, le VPN, etc.
Et qu’est-ce qu’on trouve, dans un Wallet ?
Ce portefeuille ne contient pas des cartes bleues, mais des clés, générés à partir de la seed. Plus exactement, des paires de clé privé, et clé publique. Pour faire vraiment très simple, nous pouvons nous présenter la clé publique un peu comme l’IBAN (réception de fonds) et la clé privée comme la carte bleue (envoyer des fonds), à un détail près : une clé publique est liée par le sang (enfin, les maths), à une clé privée.
En effet, une clé publique est dérivée à partir d’une clé privée, de sorte qu’une personne (l’émetteur) puisse signer des données avec sa clé privée (comme signer un document pour garantir son authenticité). Ensuite, le destinataire peut vérifier qui est l’émetteur avec la clé publique correspondante (c’est ce qu’on appelle « cryptographie asynchrone »). Bitcoin se sert de cette relation entre clé publique et clé privée pour garantir les transactions entre les « Bitcoiners. »
- La clé publique est utilisée pour générer des adresses de transaction (ce qu’on a déjà vu avec mon lien de soutien à Faeries Space). Ces adresses de transaction peuvent ensuite être partagée aux gens qui veulent envoyer des Bitcoins. La clé publique est également utilisée pour vérifier qui a envoyé des Bitcoins, comme on va le voir ci-dessous.
- La clé privée est utilisée pour envoyer des Bitcoins. Concrètement, la personne qui envoie des Bitcoins va l’utiliser pour signer la transaction et comme elle est secrète, elle garantie l’émetteur. Comme les transactions restent sur le réseau Bitcoin, les membres de ce réseau vont se servir de l’adresse publique correspondante pour vérifier que notre signataire est bel et bien propriétaire des Bitcoins.
Ici, nous survolons un certain nombre de notions qui sortent du cadre spécifique du wallet stricto-sensu, puisqu’elles concernent les transactions (envoi / réception de Bitcoin), qui mériteront un article à part entière. Ce qu’il est important de retenir à ce stade, c’est que ces paires de clé publiques / clés privées sont essentielles pour nos envoyer ou recevoir des Bitcoins.
Si on récapitule, on a donc une sorte de hiérarchie, au sein d’un portefeuille :
- La seed qui représente le portefeuille à proprement parler ;
- des paires de clés publiques / clés privées qui sont dérivés à partir de la seed ;
- des adresses de transaction dérivés à partir de notre clé publique pour être en mesure de recevoir des Bitcoins.
Avec Proton Wallet, vous pouvez rapidement récupérer toutes ces infos (mais ne surtout pas partager la seed et la clé privée, elle sont … privées !) :
- La seed est soigneusement cachée tout en bas du petit menu Paramètres du portefeuille, en dessous d’un discret « voir plus » dans un bouton couleur orange-warning « Afficher la phrase de récupération du portefeuille » (si jamais ça n’était pas clair : ne surtout pas partager. Voilà).
- La clé publique se trouve dans le même menu Paramètres, en face du nom du « compte » (Proton Wallet encapsule les paires clé privée / clé publique dans un compte), dans le petit menu « Afficher la clé publique ».
- Les adresses de transaction peuvent être récupérées en sélectionnant un portefeuille, via le lien « Recevoir ».
- Et la clé privée ? Ben Proton ne permet pas de la récupérer directement, elle est générée en local et n’est jamais exposée. Techniquement, il est possible de la récupérer via la seed, grâce à un autre wallet comme Electrum, qui fournit cette option (À noter que la seed suffit pour récupérer son wallet, donc inutile d’exposer plus de données sensibles que nécessaire).
Notion de base : custodial
Comme nous l’avons vu, le Wallet part d’une seed. La seed est « la » clé pour contrôler notre wallet. Typiquement, il suffit de connaître cette seed pour être capable de récupérer son wallet n’importe où, avec n’importe quelle application, et retrouver tout les Bitcoins dont nous sommes propriétaires. Et seule la personne qui possède cette seed possède les Bitcoins qui ont été acquis avec les clés de ce wallet.
La notion de possession de wallet s’appelle la « custodial. » Avec ce qu’on a vu jusqu’ici, on voit assez vite à quel point c’est important. « Custodial » vient de « custody » et renvoi à la notion de garde.
Quand son wallet est « custodial », cela signifie que le fournisseur du service de wallet détient la seed et les clés, et donc le propriétaire du service est le véritable détenteur des Bitcoins. Pour l’analogie, son fonctionnement est relativement proche du système bancaire classique, vu qu’on se fie à la banque pour détenir nos fonds (le fournisseur du service peut être assimilé à une banque dans cette analogie).
Un exemple relativement connu de Wallet custodial est Binance, qui permet d’acheter/vendre des Bitcoins … Sans vraiment en être propriétaire. Il existe aussi Wallet of Satoshi, qui est custodial plus pour simplifier la vie des débutants (récemment, ils ont annoncé une version self-custodial, qu’on va voir juste après, mais encore en beta et seulement aux USA).
Le véritable aboutissement lorsqu’on s’intéresse à Bitcoin, c’est d’être « self » ou « non » custodial : en gros, nous gardons nous-même nos Bitcoins (sans garde tierce, auto-géré). Donc lorsque nous créons notre wallet, si nous obtenons une seed, cela signifie qu’on est réellement propriétaire de nos Bitcoins.
Nous avons rapidement vu comment récupérer les infos de notre wallet via Proton Wallet. Comme évoqué, ces données sont accessibles à l’utilisateur, et quand nous creusons le fonctionnement de Proton Wallet, nous voyons que les données sensibles sont chiffrées via notre clé privée, de sorte que Proton ne voit jamais nos données (c’est d’ailleurs ce même atout qui attire chez Proton pour tout ce qui est e-mail, drive, etc.).
Cold wallet ?
Ceci est un domaine que je n’ai pas encore exploré en détail, et pour cause : il faut aller encore plus loin que « self custodial » et acheter un wallet en « physique. »
Bitcoin est un actif numérique. Cela signifie qu’il mène sa petite vie sur le réseau. Les wallets classiques fonctionnent aussi sur le réseau, c’est-à-dire qu’on installe une application sur son ordinateur, son mobile, etc. et qu’on accède à son wallet avec cette application. Les wallet classiques, qu’on peut qualifier de « hot » étant accessibles via Internet, nécessitent encore de faire confiance à un tiers : le fournisseur du service … S’il est malhonnête, il peut très bien se débrouiller pour s’envoyer une copie de notre seed au moment de sa génération pour ensuite accéder à nos clés et récupérer nos Bitcoins à notre insu …
La logique du cold wallet, c’est de posséder un appareil physique, qui se présente souvent sous la forme d’une clé USB, sur laquelle sont stockées notre seed et nos paires de clés publiques / clés privées. Même la génération de la seed et des clés peut se faire hors ligne.
Comme ça, absolument personne ne peut retrouver l’accès à notre portefeuille …
Et pour envoyer / recevoir des Bitcoins, me direz-vous ? Et bien notre cold wallet peut se connecter à un ordinateur (toujours comme une clé USB), et gérer la création d’adresses de transaction et/ou la signature de ces transactions, de telle sorte que la seed et les clés ne sortent jamais de notre cold wallet (du coup, c’est un peu plus qu’une clé USB, vu qu’un logiciel tourne dessus pour gérer toutes ces opérations).
Un exemple de cold wallet est celle proposée par Ledger, une entreprise française spécialisée en crypto-actifs. J’ai jeté un œil, par curiosité, et les solutions de base sont de l’ordre de 100€ … Un cold wallet est donc intéressant quand on commence sérieusement à stocker ses économies en Bitcoin.
Choisir son wallet : souveraineté et maîtrise de ses Bitcoins
Si vous êtes arrivé jusqu’ici sans sauter une seule des sections précédentes (chapeau !), vous commencez à vous douter des recommandations pour choisir son wallet.
Après, être réellement propriétaire de son wallet (“hot” ou “cold”), est déjà un peu technique. Commencer avec un “non-custodial” est un moyen de débuter en douceur. Ce peut également être un moyen de tester sans exposer ses fonds directement.
Maintenant, si on ne veut pas « que » tester, mais réellement se servir de Bitcoin comme une monnaie (réserve de valeur, moyen d’échange, etc.), nous n’avons pas tellement le choix : nous devons posséder réellement notre wallet.
On a vraiment tout vu ?
Eh bien effectivement, il reste morceau important à voir, surtout pour bien débuter sur Bitcoin, mais je préfère le garder pour un prochain article. Celui-ci commence à être long : les transactions on-chain vs off-chain.
Appendice : pourquoi Proton Wallet, alors que Bull Bitcoin permet aussi d’obtenir un wallet en self-custodial ?
La raison est très bête et hors scope de cette article, d’où l’annexe, mais il fallait quand même le dire quelque part … Bull Bitcoin permet un truc très utile : échanger ses Bitcoins contre des euros € et vice-versa.
Sauf que du coup, on rentre dans le système bancaire classique, et donc sous un certain nombre de contraintes que vous connaissez peut-être, si vous êtes passé par des banques en ligne comme Boursobank … Vous savez, fournir une photo de sa tête, etc. ? Le truc bien galère (surtout si on a un éclairage pourrit et qu’on a pas tout à fait la même tête que sur la carte d’identité .........).
BREF !
(next step)