Her blockchain için merkezi öğelerden biri madencilik algoritmasıdır. Örnek olarak Bitcoin’in algoritmasını ele alalım. Adı SHA-256’dır bu da “256 bit güvenli hash algoritması”nın kısaltmasıdır. Bu algoritma, yazı, sayı ya da herhangi büyüklükte bir bilgisayar dosyası dahi olabilecek her şeyi girdi olarak alabilir. Üretilen çıktı ‘hash’ olarak adlandırılır ve her zaman bilgisayar kodunda 256 bit olmak üzere aynı uzunluktadır.
Aynı girdiler her zaman aynı çıktıları verir ve bu durum rastgele değildir. Ancak girdi üzerinde ufak bir değişiklik yapmanız durumunda, çıktı tamamen farklı olacaktır. Binance üzerinden işlem yapmak için buraya tıklayarak üyelik oluşturmanız gerekmektedir.
Bu durum tek yönlü fonksiyon olarak da adlandırılır ki bu da çıktının elinizde olması durumunda girdinin ne olduğunu hesaplayamayacağınız anlamına gelir. Girdinin ne olduğunu ancak tahmin edebilirsiniz ve bunu doğru bir şekilde yapabilme ihtimali ise 2 üzeri 256’da 1’dir yani neredeyse imkansızdır. Diğer bir ifade ile girdinin güvende olduğu söylenebilir.
Algoritmanın ne yaptığını öğrendiğimize göre, bir blockchain’in nasıl çalıştığını basit bir transfer örneği ile açıklayalım.
Bu örnekte Alice ve Bob’un bitcoin bakiyeleri olduğunu farz edelim ve Alice’in Bob’a 2 bitcoin borçlu olduğunu varsayalım.
Alice Bob’a 2 bitcoin göndermek için ağdaki tüm madencilere yapmak istediği transfer ile bir mesaj yayınlar.
Bu yayında Alice madencilere Bob’un açık anahtarını ve göndermek istediği bitcoin miktarını, kendi dijital imzası ve açık anahtarı ile birlikte yayınlar. Dijital İmza Alice’in özel anahtarı ile oluşturulmuştur ve madenciler Alice’in gerçekten bitcoin sahibi olduğunu ve transfer yapmak istediğini doğrulayabilirler.
Madenciler transferin uygun olduğundan emin olduklarında, bunu pek çok diğer transfer ile birlikte bir bloğa koyarlar ve bloğu kazma girişiminde bulunurlar. Bu işlem bloğun SHA-256 algoritmasından geçirilmesiyle sağlanır. Çıktının geçerli sayılabilmesi için belirli bir sayıda 0 (sıfır) ile başlaması gereklidir. Gerekli olan 0 adedi zorluk derecesine bağlıdır. Zorluk derecesi ise bir ağda bulunan hesaplama gücüne göre değişebilir.
Başında istenen miktarda sıfır olan bir çıktı hash’i yaratmak için, madenciler bloğa algoritma uygulamadan önce nonce numarası adı verilen bir ekleme yaparlar. Girdiye yapılan ufak bir değişiklik çıktıyı tamamen değiştirdiği için madenciler geçerli bir çıktı hash’i buluncaya kadar rastgele nonce’lar denerler.
Blok kazıldığı anda madenci yeni kazılmış bloğu tüm madencilere yayınlar. Sonrasında madenciler bloğun geçerli olup olmadığından emin olmak için bu bloğu kontrol ederler, kendi blockchain kopyalarına eklerler ve transfer tamamlanır. Ancak madenciler tüm blokların birbirine bağlanmasını sağlamak için, blok içerisine bir önceki bloğun çıktı hash’ini de eklemek zorundadırlar. Blok-zincir ismi de buradan gelmektedir. Bu kısım, güven ilişkisinin nasıl çalıştığını göstermesi bakımından önemlidir.
Her madencinin kendi bilgisayarında blockchainin bir kopyası bulunur ve herkes en fazla hesaplama işi barındıran yani en uzun olan blockchain hangisiyse ona güvenir. Eğer bir madenci bir önceki bloktaki bir işlemi değiştirirse, söz konusu bloğun çıktı hash’i ve tüm bloklar birbirine hashler vasıtasıyla bağlı olduğu için ondan sonra gelen blokların çıktı hash’leri de değişecektir. Madencinin kendi blockchain’inin doğru olduğunu kabul ettirebilmesi için tüm kayıtları yeniden yapması gerekecektir. Bu yüzden bir madencinin eğer sistemi aldatmak istiyorsa network’teki toplam hesaplama gücünün %50’den fazlasını elde etmesi gerekir ki bu durum pek muhtemel değildir. Bu tarz network saldırıları %51 saldırısı olarak adlandırılır. Binance üzerinden işlem yapmak için buraya tıklayarak üyelik oluşturmanız gerekmektedir.
Blokların oluşturulması için bilgisayarların kullanılması modeline Proof of Work (PoW) denir. Bunun yanında Proof of Stake (PoS) olarak adlandırılan, çok fazla hesaplama gücü gerektirmeyen ve bu nedenle daha az elektrik kullanan ve daha fazla kullanıcıya ölçeklenebilecek modeller de bulunmaktadır.
Ve tüm bunlar bir blockchain’in nasıl çalıştığının temelleridir!