
BlockChain Security Construction
इस लेख में, हम मुख्य रूप से पब्लिक चेन ऑडिट के कई पहलुओं का परिचय देते हैं जो ध्यान देने योग्य हैं। सुरक्षा ऑडिटरों और पब्लिक चेन डेवलपर्स के लिए, यह एक परियोजना है जो संदर्भ और चिंतन के योग्य है।
पब्लिक चेन प्रणाली के निर्माण का परिचय देने से पहले, आइए ब्लॉकचेन की वास्तुकला पर एक नज़र डालें:
Blockchain 1.0 युग:
वास्तुकला: जैसा कि नीचे चित्र में दिखाया गया है
प्रतिनिधि उत्पाद: bitcoin, reborn coin, dogcoin, Leyte coin, MasterCard coin, आदि

Blockchain 2.0 युग:
वास्तुकला: जैसा कि नीचे चित्र में दिखाया गया है
प्रतिनिधि उत्पाद: Ethereum, lisk, hyperledger, आदि
प्रमुख परिवर्तन:

Blockchain 2.0 युग
वास्तुकला: जैसा कि नीचे चित्र में दिखाया गया है
प्रतिनिधि उत्पाद: EOS, VaR, AE, ash, ELA, dfinity
मुख्य परिवर्तन: वित्तीय उद्योग के बाहर जीवन के सभी क्षेत्रों में ब्लॉकचेन के अनुप्रयोग परिदृश्य अधिक जटिल व्यावसायिक तर्क को पूरा कर सकते हैं

