बिटकॉइन प्रोटोकॉल में, 2016 एक बहुत ही विशेष संख्या है। एक नया ब्लॉक बनाने के लिए हैश खोजने की "कठिनाई" हर दो सप्ताह में एक बार बदलने के लिए हर 2,016 ब्लॉक को समायोजित किया जाता है।
यह संख्या इसलिए चुनी गई क्योंकि कठिनाई खुद को समायोजित करती है ताकि प्रत्येक ब्लॉक को ढूंढने में लगभग 10 मिनट लगें, और दो सप्ताह में, 2 × 7 × 24 × 6 = 2,016 दस मिनट की अवधि होती है।
इस संख्यात्मक संयोग की प्रशंसा करने के लिए, इस साल के नए साल की समस्या बिटकॉइन के बारे में है - विशेष रूप से, हैशिंग एल्गोरिथ्म इसका उपयोग ब्लॉक, SHA-256 पर हस्ताक्षर करने के लिए करता है।
आपका कार्य एक प्रोग्राम बनाना है जो बाइट इनपुट लेगा (कम से कम ASCII में) और बाइट्स (आपकी पसंद के प्रारूप में) में एक नॉन उत्पादन करेगा जो मूल से जुड़े होने पर 2016
अपने बेस 64 प्रतिनिधित्व में SHA-256 हैश का उत्पादन करेगा। बाइट इनपुट
यहां वैध समाधानों के कुछ उदाहरण दिए गए हैं, इंजन के सौजन्य से लोग पहले ही उत्पन्न कर चुके हैं, साथ ही उनके द्वारा उत्पादित हैश:
> foo
Nonce: 196870
SHA256 hash: OCUdDDtQ42wUlKz2016x+NROo8P2lbJf8F4yCKedTLE=
> bar
Nonce: 48230
SHA256 hash: CNcaOCQgT7bnlQzQPXNwuBu8/LYEdk2016khRaROyZk=
> happynewyear
Nonce: 1740131
SHA256 hash: XsKke6z2016BzB+wRNCm53LKJ6TW6ir66GwuC8oz1nQ=
> 2016
Nonce: 494069
SHA256 hash: rWAHW2YFhHCr22016zw+Sog6aW76eImgO5Lh72u6o5s=
(note: the nonces don't actually have to be ASCII numbers; you can do
any byte input you find convenient.)
केवल पूर्व-निर्मित लाइब्रेरी (मानक इनपुट और आउटपुट फ़ंक्शन के अलावा) आपके प्रोग्राम का उपयोग एक SHA256(bytes)
फ़ंक्शन है जो बाइट इनपुट लेता है और बेस 64 सहित किसी भी प्रारूप में SHA256 हैश लौटाता है।
स्रोत कोड जीत के सबसे कम बाइट्स में ऐसा करने का कार्यक्रम।