DÜNYAYI DEĞİŞTİRECEK BİR TEKNOLOJİ : BLOCKCHAIN-3

Fatih KÖMÜRCÜ
Bigdatatr
Published in
6 min readJan 16, 2020

Sayfayı nasıl mühürleyebileceğimizi öğrenmeden önce, mühürlemenin genel olarak nasıl çalıştığını öğreneceğiz.

Sihirli Makine

Kalın duvarlarla çevrili bir makine düşünün. Makinenin sol tarafından içinde başka bir şey olan bir kutu gönderdiğinizde, makinenin sağ tarafından daha farklı bir şey içeren bir kutu çıkıyor.Yani bir girdimiz ve bir çıktı alıyoruz.

[Jargon] Bu makineye “Hash Fonksiyonu” denir ancak şu an çok teknik konuşmaya hazır olmadığımız için bunu ‘Sihirli Makine’ olarak adlandıracağız.

Girdi-çıktı ilişkisi

Diyelim ki makinenin sol tarafında 4 rakamını gönderiyorsunuz ve sağdan şu kelime olarak çıkıyor: ‘dcbea‘.

4 rakamı, bu kelimeye nasıl dönüştü? Kimse bilmiyor. Dahası, bu geri dönüşü olmayan bir süreç. Makinenin sağından ‘dcbea’ sözcüğünün çıkması için sol taraftan neyle beslendiğini söyleyebilmek mümkün değil. Fakat 4 rakamını makineye verdiğiniz her işlemde, makine aynı kelimeyi ‘dcbea’ üretecektir.

Makineye başka bir sayı göndermeyi deneyelim. 26’ya ne dersiniz?

Bu sefer makine ’94c8e’ verdi. İlginç! Yani, makinenin ürettiği sözcükler rakamları da içerebilir.

Şimdi size şu soruyu sorarsam:

“Sağ taraftan çıkan kelimenin ilk üç basamağının sıfır olması için (000ab, 00098 veya 000fa gibi) sol taraftan ne göndermeliyiz?”

Not:Kriptoloji(şifreleme) bilimi blok zinciri teknolojisinin temelidir.

Soruyu tekrar düşünelim.

Daha önce size sağdan çıkan veriye bakarak makinenin sol tarafından ne gönderilmiş olduğunu hesaplayamayacağımızı belirtmiştim. Peki, bu şartlar altında yukarıda sorduğum soruyu nasıl cevaplayabiliriz?

Bir yöntem düşünebilirim. Neden üç sıfır ile başlayan bir kelimeyi bulana kadar evrendeki her sayıyı tek tek denemiyorsun?

İyimser bir tahminle, birkaç bin denemeden sonra, sağdan aradığımız çıktıyı verecek bir sayıyı bulabileceğiz.

Çıktıya bakarak makineye neyin gönderilmiş olduğunu tahmin edebilmek oldukça zor. Fakat aynı zamanda, girdinin istenilen çıktıyı üretip üretmediğini doğrulaması inanılmaz derecede kolay olacaktır. Makinenin her seferde aynı girdi ile aynı çıktıyı ürettiğini hatırlayalım.

Size bir numara verirsem, diyelim ki 72533, ve size şu soruyu sorsam: “Bu numarayı makineye verirsek önünde üçü sıfır olan bir çıktı alabilir miyiz?“, cevabın ne kadar zor olduğunu düşünüyorsun?

Tek yapmanız gereken, verilen numarayı makineye atmak ve sağ tarafından ne elde edeceğimize bakmak. Bu kadar basit.

Bu tür makinelerin en önemli özelliği, “Çıktı verildiğinde girdiyi hesaplamak son derece zordur ancak girdi ve çıktı göz önüne alındığında, girdinin çıktıya dönüşüp dönüşmediğini doğrulamak oldukça kolaydır.”

Yazının geri kalanında Sihirli Makinelerin (veya Hash Fonksiyonları) bu özelliğini hatırlayacağız:

Bir sayfayı mühürlemek için bu makineleri nasıl kullanacağız?

Sayfamız için bir mühür üretmek için bu sihirli makineyi kullanacağız. Her zaman olduğu gibi hayali bir durumla başlayalım.

Size iki kutu verdiğimi hayal edin. İlk kutu 20893 sayısını içeriyor. Sonra, size şunu soruyorum: “Bu kutudaki sayıya hangi sayıyı eklemeliyiz ki ilk üç hanesi sıfır olan bir çıktı alabilelim?

Bu, daha önce belirttiğimize benzer bir durum ve böyle bir sayıyı hesaplamanın tek yolunun evrende mevcut olan her sayıyı tek tek denemek olduğunu öğrendik.

Birkaç bin denemeden sonra, 20893’e 21191 eklendiğinde (yani 21191 + 20893 = 42084) istediğimiz şartları sağlayan bir çıktı üretebilecek sayıya ulaşıyoruz.

Böyle bir durumda, bu sayı (21191), 20893 sayısı için mühür olur. Üzerinde 20893 yazan bir sayfanın olduğunu varsayalım. Bu sayfayı mühürlemek için (yani içeriğini kimsenin değiştiremeyeceği bir hale getirmek için), bunun üzerine ‘21191‘ etiketini yapıştıracağız. Mühür numarası (yani, 21191) sayfaya yapıştığında sayfa mühürlenmiş olacak.

[Jargon] Mühür numarasına “Proof of Work (İş Kanıtı)” deniliyor. Yani bu sayı, hesaplamak için çaba sarf edildiğinin kanıtı olarak gösteriliyor. Biz anlaşılmayı kolaylaştırmak için “mühür numarası” diyelim.

