Difficulty Adjustment किसी ब्लॉक को खोजने की कठिनाई अपने आप बदलता है। माइनर बहुत जल्दी ब्लॉक खोजने लगें, तो नियम खोज को कठिन बना देते हैं; बहुत धीरे खोजें, तो आसान। इससे कंप्यूटिंग क्षमता में बड़े बदलाव के बावजूद Bitcoin लगभग एक जैसी रफ्तार बनाए रख सकता है। सभी नियमों की पूरी जाँच करने वाला हर नोड एक ही तरीके से इस बदलाव की पुष्टि करता है; कोई प्रशासक इसकी मात्रा तय नहीं करता।
मान लीजिए माइनिंग में बहुत-सी नई मशीनें जुड़ जाती हैं। वे मिलकर हर सेकंड ज़्यादा गणनाएँ आज़माती हैं, इसलिए कठिनाई समान रहने पर औसतन जल्दी ब्लॉक खोज लेती हैं। ब्लॉक पुष्टि हो चुके लेनदेन का एक समूह है, और उसके बनने पर नए बिटकॉइन भी जारी हो सकते हैं। समायोजन न हो, तो ताकतवर मशीनें नए बिटकॉइन जारी होने की गति भी बढ़ा देंगी। माइनर बार-बार हैश निकालते हैं, जो ब्लॉक के हेडर की एक संख्यात्मक छाप है। परिणाम पर्याप्त छोटा हो, तो प्रयास सफल होता है। सीमा कड़ी करने पर हर प्रयास के सफल होने की संभावना घटती है, इसलिए औसतन ज़्यादा काम करना पड़ता है। [3]
Bitcoin के मुख्य नेटवर्क, जिसे mainnet कहते हैं, में हर 2 016 ब्लॉक के बाद कठिनाई दोबारा तय होती है। प्रति ब्लॉक औसतन दस मिनट हों, तो यह लगभग दो सप्ताह है। लेकिन यहाँ कोई टाइमर नहीं बजता: ब्लॉक का संबंधित क्रमांक, यानी उसकी ऊँचाई, आने पर बदलाव होता है। बहुत-से माइनर अचानक मशीनें बंद कर दें, तो बचे हुए ब्लॉक आने में अधिक समय लग सकता है। नेटवर्क पहले पुरानी कठिनाई पर अवधि पूरी करता है; mainnet में तुरंत लागू होने वाली आपातकालीन कमी नहीं है। [1] [2]
मान लें कि गणना में इस्तेमाल हुआ समय लक्षित 14 दिनों के बजाय 10 दिन है। अगली अवधि कठिन होगी: कठिनाई लगभग 14 और 10 के अनुपात में, यानी 40% बढ़ेगी। उलटे, मापी गई अवधि 28 दिन हो, तो कठिनाई लगभग आधी हो जाएगी। इन सरल उदाहरणों में संख्यात्मक पूर्णांकन को छोड़ा गया है और माना गया है कि न्यूनतम अनुमत कठिनाई की सीमा लागू नहीं होती। इसके बाद कंप्यूटिंग क्षमता समान रहे, तो नई सेटिंग ब्लॉकों के बीच अपेक्षित समय फिर दस मिनट के करीब ले आएगी। [1] [2]
दस मिनट लंबे समय का औसत है, इंतज़ार की गारंटी नहीं। दो ब्लॉक लगभग साथ आ सकते हैं, जबकि अगले के लिए काफी अधिक समय लग सकता है। आपका लेनदेन भी अगले ही ब्लॉक में आए, यह तय नहीं: उसकी फीस और दूसरे इंतज़ार कर रहे लेनदेन भी मायने रखते हैं। कठिनाई का समायोजन BTC की कीमत नियंत्रित नहीं करता और माइनर के मुनाफे की गारंटी नहीं देता। यह एक ब्लॉक में जारी किए जा सकने वाले नए बिटकॉइन की मात्रा भी नहीं बदलता। उस मात्रा का समय-समय पर आधा होना, Halving, अलग नियम से चलता है। [2] [3]
नियम target नाम की संख्यात्मक सीमा का उपयोग करते हैं। छोटा target माइनिंग को कठिन बनाता है; कठिनाई कहलाने वाली संख्या इस संबंध को उलटी दिशा में दिखाती है। नया target पुराने target को मापे गए समय से गुणा करके लक्षित समय, 1 209 600 सेकंड, से भाग देने पर मिलता है। गणना से पहले मापे गए समय को लक्षित अवधि के एक चौथाई से चार गुने के बीच सीमित किया जाता है, ताकि एक बार का बदलाव असीमित न हो। target अधिकतम अनुमत मान powLimit से भी बड़ा नहीं हो सकता। हेडर में इसे सीमित सटीकता वाले संक्षिप्त nBits प्रारूप में रखा जाता है। इसीलिए उदाहरणों में दिए गए प्रतिशत अनुमानित हैं। [1] [2]
Bitcoin Core पूरी हुई अवधि के अंतिम ब्लॉक के हेडर के समय की तुलना पहले ब्लॉक के समय से करता है। 2 016 ब्लॉकों के बीच 2 015 अंतराल होते हैं; नियम इस ऐतिहासिक विशेषता को बनाए रखते हैं। हेडर के समय माइनर नेटवर्क के नियमों की सीमा में लिखते हैं। ये ब्लॉक मिलने के क्षण के सटीक माप नहीं हैं, न ही Median Time Past हैं—वह पिछले ब्लॉकों से निकाला जाने वाला अलग समय-मान है। समायोजन का उद्देश्य समझने के लिए यह बारीकी ज़रूरी नहीं, लेकिन ठीक वही गणना दोहराते समय इसका महत्व है। [1]
वेबसाइटें अक्सर अगली कठिनाई के बदलाव का अनुमान दिखाती हैं। अवधि खत्म होने तक नए ब्लॉक आते रहते हैं, इसलिए अनुमान बदल सकता है। पूरे हो चुके बदलाव को अपने नोड से जाँचा जा सकता है: अवधि की सीमा पर मौजूद ब्लॉकों के समय की तुलना करें, उनके nBits को संख्यात्मक target में बदलें और सीमा व पूर्णांकन सहित गणना दोहराएँ। हर Full Node, यानी Bitcoin के नियमों की स्वतंत्र रूप से जाँच करने वाला नोड, ब्लॉक स्वीकार करते समय आवश्यक target जाँचता है। यह तरीका mainnet का है; परीक्षण नेटवर्क के नियम अलग हो सकते हैं। [1] [2]
पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें Proof of Work, माइनिंग, Timechain / Blockchain, Block Subsidy. इस प्रविष्टि का उल्लेख यहाँ भी है Timechain / Blockchain, Proof of Work, माइनिंग, Halving.