Le principe de base et l’objectif de conception de Bitcoin étaient d’être”une version purement peer-to-peer de l’argent électronique”. Bien que cette déclaration du livre blanc soit traditionnellement considérée comme étant uniquement liée au traitement des paiements indépendamment d’une institution financière, il existe d’autres aspects de Bitcoin qu’il est extrêmement important de maintenir afin de conserver un système peer-to-peer qui permet ses utilisateurs de garder le contrôle sur leurs propres finances. L’auto-validation est l’une des choses les plus importantes à faire pour un Bitcoiner afin de maintenir sa propre souveraineté sur son argent. La vie privée est une autre chose qui est également extrêmement importante par rapport à l’auto-souveraineté. Évidemment, en plus de ces deux aspects, la gestion de vos propres clés est essentielle (vous l’avez ?) pour avoir un contrôle total sur votre propre bitcoin.
Spectre est une famille de projets open source qui ont travaillé pour rendre tous de ces qualités importantes accessibles et faciles à utiliser pour les Bitcoiners depuis 2018. Moritz Wietersheim de Spectre a eu la gentillesse de donner du temps pour répondre aux questions concernant l’état passé, présent et les plans futurs de l’équipe Spectre dans l’expansion de leurs logiciels et dispositifs matériels pour continuer simplifier le processus d’utilisation de Bitcoin de la manière la plus souveraine possible.
Le projet a débuté en 2018 à Lisbonne lors d’un dîner au steak après la conférence Building on Bitcoin. Wietersheim a rencontré Stepan Snigirev lors de la conférence, où Snigirev avait remporté le hackathon avec un prototype de portefeuille matériel avec prise en charge intégrée de Lightning Network. Au cours du dîner, Wietersheim et Snigirev ont décidé de commencer à travailler ensemble sur ce qui allait devenir le portefeuille matériel Spectre DIY (Do-It-Yourself). Cela est devenu la pièce maîtresse de tout un écosystème d’outils différents pour interagir avec Bitcoin.
Spectre DIY
Le portefeuille Spectre DIY a été conçu à une époque où l’espace du portefeuille matériel était beaucoup moins mature. Une ventilation complète de la plupart des vulnérabilités découvertes au cours de cette période est disponible sur le site Web de Saleem Rashid ainsi que sur le Présentation de Wallet.Fail au Chaos Communication Congress. À l’époque, il s’agissait d’un événement presque mensuel pour trouver des vulnérabilités assez désagréables dans différents périphériques matériels. Bien que l’espace ait beaucoup mûri depuis cette période, je pense qu’il est important de noter l’environnement à l’époque pour donner un contexte à la réflexion derrière Spectre DIY.
Le Spectre DIY est construit autour du microcontrôleur STM32, le même (microcontrôleur unit) utilisé par les portefeuilles matériels tels que Coldcard, Trezor, Bitbox, etc. Il est monté sur une carte de développement Discovery qui possède à la fois un emplacement pour carte SD et un port USB pour la communication avec les portefeuilles logiciels. Il prend également en charge en option un scanner de code QR. La notion originale d’un dispositif de signature”sans état”-qui ne stocke pas de manière persistante la graine mnémonique ou les clés privées sur l’appareil-a été lancée par le Spectre DIY. Cette décision de conception a été prise en raison du manque de sécurité physique lors du stockage de données sensibles (le STM32 a été physiquement compromis pour extraire des secrets à plusieurs reprises dans le passé).
En ne stockant pas de manière persistante vos clés privées sur l’appareil, vous limitez la surface d’attaque que tout acteur malveillant peut exploiter s’il parvient à accéder physiquement à l’appareil. Sans la graine, tout ce qu’un attaquant peut espérer faire est d’accéder à votre appareil, de le compromettre pour persister ou de transmettre vos clés au lieu de les effacer, puis de le remplacer et d’espérer que vous ne remarquerez pas qu’il a été falsifié avant le prochain chargement. vos clés sur l’appareil. Ce n’est en aucun cas parfait, mais dans le monde de la sécurité, rien ne l’est, et c’est une énorme amélioration par rapport au simple stockage persistant de vos clés sur le STM32 où elles peuvent être consultées par toute personne ayant le temps de compromettre la puce. Vous pouvez désactiver ce mode et stocker les données de la clé privée dans le , mais à moins que vous ne puissiez sécuriser physiquement votre appareil avec un degré de certitude très élevé, vous devriez y réfléchir attentivement avant de le faire. De plus, sans élément sécurisé, il serait conseillé d’utiliser une phrase de passe avec une telle configuration.
Le côté logiciel du projet est construit à l’aide de la bibliothèque embit. Il s’agit d’une bibliothèque MicroPython/Python 3 pour interagir avec les données Bitcoin qui a été spécialement conçue pour être utilisée avec le Spectre DIY (elle est également utilisée par SeedSigner et krux, qui sont tous deux des projets de dispositif de signature sans état ; une extension de surveillance LNBits uniquement ; le Spectre portefeuille de logiciels de bureau). La bibliothèque prend en charge BIP39/BIP32 (génération de semences mnémoniques et chemins de dérivation pour les clés), la prise en charge PSBT pour les versions 1 et 2, la prise en charge de l’indicateur SIGHASH personnalisé (signature de différentes parties de la transaction au lieu de l’ensemble), ainsi que les descripteurs de sortie et miniscript (chaînes de données pour stocker ce dont les portefeuilles ont besoin pour trouver les UTXO qu’ils contrôlent et un langage de haut niveau pour faciliter la création de scripts Bitcoin). Il a également un support expérimental pour Shamir Secret Sharing, le Liquid Network et Taproot (toujours en cours). Pour les fonctions cryptographiques, il utilise la bibliothèque libsecp256k1 maintenue par Bitcoin Core. La bibliothèque est très complète avec les fonctionnalités nécessaires pour répondre aux besoins de base des portefeuilles d’aujourd’hui, ainsi que des fonctionnalités jetant les bases des améliorations futures des fonctionnalités existantes et de l’incorporation de fonctionnalités étendues qui ne sont pas encore largement déployées dans la plupart des portefeuilles. Dans l’ensemble, c’est une base très solide à partir de laquelle construire et tout a été initialement mis en place pour le Spectre DIY.
En plus du Spectre DIY de base, une version étendue appelée Spectre Shield est une augmentation majeure de la sécurité physique. Il s’agit d’une carte d’extension personnalisée pour la carte principale STM32 Discovery autour de laquelle le modèle de base est construit. Les fichiers nécessaires pour en faire produire un par un fabricant de cartes PCB sont disponibles sur leur référentiel Github (lien ci-dessus). La carte Shield dispose d’un scanner de code QR, d’une batterie et d’un emplacement pour lecteur de carte à puce. Cette dernière caractéristique est vraiment ce qui rend cette carte d’extension importante. Avec la carte d’extension et une carte à puce équipée d’un élément sécurisé, le portefeuille peut fonctionner avec le même modèle de sécurité qu’une Coldcard. Le matériel de clé peut être stocké sur l’élément sécurisé dans une carte à puce et chargé sur le dispositif pendant l’utilisation, mais uniquement stocké de manière persistante sur la carte à puce. Les communications entre le et l’élément sécurisé de la carte sont cryptées, de sorte que les informations échangées entre eux ne sont pas accessibles au microcontrôleur gérant l’interface de la carte à puce.
Le flux du portefeuille (avec ou sans l’extension Shield) lors de la persistance des clés est le même que la plupart des autres portefeuilles matériels. Le génère un secret unique qui est stocké dans la mémoire flash et, en combinaison avec une broche fournie par l’utilisateur, crypte les clés privées réelles (là encore, qu’elles soient stockées sur l’élément sécurisé de la carte à puce ou sur le STM32) afin qu’un attaquant doive accédez à la fois à votre code PIN et au secret sur le pour déchiffrer vos clés bitcoin. Cela met les deux modèles dominants de dispositifs matériels bitcoin-les signataires sans état et les dispositifs de stockage de clés-entre les mains des gens à la manière d’un bricolage. Si vous préférez ne pas compter sur un élément sécurisé et dépendre uniquement d’une source ouverte, le Spectre DIY peut être construit de cette manière. Si vous préférez la sécurité supplémentaire d’un élément sécurisé en plus d’un élément ouvert, cela peut être accompli avec l’utilisation de la carte d’extension Shield. Pour couronner le tout, il accepte également l’entropie d’entrée de l’utilisateur provenant des lancers de pièces pour ne pas dépendre du générateur de nombres aléatoires matériel. Les perturbations des chaînes d’approvisionnement à l’échelle internationale ont rendu quelque peu difficile l’obtention du matériel nécessaire, mais si vous le pouvez, le projet en vaut la peine.
Wietersheim et Snigirev ont vraiment accompli tout un exploit en mettant sur pied le Spectre DIY. Ce n’est en aucun cas le premier portefeuille matériel de bricolage, mais c’est le premier qui prend en charge de manière modulaire tout ce qui se situe entre le modèle de sécurité de quelque chose comme un Trezor et quelque chose comme une Coldcard en fonction de ce que l’utilisateur veut construire. Il n’y avait qu’un seul problème en suspens: le logiciel de portefeuille avec lequel l’utiliser.
Specter Desktop
Lorsque l’on regarde les applications compagnons pour le portefeuille matériel, tout semble en deçà de ce que Weitersheim et Snigirev recherchaient. Ils ont aimé la fonctionnalité de Bitcoin Core, mais malgré la stabilité apportée par les développeurs, Bitcoin Core a une interface utilisateur très minimaliste et à certains égards non intuitive. Il a cependant une belle interface pour les PSBT (Partially Signed Bitcoin Transactions) et l’interface HWI (Hardware Wallet Integration), donc Stepan a piraté ensemble la première version de Spectre comme une amélioration minimale de l’interface utilisateur pour interagir avec Bitcoin Core.
Considérez Spectre Desktop comme un”wrapper”pour Bitcoin Core. Il comprend une belle interface graphique avec prise en charge multisig ; intégration de portefeuille matériel Communication PSBT via codes QR, carte SD ou USB ; vérification des adresses de réception via code QR et USB ; Support RBF (Replace by fee) ; un système d’étiquetage pour garder une trace de vos UTXO et de leur provenance ; et le contrôle des pièces pour sélectionner des UTXO spécifiques lors des dépenses (ainsi que la possibilité de geler des UTXO spécifiques pour vous protéger des erreurs lors des dépenses). Ils ont même intégré une solution facile à utiliser en un clic pour installer Bitcoin Core directement depuis Spectre Desktop (bien que, installer indépendamment Bitcoin Core et connecter Spectre soit quelque chose même Peter McCormack a pu accomplir tout seul).
En plus de la flexibilité des fonctionnalités, le fait que Spectre nécessite de faire tourner votre propre nœud complet en tant que backend est un avantage majeur en matière de confidentialité par rapport à de nombreux portefeuilles disponibles pour les utilisateurs. La plupart des portefeuilles de cet écosystème utilisent un backend tiers pour suivre leurs UTXO, ce qui signifie que l’opérateur de ce backend est capable de corréler tous vos UTXO à une seule identité. De plus, s’il ne communique pas avec le backend via Tor ou via un service VPN, l’opérateur est en mesure de corréler toutes ces pièces à votre adresse IP. Il s’agit d’une horrible fuite de confidentialité qui est corrigée par l’insistance de Spectre sur une instance locale de Bitcoin Core pour suivre votre solde Bitcoin.
Spectre prend également en charge Liquid Network, une chaîne latérale Bitcoin fédérée, qui prend également en charge l’installation en un clic d’un nœud complet Liquid Elements dans l’interface graphique Spectre. Il prend en charge les portefeuilles Liquid utilisant le Blockstream Jade, Spectre DIY, ainsi que les portefeuilles chauds directement dans Spectre. Liquid offre quelques avantages intéressants avec quelques compromis par rapport au réseau Bitcoin principal lui-même. La sidechain est un système fédéré, ce qui signifie que l’utilisation de la chaîne nécessite de déposer votre BTC dans un portefeuille multisig contrôlé par la fédération exploitant la sidechain, puis de recevoir L-BTC, un jeton émis sur la sidechain soutenu par BTC sous la garde de la fédération. Pour le compromis de faire confiance à la fédération, les utilisateurs ont la possibilité de tirer parti des transactions confidentielles, un schéma de base de preuve à connaissance nulle qui masque les montants (et le type d’actif, dans le cas de la mise en œuvre de Liquid) faisant l’objet de transactions sur la blockchain. Il utilise une”preuve de gamme”qui prouve de manière cryptographique que l’argent n’est pas imprimé à partir de rien sans révéler les montants en cours de transaction.
Liquid prend également en charge l’émission d’autres actifs. Un exemple utile est celui des pièces stables telles que Tether (L-USDT), une pièce stable libellée en dollars qui permet aux utilisateurs d’éviter la volatilité de Bitcoin de manière”auto-dépositaire”(le jeton oblige toujours l’émetteur à honorer le rachat pour acquérir de”vrais l’argent”en fin de compte). L’émission d’actifs liquides permet également la création d’autres types de jetons tels que des actions qui pourraient être auto-détenues et la fonctionnalité de script de Liquid prend en charge plus de fonctionnalités que Bitcoin lui-même, permettant des contrats intelligents plus avancés tels que des prêts garantis par BTC, tous gérés directement par un utilisateur via son propre portefeuille. Spectre a choisi de prendre en charge Liquid pour permettre aux utilisateurs d’interagir avec Liquid de la même manière que la chaîne principale : avec confidentialité et souveraineté totale.
Specter Enterprise
Des projets tels que le portefeuille Bitcoin Beach utilisent en fait Spectre comme backend pour gérer leurs fonds multisig en chaîne. Ils ne sont pas la seule entreprise à utiliser Spectre en arrière-plan pour gérer les fonds de l’entreprise et, selon Wietersheim, ils n’étaient même pas au courant des entreprises utilisant Spectre jusqu’à ce qu’ils soient approchés pour obtenir de l’aide. Une grande partie des revenus qui maintiennent le projet à flot provient en fait de ces entreprises qui paient l’équipe Spectre pour un micrologiciel personnalisé pour le Spectre DIY et d’autres services de développement, leur permettant de travailler à plein temps sur la maintenance de l’ensemble de leur suite logicielle.
Il est intéressant de penser que le même ensemble d’outils développé pour offrir aux utilisateurs individuels la voie de l’auto-souveraineté et de la sécurité est également utilisé par de véritables entreprises aux mêmes fins. Il est courant de considérer chaque groupe comme des marchés totalement séparés avec des besoins complètement différents, mais comme démontré ici avec Spectre, le chevauchement est beaucoup plus important qu’on ne pourrait le penser à première vue.
Un centre de commande de Bitcoiner
L’équipe de Spectre a accompli quelque chose de vraiment spectaculaire avec le projet. Tout, des appareils matériels qui gèrent en toute sécurité les clés privées et les opérations de signature aux logiciels pour valider vos transactions, a été conçu par l’équipe de manière transparente et interopérable. C’est vraiment un couteau suisse d’outils pour le Bitcoiner autonome, que vous soyez un utilisateur individuel ou une entreprise professionnelle gérant les fonds d’autres personnes, pour gérer tout ce dont vous avez besoin pour interagir avec le réseau Bitcoin. Le projet est inestimable et l’équipe doit être félicitée pour l’excellent travail qu’elle a accompli dans la création de cette suite de logiciels et de matériel open source dont tout le monde dans cet espace peut profiter.
Ceci est un article invité de Shinobi. Les opinions exprimées sont entièrement les leurs et ne reflètent pas nécessairement celles de BTC Inc ou de Bitcoin Magazine.