«

Nonce Nedir? Bitcoin Madenciliğinde Nonce Ne Demek?

Bitcoin (BTC) bloklarına ait hash verilerinin bir sürü 0 (sıfır) ile başladığını fark ettiniz mi? Bunun sırrı, bilgisayar bilimlerinde ve özellikle de veri güvenliğinde kullanılan “nonce” değerinde…

Şimdi gelin, “Nonce değeri nasıl hesaplanır?” konusunu masaya yatıralım. Hazırladığımız makalemizde; “Nonce nedir?”, “Nonce nerede kullanılır?”, “Bitcoin madenciliğinde nonce değeri nedir?”, “Nonce değeri ile Proof of Work sisteminin bağlantısı nedir?” gibi soruların cevaplarını bulabileceksiniz.

Nonce nedir?

“Number Only Used Once (Yalnızca Bir Kez Kullanılan Sayı)” ifadesinin kısaltılmış hali olan nonce, yetkilendirme amacıyla kullanılan ve rastgele üretilen sayıdır.

Sadece kripto para madenciliğinde değil, bilgisayar teknolojisinin birçok farklı alanında karşımıza çıkan nonce değeri, belli bir kriterin karşılanması için rastgele oluşturulan sayı şeklinde tarif edilebilir.

Nonce değerinin kullanımı ve oluşturulması hakkında birçok farklı senaryo var. Bizler bu konuyu kripto para cephesinden ele alacağız ve daha kolay anlaşılması için Bitcoin madencilik sistemi üzerinden nonce ifadesini detaylandıracağız.

Bitcoin bloklarındaki “Hash” ve “Nonce” verileri

Bilindiği üzere Bitcoin madenciliği, astronomik ölçekte işlem gücü gerektiriyor. Bitcoin madenciliğindeki bu büyük uğraş, blok ödülünü kazanmak için… Hatırlatma: 11 Mayıs 2020’de gerçekleşen Bitcoin blok ödülü yarılanması (halving) işlemiyle, madenci ödülleri 6,25 BTC’ye indirildi.

Astronomik işlem gücü harcıyor olsalar da, madencilerin yaptıkları iş aslında basit bir sayıyı bulmak, yani nonce değerini…

Blockchain.com sitesi üzerinden, Bitcoin ağında oluşturulmuş herhangi bir bloka ait bilgi ekranına girdiğimizde şuna benzer bir görüntüyle karşılaşıyoruz:

Örnek amaçlı kullanılan 632.276 numaralı bloka ait detaylar. Kaynak: Blockchain.com

Bizim için burada önemli olan iki değer var: “Hash” ve “Nonce”…

Not: Web sitesini Türkçe dilinde açmanız halinde bu değerler “Esrar” ve “Şimdiki Zaman” şeklinde listelenecektir. Çevirmene selam olsun (!)

Dikkat ederseniz hash verisinin ilk 19 hanesi sıfırdan oluşuyor. Bu rastlantı değil. Hatta, Bitcoin madenciliğinin bu denli zor olmasının asıl sebebi bile denilebilir. Çünkü madenciler, farklı “nonce” değerlerini kullanarak, başında bu kadar sıfır bulunan hash kodunu oluşturmak için bu denli uğraşıyorlar.

Yukarıda örneğini verdiğimiz bloku oluşturan madenci (F2Pool), hash verisinin başında 19 adet sıfır oluşturabilmek için nonce değerinin 3.719.213.695 olduğunu belirlemiş.

Madencilerin bulmak için kılı kırk yardıkları “nonce” değerini daha iyi anlayabilmek için öncelikle Bitcoin blok yapısını bilmemiz lazım. Bunun için de blockchain, Proof of Work ve madencilik terimlerini kısaca hatırlayalım:

Blockchain nedir?

Blockchain; şifrelenmiş işlemlerin takibinin tutulduğu, merkezi olmayan kayıt defteridir. Bitcoin’in altyapısını oluşturan blockchain teknolojisi, otoriteye ihtiyaç duymadan işlemleri zaman damgasıyla imzalayarak bloklar halinde listeler. Doğrulanan veri bloku, tıpkı zincir gibi uç uca eklenir. Her blok kendinden önceki bloka şifreli biçimde bağlıdır.

Proof-of-Work (İş İspatı) nedir?

Bilgisayarın, belirlenen bir iş için çalıştığını ve emek sarf ettiğini ispatladığı yönteme Proof-of-Work (PoW) denir. İş ispatı en basit tabirle, çok yüksek işlem gücü veya emek gerektiren bir bulmacayı çözmek gibidir. Bulmaca zor olsa da, çözümün sağlamasını yapmak kolaydır.

