Kripto para sektörünün içindeyseniz ve dijital para birimlerine aşinaysanız büyük ihtimalle kriptografik terimlerden olan “nonce” terimini duymuşsunuzdur. Özellikle güvenlik söz konusu olduğunda öne çıkan kavramı yakından inceleyip blockchain’de nonce nedir ve nasıl kullanılır sorularına yanıt vermeye çalışalım.

Business 2 Community olarak sizler için hazırladığımız bu rehberde nonce ile ilgili derinlemesine yaptığımız araştırmaların sonuçlarını sizlerle paylaşacağız. İlk etapta blockchain’de nonce nedir sorusuna yanıt vereceğiz. Sonrasında nasıl kullanıldığıyla rehbere devam edeceğiz. Haydi başlayalım…

Blockchain’de Nonce Nedir?

Blokzincir alanında nonce tanımı, madencilik esnasında bir bloğa atanan ve tamamen rastgele oluşturulan bir sayı olarak da tanımlanabilir. Bir nonce, aynı zamanda “bir defa kullanılan sayı” öbeğinin kısaltmasıdır. 32 bitlik sayı, PoW mekanizmasında hayati bir role sahiptir. Kripto madencileri de bu sayının bir katma değer üretmek ve bloğun meşruiyetini doğrulamak için kullanıldığını ifade eder. Nonce doğrulaması aynı zamanda kötü amaçlı yazılım ve kişilerin verilerle oynama ihtimalini de ortadan kaldırır.

Nonce, iki ana türe ayrılır: İşlem ve Blok Nonce. İlki her işlemin benzersiz bir değere sahip olduğunu belirtirken diğeri ise madencilik esnasında bloğa eklenen değeri ifade eder.

blokzincir nonce

Blockchain’de Nonce Nasıl Kullanılır?

Kripto jargonuna yavaş yavaş hâkim olmaya başladıysanız ve jargondaki nonce terimine aşina olduysanız şimdi bunun blokzincirde nasıl kullanıldığını inceleyelim. Blokzincirde nonce nasıl kullanılır sorusuna yanıt arayalım. Madenciler nonce kullanarak kazıdıkları blokları şifreler. Bu durum karmaşık matematiksel problemleri çözmek için farklı çözümler bulmalarını sağlayarak madenciliğin öngörülemez ve rekabetçi olmasını mümkün kılar. 

Yani özetlemek gerekirse, her bir nonce, rastgele bir değere karşılık gelirken madencilerin blok başına asla aynı değeri üretmemelerini sağlar. Buna ek olarak bir madenci tarafından yapılan işlem, nonce sayesinde diğer madenciler tarafından da bloğun meşruiyetini doğrulayabilmesini sağlayacaktır. Ek olarak nonce, ağın %50’sinden fazlasını kontrol eden kullanıcılar tarafından ağa yapılan saldırıları da önler. Önlenen saldırılara kripto para sektöründe oldukça popüler hale gelmiş olan %51 saldırısı da dahildir.

Blockchain’de Nonce Önemli Mi?

Nonce, blokzincir teknolojisi için birkaç nedenden ötürü vazgeçilmez ve önemli kabul edilmiştir. İlk etapta Proof of Work (PoW) konsensüsünü kullanarak ağın güvenliğini garanti eder ve iki kat artırır. Bununla birlikte nonce sistemi kurulduktan sonra ağı manipüle etmek büyük oranda işlem gücü gerektirdiği için caydırıcı bir önlem olarak bilinir. Özetle blokzincirde nonce, daha güvenli bir ağ anlamı taşır.

İkincisi ise kötü amaçlı casus yazılımlar ve kişilere karşı direnç gösterir. Örnek vermek gerekirse birisi blokların içerisindeki bilgileri değiştirmeye çalışırsa nonce çalışmayı durdurur ve girişimi önler. Buna ek olarak kötü amaçlı yazılımların sistemi ele geçirmek için tüm bloklar için geçerli bir nonce bulması gerekecektir. Bu da hem hesaplama hem de uygulanabilirlik açısından imkânsız olması anlamına gelir.

