Anneye Anlatır Gibi: Bitcoin Nasıl Çalışır?

Kimi yorumculara göre blockchain teknolojisi internetten de daha büyük bir buluş. Dijital para olarak ünlenen Bitcoin de bu teknolojiye dayanıyor. Ama Bitcoin hala birçok kişi tarafından tam algılanabilmiş değil. İşte Medium yazarı Meriç Bahçeci'nin yine bir Medium yazsından çevirdiği, Bitcoin'in ‘teknik olmayan’ en kapsamlı açıklaması.

310
310

Sorumluluk reddi: Yazılarım sadece bilgi verme amaçlıdır. Hiçbiri yatırım tavsiyesi değildir.

paul krugman

Bitcoin’in nasıl çalıştığını sadece sokaktaki amca, kahvedeki dayı değil Nobel ödüllü ekonomi profesörleri de, milyarder yatırımcılar da bazenanlayamayabiliyor.

Bu nedenle medium’da rast geldiğim ve kolay anlaşılabileceğine inandığım bu yazıyı çevirmek için yazardan izin aldım. Artık etrafınızda birisi Bitcoin’in nasıl çalıştığı ile ilgili bir soru sorduğunda nereye yönlendireceğinizi biliyorsunuz. Not: Yazarın yazdıklarını mot a mot almadım. Bazı yerlerde küçük ekleme ve çıkarmalar yaptım.

Blockchain muhtemelen internetten daha önemli bir buluş.


Eğer bir mağarada yaşamıyorsanız Bitcoin hakkında elbet bir şeyler duymuşsunuzdur. Her şeyden önce bu günlerde medyanın favori konusu Bitcoin ve Blockchain. Kriptopara madenciliği yapmayan veya Bitcoin’in ne olduğunu anlamayanlar bile bu konudan bahsediyor. Özellikle teknik terimlerden pek anlamayan arkadaşlarım haftalardır bunları açıklamam için başımın etini yiyorlardı. Sanırım onlar gibi hisseden binlerce kişi var. Böyle bir durumda yapılacak en mantıklı şey herhangi bir ortalama internet kullanıcısının anlayabileceği biçimde, sade bir dille bir şeyler yazmak.

Blockchain: Neden böyle karmaşık bir şeye ihtiyaç duyuyoruz ki?

“Karmaşık her soruna getirilebilecek açık, basit ve yanlış bir çözüm daima vardır.” — H.L. Mencken

İnternetteki diğer bütün bilgilerin aksine, Blockchain’in tanımıyla değil hangi sorunu çözdüğünü anlamakla başlayacağız.

Farz edelim ki senin Joe diye bir arkadaşın var. Yurt dışına tatile çıkan bu arkadaşın tatilinin 5. gününde seni arıyor ve “Dostum, biraz paraya ihtiyacım var. Bende hiç kalmadı.” diyor.

Sen de “Hemen sana biraz gönderiyorum” diyorsun ve telefonu kapatıyorsun.

Sonra bankayı arayıp “Lütfen benim hesabımdan Joe’nun hesabına 1000 dolar yollayın” diyorsun.

Bankanın hesap yöneticisi “Peki efendim” diye yanıtlıyor.

Sonra hesap yöneticisi kayıt defterini açıp senin hesabında Joe’ya 1000 dolar göndermek için gerekli olan paranın olup olmadığını kontrol ediyor. Zengin bir adam olduğun ve hesabında 1000 dolardan çok daha fazlası olduğu için kayıt defterine şunu yazıyor:

İşlem Kayıt Defteri

Not: İşleri basit tutmak adına şimdilik bilgisayarlardan bahsetmiyoruz.

Sonra sen Joe’yu arıyorsun ve “Parayı transfer ettim. Bankaya gittiğin zaman gönderdiğim 1000 doları çekebilirsin” diyorsun.

Az önce ne oldu? Sen ve Joe, paranızı yönetmesi için bankaya güvendiniz.Para gönderme işlemi için kağıt para fiziksel olarak bir yerden bir yere hareket etmedi. Tüm gereken kayıt defterindeki bir veri girişiydi. Daha detaylı söylemek gerekirse: Ne senin ne de Joe’nun kontrol ettiği bir kayıt defterindeki bir veri girişiydi.

