ในโปรโตคอล Bitcoin 2016เป็นจำนวนที่พิเศษมาก "ความยาก" ในการค้นหาแฮชเพื่อสร้างบล็อกใหม่จะถูกปรับทุก ๆ 2,016 บล็อกเพื่อการเปลี่ยนแปลงโดยประมาณทุกๆสองสัปดาห์
หมายเลขนี้ถูกเลือกเนื่องจากความยากลำบากในการปรับตัวเองเพื่อให้ทุกบล็อกใช้เวลาประมาณ 10 นาทีและในอีกสองสัปดาห์จะมี 2 × 7 × 24 × 6 = 2,016 ระยะเวลาสิบนาที
เพื่อเป็นการระลึกถึงความบังเอิญเชิงตัวเลขปัญหาปีใหม่ในปีนี้เป็นเรื่องของ Bitcoin โดยเฉพาะอัลกอริทึมคร่ำเครียดที่ใช้เพื่อลงนามบล็อค SHA-256
งานของคุณคือการสร้างโปรแกรมที่จะรับไบต์ (อย่างน้อย ASCII) และส่งออกเป็น nonce ในไบต์ (ในรูปแบบที่คุณเลือก) ที่จะผลิตกัญชา SHA-256 ที่มี2016
อยู่ในการเป็นตัวแทนbase64เมื่อผนวกเข้ากับต้นฉบับ อินพุตไบต์
ต่อไปนี้เป็นตัวอย่างของโซลูชันที่ถูกต้องความสุภาพของเครื่องยนต์ที่ผู้คนสร้างไว้แล้ว
> 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)
ฟังก์ชั่นที่รับอินพุตไบต์และส่งคืนแฮช SHA256 ในรูปแบบใด ๆ รวมถึง base64
โปรแกรมที่จะทำเช่นนี้ในจำนวนไบต์ที่น้อยที่สุดของซอร์สโค้ดจะชนะ