Bir nonce bloğu doğruladıktan sonra, doğrulama aşamasında verilen bilgilerin değiştirilmesi neredeyse imkansız olur. Bu durum geri alma işlemini ya da fonların iki kez harcanabilme ihtimalini de ortadan kaldırır.

Son olarak nonce adı verilen bu yapı, blokzincirin merkeziyetsiz kalmasını ve hem madencilere hem de yatırımcılara güven vermesini sağlar. Yukarıda da belirttiğimiz gibi nonce, tekil varlıkların blok zinciri kontrol etmesini önler. Bunu madencilik sürecini karmaşık ve daha pahalı hale getirerek gerçekleştirir. PoS konsensus ile entegrasyonu, ağı yetkisiz müdahalelere karşı dirençli getirir.

Nonce’un Blokzincirdeki Rolü Nedir?

Blokzincir teknolojisinin en temel unsurlarından birisi de nonce değeridir. Bilhassa madencilik süreçlerinde hayli kritik öneme sahiptir. Yeni blokların doğrulamasından ve zincire eklenmesine kadar çok sayıda işlemde rol oynar. Blockchain’de nonce nedir sorusuna yanıt vermek için hazırladığımız bu rehberde Bitcoin ağı ve blokzincirin derinliklerine inmeye devam ediyoruz. Nonce, madencilerin belirli bir zorluk seviyesindeki hash değerini elde etmeleri için sürekli olarak değiştirmelerini gerektirmektedir.

Ağdaki her bir blok ve her bir işlem, kendinden önceki bloğun hash değerini içeren kümeyi temsil eder. Bu bloklar, ardışık bir zincir oluşturacak şekilde birbirine bağlanırken yeni eklenen bloğun içindeki verilerin hash değerini de hesaplar. Fakat bu hesaplama sırasında işlemlerin güvenliğini artırmak için belirli bir zorluk seviyesine ulaşılması gerekir.

Madenciler yeni bir blok oluşturmadan evvel, bloğun hash değerinin belirli bir zorluk seviyesini karşılaması gerekeceği için nonce değerini sürekli olarak değiştirir. Nonce değeri, blok içerisindeki verilere ek olarak hash hesaplamasına dahil edilir ve zorluk seviyesinin artırılması için başına belirli bir miktarda sıfır eklenerek yazılır. Bu konuyu daha derinlemesine ele almak için basit bir örnek verelim.

Zorluk seviyesi dört sıfırla başlayan bir hash değeri gerektirecekse madenciler bu değeri elde edene kadar nonce’u artırmak suretiyle farklı kombinasyonları bir araya getirirler.

Nonce Bulma Zorlukları

PoW tabanlı blokzincir sistemlerinde madencilik süreci, madenciler arasındaki rekabete indirgenir. Daha basit bir tabirle açıklamak gerekirse karmaşık matematiksel görevleri ilk çözen kişi, madencilikte elde edilen kripto para ödülü almaya hak kazanır. Bu sayede zorluk artarken ödüllerde de gözle görülür artış yaşanır. Bu durum madencilik işlemlerinde yüksek enerji tüketimi sağlayan özel cihazlar kullanılması gerektiğini ifade eder. Madenci sayısı ne kadar fazlaysa doğru nonce o kadar zor bulunur. 

Buna ek olarak nonce değeri dört sıfırla başlar ve tamamen bağımsızdır. Fakat değere eklenen her ek sayı madencilik işlemini daha zorlu ve daha yüksek ödüllü hale getirmeyi başarır. Bitcoin gibi popüler kripto paralarda işlemlerin doğrulanması için SHA-256 madencilik algoritması kullanılır. Bu algoritma her dört yılda bir yeni blokları doğrulamanın zorluğunu arttırmak içindir. Tıpkı Bitcoin gibi, Ethereum da her işlem için benzersiz bir nonce kullanır.

Blockchain nonce

Bitcoin Bloklarının İçerisinde Ne Var?

Blokzincirin temel yapı taşlarından olan bloklar, çeşitli veri bileşenlerinin bir araya gelmesiyle oluşurlar. Bu bloklar Bitcoin ağının güvenliğini, işleyişini ve bütünlüğünü sağlar. Bir Bitcoin bloğu aşağıdaki iki ana kısımdan meydana gelir:

  • Header (Başlık)
  • Transactions (İşlemler)

