236 / 736BOOST

ASICBoost

वैध ब्लॉक खोजते समय दोहराया जाने वाला काम घटाना

पीटर माइनिंग उपकरण चुन रहा है और उसकी विशेषताओं में ASICBoost देखता है। नाम सुनकर यह गति बढ़ाने वाला बटन लग सकता है, लेकिन असल बात गणना को बेहतर ढंग से व्यवस्थित करना है। मशीन कुछ तैयारी कई प्रयासों के लिए एक साथ करती है, ताकि उसे बार-बार न दोहराना पड़े। हर प्रयास को Bitcoin के वही नियम पूरे करने होते हैं। लाभ समझने के लिए पीटर को कागज़ पर लिखी तकनीक, अपने उपकरण में उसका समर्थन और मापी गई बिजली खपत अलग-अलग देखनी होगी।

ASICBoost, Bitcoin माइनिंग का एक अनुकूलन है। यह ब्लॉक हेडर के डिजिटल निशान, यानी हैश, की गणना में होने वाले कुछ काम को दोबारा इस्तेमाल करता है। इससे प्रयासों की कुछ लागत घटती है, लेकिन सफल हैश की शर्त आसान नहीं होती। इसके लिए उपयुक्त काम तैयार करना और उसके अनुसार गणना करने वाली चिप बनाना आवश्यक है।

मिलते-जुलते ऑर्डर संभालते समय उनकी साझा जानकारी एक बार तैयार की जा सकती है, लेकिन हर ऑर्डर अलग पूरा करना पड़ता है। ASICBoost की मूल बात ऐसे समझ सकते हैं। Timo Hanke ने 2016 में Sergio Demian Lerner के साथ सहयोग का उल्लेख करते हुए इसे समझाया। ASIC किसी खास गणना के लिए बनी चिप है; उसका काम व्यवस्थित करने से अनावश्यक दोहराव घट सकता है। इस्तेमाल होने वाला हैश फ़ंक्शन SHA-256 और Bitcoin के नियम नहीं बदलते। हेडर का अंतिम दोहरा हैश अब भी लक्ष्य मान से छोटा या बराबर होना चाहिए और पूरा ब्लॉक वैध होना चाहिए। [1]

बाइट डिजिटल डेटा का आकार मापने की इकाई है। हेडर ब्लॉक की जानकारी का छोटा सार है, जिसका आकार 80 बाइट है। हैश की पहली प्रक्रिया पहले 64 बाइट और फिर बाकी 16 बाइट को निर्धारित पैडिंग के साथ संसाधित करती है। लेनदेन का संयुक्त निशान Merkle root इस सीमा के दोनों ओर होता है: उसके अंतिम 4 बाइट दूसरे हिस्से में हैं। वहीं समय, माइनिंग लक्ष्य का संक्षिप्त रूप bits और प्रयासों के बीच बदला जाने वाला काउंटर nonce भी होते हैं। इसलिए बदले गए फ़ील्ड तय करते हैं कि किस गणना का पुनः उपयोग हो सकता है। [1]

Hanke उपयुक्त कार्यसमूहों को colliding work items कहते हैं। उनके हेडर के पहले हिस्से अलग होते हैं, इसलिए गणना की बीच की स्थितियाँ, midstate, भी अलग होती हैं। इसके विपरीत Message कहलाने वाला भाग समान रहता है। चुने हुए nonce के लिए चिप message schedule साझा कर सकती है: पहले SHA-256 के दूसरे हिस्से को संसाधित करने वाले सहायक मान। इसके बाद हर गणना अपने अलग मध्यवर्ती मान से जारी रहती है। यह समान अंतिम हैश मिलने या फ़ंक्शन टूटने का मामला नहीं है। यहाँ टकराव का मतलब इनपुट के चुने हुए भाग का मेल है; हेडर के पहले हिस्से अलग ही हैं। [1]

Sergio Demian Lerner, overt और covert ASICBoost में अंतर करते हैं। Overt हेडर के संस्करण फ़ील्ड nVersion में अनुमत बिट बदलता है, इसलिए Merkle root का आंशिक मेल खोजना ज़रूरी नहीं होता। Covert ऐसा मेल खोजता है: Merkle root के अंतिम 4 बाइट समान रहते हैं, जबकि पहला भाग बदलता है। इसके लिए अनुमत लेनदेन डेटा या लेनदेन का क्रम बदल सकते हैं, लेकिन उनकी निर्भरताएँ बनी रहनी चाहिए और दर्ज डिजिटल निशान ब्लॉक के डेटा से मेल खाने चाहिए। अलग हेडर संस्करण दिखना अपने आप किसी खास ऊर्जा बचत या संचालक की पहचान का प्रमाण नहीं है। [2]

