बिटकॉइन ब्लॉक समय

आप जानते हैं: दो बिटकॉइन ब्लॉकों के बीच अपेक्षित समय औसतन \(10\) मिनट है। अब आप एक महत्वपूर्ण बिटकॉइन लेनदेन कर रहे हैं और यह देखने के लिए बेसब्री से इंतजार कर रहे हैं कि यह अगले ब्लॉक में कब और कब दिखाई देता है:

e50bfacc95975a4e7545d83d8954645f


चूंकि आपने पिछले ब्लॉक के पूरा होने पर जांच नहीं की है, आप वास्तव में प्रतीक्षा समय के औसत \( \frac{t}{2} = \frac{10}{2} = 5 \) मिनट की अपेक्षा करते हैं। \(5\) लंबे मिनट बीत जाने के बाद, जांचें कि आखिरी ब्लॉक वास्तव में कब पूरा हुआ था:

e50bfacc95975a4e7545d83d8954645f

अंतिम ब्लॉक \(7\) मिनट पहले पूरा हो गया था। अब जब आप यह जानकारी जानते हैं, तो अपेक्षित समय \(5\) मिनट से बदलकर कुल \(10\) मिनट हो जाता है। इसका मतलब है: यह संभवतः लगभग \(3\) मिनट में तैयार हो जाएगा। आप बार-बार आदेश जारी करते हैं. और प्रतीक्षा करें। अगले \(10\) मिनट के बाद आपको ऐसा महसूस होने लगता है कि कुछ गड़बड़ है।

लेकिन फिर आपको याद आता है कि प्रतीक्षारत विरोधाभास:

यदि बसें औसतन हर \(t\) मिनट चलती हैं, तो बस स्टॉप पर यादृच्छिक आगमन समय के लिए प्रतीक्षा समय \(\frac{t}{2}\) मिनट के अनुरूप नहीं होता है, लेकिन तेजी से वितरित होने के मामले में दूरी \(t\)

बिटकॉइन ब्लॉक की घटनाएं एक पॉइसन प्रक्रिया हैं और इसलिए तेजी से वितरित की जाती हैं। चूंकि पॉइसन प्रक्रियाएं स्मृतिहीन होती हैं, इसलिए अगला ब्लॉक भी औसतन \(10\) मिनट में पूरा होता है। यह हमेशा लागू होता है - चाहे हम कितनी भी प्रतीक्षा कर रहे हों। स्मृतिहीनता का गुण समय के साथ पीछे और आगे दोनों तरफ लागू होता है।

ऐसे कैसे हो सकता है?

ऐसा करने के लिए, हम निम्नलिखित दो कथनों पर विचार करते हैं::

  • ए) दो ब्लॉकों के बीच वास्तविक औसत प्रतीक्षा समय \(10\) मिनट है, न कि \(20\) मिनट।
  • बी) यदि समय में एक यादृच्छिक बिंदु चुना जाता है, तो हम उम्मीद करते हैं कि पिछला ब्लॉक \(10\) मिनट अतीत में और अगला ब्लॉक \(10\) मिनट भविष्य में होगा। इसलिए हम ब्लॉकों के बीच \(20\) मिनट के प्रतीक्षा समय की अपेक्षा कर सकते हैं।

हम दोनों बयानों की जांच करते हैं।

ऐसा करने के लिए, हम पहले प्रासंगिक डेटा निकालते हैं, विशेष रूप से वह समय जब ब्लॉक पूरे हो गए थे, एक TXT फ़ाइल में ( बिटकॉइंड पर आधारित स्थानीय रूप से चलने वाले पूर्ण नोड के साथ निष्पादित किया जाना है)।:

e50bfacc95975a4e7545d83d8954645f

इससे हमें निम्नलिखित टेक्स्ट फ़ाइल मिलती है, जिसे अब हम आगे संसाधित करते हैं और /time.txt में संग्रहीत करते हैं। /Cargo.toml फ़ाइल के साथ निम्नलिखित रस्ट प्रोग्राम का उपयोग इस उद्देश्य के लिए किया जाता है:

e50bfacc95975a4e7545d83d8954645f

फ़ाइल /src/main.rs में वास्तविक परीक्षण तर्क है:

e50bfacc95975a4e7545d83d8954645f

हम निर्भरता स्थापित करते हैं, प्रोग्राम बनाते हैं और इसे शुरू करते हैं:

e50bfacc95975a4e7545d83d8954645f

वास्तव में, जब हम आउटपुट का विश्लेषण करते हैं तो दोनों कथन सत्य होते हैं:

e50bfacc95975a4e7545d83d8954645f

इसे सहज रूप से इस प्रकार भी समझाया जा सकता है: यदि ब्लॉक का समय काफी भिन्न होता है, तो विशिष्ट प्रतीक्षा समय भिन्न होता है - यदि हम समय पर एक यादृच्छिक बिंदु पर लेनदेन करते हैं, तो संभावना अधिक होती है कि हम एक अंतराल में समाप्त हो जाएंगे। प्रतीक्षा समय 10 मिनट से अधिक है क्योंकि ये अंतराल लंबे समय के कारण समयरेखा पर अधिक स्थान भी लेते हैं।

वापस