Blockchain’de nonce nedir sorusuna yanıt verirken Bitcoin bloklarının içerisinde ne olduğunu ve temelde bu blokların nasıl oluştuğunu da anlamak gerekir. Blok başlığı olarak da bilinen header, bloğun içerisindeki önemli bilgileri barındıran ve hash fonksiyonları yardımıyla güvenliği sağlayan bölümdür. Header içerisinde ilk olarak bir önceki bloğun hash değeri yer alır. Bu sayede bloklar birbirine doğru biçimde bağlanır.

Header içerisinde ayrıca kök hash olarak da bilinen Merkle Root da bulunur. Bu kök, blok içerisindeki tüm işlemlerin hash değerlerini taşıyan bir yapıdır. Header ayrıca blokların sırayla dizilmesini ve zamanın manipüle edilmemesini sağlamak için Unix formatında bloğun oluşturduğu zamanı belirten damgalar içerir.

Bitcoin bloklarının içerisinde header bölümünde hash değerinin belirli bir zorluk seviyesini karşılaması gerektiği için her 2016 blokta bir zorluk seviyesi yeniden ayarlanır. Header, rehberimizin konusu olan nonce değerini de içinde barındırır. Nonce, 32 bitlik bir sayıdır ve madencilerin doğru hash değerini yakalamalarını sağlar. 

Blokzincirin ikinci kısmı olan işlemler, blok içerisinde yapılan tüm işlemleri ve kullanıcılar arasında gerçekleştirilen Bitcoin transferlerini içerir. Her bir işlem aşağıdaki 4 ana başlıkta kaydedilir:

  1. Giriş, işlemin kaynağını belirtir. Bitcoin ağındaki her bir giriş, kendinden önceki işlemin çıktısını referans alarak doğrulanır. Bu sayede Bitcoin’de haksız kazancın önüne geçilir. 
  2. Çıkış, işlemin hedefini belirten kısımdır. Her çıkış belirli bir miktarda Bitcoin’in bir Bitcoin adresine gönderilmesini temsil eder. Çıkışlar, kendinden sonra gelen işlemlerin girişi olarak da kullanıma uygundur.
  3. Miktar, işlem içerisindeki Bitcoin’in miktarını belirleyen değerdir. Her işlemde belirli miktarda Bitcoin, bir adresten diğerine transfer edilmiş olur.
  4. İşlem Ücreti, madencilerin işlemleri bloklara dahil ederek giderlerini karşılamaları için kullandıkları ücrete verilen addır. İşlem ücretinde girişlerin toplam değeri ve çıkışların toplam değeri arasındaki fark dikkate alınır.

Blok Onayı Nedir?

Blokzincirde nonce nasıl kullanılır sorusunu ele aldığımız bu rehberde şimdi blokların nasıl onaylandığına değineceğiz. Böylece blokların çalışma sistemine ve arkada çalışan mekanizmalara hâkim olarak konuyu daha iyi anlayacaksınız. 

Cüzdanlar arasında kripto para transferi yapan herkes blok onayı terimiyle daha önce karşılaşmıştır. Blok onayı, isminden de belli olduğu gibi zincirde gerçekleştirilen işlemlerin kaç blok tarafından onaylandığını gösterir. Madenciler ve doğrulayıcılar tarafından onaylanmış olan her bir işlem bloğun içerisinde yazılarak zincire kaydedilir. Blok onayı da zincir üzerinde yapılan transferin ardından zincire kaç adet blok eklendiğini ifade eder.

Her bir blokzincir farklı konsensüs algoritmaları kullandığı için transfer sonrası blok onay süreleri büyük oranda değişiklik gösterir. Bu konuda bir örnek vermek gerekirse Proof of Work algoritmasıyla oluşturulan Bitcoin’de her bir blok 10 dakika sürerken aynı süreç Ethereum için 15 saniyeye tekabül eder. Ek olarak Proof of Stake algoritmasına sahip olan blokzincirlerin blok onaylarının daha hızlı gerçekleştiği de bilinir. Ayrıca bkz: En İyi Proof of Stake Coinler

Blok Onay Süresi Nedir? Değiştirilebilir Mi?