Günümüzdeki sistemlerin sorunu işte tam olarak bu.

Kendi aramızda güven ilişkisi kurmak için üçüncü şahıslara bağımlı durumdayız.

Yıllardır, birbirimize güvenmek için bu aracılara ihtiyaç duyduk. “Ee bunun nesi kötü?” diye sorabilirsiniz:

Problem şu ki bunlar sayıca tekiller. Toplumu kaosa sürüklemek için tek bir kişi veya organizasyonun bile doğru yoldan sapması yeterli. Kasten ya da istemeden.

  • Ya işlem kaydının tutuluğu kayıt defteri yanarsa?
  • Ya banka görevlisi 1000$ yerine yanlışlıkla 1500$ yazarsa?
  • Ya bunu isteyerek yaparsa?

Yıllarca bütün yumurtaları tek sepete koyduk. ve o da başkasının sepetiydi.

Bankalara ihtiyaç duymadan para transferi yapabileceğimiz bir sistem mümkün mü?

Daha iyi bir soru daha iyi bir yanıta götürebilir.

Bir saniye durup düşünün, para transferi ne anlama geliyor? Sadece kayıt defterindeki bir veri girişi. Bu yüzden daha iyi bir soru şöyle olurdu:

Kayıt defterini tutması için başkasına güvenmek yerine bu defteri aramızda idare etmenin bir yolu var mı?

İşte bu sorunun yanıtı: Blockchain.

Bu, kayıt defterini tutması için üçüncü partilere (bankalar, noterler) güvenmek yerine kayıt defterini kendi aramızda tutabilmemiz için bir metot.

Tamam ama Nasıl Olacak Bu İş?

“Şimdiden birkaç bitcoin almak çok mantıklı çünkü bir gün değeri çok artabilir. Eğer herkes bu şekilde düşünürse bu kendini gerçekleştiren bir kehanet olacak.” — Satoshi Nakamoto -2009

Bu metodun çalışması için en az üç kişiye ihtiyaç var. Mesela bankaları ve üçüncü parti işletmeleri kullanmak istemeyen on kişi düşünelim. Ortak bir anlaşmayla, hepsi, her zaman gruptaki diğer insanların hesap detaylarını görebiliyor ama hesabın kime ait olduğunu bilmeden.

1-Boş Dosya

Başlamak için herkes elinde bir boş dosya bulunduruyor. Herkes elinde bulundurduğu şimdilik boş olan bu dosyalara sürekli sayfalar ekleyecek. Ve bu sayfalar işlem kayıtlarını (transaction) bulunduracak olan kayıt defterini oluşturacak.

2-Para Gönderme İşleminin Gerçekleşmesi

Sonra, gruptaki herkes elinde boş bir sayfa kağıt ve bir kalem ile oturuyor. Herkes sistemde gerçekleşecek herhangi bir para gönderme işlemini boş sayfaya yazmak için hazırda bekliyor.

Şimdi #2, #9’a 10 dolar göndermek istiyor.

Bu işlemin gerçekleşmesi için #2 herkesin duyabileceği kadar bağırarak “Ben #9’a 10 dolar yollamak istiyorum. lütfen herkes bunu sayfasına yazsın.” diyor.

Herkes #2’nin 10 dolar göndermek için yeterli bakiyesi olup olmadığını kontrol ediyor. Eğer varsa herkes önündeki sayfaya para gönderme işlemini yazıyor.

Şimdi işlem tamamlanmış sayılıyor.

3-İşlemler Devam Ediyor

Zamanla gruptaki insanlar birbirine para yolluyorlar. Ne zaman para yollayacaklarsa bunu bağırarark diğerlerine iletiyorlar. Gruptaki diğer insanlar da bunları kontrol edip sayfaya yazıyor.

Bu durum sayfada boş yer kalmayana kadar devam ediyor. Mesela bir sayfanın 10 işlem kaydı sığacağını
farzedelim. 10. Para gönderme işlemi sonunda herkesin sayfası doluyor.

Şimdi sıra dolu sayfayı dosyanın içine koymaya geldi.Sonra herkes yeni bir sayfa açacak.