Birisi sayfanın değişip değişmediğini doğrulamak istiyorsa, yapması gereken tek şey sayfanın içeriğini mühürleme numarasına eklemek ve sihirli makineye göndermek olacaktır. Makine, ilk üç hanesi sıfır içeren bir kelime veriyorsa, içeriğe dokunulmaz. Çıkan kelime, şartlarımızı taşımıyorsa, içeriği tehlikeye düştüğünden sayfayı atabiliriz. Sayfa artık kullanımda olmayacaktır.

Tüm sayfalarımızı mühürlemek için benzer bir mekanizması kullanacağız ve nihai olarak ilgili klasörlerimize yerleştireceğiz.

Sonunda, sayfamızı mühürlüyoruz…

Sitemdeki işlemleri içeren sayfamızı mühürlemek için, işlem listesine eklenip makineye verildiğinde, makinenin sağ tarafından ilk üç hanesi sıfır olarak çıkan bir sayı bulmamız gerekecek.

Not: ‘İlk üç hanesi sıfır olan kelime‘ ifadesini, Hash Fonksiyonunun nasıl çalıştığını göstermek için örnek olarak kullanıyorum. Gerçekte işlemler bundan çok daha karmaşık.

Makineye yeterince zaman ve elektrik harcandıktan sonra gerekli sayı hesaplanır ve sayfa bu sayı ile mühürlenir. Daha sonra birisi sayfanın içeriğini değiştirmeye çalışırsa, mühür numarası herkesin sayfa bütünlüğünü doğrulamasına izin verir.

Sayfayı mühürleme konusunu da öğrendiğimize göre, sayfada onuncu işlemi yazmayı bitirdiğimiz ve sayfada yeni işlemin yazılacağı boş alanın kalmadığı zamana geri dönelim.

Dolan sayfayı klasöre ekleyebilmek için sayfası dolan herkes sayfa üzerindeki mühür numarasını hesaplamaya başlar. Sistemdeki herkes hesaplamayı yapar. Mühür numarasını hesaplayan ilk kişi bunu sistemdeki diğerlerine duyurur.

Mühür numarasını duyan herkes, mühür numarasının gerekli çıktıyı verip vermediğini doğrular. Eğer doğrulanırsa, herkes sayfalarını bu sayı ile mühürler ve ilgili sayfayı klasörlerine koyar.

Diyelim ki 7 numaralı sistem katılımcısı için, ilan edilen mühür sayısı istenilen çıktıyı sağlamazsa ne olur? Bu tür olaylar olağan dışı değildir. Bunun olası sebepleri şunlar olabilir:

  • Sistemde duyurulan işlemleri yanlış anlamış olabilir.
  • Sistemde duyurulan işlemleri yanlış yazmış olabilir.
  • Kendisine veya sistemdeki bir başkası lehine fayda sağlamak için sahtekarlık yapmaya çalışmış olabilir.

Nedeni ne olursa olsun, # 7’nin tek bir seçeneği var — yazmış olduğu sayfayı atmak ve başkasından kopyalayıp kendi klasörüne koymak. Sayfasını klasöre koymazsa, işlem yapmaya devam edemez yani artık sistemin bir parçası olamaz.

“Çoğunluğun üzerinde anlaşmaya vardığı bir mühürleme numarası, gerçek mühürleme numarası olur.”

Öyleyse neden herkes, hesaplamanın sistemde diğerleri tarafından da yapılacağını bilmesine rağmen, öylece oturup mühür numarasının duyurulmasını beklemek yerine kendi kaynaklarını harcayarak hesaplama yapmaya çalışmaktadır?

Harika soru. Teşviklerin sistemin içine girdiği yer tam olarak burası. Blockchain’in parçası olan herkes ödül almaya hak kazanır. Mühür numarasını hesaplayan ilk kişi çabaları için (yani, işlemci -CPU- gücü ve harcadığı elektrik için) ödüllendirilir.

Hayal edelim, eğer 5 numaralı katılımcı sayfanın mühür numarasını hesaplarsa, bir miktar havadan bedava para ile ödüllendirilir (Diyelim ki 1 Dolar). Başka bir deyişle, 5 numaralı katılımcının hesap bakiyesi, sistemdeki diğer katılımcıların hesap bakiyesini azaltmaksızın 1 dolar artar.

Bitcoin de böyle var oldu. Bir Blockchain’de işlem gören ilk para birimi Bitcoin idi. Ve bunun karşılığında, sistemdeki çabaları sürdürebilmek için insanlar Bitcoin ile ödüllendirildiler.

Yeterince insan Bitcoin’e sahip olduğunda, diğer insanlar da Bitcoin’i istemeye başlar ve Bitcoin değerlenir. Bitcoin değerlendiğinde; daha fazla insan Bitcoin’i istemeye başlar ve Bitcoin daha da değerlenir.

“Ödüller herkesin sistemde çalışmaya devam etmesini sağlar.”

Herkes dolan sayfayı klasörlerine eklediğinde, yeni bir boş sayfa çıkarır ve tüm süreci bir kez daha tekrar eder. Bu işlemler sonsuza kadar yapılır.

[Jargon] Tek bir sayfayı blok (Block) olarak ve klasörü de zincir (Chain) olarak düşünün, böylelikle Blockchain‘in (Blok zinciri) nasıl oluştuğunu anlayabilirsiniz.

Evet arkadaşlar, Blockchain’in çalışma sistemi bu şekilde. Umarım okurken kafada bir şeyler canlanmıştır.Diğer yazılarımın linkini de aşağıya bırakıyorum.

Kaynak: https://hackernoon.com/

Blockchain-1:

Blockchain-2:

--

--