परिचय
एक हल्का और पूरी तरह से ओपन-सोर्स CLI टूल जो बिटकॉइन संदेशों के साइनिंग और वेरिफिकेशन के लिए है. बिटकॉइन संदेश वह सबसे सीधा और स्वाभाविक तरीका है जिससे आप किसी दिए गए पते के मालिकाना हक को साबित कर सकते हैं, बिना किसी गोपनीय जानकारी को प्रकट किए.
यह टूल BIP137 में वर्णित विनिर्देशन का पालन करता है:
"...हालाँकि बिटकॉइन प्राइवेट कीज़ के साथ P2PKH पते पर संदेशों को डिजिटल रूप से साइन करने के लिए कोई BIP नहीं लिखा गया था, यह एक सामान्यत: समझा हुआ प्रक्रिया है, लेकिन Segwit (P2SH और bech32 दोनों रूपों में) पते के परिचय के साथ, यह स्पष्ट नहीं है कि P2PKH, P2SH, या bech32 पतों को एक-दूसरे से कैसे अलग किया जाए। यह BIP एक मानक सिग्नेचर फॉर्मेट प्रस्तावित करता है जो क्लाइंट्स को विभिन्न पते फॉर्मेट्स के बीच अंतर करने की अनुमति देगा."
कृपया ध्यान दें कि:
"चूंकि इस फॉर्मेट में P2PKH कीज़ शामिल हैं, यह बैकवर्ड कम्पैटिबल है, लेकिन ध्यान में रखें कि कुछ सॉफ़्टवेयर हेडर की रेंज के लिए चेक करते हैं और नए SegWit हेडर प्रकारों को त्रुटियों के रूप में रिपोर्ट करेंगे."
अधिक जानकारी: https://github.com/bitcoin/bips/blob/master/bip-0137.mediawiki
वॉलेट्स जो BIP137 प्रकार के सिग्नेचर्स को पूरी तरह से सपोर्ट करते हैं:
1) Trezor
2) Sparrow Wallet
3) Coldcard?
4) ...
यह टूल मूल रूप से इस मानक के उपयोग को विस्तार देने का एक प्रयास है.
स्थापना
1) pip के साथ इंस्टॉल करने के लिए, यह कमांड चलाएं:
आप इस एप्लिकेशन के लिए एक वर्चुअल वातावरण बना सकते हैं और उसे वहीं से चला सकते हैं, उदाहरण के लिए Poetry का उपयोग करके.
एक नया फोल्डर बनाएं (bmt बिटकॉइन मैसेज टूल के लिए संक्षिप्त है या आप जो चाहें चुन सकते हैं):
एक नया वर्चुअल वातावरण बनाएं:
इस कमांड के माध्यम से PyPi से एप्लिकेशन डाउनलोड करें:
टर्मिनल से इसे चलाने के लिए, यह कमांड उपयोग करें:
जब आप बिना तर्कों के ऐप चलाएंगे, तो आपको एक सहायता संदेश दिखाई देगा.
2) वैकल्पिक रूप से, आप इस कमांड के माध्यम से GitHub से स्रोत कोड सीधे डाउनलोड कर सकते हैं:
या आप रेपो को फोर्क कर सकते हैं और फिर फोर्क की गई संस्करण को क्लोन कर सकते हैं.
इस कमांड के माध्यम से आवश्यकताओं को इंस्टॉल करें:
फोर्क किए गए या क्लोन किए गए रेपो से एप्लिकेशन चलाने के लिए, आप बस निम्नलिखित का उपयोग कर सकते हैं:
Bitcoin Message Tool का उपयोग कैसे करें:
निम्नलिखित doctest इस CLI टूल के साथ संदेशों को साइन और वेरिफाई करने के बारे में स्पष्ट चित्र प्रदान करना चाहिए:
मूल उपयोग:
or
python bmt.py -h
usage: python3 bmt.py [-h] {sign,verify} ...
Bitcoin message signing/verification tool
positional arguments:
{sign,verify}
options:
-h, --help show this help message and exit
संदेश साइनिंग:
usage: python3 bmt.py sign [-h] -p -a {p2pkh,p2wpkh-p2sh,p2wpkh} -m [MESSAGE ...] [-d] [-v]
options:
-h, --help show this help message and exit
Sign messsage:
-p, --privkey private key in wallet import format (WIF)
-a {p2pkh,p2wpkh-p2sh,p2wpkh}, --addr_type {p2pkh,p2wpkh-p2sh,p2wpkh}
type of bitcoin address
-m [MESSAGE ...], --message [MESSAGE ...]
Message to sign
-d, --deterministic sign deterministtically (RFC6979)
-v, --verbose print prettified message
उदाहरण: संकुचित प्राइवेट की और p2pkh पते के लिए गैर-निर्धारणीय सिग्नेचर
PrivateKey(WIF):
आउटपुट:
Message: ECDSA is the most fun I have ever experienced
Signature: IBuc5GXSJCr6m7KevsBAoCiX8ToOjW2CDZMr6PCEbiHwQJ237LZTj/REbDHI1/yelY6uBWEWXiOWoGnajlgvO/A=
-v/--verbose फ्लैग के साथ वही आउटपुट:
ECDSA is the most fun I have ever experienced
-----BEGIN BITCOIN SIGNATURE-----
175A5YsPUdM71mnNCC3i8faxxYJgBonjWL
IBuc5GXSJCr6m7KevsBAoCiX8ToOjW2CDZMr6PCEbiHwQJ237LZTj/REbDHI1/yelY6uBWEWXiOWoGnajlgvO/A=
-----END BITCOIN SIGNATURE-----
संदेश साइनिंग:
usage: python3 bmt.py verify [-h] -a ADDRESS -m [MESSAGE ...] -s SIGNATURE [-v] [-r]
options:
-h, --help show this help message and exit
Verify messsage:
-a ADDRESS, --address ADDRESS
specify bitcoin address
-m [MESSAGE ...], --message [MESSAGE ...]
Message to verify
-s SIGNATURE, --signature SIGNATURE
bitcoin signature in base64 format
-v, --verbose print full message
-r, --recpub recover public key
उदाहरण: verbose मोड में संदेश सत्यापन
> -m ECDSA is the most fun I have ever experienced \
> -s HyiLDcQQ1p2bKmyqM0e5oIBQtKSZds4kJQ+VbZWpr0kYA6Qkam2MlUeTr+lm1teUGHuLapfa43JjyrRqdSA0pxs= \
> -v
आउटपुट:
Message verified to be from 175A5YsPUdM71mnNCC3i8faxxYJgBonjWL
अधिक उदाहरण और स्रोत कोड यहाँ पाया जा सकता है: https://github.com/shadowy-pycoder/bitcoin_message_tool
Sparrow वॉलेट के साथ परीक्षण
आइए एक वास्तविक वॉलेट के साथ बनाई गई SegWit सिग्नेचर को सत्यापित करें:
परिणाम:
आइए इस टूल द्वारा बनाई गई SegWit सिग्नेचर को सत्यापित करें:
परिणाम:
इस पहल के तहत अनुवादित :