4- Dolu Sayfayı Saklamak

Dolu bir sayfayı dosyanın içine koyup saklamadan önce onu üzerine herkesin anlaştığı kendine has bir mühürle mühürlemeliyiz. Sayfayı mühürlemenin amacı herhangi bir kimsenin sonradan bir değişiklik yapamayacağına emin olmak. Bu bir hafta sonrası için de geçerli, bir yıl sonrası için de. Bir sayfa bir kere dosyaya girdi mi, her zaman dosyanın içinde mühürlü kalacak. Eğer herkes mühüre güveniyorsa sayfanın içeriğine de güveniyor demektir. İşte bu mühür bu işin düğüm noktası.

Jargon: Bunun teknik adı aslında madencilik (mining). Ama biz karışıklık olmaması adına mühürlemek diyeceğiz.

Daha öncesinde aracı/üçüncü şahıslar (bankalar) bize kayıt defterinde yazılanların asla değişmeyeceğine dair garanti veriyordu. Bizimki gibi dağıtık ve merkezsiz bir sistemdeyse güveni sağlayacak olan şey bu mühür.

İlginç. Peki Sayfayı Nasıl Mühürleyeceğiz?

Önce mührün nasıl çalıştığını anlatalım.

Sihirli Makine

Etrafı kalın duvarlarla çevrili sihirli bir makine hayal edin. Eğer içinde bir şey olan bir kutuyu makinenin solundan gönderirseniz sağ taraftan başka bir şey içeren bir kutu çıkıyor.

Jargon: Bu makine aslında “Hash Fonksiyonu” ama karışıklık olmaması adına biz bugünlük bunlara “Sihirli Makine” demeye devam edelim.

sihirli makine

Farz edelim ki sen sol taraftan makineye 4 rakamını gönderdin. Makine ise sağ tarafdan ‘dcbea’ diye bir kelime çıkardı.

4 nasıl oldu da dcbea’ya dönüştü? Kimse bilmiyor.Dahası bu tersine işlemeyen bir sistem. Elimizde dcbea olsa bile makineye ne koyuldu da bu sonucu aldık bilemiyoruz. Ama her şunu biliyoruz ki ne zaman ki makineye 4 verirsen aynı kelimeyi, yani dcbea’yı verecek.

Başka bir sayı deneyelim? 26’ya ne dersiniz?

Bu sefer 94c8e aldık. İlginç. Demek ki kelimeler rakam da içerebiliyor!

Peki şu soruyu sorsam ne dersiniz:

“Makineye sol taraftan ne yollamalıyım ki bana sağ taraftan üç sıfırla başlayan bir kelime versin? mesela 000ab veya 00098 veya 000fa veya üç sıfırla başlayan herhangi bir şey.”

Bir düşünün. Size söylediğim kadarıyla makineden çıkan bir kelimeye bakarak makineye ne girdiğini kesinlikle hesaplayamayız. Bu, makinenin kendine has özelliği.
Böyle bir makineyle nasıl olur da demin sorduğum soruyu cevaplarız?

Neden ta ki istediğimiz sonuç makineden çıkıncaya kadar evrendeki bütün sayıları tek tek denemiyoruz? 

girdiyi hesaplamak için her sayıyı deniyoruz

İyimser yaklaşacak olursak birkaç bin denemeden sonra istediğimiz çıktı ile karşılaşabiliriz.

Çıktıyı bilerek girdiyi hesaplamak feci şekilde zordu. Ancak bunun sağlamasını yapmak çok kolay. Tahmin edilen bir girdinin gerekli olan çıktıyı verip vermediğini kolaylıkla doğrulayabiliriz. Çünkü makine aynı girdiye her zaman aynı çıktıyı veriyor.

Size 72533 sayısını versem ve size “Bu sayı makineye verildiğinde sol taraftan üç tane sıfırla başlayan bir çıktı veriyor mu?” diye sorsam bunun cevabını bulmak ne kadar zor olurdu?

Tek yapmanız gereken verdiğim sayıyı makineye atmanız ve sağ taraftan ne çıktığına bakmanız. O kadar.

