Sözlük / Madencilik ve konsensüs
Nonce
- Nonce nedir?
- Nonce, bir blok başlığında madencilerin hedefin altında bir hash ararken artırdığı dört baytlık sayaçtır ve başlık başına yalnızca 4.294.967.296 deneme sağlar.
Tanımlandığı belge: BIP-320.
Kelime, "number used once" (bir kez kullanılan sayı) ifadesinin kısaltmasıdır ve Bitcoin'de yalnızca değiştirilmek için var olan tek başlık alanını adlandırır. Dört bayt 2009 yılında cömert görünüyordu, bugün ise önemsiz: tek bir modern makine tüm aralığı saniyenin bir kesrinde tüketir. Bu nedenle madenciler başlığın diğer kısımlarını da değiştirir ve nonce, aramanın yalnızca en içteki döngüsüdür.
Nasıl çalışır
Nonce, 80 baytlık başlığın son dört baytını kaplar ve madencilik, onun değerleri üzerinden geçmekten ibarettir.
Madenci aday bir başlık oluşturur, ona SHA-256 uygulayarak iki kez hash'ler ve sonucu hedefle karşılaştırır. Sonuç çok büyükse sayaç artırılır ve başlık yeniden hash'lenir. Başka hiçbir şeyin değişmesi gerekmez, bu da döngüyü ucuz tutar: SHA-256 64 baytlık parçalar üzerinde çalışır, dolayısıyla başlığın ilk 64 baytı bir kez işlenip her denemede yeniden kullanılabilir.
Sorun aralıktır. Dört baytta 4.294.967.296 farklı değer bulunur ve saniyede 200 terahash kapasitesi belirtilen bir ASIC bunların tamamını yaklaşık 21 mikrosaniyede geçer. Bu nedenle aramanın üç dış döngüsü vardır. Madenci, coinbase işleminin girdi betiğindeki birkaç yedek bayt olan ek nonce'u değiştirir; bu o işlemi değiştirir, o da merkle kökünü değiştirir, bu da aranacak tamamen yeni bir başlık verir. Kuralların izin verdiği ölçüde zaman damgasını ileri alabilir. Ve BIP320'den beri 0x1fffe000 maskesini kullanarak sürüm alanının on altı bitini değiştirebilir, bu da işlem listesine hiç dokunmadan arama alanını 65.536 katına çıkarır.
Satoshi'nin kendi araması bir kayıt bıraktı. Genesis başlığı, 2009 yılında ek nonce değiştirmeden ve sürüm bitleri görünmeden bir CPU'da bulunan 2083236893 değerini taşır.
Nerede görürsünüz
Her blok gezginindeki her blok sayfası kazanan nonce'u yazdırır ve bu sayı size neredeyse hiçbir şey söylemez.
Makineler alanı öngörülemez bir sırayla dolaştığı ve gerçek değişimin çoğu artık ek nonce ile sürüm yuvarlamadan geldiği için, çıkarılmış bir bloktaki sayı neredeyse rastgeledir. Düşük ya da yüksek bir değere anlam yüklemek yaygın bir başlangıç hatasıdır. Alan, ürün yazılımı yazarları için daha önemlidir: Stratum bağlı her makineye ek nonce'un kendi dilimini atar, böylece aynı havuzdaki iki çalışan aynı işi asla iki kez yapmaz ve Stratum V2 iş müzakeresini aynı koordinasyon sorunu etrafında yeniden kurar.
Bu kelimeyle madencilikten çok uzakta da karşılaşırsınız. Şifreleme düzenleri iki mesajın aynı şifreli metni üretmesini önlemek için nonce kullanır, Ethereum işlem sayacı olarak hesap nonce'u kullanır ve web girişleri tekrar saldırılarını engellemek için bir nonce kullanır. Bunların hiçbiri blok başlığı alanı değildir ve ortak kelime, Bitcoin'de ödünç alınmış diğer herhangi bir terimden daha fazla önlenebilir karışıklığa yol açar.