Title: Bitcoin Message Tool - signer et vérifier des messages en ligne de commande Post by: paid2 on September 11, 2024, 11:04:22 AM Author : witcher_sense (https://bitcointalk.org/index.php?action=profile;u=1433865)
Original topic : Bitcoin Message Tool - command-line signer & verifier (https://bitcointalk.org/index.php?topic=5437423.msg61684922#msg61684922) Introduction Un outil léger entièrement open-source en CLI pour signer et vérifier vos messages Bitcoin. Le message Bitcoin est le moyen le plus simple et le plus naturel de prouver la propriété d'une adresse donnée sans révéler d'informations confidentielles. Cet outil suit de près les spécifications décrites par BIP137 : "...Bien qu'aucun BIP n'ait été rédigé sur la manière de signer numériquement des messages avec des clés privées Bitcoin avec des adresses P2PKH, il s'agit d'un processus assez bien compris. Cependant, avec l'introduction des adresses Segwit (sous la forme de P2SH et bech32), il n'est pas clair comment distinguer une adresse P2PKH, P2SH, ou bech32 d'une autre. Ce BIP propose un format de signature standard qui permettra aux utilisateurs de faire la distinction entre les différents formats d'adresse." Il convient de noter que : "Comme ce format inclut les clés P2PKH, il est rétrocompatible, mais il faut garder à l'esprit que certains logiciels vérifient les plages d'en-têtes et signalent les nouveaux types d'en-têtes segwit comme des erreurs." Vous pouvez trouver plus d’informations ici : https://github.com/bitcoin/bips/blob/master/bip-0137.mediawiki Les wallets qui prennent en charge les signatures de type BIP137 sont : 1) Trezor 2) Sparrow Wallet 3) Coldcard? 4) ... Le but de cet outil est d'essayer d'étendre l'utilisation de cette norme. Installation 1) Pour l'installer avec pip, exécutez : Code: pip install bitcoin-message-tool Vous pouvez créer un environnement virtuel pour cette application et l'exécuter à partir de là, par exemple en utilisant Poetry. Créez un nouveau dossier (bmt pour raccourcir Bitcoin Message Tool ou le nom de votre choix) : Code: poetry new bmt Code: cd ./bmt Créez un nouvel environnement virtuel : Code: poetry install Code: poetry shell Téléchargez l’application depuis PyPi avec la commande suivante : Code: poetry add bitcoin-message-tool Pour l'exécuter à partir du terminal, utilisez la commande suivante : Code: python3 -m bitcoin_message_tool Lorsque vous exécutez l'application sans consignes spécifiques, un message d'aide s'affiche. 2) Sinon, vous pouvez télécharger le code source directement depuis GitHub via cette commande : Code: git clone https://github.com/shadowy-pycoder/bitcoin_message_tool.git ou vous pouvez forker le repo et ensuite cloner la version forkée Installer les dépendances avec cette commande : Code: pip install -r /path/to/requirements.txt Pour exécuter une application à partir du repo forké ou cloné, vous pouvez simplement utiliser ce qui suit : Code: python3 /path/to/bmt.py -h Comment utiliser Bitcoin Message Tool ? Le test suivant devrait donner une image claire de la façon de signer et de vérifier les messages avec cet outil en ligne de commande. Usage basique : Code: python -m bitcoin_message_tool -h Signer un message : Code: python bmt.py sign -h Exemple : Signature pour une clé privée compressée et une adresse p2pkh Code: $python bmt.py sign -p -a p2pkh -m ECDSA is the most fun I have ever experienced Cela affiche en output : Code: Bitcoin address: 175A5YsPUdM71mnNCC3i8faxxYJgBonjWL Le même output avex -v/--verbose : Code: -----BEGIN BITCOIN SIGNED MESSAGE----- Vérification d’un message : Code: python bmt.py verify -h Exemple : Vérification d’un message en mode « verbose » Code: python bmt.py verify -a 175A5YsPUdM71mnNCC3i8faxxYJgBonjWL \ Output : Code: True D'autres exemples et le code source sont disponibles ici : https://github.com/shadowy-pycoder/bitcoin_message_tool Tests avec Sparrow Wallet Vérifions une signature SegWit avec un vrai wallet : https://i.ibb.co/hHxnG0V/IMG-20230131-081915-189.png Résultat : https://i.ibb.co/MC5knZ3/Screenshot-2023-01-31-08-28-49-549-edit-com-termux.jpg Vérifions une signature SegWit créée par cet outil : https://i.ibb.co/D1CKJ5G/Screenshot-2023-01-31-08-43-47-964-edit-com-termux.jpg Résultat : https://i.ibb.co/t2syZsH/IMG-20230131-084712-671.png |