Blok onay süresi en temel anlamıyla blokzincirde bir işlemin onaylanması için gerekli olan süreyi temsil eder. Bir işlemin onayı sayesinde blokzincire eklenen bloklar ve o işlemin kaç blok tarafından doğrulandığını kolaylıkla görmek mümkündür. Daha önce de bahsettiğimiz gibi Ethereum ağında işlemlerin onayı 15 saniye kadar sürerken Bitcoin’de yapılan bir transfer sonucunda bu süre 15 dakikaya kadar yükselir. 

Ethereum ağında yapılan transferde ilk 15 saniye içerisinde işlem ilk onayını alabilir. Fakat kripto para borsaları üzerinden yapılan transferler için bu örnek pek doğru olmayabilir. Zira bir kripto para borsasındaki cüzdana kripto transfer edildiğinde işlemin hesaba tanımlanması için borsaların önceden belirlediği sayıda blok onayı almış olması gereklidir. Bu durum, blokzincirde meydana gelebilecek kötü niyetli saldırı ve zararlı yazılımlardan hem sistemi hem yatırımcıyı korumak amacıyla alınan bir güvenlik önlemidir.

Blok süreleri, zincir üzerinde kullanılan teknolojiye göre belirlenir ve buna göre farklılık gösterir. Bitcoin özelinde 10 dakikalık olan blok onay süresinin Ethereum’da 15 saniye olmasındaki temel neden de budur. Fakat kullanım alanı hızla artan ve gelişmekte olan blokzincir teknolojisinde hemen herkes hızlı işlem yapmak ister. Geliştiriciler tarafından atılan adımlar ve alınan önlemlerle birlikte blok onay sürelerinin kısaltılması mümkündür. Bu durumun geçmişte pek çok örneği vardır. Bir örnek vermek gerekirse Waves zincirinde Next Generation protokolü işleme alınmadan evvel onay süresi 1 dakikayken protokol aktif olduktan sonra bu süre 1 saniyeye düşmüştür.

Kriptografide Nonce Ne Anlama Gelir?

Blockchain’de nonce nedir sorusuna yanıt verdiğimiz bu rehberde sıra bu terimin kriptografide ne anlama geldiğini açıklamaya geldi. Nonce şifrelemesi, veya kriptografik nonce kriptografide iletişimi güvenli tutmak için kullanılan rastgele bir sayı olarak tanımlanır. Yani kötü amaçlı yazılım ve kişiler tarafından yapılan saldırıları bertaraf eder. Bir nonce genellikle zaman damgasına sahip olduğu için belirli bir süreliğine geçerli kalır. Ayrıca aynı değerin kendini tekrar etmemesi için çok sayıda bit üzerinden de üretilir.

Bununla birlikte şifreleme nonce’u, SSL/TLS gibi durumlarda da kullanıma uygundur. Sunucunun ve istemcinin özel ve genel anahtar çifti aracılığıyla doğrulanan benzersiz bir nonce değeri üretmesi anlamı taşır.

Blockhain’de Nonce Nedir? – Sonuç

Bu rehberde blockchain’de nonce nedir sorusuna detaylı biçimde yer verdik. Özetlemek gerekirse bir nonce, madencilerin kazdığı blokların meşruiyetini doğrulamak için kullandıkları 32 bitlik bir sayıdan ibarettir. PoW tabanlı blok zincirlerinin merkeziyetsiz ve güvenli tutulmasında hayati rol oynar. Ek olarak %51 adı verilen ve blokzincirin çökmesine kadar ilerleyebilen saldırıları da önleme görevini üstlenir. Nonce değeri ne kadar büyükse, ağ da o kadar güvenli olur. 

Doğru nonce değerinin bulunması karmaşık matematiksel denklemleri çözmeyi gerektirir. Bu da ağın güvenliğini ve birliğini sağlamak için caydırıcı bir önlem olarak görülür. Çok detaylı ve uzun süreli bir iş olduğu için kötü amaçlı casus yazılımları bertaraf eder. Blockchain’de nonce nedir sorusunun yanıtı, ağın manipüle edilmesini engellemektir.

Sıkça Sorulan Sorular

Blockchain’de nonce nedir, ne işe yarar?

Golden nonce nedir?