Madencilik nedir? Bitcoin madenciliği nasıl yapılır?

Proof-of-Work (İş İspatı) konsensüs algoritmasını kullanan blockchain ağlarında, işlem kayıtlarını onaylama ve transfer işlemlerini içeren blokları ağa ekleme işine madencilik denir. Bitcoin blockchain ağındaki transferlerin doğrulanması ve blok oluşturulması için çok yüksek miktarda işlem gücü gerekmektedir.

Temel bilgilerimizi hatırladıktan sonra şimdi Bitcoin bloklarının yapısına geçebiliriz.

Bitcoin bloklarının içinde ne var?

Kabaca 1 MB büyüklüğündeki Bitcoin bloklarının içinde esas olarak gerçekleşen transfer işlemleri yer alıyor.

Bu transfer işlemlerinin yanı sıra zaman damgası, önceki blokun hash bilgisi ve her blokta bulunan standart tanımlama verileri de bulunuyor.

BITCOIN BLOK İÇERİĞİ
Sihirli sayı4 byte“0xD9B4BEF9” şeklinde sabit değer
Yükseklik4 byteBlok numarası
BAŞLIK
(HEADER)
Versiyon4 byteKullanılan güncel sürüm
Önceki başlık32 byteÖnceki blokun başlık özeti (hash)
Merkle kökü32 byteİşlemlerin özet değeri (hash)
Zaman damgası4 byte1 Ocak 1970’ten itibaren geçen süre
Zorluk4 byteAğın zorluk bilgisi
Nonce4 byteAğ zorluğuna göre ayarlanmış rastgele sayı
İşlem sayısı1-9 byteBelirli uzunlukta tam sayı değeri (integer)
İşlemlerBloktaki transferlerin listesi

Bitcoin blok içeriğine şöyle bir göz atıldığında, işlemin yapıldığı anda verilerin büyük kısmının sabit olduğu, sadece “nonce” değerinin o anda madenci tarafından üretildiği anlaşılabilir.

Zorluk – nonce ilişkisi

Madenciler, yukarıdaki tabloda bulunan değerleri bir araya getirip özetini çıkarırlar, yani SHA-256 formatında hash koduna dönüştürürler.

Blok içinde yer alması gereken tüm verileri SHA-256 formatına dönüştürmek gayet basit bir işlem. Öyle ki, bizler de evlerimizdeki emektar bilgisayarlarımız ile bu işlemi rahatlıkla yapabiliriz. Ancak Proof of Work (İş İspatı) konsensüs mekanizması, önümüze kalın bir set çekiyor ve önemli bir şart koşuyor:

Öyle bir hash kodu oluşturun ki, başında ‘n’ adet sıfır olsun.

Burada bahsedilen ‘n’ değeri ağın zorluğuna göre değişiyor. Zorluk seviyesi, Bitcoin madenciliği yapan işlemci miktarına ya da başka ifade ile hash oranına (hash rate) bağlı olarak güncelleniyor. Her 2.106 blokta bir düzeltme yapılan Bitcoin ağ zorluğu, her blokun ortalama 10 dakikada oluşmasını sağlayacak biçimde ayarlanıyor.

Peki madenciler, başında bu kadar sıfır olan hash kodunu nasıl elde ediyorlar? İşte tam bu noktada “nonce” değeri devreye giriyor.

Nonce değerinin hesaplanması

Eğer özet fonksiyon (hash) oluşturma hakkındaki makalemize göz attıysanız, hash kodunun tek taraflı bir işlem olduğunu fark etmişsinizdir. Yani madenci, verileri bir araya getirince sabit hash elde ediyor.

Eldeki verileri SHA-256 formatında hash koduna dönüştürürken, başında ‘n’ adet sıfır oluşmasını beklemek inanılmaz derecede düşük bir ihtimal. Art arda on binlerce kez zar atıp her defasında 6 gelmesini beklemek bile daha olası.

Bir Cevap Yaz

Onur Onuk Hakkında

avatar

Onur Onuk

Onur Onuk 1995 doğumlu ve Balıkesir'de yaşamaktadır. Uzun süredir kripto ve haber sektöründe editörlük yapmakta olup haberkoin.com'un daimi editörlerindendir. Soru ve Önerileriniz için onuronuk@haberkoin.com adresine mail atabilirsiniz .

Bir Cevap Yaz

E-Posta adresiniz paylaşılmayacaktır. Doldurulması zorunlu alanlar işaretlenmiştir *