आगे, हम ब्लॉकचेन की वास्तुकला के अनुसार ब्लॉकचेन पब्लिक चेन के सुरक्षा निर्माण में विचारणीय समस्याओं का एक संक्षिप्त परिचय देंगे। लगभग 75% समस्याओं ने पब्लिक चेन सुरक्षा समस्याएँ उत्पन्न की हैं, जो पब्लिक चेन सुरक्षा ऑडिट में भी ध्यान देने योग्य कुछ बिंदु हैं। यहाँ, हम उन्हें प्रश्नों के रूप में प्रस्तुत करते हैं ताकि हमारी सोच को जागृत किया जा सके, यदि आप आगे चर्चा करना चाहते हैं, तो आप इसे सीधे issue में कर सकते हैं:
डेटा परत सबसे निचली परत की तकनीक है, और इसके मुख्य कार्य डेटा भंडारण, खाता और लेनदेन कार्यान्वयन तथा सुरक्षा हैं। डेटा भंडारण मुख्य रूप से Merkle tree पर आधारित है, जो ब्लॉक और चेन संरचना द्वारा कार्यान्वित किया जाता है। इनमें से अधिकांश kV डेटाबेस द्वारा स्थायी किए जाते हैं, जैसे bitcoin और Ethereum द्वारा अपनाया गया leveldb।
डेटा परत के बारे में निम्नलिखित बिंदुओं पर विचार करना योग्य है:
नेटवर्क परत का मुख्य उद्देश्य ब्लॉकचेन नेटवर्क के नोड्स के बीच सूचना संपर्क को साकार करना है। ब्लॉकचेन का सार एक पीयर-टू-पीयर (P2P) नेटवर्क है। प्रत्येक नोड सूचना प्राप्त कर सकता है और सूचना उत्पन्न भी कर सकता है। नोड्स एक साझा ब्लॉकचेन को बनाए रखकर संचार बनाए रखते हैं। ब्लॉकचेन नेटवर्क में, प्रत्येक नोड एक नया ब्लॉक बना सकता है। नया ब्लॉक बनने के बाद, अन्य नोड्स को प्रसारण (broadcasting) द्वारा सूचित किया जाएगा। बदले में, अन्य नोड्स उस नोड को सत्यापित करेंगे। जब ब्लॉकचेन नेटवर्क में 51% से अधिक उपयोगकर्ता सत्यापन पास कर लेते हैं, तो नया ब्लॉक मुख्य श्रृंखला में जोड़ दिया जाएगा।
नेटवर्क परत के बारे में विचार करने योग्य कई बिंदु हैं
क्या पब्लिक चेन नोड खोज एल्गोरिदम का डिज़ाइन उचित है?
क्या पब्लिक चेन नोड्स का डिज़ाइन उचित है?
क्या दंड तंत्र का डिज़ाइन उचित है?
क्या संचार प्रोटोकॉल का डिज़ाइन उचित है?
क्या पब्लिक चेन नोड की अनुरोध प्रसंस्करण डिज़ाइन उचित है?
क्या अनुरोध प्रसंस्करण पैकेट के आकार की कोई सीमा है?
क्या पब्लिक चेन लेनदेन संचार तंत्र का डिज़ाइन उचित है?
क्या ब्लॉक डेटा सिंक्रनाइज़ेशन तंत्र उचित है?
क्या लेनदेन प्रसंस्करण का तर्क डिज़ाइन उचित है?
सर्वसम्मति परत अत्यधिक विकेंद्रीकृत नोड्स को एक विकेंद्रीकृत प्रणाली में ब्लॉक डेटा की प्रभावशीलता पर सर्वसम्मति तक पहुँचने में सक्षम बनाती है। प्रत्येक चालू ब्लॉकचेन को ब्लॉक आउटपुट की प्रभावशीलता और क्रम सुनिश्चित करने के लिए एक सर्वसम्मति एल्गोरिदम की आवश्यकता होती है। सामान्य सर्वसम्मति एल्गोरिदम में pow, POS, dpos, Poa, POC, आदि शामिल हैं।
सर्वसम्मति स्तर पर, हमें निम्नलिखित बिंदुओं पर विचार करना चाहिए:
क्या पब्लिक चेन सर्वसम्मति एल्गोरिदम का डिज़ाइन सुरक्षित है?
क्या पब्लिक चेन सर्वसम्मति सत्यापन का डिज़ाइन उचित है?
क्या पब्लिक चेन सर्वसम्मति ज़ब्ती का डिज़ाइन उचित है?
क्या पब्लिक चेन सेवा शुल्क का डिज़ाइन उचित है?
क्या पब्लिक चेन माइनिंग का डिज़ाइन उचित है?
क्या ब्लॉक कठिनाई गतिशील समायोजन डिज़ाइन उचित है?
क्या ब्लॉक कठिनाई जाँच का तर्क डिज़ाइन उचित है?
चेन पुनर्संगठन, चेन रीसेट, चेन विभाजन, आदि का डिज़ाइन?
पब्लिक चेन प्रोत्साहन परत का उद्देश्य नोड्स को ब्लॉकचेन की सुरक्षा सत्यापन में भाग लेने के लिए प्रोत्साहित करने हेतु कुछ प्रोत्साहन उपाय प्रदान करना है, और ब्लॉकचेन पारिस्थितिकी के संतुलन और स्वस्थ विकास को सुनिश्चित करना है। विकेंद्रीकृत पब्लिक चेन में, नियमों का पालन करने वाले भाग लेने वाले लेखांकन नोड्स को प्रोत्साहित करने के लिए संबंधित प्रोत्साहन तंत्र स्थापित करना आवश्यक है, और नियमों का पालन नहीं करने वाले भाग लेने वाले लेखांकन नोड्स को दंडित करने के लिए दंड तंत्र स्थापित करना आवश्यक है। ब्लॉकचेन की प्रोत्साहन परत ब्लॉकचेन तकनीकी प्रणाली में आर्थिक कारकों का परिचय देती है, जो पारिस्थितिकी के भीतर संगठनात्मक सहयोग और मूल्य विनिमय की दक्षता में सुधार करती है। पब्लिक चेन का प्रोत्साहन तंत्र ब्लॉकचेन के सद्गुणी विकास को सुनिश्चित करने के लिए एक महत्वपूर्ण तंत्र है।
प्रोत्साहन स्तर के बारे में हमारे विचार के योग्य कई बिंदु हैं
क्या पब्लिक चेन जारी करने के तंत्र का डिज़ाइन उचित है?
क्या पब्लिक चेन दंड तंत्र का डिज़ाइन उचित है?
कॉन्ट्रैक्ट परत ब्लॉकचेन प्रणाली के सभी प्रकार के स्क्रिप्ट कोड और एल्गोरिदम को समाहित करती है, साथ ही उनसे उत्पन्न अधिक जटिल स्मार्ट कॉन्ट्रैक्ट को भी। यदि डेटा, नेटवर्क और सर्वसम्मति के तीन स्तर, ब्लॉकचेन के अंतर्निहित "वर्चुअल मशीन" के रूप में, क्रमशः डेटा प्रतिनिधित्व, डेटा प्रसार और डेटा सत्यापन के कार्य करते हैं, तो कॉन्ट्रैक्ट परत ब्लॉकचेन वर्चुअल मशीन पर आधारित व्यावसायिक तर्क और एल्गोरिदम है, जो ब्लॉकचेन प्रणाली के लचीले प्रोग्रामिंग और डेटा संचालन को साकार करने का आधार है। bitcoin सहित अधिकांश डिजिटल क्रिप्टोकरेंसी, लेनदेन प्रक्रिया को प्रोग्राम और नियंत्रित करने के लिए गैर-ट्यूरिंग-पूर्ण सरल स्क्रिप्ट कोड का उपयोग करती हैं, जो स्मार्ट कॉन्ट्रैक्ट का प्रारंभिक रूप भी है। प्रौद्योगिकी के विकास के साथ, Ethereum जैसी ट्यूरिंग-पूर्ण स्क्रिप्ट भाषाएँ हैं जो अधिक जटिल और लचीले स्मार्ट कॉन्ट्रैक्ट को साकार कर सकती हैं, ब्लॉकचेन व्यापक वित्तीय और सामाजिक प्रणालियों के कई अनुप्रयोगों का समर्थन कर सकता है।
हमें कॉन्ट्रैक्ट परत के बारे में निम्नलिखित बिंदुओं पर विचार करना चाहिए:
कॉन्ट्रैक्ट वर्चुअल मशीन सुरक्षा डिज़ाइन?
कॉन्ट्रैक्ट परिनियोजन / निष्पादन / इंटरफ़ेस?
स्मार्ट कॉन्ट्रैक्ट से संबंधित सुरक्षा?
एप्लिकेशन परत ब्लॉकचेन के विभिन्न अनुप्रयोग परिदृश्यों और मामलों को समाहित करती है, जो कंप्यूटर में विभिन्न सॉफ़्टवेयर प्रोग्रामों के समान है। यह एक ऐसा उत्पाद है जिसे सामान्य उपयोगकर्ता वास्तव में सीधे उपयोग कर सकते हैं, और इसे B/S आर्किटेक्चर उत्पादों के ब्राउज़र के रूप में भी समझा जा सकता है।
हमें एप्लिकेशन परत के बारे में निम्नलिखित बिंदुओं पर विचार करना चाहिए (केवल पब्लिक चेन, वॉलेट App/Exchange/DEFI, आदि नहीं):
वॉलेट खाते का CRUD तर्क डिज़ाइन?
वॉलेट के आयात और निर्यात अनुमति की जाँच करें?
वॉलेट पासवर्ड जटिलता का डिज़ाइन?
वॉलेट खाते के पते की वैधता की जाँच करें?
क्या सार्वजनिक RPC इंटरफ़ेस को बाहरी सार्वजनिक नेटवर्क की आवश्यकता है?
क्या पब्लिक चेन RPC इंटरफ़ेस प्राधिकरण स्पष्ट रूप से विभाजित है?
क्या सार्वजनिक RPC इंटरफ़ेस में संवेदनशील श्रेणी के संचालन हैं?
क्या सार्वजनिक RPC इंटरफ़ेस अपवादों को संभालता है?
पब्लिक चेन RPC इंटरफ़ेस की अधिकतम डेटा प्रसंस्करण सीमा?
पब्लिक चेन RPC इंटरफ़ेस अनुरोध डेटा एन्कोडिंग और डिकोडिंग?
क्या पब्लिक चेन RPC अनुरोध प्रसंस्करण के लिए SSL सक्षम है?
पब्लिक चेन में उच्च समवर्ती अनुरोध प्रसंस्करण का डिज़ाइन?
अधिकतम कनेक्शन संख्या निर्धारित करें?
क्या पब्लिक चेन Web UI इंटरफ़ेस दूरस्थ पहुँच की अनुमति देता है?
क्या पब्लिक चेन webui इंटरफ़ेस में कोई वेब श्रेणी की भेद्यता है?
क्या पब्लिक चेन webui इंटरफ़ेस को पासवर्ड जानकारी स्थानीय रूप से संग्रहीत करने की अनुमति है?
यह सत्य है कि पब्लिक चेन में कोई "कोड परत" नहीं होती है। यहाँ, लेखक इसे मुख्य रूप से उन समस्याओं को वर्गीकृत करने के लिए प्रस्तावित करता है जिन पर पब्लिक चेन विकास की प्रक्रिया में विचार करने की आवश्यकता हो सकती है:
पब्लिक चेन विकास भाषा की विशेषताएँ, जैसे कि go भाषा डेटा पठन में readall (), append विशेषताएँ
पब्लिक चेन विकास भाषा संस्करण, उदाहरण के लिए, go भाषा के कुछ संस्करणों में दूरस्थ कमांड निष्पादन होता है
पब्लिक चेन विकास विनिर्देश कोडिंग, जैसे कि null pointer, slicing, exception handling और अन्य संचालन
पब्लिक चेन एन्क्रिप्शन और डिक्रिप्शन प्रसंस्करण, जैसे कि लंबाई जाँच के बिना उच्च जटिलता एन्कोडिंग और डिकोडिंग
डेटा प्रकार रूपांतरण प्रसंस्करण, जैसे कि hextobyte, integer. Parseint(), आदि
मूल व्यावसायिक तर्क डिज़ाइन, उदाहरण के लि
ब्लॉकचेन वास्तुकला के स्तर पर विचारणीय उपरोक्त मुद्दों के अतिरिक्त, हमें निम्नलिखित सुरक्षा मुद्दों पर भी विचार करने की आवश्यकता है:
क्या डेटा भंडारण एन्क्रिप्टेड है?
क्या फ़ाइल अनुमति उचित है?
क्या चालू वातावरण सुरक्षित है?
क्या नोड root के रूप में प्रारंभ नहीं हुआ है?
क्या नोड पक्ष पर कोई भेद्य वेब सेवा है?
क्या नोड के सर्वर पक्ष पर कोई असुरक्षित कॉन्फ़िगरेशन है?
क्या नोड के सर्वर पक्ष पर कोई अनधिकृत पहुँच भेद्यता है?
क्या नोड के सर्वर पक्ष पर SSH खाता पासवर्ड लीक हुआ है?
51% हमला
पब्लिक चेन का हार्ड विभाजन
कंप्यूटिंग अपहरण (वर्म माइनिंग मशीनों को संक्रमित करते हैं)
क्या भेद्यताओं वाली थर्ड-पार्टी लाइब्रेरी का उपयोग करना है, जैसे कि Jackson databind, fastjson, आदि
भेद्य मिडलवेयर का उपयोग करें, जैसे कि tendermint का निचला संस्करण
क्या क्रॉस चेन मोड विश्वसनीय और उपयुक्त है?
समरूप (isomorphic) क्रॉस चेन और विषम (heterogeneous) क्रॉस चेन कार्यान्वयन योजना?
उपरोक्त अनुभाग में सुरक्षा मुद्दों को दोहराएँ
issue में संबंधित मुद्दों की चर्चा में सीधे भाग लें