Bitcoin protokolünde, 2016 çok özel bir sayıdır. Yeni bir blok oluşturmak için bir karma bulmanın "zorluğu", her 2.016 blokta bir yaklaşık iki haftada bir yaklaşık olarak değişecek şekilde ayarlanır.
Bu sayı seçildi, çünkü zorluk her bloğun bulunması yaklaşık 10 dakika sürecek ve iki hafta içinde 2 × 7 × 24 × 6 = 2.016 on dakikalık periyot olacak şekilde ayarlanıyor.
Bu sayısal tesadüfü anmak için, bu yılki Yeni Yıl sorunu Bitcoin ile ilgilidir - özellikle, blokları imzalamak için kullandığı karma algoritma, SHA-256.
Göreviniz bir (en ASCII adresinde) bayt girdi alacak program ve içeren SHA-256 karma üretecek (seçtiğiniz biçiminde) çıkışı bir Nonce içinde bayt yaratmaktır 2016
onun içinde base64 orijinaline eklenen zaman temsil bayt girdisi.
Geçerli çözümlerin, insanların zaten oluşturdukları motorların izniyle ve ürettikleri karmaların bazı örnekleri:
> 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.)
Programınızın kullanabileceği önceden oluşturulmuş tek kitaplık (standart giriş ve çıkış işlevleri dışında), SHA256(bytes)
bayt girdisini alan ve base64 dahil olmak üzere herhangi bir biçimde bir SHA256 karma döndüren bir işlevdir.
Bunu kaynak kodun en az baytında yapacak program kazanır.