My Profile Photo

Mehmet Cem Yücel


Technical Writings.
Architecture, Security, Java, Golang, Devops, Microservices, Spring Boot, Kafka, Distributed Systems and Blockchain


Bitcoin, Blockchain, Distributed Ledger Technology

Bitcoin uzun sayılabilecek bir süredir hayatımızda. Ancak son birkaç aydır yaşanan gelişmelerle birlikte artık sokakta yürürken 7den 70e birçok kişiden duyabileceğimiz bir konu haline geldi. O kadar ki duyduğumuz bazı hikayeler şehir efsanelerine varacak seviyelere ulaştı.

Önce Dağıtık Mimari

Sözünü baştan verdik, basitten alacağız diye :) O zaman ortaokul, lise yıllarına dönüyoruz.. Ama baştan söyleyeyim, o zamanlar telif, satınalma vs kavramlarını bilmiyoruz tabii, gerçi kimse bilmiyordu sanırım :))

İnternet Cafelerde Oyun Oynamak

Evimde uzunca bir süre internetim olmamıştı benim. Hatta evime alınan ilk bilgisayarı hak etmem de bir hayli uzun sürmüştü. Alınan ilk bilgisayarım da bir internet cafeden alınmıştı, hatta klavyesinin 6 tuşunun üzerinde sigara yanığı vardı :(( Ama bir taraftan da içinde 12–13 tane oyun yüklü olarak gelmişti, hatta o zamanların meşhur oyunu Midtown Madness 2 felan da vardı, havalıydı yani :) Ne alakası var diyeceksiniz, dağıtık mimariyle internet cafeden gelen bilgisayarın içerisindeki oyunun, bekleyin geliyorum..

Ee tabi haliyle bir süre sonra bu oyunları oynamaktan sıkılıyorsunuz, yeni oyunlar oynamak istiyorsunuz. İnternetiniz olsa bile o kadar pahalı bir internetten oyun indirmeyi istemezsiniz, tıpış tıpış internet cafeye gidip pazarlığa başlıyorsunuz :) Elimde kocaman hard disk ile cafeye gidip o zamanın parasıyla 20 Milyon (daha 6 sıfır atılmamıştı) karşılığı hard diskimin aldığınca oyunun kopyalanması için anlaşmıştım. İnternet cafedeki bilgisayarın kasası açılmış, benim hard diskim o kasaya bağlanmış ve oyunlar kopyalanmaya başlamıştı. Belki de bir veriyi paylaşmanın en ilkel yoluydu bu. Ama tabii ki o dönemdeki en ucuz ve hızlı yoluydu da bir taraftan.

İnternetin Yayılması ve Dosya Paylaşım Siteleri

Tabii zaman içerisinde hayatımız değişti, internet tek tek bütün hanelere girmeye başladı. Eskiden para basan internet cafeler yavaş yavaş boşalmaya başladı. Artık insanlar ihtiyaç duydukları veriye internetten erişmeye başladı. Oyunlar artık sıkıştırılmış dosya formatlarında dosya paylaşım sitelerinden indirilip bilgisayarlarımızda kullanılmaya başlandı. Cafelere gidip oyun kopyalama için pazarlık yapmaktan daha iyi bir seçenek, değil mi :) Akşamdan download’ları başlatır bırakırdık, sabaha bitmiş mi diye heyecanla bilgisayarın başına koşar bakardık. Bu internette merkezi bir lokasyona bırakılarak veri paylaşımının bir örneğiydi, örneğin Rapidshare sunucularından biz gidip paylaşılan veriyi kendi bilgisayarlarımıza çekiyorduk.

Büyük Değişim: P2P Networkler

Sonrasında Napster müzik piyasalarını derinden sarsan bir giriş yaptı. Müzik piyasalarını sarsan konu şuydu, müzik yani veri eskiden merkezi yerlerden sunulduğunda bununla başa çıkmak nispeten kolaydı, çözüm engellenmesini veya kaldırılmasını sağlamaktı. Ancak Napster merkezi yapıyı ortadan kaldırmış ve kullanıcıların birbirleri arasında anonim paylaşım(P2P) yapmasını sağlamıştı.

Dünya artık eskisi gibi olmayacaktı, hayatımıza torent türevleri girmiş, Bittorent, UTorent gibi yazılımlarla

her türlü veri bu şekilde kullanıcılar arasında paylaşılmaya başlamıştı. Filmler, müzikler, fotoğraflar ve bir çok şey…

