Blockchain Nasıl Çalışır?

Blockchain'in nasıl çalışıyor? Detaylar haberimizde...

Her blockchain için merkezi unsurlardan biri madencilik algoritmasıdır. Örnek olarak Dogecoin'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, sayı, yazı veya herhangi büyüklükte bir bilgisayar dosyası dahi olabilecek her şeyi girdi olarak alabilir. Yaratılan veri çıktı ‘'hash'’ ismi verilir ve daima bilgisayar kodunda 256 bit dahil olmakla birlikte aynı uzunlukta olmak zorundadır.

Benzer girdiler daima benzer çıktıları verir ve bu durum asla rastgele gerçekleşmez. Ancak girdi üstünde yapılacak olan bir değişiklik durumunda, çıktı tamamıyla farklı olacaktır.

Bu durumlar tek yönlü fonksiyon olarak da adlandırılır ki bu da çıktının elinizde olması halinde girdinin ne olduğunu hesaplayamayacağınız manasına gelir. Girdinin güvenliğinin aşılması neredeyse imkansızdır çünkü 256'da 1'dir. 

Bu örnekte Cem ve Hande'nin Bitcoin sahipleri olduğunu farz edelim ve Cem'in, Hande'ye 2 Bitcoin borçlu olduğunu düşünelim.

Cem Hande'ye 2 Bitcoin göndermek için ağdaki madencilere göndermek istediği transfer ile ilgili bir gönderi mesaj yayınlar.

Bu yayında  madencilere Cem’in açık anahtarını ve göndermek istediği Bitcoin adedini, kendi dijital imzası ve açık anahtarı ile birlikte yayına verir. Dijital İmza Hande'nin şahsi anahtarı ile oluşturulmuştur ve madenciler Cem'in gerçekten Bitcoin sahibi olduğunu ve transfer yapmak istediğini doğrulayacak verilere ulaşabilirler.

Madenciler transfer işleminin sorunsuz olduğundan emin olduklarında, bunu bir çok diğer transfer ile birlikte bir bloğa koyarlar ve bloğu kazma girişiminde bulunmaktadırlar. Bu işlem bloğun SHA-256 algoritmasından girdi ve çıktı işlemlerinin tamamlanması ile sağlanır.

Çıktının geçerli sayılabilmesi için belirli bir sayı ile yani  0 ile başlaması gereklidir. Gerekli olan 0 adedi güçlük derecesine bağlıdır. Zorluk derecesi ise bir ağda bulunan hesaplama gücüne göre değişiklik gösterir.

Başında istenilen miktarda sıfır olan bir çıktı hash’i oluşturmak 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ı bütünüyle 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 amacıyla, blok içine bir önceki bloğun çıktı hash’ini de eklemek zorundadırlar. Blok-zincir ismi de burdan 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ı bulunmaktadır 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ı ile 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 bütün kayıtları bir kez daha yapması gerekecektir. Bu yüzden bir madencinin eğer sistemi aldatmak istiyorsa network’teki toplam hesaplama gücünün yüzde 50’den fazlasını elde etmesi gerekir ki bu durum pek olası değildir. Bu tarz network saldırıları yüzde 51 saldırısı olarak adlandırılır.

Blokların oluşturulması için bilgisayarların kullanılması modeline Proof of Work (PoW) denir. Bunun yanında Proof of Stake (PoS) olarak isimlendirilen, çok fazla hesaplama gücü gerektirmeyen ve bu sebeple daha az elektrik kullanan ve daha fazla kullanıcıya ölçeklenebilecek modeller de bulunur.

Etiketler