Nonce nedir?

Nonce, “number used once” yani yalnızca bir kez kullanılan sayı demektir. Kripto dünyasında iki ayrı yerde karşınıza çıkar. Bitcoin madenciliğinde, doğru bloğu bulmak için sürekli değiştirilen bir hash değişkenidir. Ethereum’da ise her hesabın işlem sayacıdır ve işlemlerin sırasını korur. 

Nonce kriptografide bir işlemin veya verinin benzersiz olmasını sağlamak için üretilen geçici bir değerdir. Aynı değerin tekrar kullanılmaması, sistemin güvenliğini korur.

Kelimenin kökeni kriptoya özgü değildir. Nonce kavramı, 1970’lerden bu yana parola doğrulama ve oturum anahtarları gibi şifreleme protokollerinde kullanılır. 

Nonce’un kriptodaki temel işlevi

Nonce, kripto sistemlerinde birkaç kritik görevi aynı anda üstlenir. Tek bir sayı gibi görünse de ağ güvenliğinin temel parçalarından biridir.

  • Benzersizlik sağlar: Her nonce yalnızca bir kez geçerli olduğu için aynı işlem veya blok ikinci kez üretilemez.
  • Tekrar saldırılarını önler: Bir işlemin kopyalanıp yeniden gönderilmesi, yani tekrar saldırısı (replay attack), nonce sayesinde engellenir.
  • Rastgelelik katar: Aynı veriye eklenen farklı bir nonce, tamamen farklı bir çıktı üretir.
  • Ağı manipülasyona karşı korur: Geçerli bir değer bulmak hesaplama gücü gerektirir, bu da saldırıyı pahalı hale getirir.

Bu işlevler iki ayrı kullanımda farklı biçimlerde belirir. Madencilikte nonce bir bulmacanın değişkenidir. Hesap tabanlı ağlarda ise bir sıralama aracıdır.

Bitcoin madenciliğinde nonce nasıl çalışır?

Bitcoin madenciliğinde nonce, blok başlığına eklenen 32 bitlik bir sayıdır. Madenciler bu sayıyı sürekli değiştirip bloğu SHA-256 ile hash’ler. Amaç, ağın belirlediği zorluk hedefinin altında kalan bir hash bulmaktır. Doğru nonce’u ilk bulan madenci bloğu kapatır.

Madenci, bekleyen işlemleri bir blokta toplar. Blok başlığına nonce’u sıfırdan başlayarak ekler ve hash hesaplar. Hash, hedefin üzerindeyse nonce’u bir artırıp tekrar dener.

Bu döngü geçerli bir hash bulunana kadar sürer. Modern madencilik donanımları saniyede milyarlarca nonce dener. Akademik çalışmalarda Proof-of-Work, hash değerinin hedefin altında kalması koşuluyla tanımlanır.

Bitcoin’in resmi teknik belgesi bu güvenliğin neden güçlü olduğunu açıklar. Geçmiş bir bloğu değiştirmek isteyen kişinin sonraki tüm blokların işini yeniden yapması gerekir. Bu da değişikliği neredeyse imkansız kılar.

Nonce alanı sıfır ile 4.294.967.295 arasında değer alır. Bu yaklaşık 4,3 milyar olasılık demektir. Tüm bu değerler tükenirse madenciler bloktaki başka alanları değiştirerek aramayı sürdürür. Bu ek alana extraNonce denir.

Nonce ve hash arasındaki ilişki

Nonce ile hash arasındaki bağ, madenciliğin neden zor olduğunu açıklar. Hash fonksiyonları tek yönlü çalışır. Yani çıktıya bakarak girdi tahmin edilemez. Bu yüzden tek yol denemedir. Nonce’taki tek basamaklık bir değişiklik bile hash’i baştan sona değiştirir. Bu özelliğe çığ etkisi (avalanche effect) denir.

Gerçek Bitcoin ağında durum oldukça sıkıdır. Hash’in başında çok sayıda sıfır gerekir. Bu nedenle madenciler saniyede trilyonlarca farklı nonce dener. Tek yönlü hash fonksiyonları, geçerli değeri bulmanın tek yolunun deneme olduğunu garanti eder.

Ethereum’da nonce nedir?

Ethereum’da nonce, bir hesaptan gönderilen işlemlerin sayacıdır. Sıfırdan başlar ve her başarılı işlemde bir artar. Bu sayaç, işlemlerin doğru sırada işlenmesini ve aynı işlemin iki kez gerçekleşmemesini sağlar. Madencilikteki nonce’tan tamamen farklı bir görevi vardır.

Resmi Ethereum belgelerine göre nonce, bir adresten gönderilen işlem sayısını gösteren artan bir sayaçtır. İlk işleminiz nonce sıfır taşır. İkincisi nonce bir, üçüncüsü nonce iki olur.

Ağ burada katı bir kural uygular. Nonce bir onaylanmadan nonce iki işleme alınmaz. Bu sıralama, işlemlerin gönderildikleri düzende gerçekleşmesini garanti eder.

Aynı kural çift harcamayı (double spending) da engeller. Belirli bir nonce ile yalnızca tek bir işlem geçerli olabilir. Daha önce kullanılmış bir nonce taşıyan işlem, ağ tarafından reddedilir. Bu sayede bir işlemin kopyalanıp tekrar gönderilmesi mümkün olmaz.

Bitcoin nonce’u ile Ethereum nonce’u arasındaki farklar

İki ağ farklı sorunları çözdüğü için nonce Bitcoin ve Ethereum’da farklı davranışlar gösterir. Bitcoin bir madencilik bulmacası kurar, Ethereum ise hesap düzenini korur. Temel farkları şu şekilde özetlenebilir:

  • Görev: Bitcoin’de nonce, geçerli blok hash’i aramak için kullanılan bir değişkendir. Ethereum’da ise hesabın işlem sayacıdır.
  • Konum: Bitcoin nonce’u blok başlığında yer alır. Ethereum nonce’u hesabın durumuna bağlıdır.
  • Davranış: Bitcoin nonce’u her denemede değişir. Ethereum nonce’u her işlemde düzenli olarak bir artar.
  • Amaç: Bitcoin nonce’u ağ güvenliğini ve konsensüsü sağlar. Ethereum nonce’u sıralama ve çift harcama korumasından sorumludur.

Bu ayrım pratikte de önemlidir. Bir cüzdanda görülen nonce madencilikle ilgili değildir. O sayı, hesapta kaçıncı işlemin göründüğünü belirtir.

Paribu

Türkiye’nin alanında öncü teknoloji şirketi ve lider kripto para işlem platformu.

 

MOBİL UYGULAMAMIZI İNDİRİN