Sene 2008: Mortgage Krizi

Üzerinden henüz 10 sene geçmedi. Mortgage krizi Mart 2008’de Bear Stearns’ten 2 gün içerisinde yaklaşık 17 milyar doların çekilmesiyle ilk kurbanını verdi. Oysa ki bankanın kriz öncesi değeri yaklaşık 20 milyar dolardı. Bu son olmayacaktı, sırasıyla 13 banka da yaklaşık 170 milyar doların üzerindeki büyüklükleriyle sırasıyla aynı çarka girmişlerdi. Bu bankalar hisse başı çok düşük meblağlara bir çoğu Bank of America tarafından olmak üzere alındı. Sandalye kapmaca hepimiz oynamışızdır, herkes birer sandalye kapmaya çalışır, bir kişi ayakta kalır. Batmakta olan bütün bankalar bir şekilde birer sandalye kaptılar ama ayakta kalan bir banka vardı, Lehman Brothers. Eylül 2008’de 613 Milyar Dolar’lık borcu ile iflasını açıkladı.*

Bitcoin’in Doğuşu

Bütün bu gelişmeler ışığında alışılageldik para düzenine olan inancın sarsılması ve bundan bütün dünyanın en ağır şekilde etkilenmesinin oluşturduğu ortamda bir kavram ortaya çıktı. 3 Ocak 2009 tarihinde Satoshi Nakamoto isimli kişi veya kişilerin ortaya çıkardığı Bitcoin sanal bir para birimi olarak seneler sonra çok fazla konuşulacaktı. Bu sanal para birimi temelinde Blockchain denen bir yaklaşım ile merkezi bir otoriteye ihtiyaç duymadan herkese açık bir muhasebe defteri üzerinde insanların birbirlerine değer aktarımı yapabilmesine olanak sağlıyordu. Evet, gerçekten de herkes herkesin değer aktarım hareketlerini görebilecek, yeni transfer başlatabilecek ve dahası bütün bunlar tamamen güvenli ve anonim bir şekilde gerçekleşecekti.

Yavaştan Tekniğe, Blockchain Nedir?

Bitcoin günümüzde artan taleple birlikte çok popüler hale gelse de bence daha büyük değer bunun altta çalıştığı Distributed Ledger Technology(DLT) ve Blockchain altyapısı. Öncelikle söyleyelim, her DLT bir Blockchain örneği değildir. Bu kavramlar yan yana çok fazla kullanılsalar da aynı şeyler değiller. Öncelikle DLT ile başlayalım.

Distributed Ledger Technology

Klasik banka uygulamalarını düşünelim, X bankasında bir hesabınız var. Hesabınıza dair tüm veriler o bankanın kendisinde bulunur, aynı banka içerisinde kalmak kaydı ile yaptığınız para transferleri(havale) yine aynı bankanın kendi veritabanları üzerinden gerçekleştirilir.

Y bankasında hesabı olan bir arkadaşınıza para göndermek istediğinizde(EFT) bu iki bankanın birbirleri arasında bir mutabakat sağlayabilecekleri bir sisteme ihtiyaç duyacaklardır. Ülkemizde Merkez Bankası bu transferde bir aracılık yapar.

Olayı biraz daha büyütelim, yurtdışına para göndereceğiz. Bir banka yurtdışındaki bir bankaya para göndereceğinde eğer göndereceği bankada kendisine ait bir hesabı varsa, yani zaten muhabir banka ise bir sıkıntı yok. Ancak yok ise bir muhabir banka aracılığıyla o hedef bankadaki hesaba parayı geçirmesi gerekir.

Bazen bu iş o kadar çetrefilli hale gelir ki paranın hedef bankaya ulaşabilmesi için birden fazla muhabir banka gezmesi gerekebilir. Bu durumda paranın hedef bankaya ulaşması günler alabilir.

İşte tam da bu sıkıntıların bulunduğu bir ortamda aynı P2P ağlarda veri paylaşımında gerçekleştiği gibi bir yenilik gerçekleşti. Adını Bitcoin olarak duyduk, ama asıl devrim altında yatan yaklaşım olan Blockchain’de idi. Bu yaklaşım bankaların tuttukları değer transfer verilerini herkesin görebileceği bir ortamda (DLT) şeffaf bir şekilde saklanabileceğini, aracı merkezi kurumlara gerek kalmayacağını, kullanıcıların bu sisteme anonim bir şekilde dahil olabileceğini dile getiriyordu. Artık en kritik noktalar olan güvenlik ve mutabakat yine sistemin içerisinde kullanıcılar tarafından sağlanacak, otoritesiz bir şekilde herkesin değer transferi sağlayabilecek bir sistem mümkün olacaktı.