Bu makinenin en önemli özelliği şu ki “Sadece çıktı verildiğinde girdiyi bulmak oldukça zordur. Ancak girdi ve çıktı beraber verildiğinde girdinin çıktıyı verip vermediğini doğrulamak son derece kolaydır.”

Sihirli Makinelerin (Hash Fonksiyonu) bu özelliğini yazının kalan kısmında da hatırlayın:

Sadece çıktı verildiğinde girdiyi bulmak oldukça zordur. Ancak girdi ve çıktı beraber verildiğinde girdinin çıktıyı verip vermediğini doğrulamak son derece kolaydır.

Bu makine sayfayı mühürlemek için nasıl kullanılır?

Biz Sihirli Makineyi sayfamızı mühürlemek için kullanacağız. Her zamanki gibi hayali bir örnekle başlıyoruz.

Size iki kutu verdiğimi hayal edin. İlk kutu 20893 sayısını içeriyor. Diğer kutunun içindekini siz bulacaksınız. Size şunu soruyorum: “Bana öyle bir sayı söyle ki sana ilk kutuda verdiğim sayı ile birlikte makineye beraber atıldığında makine sağ taraftan üç tane sıfırla başlayan bir sonuç versin.”

Bu durumlar daha önce de karşılaşmıştık ve biliyoruz ki bunun tek yöntemi evrendeki her sayıyı tek tek denemek.

Birkaç bin denemeden sonra 21191 sayısına denk geldiğimizi farz edelim ve bu sayı ilk sayı ile toplandığında (21191+20893) 42084 yapar. 42084’ü makinenin sol tarafından yolladığımızda sağdan bize gereken ürünü yani üç tane sıfırla başlayan kelimeyi veriyor diye farzedelim.

Bu durumda bu numara, yani 21191 bizim o sayfa için mühür numaramız oluyor. Üzerinde 20893 yazan bir sayfa düşünün. Bu sayfayı mühürlemek için (ki kimse içeriğini değiştiremesin) bu sayfaya 21191 yazılı bir etiket yapıştıracağız. Bu mühür numarası (21191) yapıştırıldığı anda sayfa mühürlenmiş demektir. 

Jargon: Mühür numarası diye adlandırdığımız şey aslında “İş İspatı” (proof of work). Yani bu sayı aslında kendisinin hesaplanması için harcanan eforun ispatı. Biz yine de şimdilik buna mühür numarası demeye devam edelim.

Eğer biri sayfanın değiştirildiğinden şüphe ediyorsa tek yapması gereken şey sayfa içeriğini mühür numarasıyla birlikte sihirli makineye sokmak ve üç tane sıfırla başlayan bir çıktı verip vermediğini kontrol etmek. Eğer veriyorsa sayfa içeriğine dokunulmamış demektir. Eğer beklenen sonucu vermiyorsa sayfayı yırtıp atabiliriz çünkü içerik değiştirilmiş demektir ve sayfa işe yaramaz.

Bütün sayfaları mühürlemek için aynı mekanizmayı kullanacağız ve sonunda dosyalara yerleştireceğiz.

Nihayet, sayfayı mühürlüyoruz…

Para gönderme işlemleriyle dolu sayfayı mühürlemek için bir sayı bulmamız gerekiyor. Bu sayı işlem kayıtlarıyla birlikte makinenin sol tarafından birlikte verildiğinde makinenin bize sağ taraftan üç tane sıfır ile başlayan bir kelime vermesi gerekiyor. 

Not: “üç tane sıfırla başlayan kelime” ‘yi sadece Hash fonksiyonunun nasıl çalıştığına dair örnek verme amaçlı söylüyorum. Gerçek zorluklar bundan çok daha karmaşık.

Sihirli Makinede bütün sayıları tek tek denediğimiz için epey zaman ve elektrik harcarız. Mühür numarasını bulduğumuz anda sayfa mühürlenmiş olur. Eğer biri sonradan işlem kayıtlarını değiştirmek isterse mühür numarasını kullanarak sayfanın doğruluğunu sorgulayabiliriz.

Şimdi sayfayı mühürlemeyi öğrendik. 10 tane işlem kaydı yaptığımız ve sayfayı doldurduğumuz yere geri dönelim.

