
Kern DIY Hardware Signer Preview - 10.1 Inch Tablet Running ESP32-P4
Audio Summary
AI Summary
Les portefeuilles matériels DIY offrent une grande variété de formats, allant des cartes à puce aux Seed Signers de différentes tailles, en passant par des projets comme Specter DIY et même des tablettes tactiles de 10,1 pouces. Ce dernier exemple, appelé Kern, est un nouveau projet des contributeurs clés de Crux, basé sur la plateforme ESP32-P4. Cette vidéo présente un aperçu du projet Kern et du développement général de l'ESP32-P4.
Pour commencer avec Kern, il est possible de flasher un appareil en moins de 2 minutes sans installer de logiciel. Le processus utilise un flasheur web disponible sur le dépôt GitHub officiel de Kern, développé principalement par Odudex. Ce flasheur permet d'installer rapidement des versions de développement pour vérifier le bon fonctionnement du matériel. L'exemple utilise une carte Waveshare ESP32-P4. Après avoir connecté la caméra et l'alimentation, l'appareil est branché via USB au port UART. Le flasheur web détecte l'appareil, le met en mode boot, et permet de sélectionner le modèle ESP32-P4 approprié pour flasher le firmware Kern. Une fois le flash réussi, l'appareil redémarre et Kern est opérationnel.
Les flasheurs web, bien qu'ayant des limitations de sécurité (ils ne vérifient pas les builds et n'activent pas le secure boot), sont excellents pour le développement rapide. Ils sont particulièrement puissants pour le développement assisté par IA basé sur le cloud. L'exemple montre comment modifier le schéma de couleurs de Kern en utilisant GitHub Copilot. En forquant le dépôt, en demandant à l'IA de changer le thème orange et noir en bleu clair et noir, et en créant une pull request, le firmware modifié est automatiquement construit. Ce nouveau firmware peut ensuite être téléchargé et flashé sur l'appareil via le flasheur web, démontrant la facilité avec laquelle des modifications peuvent être apportées et testées.
Cette approche est très utile pour adapter Kern à différents matériels qui ne sont pas encore officiellement supportés. Bien qu'il soit crucial de vérifier le code source généré par l'IA, cette capacité à obtenir une preuve de concept fonctionnelle sur de nouveaux appareils en quelques heures est un atout majeur. L'intégration de Kern avec le matériel, y compris les périphériques comme les caméras, a été rapide et efficace grâce à l'IA.
En ce qui concerne les fonctionnalités de Kern, la démonstration utilise un grand écran Elecrow "crow panel". Kern permet de créer de nouveaux mnémoniques, par exemple à partir d'une photo prise avec la caméra. Les mnémoniques peuvent être sauvegardés sous forme de QR code (texte brut, Seed QR, Compact Seed QR, ou QR chiffré) ou sur la mémoire interne de l'appareil avec une clé de chiffrement, ou encore sur une carte micro SD.
Kern supporte l'exportation de clés publiques, compatible avec des portefeuilles comme Sparrow. L'exemple montre comment exporter une clé publique étendue de Kern vers Sparrow pour créer un nouveau portefeuille en mode "air-gapped hardware wallet" compatible Crux. Les adresses générées sont identiques sur Kern et Sparrow. La vérification des adresses est également possible en scannant un QR code d'adresse depuis Sparrow et en le vérifiant sur Kern.
Les transactions sont gérées de manière intuitive. L'exemple montre l'envoi de Bitcoin, la création et la finalisation d'une transaction, la signature sur Kern et la diffusion via Sparrow. L'interface visuelle sur le grand écran de Kern affiche clairement les détails de la transaction, y compris les sorties (auto-transfert, changement, dépense).
Kern offre diverses options de configuration, telles que la définition d'une phrase secrète, le chargement de descripteurs multi-signatures, et des réglages de signature. Il intègre également BIP 85 pour dériver de nouvelles phrases secrètes à partir d'une phrase existante. Des options d'affichage comme la luminosité de l'écran sont disponibles.
La sécurité est une préoccupation majeure. Kern propose une fonctionnalité de code PIN avec protection anti-hameçonnage. En activant cette protection, des mots anti-hameçonnage sont affichés lors de la saisie du code PIN, renforçant la sécurité matérielle. Sans cette option, le PIN est défini, mais la protection supplémentaire n'est pas activée.
Kern gère également les comptes multi-signatures. L'exemple montre le chargement d'un descripteur multi-signatures depuis Sparrow via un QR code. Une fois le descripteur chargé, il peut être exporté dans différents formats, visualisé, et sauvegardé sur une carte SD ou la mémoire interne de l'appareil. La sauvegarde des descripteurs multi-signatures sur l'appareil matériel améliore considérablement la sécurité. Il est même possible de stocker une copie chiffrée pour la confidentialité. La vérification des adresses multi-signatures est également possible.
Le support de Miniscript est démontré avec Liana. L'exemple crée un portefeuille d'héritage simple, où la clé primaire est l'appareil Kern et la clé d'héritage est un Specter DIY. Le descripteur est sauvegardé sur une carte micro SD. Pour charger le descripteur sur Kern, il est nécessaire que le fichier soit un fichier texte et placé dans le bon répertoire sur la carte SD. Une fois le descripteur chargé et sauvegardé sur la mémoire interne de Kern, la vérification des adresses Miniscript est possible en scannant le QR code d'une adresse générée par Liana.
Lors de la signature de transactions Miniscript, un problème avec la carte micro SD est rencontré. Une solution est trouvée en utilisant un outil d'IA comme Deep Sleep flash, qui suggère une correction de bug, pousse le code vers GitHub, construit un firmware de test et le flashe via le flasheur web. Après redémarrage, la signature de la transaction PSBT (Partially Signed Bitcoin Transaction) sur la carte SD fonctionne parfaitement.
Il est important de noter que l'utilisation de l'IA pour corriger des bugs sur un portefeuille contenant des fonds réels est risquée. Cependant, cette méthode est excellente pour le prototypage rapide et le test sur de nouveaux matériels. Kern est un projet en cours de développement, et bien que l'ESP32-P4 supporte le secure boot et le chiffrement flash au niveau matériel, il est déconseillé d'activer ces fonctionnalités actuellement. Le firmware étant encore en développement, l'activation du secure boot pourrait rendre l'appareil irrécupérable en cas de problème. Tant que ces fonctionnalités ne sont pas activées, il est possible de flasher n'importe quel firmware, permettant une récupération facile. De plus, le firmware actuel ne supporte pas les mises à jour via micro SD.
La démonstration présente également un boîtier simple conçu pour le "crow panel", avec un accès facile aux ports IO, à la caméra et à la batterie. Les fichiers de conception (STLs et FreeCAD) sont disponibles sur le dépôt GitHub de Kern.
Enfin, la vidéo aborde la construction locale du firmware. Pour ceux qui préfèrent ne pas faire confiance aux actions GitHub ou aux versions officielles, il est possible d'installer ESP-IDF (la suite de développement d'Espressif) localement, de cloner le dépôt Kern, et de compiler et flasher le firmware directement depuis un PC. Un problème courant avec Python est résolu en créant une copie de l'exécutable Python nommée "Python 3". Après cette correction, le firmware Kern officiel (orange) est compilé et flashé avec succès, confirmant que le processus local fonctionne.
Kern est un projet prometteur qui met en valeur la flexibilité de la plateforme ESP32-P4. Il est déjà plus performant que certains portefeuilles matériels commerciaux et respecte bien les standards, ce qui permet de récupérer facilement les fonds en cas de problème en important la phrase secrète dans un autre portefeuille compatible. Cependant, le projet est encore en développement, avec une documentation limitée et des améliorations à venir. Certains appareils ESP32-P4 incluent le Wi-Fi et le Bluetooth, qui sont désactivés dans le firmware, mais des guides sur la désactivation physique ou des options sans ces puces sont encore nécessaires pour les utilisateurs les plus soucieux de la sécurité.
Pour ceux qui souhaitent contribuer ou discuter de Kern, un lien vers le groupe Telegram est fourni.