Farkındaysanız bu sistemin tanımını yaparken para kelimesini kullanmaktan özellikle kaçındım. Çünkü para, bu güne kadar yüklediğimiz anlamlarla zihinlerde canlanan bir görüntüye sahip. Dijital para ile alışılageldik para anlayışında pek çok değişiklik olacak. Tabii bunun için biraz zamana ihtiyaç var. Değer anlayışındaki değişimi ayrıca bir yazıda ele almak gerekir diye düşünüyorum.

DLT’yi toparlamak gerekirse, transfer verilerinin merkezi bir otoritede tutulmadığı ve ortak mutabakata varılabilen bir muhasebe sistemidir dersek yanlış olmaz sanırım.

Peki ya Blockchain?

Blockchain biraz daha özel bir DLT sistemi. Public ve private olarak ikiye, permissioned ve permissionless diye tekrar ikiye ayrılıyorlar ama bu kavramlara sonra değineceğim. DLT’de bir otorite olmaksızın mutabakatın sağlanabildiğinden ve bunun merkezi otorite olmaksızın saklanabildiğinden bahsetmiştik. Mutabakatı yeni tamamlanmış işlemler tüm networke yayılıyor ve networkteki her bir katılımcı elindeki mutabakatı önceden tamamlanmış son işlem setiyle kolay bir şekilde yeni mutabakat setini doğrulayabiliyorsa ve saklayabiliyorsa bunun adına Blockchain deniyor. Bu cümleyi 3 kez okudunuz ama bir şey anlamaktan çok daha fazla aklınız karıştıysa doğru yoldayız :) Biraz açalım, açarken de örneğimizi Bitcoin üzerinden verelim.

Kullanıcılar Bitcoin ile alım ve satım emirleri veriyorlar. Verilen bu emirler sıralı olarak bir yerlerde depolanıyor. Vakti geldiğinde bu emirlerin bir kısmından bir kutu oluşturuluyor. Bu kutuya block adı veriliyor. Şu anda sn’de yaklaşık 7tps ile çalışıyor Bitcoin altyapısı, başarılı bir mutabakatın yaklaşık 15 dk sürdüğü düşünülürse yaklaşık 6300 adet işlem birden mutabakata sokuluyor, yani block’un içine dahil oluyor. Bu block tüm networke dağıtılması lazım ama bir problemimiz var. Networkte kötü niyetli birilerinin kendilerine çıkar sağlayacak şekilde sahte blocklar yayınlarsa bizim gerçek bloğumuz sahte blocklardan nasıl ayırt edilecek?

Blocklarımızın özelliği şu, ilk block bitcoin ilk duyurulduğunda yayınlandı ve adı genesis block idi. Id’si 0 olan bir block olarak düşünebiliriz. Sonraki ilk işlem seti kutulandığında yani block oluşturulduğunda bir önceki block’un id’sini kendi imzasının bir parçası haline getirir, yani yeni block’un idsini oluşturan elemanların içerisinde bir önceki block’un id’si bulunmalıdır. Bu durum yeni gelecek her block için geçerlidir, yeni block son geçerli block’un id’sini kullanarak kendi id’sini yaratır. Bu durum aslında sisteme de ismini vermiştir, blocklardan oluşan bir zincir. Bu zincir de zaten bizim historik olarak tutulan tüm işlemlerimizi içerdiğinden DLT’mizin ihtiyaçları karşılanmış oluyor.