Herkesin sayfasındaki boş yer tükendiğinde herkes mühür sayısını hesaplamaya çalışıyor ki sayfa mühürlenip dosyada saklanabilsin. Ağdaki herkes sihirli makineleriyle hesaplama yapıyor. Mühür numarasını bulan ilk kişi diğerlerine duyuruyor.

Mühür numarasını buldum! 912574.

Herkes duyrulan mühür numarasını istenen çıktıyı veriyor mu diye kontrol ediyor. Eğer doğru çıktıyı veriyorsa herkes sayfasını bu mühür numarasıyla etiketliyor ve dosyasına yerleştiriyor.

Diyelim ki #7 ‘nin duyurduğu mühür numarası istenen çıktıyı vermedi?Bu durumlar alışılmadık değil. Bunun sebepleri şunlar olabilir: #7

  • Grupta yapılan para gönderme işlemlerini yanlış duymuş olabilir.
  • İşlemleri kağıda geçirirken yanlış yazmış olabilir.
  • Kendi veya başkası lehine kasten hile yapmaya çalışıyor olabilir.

Sebep ne olursa olsun #7’nin yapabileceği tek şey var. Sayfasını çöpe atmak, başkasından bir kopya almak ve onu dosyalamak. Eğer sayfayı dosyaya eklemezse işlem kayıtlarını yazmaya devam edemez. Böylece ağda bulunması yasaklanmış olur.

Çoğunluk hangi mühür numarası üzerinde uzlaşırsa asıl mühür numarası o olur.

Madem öyle o halde neden herkes mühür numarasını bulmak için kaynak harcıyor ki? Neden oturup birisinin numarayı bulmasını ve duyurmasını beklemeyeyim?

Güzel soru.İşte burada devreye teşvikler giriyor. Blockchain ağının her ferdi ödüller kazanmaya muvafıktır. Mühür numarasını ilk hesaplayan gösterdiği çaba(kullanılan CPU gücü ve elektrik) için bir ödül kazanıyor.

Diyelim ki #5 numaralı kişi mühür numarasını hesapladı, o halde havadan 1 dolar para kazanıyor. Yani #5’in hesabına kimsenin hesabından para eksilmediği halde 1 dolar ekleniyor. (“Tamam da bu para nereden geliyor, kim ödüyor bunu?“ diyorsanız aşağıda yorumlar kısmında kısaca açıkladım. Yoruma göz atın.)

Bitcoin’in varlığı da buna dayanıyor. Bitcoin, Blockchain kullanarak para işlem hareketleri gerçekleştiren ilk para birimidir.
(dağıtık kayıt defterleri)

Ödüller sistemde herkesin çalışmasını sağlar.

Ve herkes yazdığı sayfa dolduğunda bunu dosyaya koyup boş, yeni bir sayfa çıkarıyor ve tekrardan yazmaya başlıyor. Madencileri buna teşvik eden şey bu ödüller.

Jargon: İşlem kayıtlarıyla dolu her 1 sayfayı ‘bir blok’ olarak düşünün.Sayfaların saklandığı her 1 dosyayı ise bir sayfalar zinciri (yani blok chain) olarak düşünün.

bu paint terk görsel bana ait.

İşte sevgili dostlarım, Blockchain bu şekilde çalışıyor.


Mohit Mamoria’nın yazdığı orjinal post’a gitmek için: https://hackernoon.com/wtf-is-the-blockchain-1da89ba19348

Blockchain ve kriptoparalarla ilgili yararlı bulduğum makaleleri ve bu konularla ilgili hazırlayacağım özgün içerikleri Medium ve Steemit hesaplarım üzerinden takip edebilirsiniz. Aynı zamanda Bitcoin ve kripto paralarla ilgili güncel haberleri takip edebileceğiniz ve benim de yazarları arasında bulunduğum koinbulteni.com ‘u da ziyaret etmenizi öneririm.

Bitcoin: 1A1crTStwU7VsKz62pVYgnfqQaarbpUFYx

Kaynak: Meriç BAHÇECİ / Medium

Bu yazıda olan etiketler

Yorumlar