पूल माइनरों के काम का समन्वय करता है। उसका सर्वर वह कंप्यूटर सेवा है जिससे उपकरण संचार करता है और जो तय शर्तों के अनुसार परिणाम स्वीकार करती है। पीटर की मशीन हेडर में मनमाना बदलाव नहीं कर सकती। BIP310 नाम का दस्तावेज़ mining.configure के माध्यम से सहमति की प्रक्रिया बताता है। version-rolling.mask बदले जा सकने वाले बिट दिखाता है और जवाब माइनर तथा सर्वर की साझा सीमा चुनता है। मास्क अनुमत स्थानों का नक्शा है, अधिक गति का वादा नहीं। तकनीकी शर्त version_bits & ~last_mask == 0 का मतलब है कि भेजे गए बिट आखिरी वैध मास्क से बाहर न जाएँ। mining.set_version_mask सूचना आते ही नया मास्क लागू होता है; अगले काम का इंतज़ार नहीं होता। उपकरण चलाने वाले प्रोग्राम, firmware, को इस समझौते का पालन करना चाहिए। [3]

BIP320 सामान्य उपयोग के लिए 16 nVersion बिट प्रस्तावित करता है; उसे बदलने का प्रस्ताव BIP323, 24 बिट बताता है। इस संपादकीय जाँच के समय दोनों दस्तावेज़ों की स्थिति Draft, यानी मसौदा है। सिर्फ इस स्थिति को देखकर न यह कहा जा सकता है कि कोई कार्यान्वयन मौजूद नहीं है, न यह कि हर पूल समर्थन देता है। दस्तावेज़ फ़ील्ड का प्रस्तावित उपयोग समझाता है, जबकि असली कनेक्शन मौजूदा मास्क और सॉफ़्टवेयर पर निर्भर है। इसलिए पीटर केवल BIP संख्या से मशीन की अनुमति नहीं निकालता और प्रस्ताव को नेटवर्क नियमों का अपने आप बदलना नहीं मानता। [4] [5]

Hanke अपने मॉडल की बचत x × (n − 1) / n से बताते हैं। x साझा की जा सकने वाली गणना का हिस्सा है और n उपयुक्त कामों की संख्या। x = 25% और n = 4 होने पर परिणाम 18.75% है। हर काम के लिए साझा तैयारी दोहराने के बजाय उसे साथ किया जाता है। यह गणना मॉडल का परिणाम है, हर मशीन के वॉट में अपने आप उतनी ही कमी नहीं। दूसरे सर्किट और संचालन की स्थितियाँ भी खपत पर असर डालती हैं। इसलिए बिना मापे इस प्रतिशत को प्रदर्शन या आय बढ़ने का अनुमान नहीं मान सकते। [1]

पीटर पहले जाँचता है कि चिप और firmware इस तकनीक का समर्थन करते हैं और पूल के साथ मिलकर काम कर सकते हैं। फिर देखता है कि पूल काम स्वीकार कर रहा है या नहीं और समान परिस्थितियों में पूरे उपकरण का मापन करता है। J/TH का अर्थ है जूल प्रति टेराहैश, यानी एक लाख करोड़ हैश प्रयासों के लिए आवश्यक ऊर्जा। तुलना करते समय मापन में उपकरण के वही हिस्से और समान अवधि शामिल होने चाहिए। ASICBoost का नाम इस माप की जगह नहीं लेता। यह ओवरक्लॉकिंग, यानी कार्य आवृत्ति बढ़ाने, का पर्याय भी नहीं और न ही ब्लॉक मिलने या लाभ की गारंटी है। पूरी व्यवस्था समर्थन करे तो कुछ काम अधिक किफायती ढंग से किया जा सकता है। [1] [3]

पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें ASIC Miner, माइनिंग, Block Header, Proof of Work, Bitcoin, SHA-256. इस प्रविष्टि का उल्लेख यहाँ भी है Mining Firmware.

DOC · 001Timo Hanke — AsicBoost, 2016प्राथमिक स्रोत DOC · 002Sergio Demian Lerner — Overt and covert AsicBoost, 2017प्राथमिक स्रोत DOC · 003BIP310 — Stratum protocol extensionsविनिर्देश DOC · 004BIP320 — General-purpose nVersion bitsविनिर्देश DOC · 005BIP323 — 24 general-purpose nVersion bitsविनिर्देश DOC · 006NIST — SI prefixesदस्तावेज़
समीक्षा की गई: स्रोत पहले · यह निवेश सलाह नहीं है