Signet का उपयोग Bitcoin सॉफ्टवेयर की साझा जाँच के लिए होता है। इसकी अपनी चेन और परीक्षण सिक्के हैं। सामान्य नियमों और Proof of Work के अलावा नए ब्लॉक को नेटवर्क की खास शर्त पूरी करनी होती है। डिफॉल्ट Signet में यह शर्त हस्ताक्षर पर आधारित है। इससे परीक्षण आसान होता है, लेकिन भरोसे का मॉडल मुख्य नेटवर्क से अलग रहता है।
एना जानना चाहती है कि नया वॉलेट भुगतान भेजने के बाद और उसके ब्लॉक में पुष्ट होने पर क्या दिखाता है। वॉलेट बिटकॉइन पाने और भेजने वाला ऐप या उपकरण है। ब्लॉक लेनदेन का एक समूह है, जो साझा इतिहास में जोड़ा जाता है। Signet पर वह परीक्षण सिक्के इस्तेमाल कर सकती है, जैसे faucet से मिले सिक्के। Faucet प्रयोगों के लिए इन्हें बाँटने वाली सेवा है। ये मुख्य नेटवर्क, यानी mainnet के BTC नहीं हैं, और प्रोटोकॉल इन्हें असली बिटकॉइन में नहीं बदलता। पते पर भी ध्यान दें: Signet कुछ परीक्षण पता-प्रारूप Testnet के साथ साझा करता है। केवल पता देखकर सही नेटवर्क तय नहीं किया जा सकता। [1] [2] [8]
Karl-Johan Alm और Anthony Towns ने BIP 325 (Signet का वर्णन करने वाला तकनीकी दस्तावेज़) लिखा; Bitcoin Core v0.21.0 में Signet का समर्थन आया। प्रोग्राम एक डिफॉल्ट सार्वजनिक नेटवर्क देता है, पर कोई टीम ब्लॉक बनाने की अपनी शर्त और अपने प्रतिभागी तय कर सकती है। इसलिए “हम Signet इस्तेमाल करते हैं” कहना काफी नहीं: दोनों पक्ष एक ही नेटवर्क पर होने चाहिए। नेटवर्क संदेशों की पहचान उस शर्त से बनती है, परियोजना के नाम से नहीं। [1] [3] [4]
Full Node वह नोड है जो नियमों की जाँच खुद करता है। वह लेनदेन और Proof of Work, यानी ब्लॉक बनाने के लिए जरूरी गणना के परिणाम, की जाँच जारी रखता है। साथ ही Signet की अतिरिक्त शर्त भी देखता है। इसलिए डिफॉल्ट नेटवर्क पर केवल माइनिंग काफी नहीं; उपयुक्त हस्ताक्षर भी चाहिए। ब्लॉक का संक्षिप्त विवरण, उसका हेडर, इस अतिरिक्त जाँच की जगह नहीं लेता: जरूरी डेटा ब्लॉक के भीतर होता है। [1] [9]
डिजिटल हस्ताक्षर से जाँचा जा सकता है कि संदेश को संबंधित निजी कुंजी रखने वाले ने मंज़ूरी दी है। निजी कुंजी एक गुप्त संख्यात्मक मान है, जिसे इस जाँच के लिए उजागर नहीं करना पड़ता। जो हस्ताक्षर की शर्त पूरी कर सकता है, वह ब्लॉकों के बनने पर असर डालता है। वह हस्ताक्षर करने में देरी कर सकता है या शामिल लेनदेन सीमित कर सकता है। लेकिन इससे उसे एना की निजी कुंजियाँ नहीं मिलतीं, न वह उसके नोड को कोई भी अमान्य लेनदेन स्वीकार करने पर मजबूर कर सकता है। दूसरे नियम लागू रहते हैं। ऐसी नियंत्रित भागीदारी परीक्षण में उपयोगी है और यही कारण है कि Signet, mainnet के सुरक्षा मॉडल की नकल नहीं है। [1] [9]
विकास के लिए एक सफल भुगतान देख लेना काफी नहीं। टीम को जानना होता है कि ब्लॉक रुकने या पुनर्गठन होने पर ऐप क्या करता है। पुनर्गठन में नोड हाल के ब्लॉकों को दूसरी वैध शाखा से बदलता है। मिलकर तय किया परीक्षण ऐसी स्थिति बना सकता है और देख सकता है कि वॉलेट पुष्टियों को सही ढंग से बदलता है या नहीं। Signet बिना रुकावट सेवा का वादा नहीं करता; वह खराब स्थितियों की जाँच भी अधिक योजनाबद्ध बनाता है। [1] [5] [6]
Testnet में ब्लॉक बनाना खुला है और उसकी गति में उतार-चढ़ाव साझा प्रयोग को मुश्किल बना सकता है। Regtest जरूरत पड़ने पर आसानी से ब्लॉक बनाता है, इसलिए अपने स्वचालित परीक्षणों के लिए उपयोगी है। इससे कई कंप्यूटर भी जोड़े जा सकते हैं; इसे केवल एक अलग-थलग प्रोग्राम की तरह चलाना ज़रूरी नहीं। Signet दूसरी जरूरत पूरी करता है: स्वतंत्र प्रतिभागियों का लंबे समय तक, ब्लॉक बनाने की सहमत शर्तों के साथ सहयोग। कोई भी तरीका बाकी सभी जाँचों की जगह नहीं लेता। [1] [2]
Challenge एक स्क्रिप्ट है, छोटा प्रोग्राम जो बताता है कि ब्लॉक को क्या साबित करना है। यह स्क्रिप्ट एक हस्ताक्षर या Multisig, यानी कई कुंजियों में से तय संख्या में हस्ताक्षर, माँग सकती है। निजी Signet में OP_TRUE भी हो सकता है, ऐसी शर्त जो बिना हस्ताक्षर पूरी होती है। तब खाली समाधान पर्याप्त है। इसलिए “अतिरिक्त स्क्रिप्ट शर्त” कहना सही है, न कि हर Signet को हमेशा हस्ताक्षरकर्ता चाहिए। [1] [9]
BIP 325 गैर-खाली समाधान को Coinbase Transaction, यानी ब्लॉक के पहले लेनदेन, के खास डेटा में रखता है। यहाँ इस नाम का उसी नाम के एक्सचेंज से संबंध नहीं है। डेटा BIP 141 के commitment का विस्तार है, जो ब्लॉक को हस्ताक्षर समेत उसके witness डेटा से जोड़ता है, और इसकी पहचान 0xecc7daa2 चिह्न से होती है। यह हस्ताक्षरकर्ता को भेजा गया दूसरा सामान्य भुगतान नहीं है। सहज रूप से पूरी होने वाली शर्त में अतिरिक्त समाधान छोड़ा जा सकता है, लेकिन बाकी ब्लॉक नियम अपने-आप समाप्त नहीं होते। [1] [9] [10]
अगर हस्ताक्षरित संदेश में वही हस्ताक्षर शामिल होता, तो चक्रीय निर्भरता बनती। इसलिए जाँच समाधान को खाली रखकर लेनदेन के बदले हुए डिजिटल निशान और दो आभासी लेनदेन का उपयोग करती है। ये गणना के लिए हैं, अतिरिक्त भुगतान बनकर भेजे नहीं जाते। हस्ताक्षर हेडर के nonce को भी नहीं समेटता, यानी Proof of Work खोजते समय बदली जाने वाली संख्या को। इसे बदलने पर नया हस्ताक्षर नहीं चाहिए, लेकिन इसका मतलब बाकी ब्लॉक को मनमाने ढंग से बदलना नहीं है। [1] [9]
एना पहले देखती है कि वॉलेट, नोड और ब्लॉक एक्सप्लोरर एक ही परीक्षण नेटवर्क इस्तेमाल करते हैं। ब्लॉक एक्सप्लोरर किसी खास नेटवर्क के लेनदेन और ब्लॉक खोजने वाला ऐप है। Bitcoin Core में getblockchaininfo और उसका signet_challenge फ़ील्ड तय शर्त दिखाते हैं। फिर वह केवल “भेजा गया” संदेश नहीं, वास्तविक पुष्टि देखती है और अलग परीक्षण वॉलेट इस्तेमाल करती है। सफल प्रयोग उन परिस्थितियों में ऐप का व्यवहार दिखाता है। वह पैसों की सुरक्षा या mainnet के हमलावर के विरुद्ध मजबूती की गारंटी नहीं देता। [7] [8]
पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें Nakamoto Consensus, Block Propagation, Initial Block Download, Block Weight, Bitcoin, Bitcoin Core. इस प्रविष्टि का उल्लेख यहाँ भी है Testnet, Miniscript, Dead Man’s Switch.