Peki bu ID nasıl yaratılıyor? Bir önceki block’un id’sini kullanarak ben de bir block yaratamaz mıyım diye sorduğunuzu duyar gibiyim. Evet yaratırsınız, yarattığınız kutuya da kendi sahte işlemlerinizi koyar kutunuzu kapatır networke yayarsınız. Sistemi de bu şekilde yanıltır tüm değerleri kendinize toplarsınız :) demeyi ben de isterdim ama işler tam olarak öyle işlemiyor. Burada farklı Proof of yapıları(consensus algoritmaları) devreye giriyor. Biz Bitcoin örneğinden ilerlediğimiz için Proof of Work üzerinden devam edelim. Blockun tam olarak sistemin kendisi tarafından üretildiğini garanti altına almak için block matematiksel olarak çok zor bir işlemin çıktısı ile mühürleniyor. Bu işlemin girdileri, kutunun içeriğindeki işlem seti, bir önceki id bilgisi, …. ve bir sayı. Bu sayı kritik bizim için. Bütün bu girdiler matematiksel bir hash fonksiyonuna girerek 32 karakterden oluşan 12TFVXGDWF3GMSDjftnfKWpyEhgsW9DymN gibi bir değer oluşturuyor, buna hash deniyor. Ancak bizim hedefimiz örneğin ilk 4 karakteri 0 olacak şekilde bir hash oluşturmak, bunun için az önceki sayımızı 1 artırarak tekrar hash fonksiyonuna sokuyoruz. Yine mi olmadı, bir artırıp bir daha deniyoruz, tekrar tekrar tekrar denemelerimiz sonunda örneğin 92354’üncü denemede ilk 4 karakteri 0 ile başlayan bir hash elde ediyoruz, aslında elde etmiyoruz, denk getiriyoruz. Özetle bir block’un mühürlenmesi için binlerce, milyonlarca kez deneme yapmamız gerekiyor. Tek derdimiz kaçıncı denemede bu hashi elde edeceğimiz bilgisi. İşte bu işleme Mining deniyor. Ee bu kadar deneme yaptık ne elde ettik diyorsunuz tabii ki. Bu mining’i tamamlayıp ilk X adet karakteri 0 olan hashi üretmek için binlerce bilgisayar birbiriyle yarışıyor çünkü ilk bulana hediye var :) Ve bu işlem şu anda Bitcoin’de yaklaşık 13 dk sürüyor çünkü ilk 18 karakteri 0 olan bir hash elde edilmeye çalışılıyor. Matematiksel olarak elde edilmesi bu kadar güç olan bir sonuç bir o kadar kolay bir şekilde doğrulanabiliyor. Çünkü sonucu elde eden ilk miner ben 92354üncü denemede bu girdilerle bu sonucu elde edebildim dediğinde bütün bu değerler hash fonksiyonuna sokulunca gerçekten ilk X karakteri 0 olan söylenen hash oluşursa bu sonuç networke dağıtılır ve networkteki herkes yeni blocku başarılı bir block olarak kabul edip ellerindeki son blockun üzerine ekleyerek bu işlem döngüsüne devam eder. Blocklar zamanla bu şekilde üst üste gelerek Blockchain’i oluşturur. Siz de benim gibi deneyerek öğrenmek en iyisi diyenlerdenseniz sizlere bu adresi referans olarak verebilirim.

Bu günlerde dijital para insanların o kadar fazla dikkatini çekti ki asıl önemli olan altındaki mantalite ne yazık ki pek konuşulmuyor. O kadar ki ben Satoshi Nakamoto’yum diye kimliğini ve ilk transfer bilgilerini açıklayan Avusturalya’lı iş adamı Craig Wright bile ses getirmedi.(Gerçekten o veya değil, tartıştığım bu değil :) Ancak büyük şirketler Blockchain altyapısını fazlasıyla ciddiye aldı ve harıl harıl bu sistemden çıktı üretecek ürünler üretmeye çalışıyor. Hyperledger fabric, Enterprise Ethereum projeleri, R3 firmasının Corda’sı bunların birer örneği. Blockchain yaklaşımının geleceğimizin yönünü değiştireceği aşikar, bu sebeple en az işin dijital para kısmı kadar her bir altcoinin nasıl çalıştığı da incelenmesi gereken birer konu. Çünkü her biri farklı birer probleme çözüm getiriyorlar. En popüler olanı, Bitcoin ile kodları kurcalamaya başlayabilirsiniz.

Bu kadar teknik bir konuyu temel kavramlara değinerek en hafif şekilde anlatmaya çalıştım. İlerleyen yazılarda farklı Proof of konseptlerine, private-public, permissioned-permissionless network gibi kavramlara, daha detaylarda Merkle Tree, Bizans general problemi gibi konulardan, blockchain alternetifi olarak doğan başka DLT’lerden, olayın encryption/decrpytion bakış açılarından yazılar kaleme almaya çalışacağım.

Lütfen bizi LinkedIn ve Facebook’ta takip edin.




May interest this topics

If you interested in Blockchain Technologies,


comments powered by Disqus