Sybil Attack में एक विरोधी कई पहचानें नियंत्रित करता है और उन्हें स्वतंत्र प्रतिभागियों की तरह पेश करता है। Bitcoin में केवल नेटवर्क कनेक्शन बढ़ाने से न उसकी माइनिंग क्षमता बढ़ती है, न नियम बदलने का अधिकार मिलता है। लेकिन इससे वह किसी खास नोड के सूचना-स्रोतों को प्रभावित कर सकता है।
आना किसी फ़ोरम की सिफारिशों के आधार पर सेवा चुनती है। दर्जनों खाते उसकी तारीफ़ करते हैं, लेकिन सभी सेवा के संचालक के नियंत्रण में हैं। इन नामों की सहमति स्वतंत्र राय से नहीं बनी। John R. Douceur ने 2002 के अपने शोध The Sybil Attack में कंप्यूटर नेटवर्क की ऐसी ही समस्या समझाई: एक विरोधी कई प्रतिभागियों का रूप ले सकता है। नया नाम बनाना आसान है; जरूरी पते, सर्वर (दूसरों को सेवाएँ देने वाले कंप्यूटर) और कनेक्शन जुटाने में पैसा और समय लग सकता है। [1]
Bitcoin नेटवर्क में peer वह दूसरा पक्ष है जिसके साथ आपका प्रोग्राम डेटा का आदान-प्रदान करता है। पीटर कई नोड चला सकता है और कोई कंपनी उससे कहीं अधिक। Bitcoin में ऐसी किसी सूची की जरूरत नहीं है जो हर व्यक्ति के लिए केवल एक नोड तय करे। IP पता नेटवर्क में उस स्थान को बताता है जिससे प्रोग्राम जुड़ता है। इसलिए अलग IP पते से अलग मालिक साबित नहीं होता। कई नोड चलाना अपने आप में हमला भी नहीं है; समस्या तब होती है जब उनकी दिखावटी स्वतंत्रता का दुरुपयोग किया जाता है। [1] [3]
पीटर का Full Node एक प्रोग्राम है जो Bitcoin के नियम खुद जाँचता है। यहाँ हस्ताक्षर करने का मतलब निजी कुंजी, यानी एक गुप्त संख्यात्मक मान, से भुगतान की अनुमति का जाँचा जा सकने वाला प्रमाण बनाना है। बाकी लोग वह गुप्त मान जाने बिना हस्ताक्षर जाँच सकते हैं। यदि पीटर के नोड से जुड़े सभी peer अमान्य हस्ताक्षर वाला लेनदेन भेजें, तब भी वह उसे अस्वीकार करेगा। एक जैसे जवाब वोट नहीं बन जाते। ब्लॉक लेनदेन का एक समूह है, जो साझा इतिहास में जोड़ा जाता है। नोड पूरे ब्लॉक भी जाँचता है, जैसे कहीं पहले खर्च किए गए धन को दोबारा खर्च तो नहीं किया जा रहा या नियमों से बाहर इनाम तो नहीं बनाया जा रहा। नेटवर्क डेटा देता है; वैधता नोड के नियम तय करते हैं, भेजने वाले की लोकप्रियता नहीं। [2] [6] [9]
कभी-कभी इतिहास की दो वैध शाखाएँ आपस में प्रतिस्पर्धा करती हैं। Proof of Work उनके संचित काम की तुलना करने देता है, यानी मिले हुए ब्लॉकों की कठिनाई से निकला वजन। माइनिंग के लिए वास्तविक गणनात्मक प्रयास चाहिए; कंप्यूटर का नाम बदलने से काम नहीं बढ़ता। यदि हमलावर उन्हीं माइनिंग उपकरणों को कई पहचानों में बाँट दे, तो उनकी कुल क्षमता इस बाँटने से नहीं बढ़ेगी। यहाँ एक खाता, एक वोट का सिद्धांत लागू नहीं होता। [2] [6]
हजार कनेक्शन किसी दूसरे के बिटकॉइन खर्च करने के लिए जरूरी निजी कुंजी की जगह नहीं ले सकते। केवल पहचानें बढ़ाने से जारी करने के नियम भी नहीं टूटते, न सही ढंग से जाँचने वाले नोड को अमान्य ब्लॉक स्वीकार कराया जा सकता है। इसका मतलब हर हमले से सुरक्षा की गारंटी नहीं है। विरोधी अतिरिक्त माइनिंग क्षमता हासिल कर सकता है या प्रोग्राम की खामी का फायदा उठा सकता है। इन क्षमताओं को अलग जाँचना चाहिए, सिर्फ खातों की संख्या का परिणाम नहीं मानना चाहिए। [2] [9]
पीटर के नोड पर लौटें। हमलावर उसके ज्ञात पतों की सूची भरने और उसके कनेक्शनों पर कब्जा करने की कोशिश कर सकता है। यदि बाकी नेटवर्क तक जाने वाले सभी प्रासंगिक रास्ते उसके नियंत्रण में हों, तो वह ब्लॉक रोककर अधूरी या देर से मिली तस्वीर दिखा सकता है। इस अलगाव को Eclipse Attack कहते हैं। Sybil Attack इसमें मदद कर सकता है, लेकिन हमलावर की बहुत-सी पहचानें अलगाव की सफलता साबित नहीं करतीं। मिले हुए डेटा को जाँचना और छिपाए गए डेटा का पता होना अलग बातें हैं। [3] [5] [8]
Bitcoin Core कई बाधाएँ साथ इस्तेमाल करता है। बाहर जाने वाले कनेक्शन अपने आप चुनते समय वह नेटवर्क विविधता खोजता है और ज्ञात पतों को समूहों में बाँटता है, ताकि एक स्रोत आसानी से पूरे चयन पर हावी न हो। feeler नाम के छोटे परीक्षण कनेक्शन जाँचते हैं कि दूसरे peer तक पहुँचा जा सकता है या नहीं। ये उपाय हमला कठिन बनाते हैं; हर सर्वर का असली मालिक नहीं पहचानते और अलगाव रोकने की गारंटी नहीं देते। कार्यान्वयन बदलता रहता है; यहाँ के स्रोत Bitcoin Core 29.0 दिखाते हैं। [4] [7] [8]
IP पता या Tor सेवा का पता प्रोग्राम को बताता है कि कहाँ जुड़ना है। वह दूसरी ओर किसी नए स्वतंत्र व्यक्ति का प्रमाण नहीं है। एक संचालक के कई पते हो सकते हैं, जबकि कई उपयोगकर्ता एक सार्वजनिक IP पता या नेटवर्क रास्ते का कुछ भाग साझा कर सकते हैं। Tor कनेक्शन की निजता में उपयोगी है, पर उसका पता अपने आप peer की स्वतंत्रता साबित नहीं करता। संदेश पहुँचाना और Bitcoin का इतिहास चुनने में वजन देना अलग काम हैं। [3] [4]
Proof of Work झूठे बहुमत की समस्या का एक महत्वपूर्ण हिस्सा हल करता है, संचार के हर खतरे को नहीं। P2P नेटवर्क, यानी प्रतिभागियों के बीच सीधे डेटा का आदान-प्रदान, अत्यधिक ट्रैफ़िक, निगरानी और संदेश रोके जाने का सामना कर सकता है। इसलिए बचाव में कनेक्शन प्रबंधन और संसाधन खर्च की सीमाएँ भी आती हैं। सुरक्षा इस बात पर निर्भर करती है कि हमलावर वास्तव में क्या नियंत्रित करता है: सिर्फ नाम, नेटवर्क के रास्ते, गणना क्षमता या इनका मेल। [1] [5] [6]
सार्वजनिक रूप से पहुँच योग्य नोड की गिनती लोगों की संख्या या नियमों पर मतदान का नतीजा नहीं है। नोड कहाँ से जानकारी लेते हैं और खुद क्या जाँचते हैं, यह भी मायने रखता है। अपना Full Node मिले हुए ब्लॉक जाँचने देता है, लेकिन उसे बाकी नेटवर्क से जुड़ना पड़ता है। वॉलेट बिटकॉइन पाने और भेजने वाला ऐप या उपकरण है। यदि वह किसी और का सर्वर इस्तेमाल करता है, तो दूसरी जगह बहुत-से नोड चलने से उस सर्वर पर निर्भरता खत्म नहीं होती। ज्यादा संपर्कों का मतलब अपने आप ज्यादा स्वतंत्रता नहीं है। [1] [3] [9]
पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें Nakamoto Consensus, Eclipse Attack, Selfish Mining, Block Propagation, Bitcoin, Proof of Work. इस प्रविष्टि का उल्लेख यहाँ भी है Byzantine Generals Problem, Nakamoto Consensus, Eclipse Attack, Selfish Mining.