Excellent portefeuille matériel pour Bitcoin à petit prix
METTRE À JOUR: Consultez la mise à jour 2024 ici
Sur ce post, nous présentons un guide sur la manière d’obtenir un portefeuille matériel pour moins de 15 €, entièrement fonctionnel et facile à utiliser, sans être encombrant ou de mauvaise qualité. Le processus est très accessible. Vous aurez seulement besoin d’une carte de développement Arduino facilement disponible, et en suivant les instructions étape par étape, nous pouvons créer avec succès notre propre appareil.
La carte recommandée est une TTGO T-Display, coûtant moins de 15 € sur AliExpress, mais avec des offres, elle peut descendre jusqu’à 10 € (voire même environ 5 € sur AliExpress pour les nouveaux utilisateurs). La version de 4 Mo est appropriée ; nous avons utilisé le CH9102F, mais les deux devraient fonctionner, y compris le TELEC.
D’accord, avec cette petite carte et rien d’autre, flashons le logiciel Blockstream JADE. C’est un portefeuille BITCOIN ONLY, mais c’est l’un de nos préférés. Il y a une option pour ajouter une caméra et une batterie, mais pour minimiser les coûts et la complexité, ce guide l’utilise sans caméra ni batterie, similaire à un Ledger Nano S.
Il est essentiel de noter que le logiciel alimentant ce portefeuille matériel (JADE) est open source, nous permettant de l’installer sur n’importe quel appareil compatible. En tant que recommandation spécifique, le TTGO T-Display s’avère être un excellent choix, offrant un équilibre optimal entre performance et praticité à cette fin.
Flashing et signature logicielle :
Tout d’abord, accédez à la page GitHub Blockstream Jade : https://github.com/Blockstream/Jade. Toutes les étapes sont expliquées dans ce post, mais vous voudrez peut-être vérifier la source officielle également. Il est recommandé d’utiliser des systèmes basés sur Linux, mais c’est également possible avec Windows ou macOS, les mêmes commandes sont utilisées. Linux est préféré en raison de problèmes antérieurs avec le générateur de nombres aléatoires de Windows.
Assurez-vous que git et python sont installés, si vous n’êtes pas sûr, exécutez la commande suivante :
sudo apt install git python3-pip python3-venv
Créez ensuite le dossier “esp” s’il n’existe pas déjà :
mkdir esp
Exécutez ensuite les commandes suivantes :
cd ~/esp git clone -b v5.1.1 --recursive https://github.com/espressif/esp-idf.git
cd ~/esp/esp-idf && git checkout e088c3766ba440e72268b458a68f27b6e7d63986 && ./install.sh esp32
Enfin, exécutez cette commande pour configurer les variables d’environnement :
. $HOME/esp/esp-idf/export.sh
Compiler le micrologiciel :
Il est maintenant temps de compiler le micrologiciel. Clonez le dépôt Jade :
git clone --recursive https://github.com/Blockstream/Jade.git $HOME/jade
Maintenant, nous devons nous assurer de connaître le dispositif que nous utilisons et configurer le fichier sdkconfig.defaults en conséquence. Nous devons rechercher notre fichier dans ce dossier :
Recherchez le fichier suivant et copiez-le du sous-dossier configs du dossier JADE vers le dossier racine (/jade/).
Maintenant, nous devrions supprimer (ou renommer différemment) le fichier sdkconfig.defaults original, et renommer celui que nous venons de copier en le nommant “sdkconfig.defaults”
Ensuite, exécutez la commande suivante dans le terminal :
cd $HOME/jade
Si vous n’avez pas installé cmake, exécutez également cette commande :
sudo apt install cmake
Enfin, exécutez cette commande pour flasher le micrologiciel :
idf.py flash monitor
Le micrologiciel sera maintenant flashé, et le dispositif est opérationnel. Vous pouvez le connecter à Sparrow, Electrum ou Blockstream Green.
Mais… comme vous pouvez le voir, il n’apparaît pas comme un JADE normal lors de l’utilisation de Blockstream Green ; il s’affiche comme DEV en rouge. En théorie, cela peut être utilisé de cette manière, mais il lui manque le Secure Boot. Pour ajouter une couche supplémentaire de sécurité, il est recommandé d’activer le Secure Boot.
Amorçage sécurisé
Pour mettre en place le Secure Boot et configurer le dispositif en tant que JADE normal, nous devons modifier le fichier sdkconfig.defaults. Tout d’abord, nous devons ajouter cette ligne au fichier :
CONFIG_LOG_DEFAULT_LEVEL_NONE=y
Ensuite, nous devons supprimer le mode Debug :
De plus, si vous souhaitez supprimer la fonctionnalité Bluetooth (ce qui peut avoir du sens pour ce type de portefeuille matériel, sans batterie), ajoutez ces lignes :
CONFIG_APP_NO_BLOBS=y
CONFIG_MBEDTLS_ECP_RESTARTABLE=y
CONFIG_MBEDTLS_CMAC_C=yCO
Et supprimez ce qui suit :
CONFIG_BT_ENABLED=y
CONFIG_BT_NIMBLE_ENABLED=y
CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_EXTERNAL=y
CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1
#CONFIG_BT_NIMBLE_ROLE_CENTRAL is not set
#CONFIG_BT_NIMBLE_ROLE_BROADCASTER is not set
#CONFIG_BT_NIMBLE_ROLE_OBSERVER is not set
CONFIG_BT_NIMBLE_NVS_PERSIST=y
#CONFIG_BT_NIMBLE_SM_LEGACY is not set
CONFIG_BT_NIMBLE_SVC_GAP_DEVICE_NAME="j"
CONFIG_BT_NIMBLE_GAP_DEVICE_NAME_MAX_LEN=11
CONFIG_BT_NIMBLE_ATT_PREFERRED_MTU=517
CONFIG_BTDM_CTRL_BLE_MAX_CONN=1
#CONFIG_BTDM_CTRL_FULL_SCAN_SUPPORTED is not set
Ensuite, pour la configuration de Secure Boot, ajoutez ces lignes :
CONFIG_ESP32_DISABLE_BASIC_ROM_CONSOLE=y
CONFIG_SECURE_DISABLE_ROM_DL_MODE=y
CONFIG_SECURE_BOOT_SIGNING_KEY="PATH TO YOUR SIGNING KEY"
CONFIG_SECURE_BOOT=y
CONFIG_SECURE_FLASH_ENC_ENABLED=y
CONFIG_SECURE_FLASH_ENCRYPTION_MODE_RELEASE=y
CONFIG_ESP32_REV_MIN_3=y
Et supprimez celui-ci :
CONFIG_EFUSE_VIRTUAL=y
De même, make sure that CONFIG_ESP32_REV_MIN_3=y is not already present with REV_MIN_1
, dans ce cas, supprimez-la et ne laissez que l’option REV_MIN_3.
Dans la ligne “Chemin d’accès à votre clé de signature”, vous devez indiquer le chemin d’accès à une clé de signature qui n’a pas encore été générée :
CONFIG_SECURE_BOOT_SIGNING_KEY="hideyourkeys-v2.pem"
Enregistrez et fermez le fichier.
Il est maintenant temps de générer les clés de signature. Dans le terminal, exécutez la commande suivante (notez que vous devez nommer votre fichier de la même manière que dans le fichier sdkconfig.defaults modifié précédemment, nous l’avons nommé hideyourkeys-v2) :
espsecure.py generate_signing_key --version 2 ~/jade/hideyourkeys-v2.pem
Le fichier de clé sera situé dans le même dossier jade. Si vous avez choisi un autre chemin, assurez-vous qu’il est cohérent avec le fichier sdkconfig.defaults, et que le chemin relatif est correct dans ce fichier. Exécutez maintenant la commande suivante pour configurer la construction :
idf.py menuconfig
Le menu suivant s’affiche :
Dans le menu, accédez aux paramètres de sécurité, activez le Secure Boot matériel dans le chargeur de démarrage, choisissez la version, sauvegardez et fermez, les autres fonctionnalités (Activer le chiffrement de la flash au démarrage, ou Vérifier si le chiffrement de la flash est activé au démarrage) doivent également être marquées. Toutes ces options doivent être marquées par défaut. Au cas où elles ne le seraient pas, téléchargez notre Manuel du Portefeuille Matériel et copiez le fichier de configuration de l’ANNEXE A, remplacez-le dans le fichier sdkconfig.defaults, et supprimez tous les fichiers sdkconfig précédents dans le dossier jade.
Notez en fonction du dispositif que vous utilisez, vous pourriez être en mesure de choisir Secure Boot V1 ou V2. Il est préférable d’utiliser V2, dans le cas où il est disponible. Nos dispositifs prennent en charge Secure Boot V2 (tout comme un Blockstream Jade standard), mais au cas où vous suivriez ce guide avec un autre dispositif ESP32 ne prenant en charge que Secure Boot V1.
Il est maintenant temps de connecter l’appareil. Une fois l’appareil connecté, exécutez :
idf.py bootloader
Vous obtiendrez un résultat similaire à celui-ci :
Mais le chargeur de démarrage fournira également une commande que nous devrions exécuter. Elle devrait être similaire à celle-ci. Supprimez le port (-p (PORT)) et les informations sur le débit en bauds (-b (460800)) avant de l’exécuter :
/home/xxx/.espressif/python_env/idf5.1_py3.10_env/bin/python ../esp/esp-idf/components/esptool_py/esptool/esptool.py -p (PORT) -b 460800 --before default_reset --after hard_reset --chip esp32 write_flash --flash_mode dio --flash_size 2MB --flash_freq 40m 0x1000 build/bootloader/bootloader.bin
Note : Nous avons constaté que dans certains cas, vous pourriez ne pas voir l’invite ci-dessus. Dans ce cas, vous pourriez être en mesure d’exécuter l’étape en utilisant la commande suivante : idf.py bootloader bootloader-flash
Maintenant, sans débrancher l’appareil, exécutez ce qui suit :
idf.py build
En cas de succès, le terminal fournira deux commandes pour lancer la compilation (notez que le chemin marqué en caractères gras variera selon votre ordinateur) :
/home/xxx/.espressif/python_env/idf5.1_py3.10_env/bin/python ../esp/esp-idf/components/esptool_py/esptool/esptool.py -p (PORT) -b 460800 --before default_reset --after no_reset --chip esp32 write_flash --flash_mode dio --flash_size 4MB --flash_freq 40m 0x9000 build/partition_table/partition-table.bin 0xe000 build/ota_data_initial.bin 0x10000 build/jade.bin
“
or run "idf.py -p (PORT) flash
Maintenant, vous devriez exécuter l’une des deux commandes précédentes à partir de la sortie de la construction. Nous recommandons d’utiliser la première, et de supprimer manuellement le port et le débit en bauds (indiqués en gras), à moins que vous ne connaissiez ces valeurs :
/home/xxx/.espressif/python_env/idf5.1_py3.10_env/bin/python ../esp/esp-idf/components/esptool_py/esptool/esptool.py -p (PORT) -b 460800 --before default_reset --after no_reset --chip esp32 write_flash --flash_mode dio --flash_size 4MB --flash_freq 40m 0x9000 build/partition_table/partition-table.bin 0xe000 build/ota_data_initial.bin 0x10000 build/jade.bin
L’appareil sera alors flashé, mais il restera en mode bootloader :
Pour redémarrer l’appareil et quitter l’état de chargeur de démarrage, exécutez :
idf.py monitor
L’appareil redémarre et n’apparaît plus comme appareil de développement dans Blockstream Green. Il est très important d’attendre que le dispositif redémarre avant de le débrancher, sinon le dispositif sera inutilisable. Cela peut prendre quelques minutes.
Avantages et inconvénients
INCONVÉNIENTS :
- C’est fastidieux, il faut bricoler, mais suivre les étapes prend moins de 5 minutes.
- Il n’y a pas d’appareil photo ni de batterie, il fonctionne comme un Ledger Nano S, mais il est branché.
- La mise à jour est plus fastidieuse que l’original (bien qu’il ne faille taper que quatre commandes).
AVANTAGES :
- Portefeuille matériel très compact et bon marché, qui n’est pas négligeable lorsqu’il est utilisé dans un étui.
- Un excellent portefeuille Bitcoin uniquement, pour un prix très bas.
- Il s’agit d’une bonne alternative en tant que dispositif de secours.
Pour améliorer l’apparence, différents boîtiers sont disponibles sur AliExpress, allant de 4 € à 8 €. Si vous avez une imprimante 3D, il existe des modèles en ligne en recherchant “ttgo t-display case”.
Mettre à jour le micrologiciel
Si vous devez mettre à jour le micrologiciel, branchez l’appareil et exécutez les commandes suivantes :
cd $HOME/jade
git pull
idf.py build
python jade_ota.py --noagent
L’appareil présentera un message de mise à jour à confirmer, tout comme un JADE normal.
Réinitialisation aux paramètres d’usine
Si vous souhaitez effectuer une réinitialisation d’usine (pour configurer un nouveau portefeuille et supprimer celui actuellement installé, par exemple), lorsque le logo Blockstream JADE apparaît, appuyez sur les deux boutons, et vous obtiendrez l’option d’effectuer une réinitialisation d’usine.
Conclusions
À notre avis, c’est la manière la plus accessible d’avoir un portefeuille matériel entièrement fonctionnel pour le bitcoin. Ce n’est pas la solution la plus facile, mais c’est une approche raisonnable à un prix équitable.
Si vous avez des questions ou des problèmes, n’hésitez pas à nous contacter par e-mail à l’adresse [email protected]. Vous voudrez peut-être également consulter notre Manuel du Portefeuille Matériel et notre Portefeuille Matériel au cas où vous voudriez sauter toute cette procédure.