Zincirleri Kırmak
Bu yazıdaki amacım; başta Türkiye olmak üzere dünyada blockchain konusunda düzenlenen seminer , toplantı ve zirve başlıklı etkinliklerin yüzeysel bilgilerinin yetersizliği ve anlatılan konuların ötesine giderek özellikle yazılım mühendisi ve teknolojiyi seven gençlerimizi de cesaretlendirerek alan , kullanan değil tam bir çözümü üreten yolda cesaretlendirmektir. Anlatacağım konu ve çözüm böyle bir çözümü 23 yaşında yazan Ethereum un sahibi Vitalik Buterin ‘ e hayranlık duyma ve onun çözümünü kullanmak yerine kendi çözümlerini de yazabileceklerini içeren bir yol haritasını göstermektir.
Yazının sonunda youtube üzerinde bulunan linkte bu yazıya konu olan teknolojilerin yine kendi yazdığım yazılımlar ve sunumların kısa ve özlü görüntüleri , anlatımlarını bulabilirsiniz. Yine diğer videolarda daha farklı teknolojiler üzerinde yazılımlarımın video larını da görmeniz mümkün.
Bitcoin belki devrim diye nitelendirilen bir yapı getirdi. Değiştirilemez yani immutable kayıtlar, dağıtık yapı ve güvenlik. Ayrıca madencilik kavramını da getirdi. Öyle bir algoritma ki POW dediğimiz proof-of-work yaklaşımına dayalı. Madenciler gelen işlemleri bir blok zincirine kaydetme hakkını ve karşılığında para kazanmayı elde edebilmek için verilen bir problem çözmek ve kendilerini kanıtlamak zorundaydılar. Bunun nasıl olduğunu bu yazının sonundaki linkten erişebileceğiniz video larımda detayıyla anlattım. Bu çok fazla elektrik harcanmasına yol açan ve çok karmaşık ASIC tabir edilen cihazların ortaya çıkmasına neden oldu. Eksiği ethereum tamamladı. Akıllı kontrat dediğimiz aslında bir kod kümesinden oluşan ve dApps dediğimiz dağıtık uygulamalar yazıp kendi çözümlerinizi ürettiğiniz bir ortam sağlamaktaydı. Ancak Ethereum da pow çalışıyordu. POW ve akıllı kontratlar performansta sorunlara yol açmaya başlamıştı. Şu an POS dediğimiz proof-of-stake e geçmeye hazırlanıyor ethereum. Bu yaklaşımda madencilerin kazı yapmalarına gerek olmadan otomatik olarak herkes işlemlerden para kazanan bir algoritma ile destekleniyor. Elektrik harcama sorunu ortadan kalkıyor. Ripple ise daha farklı ve daha private bir yapı. Daha çok X li ürünlerle finans piyasalarına yönelik çalışıyor.
Kripto para tabanlı blok zincirleri dışında kurumsal blok zinciri tabanlı parasız çalışan tamamen farklı yapılarda var ve oldukça popüler durumdalar. Bunların en bilineni Hyperledger. Paralı blok zincirleri permissionless yani şeffaf ve herkesin göreceği verileri barındırıyor. Kurumsal blok zincirleri ise permissioned yani verinin kime gösterileceği konusunda izin yapıları var ve herkese şeffaf değil. Böyle olunca da kurumsal şirketlerin ilgisini doğal olarak çekiyor. Ayrıca yapısı modüler olduğundan consensus mekanizması (bir işlemin onayı ve blok içinde yer alması ve bloğun zincire kaydı) ve algoritmaları kendiniz değiştirebiliyor ve tak çıkar yapabiliyorsunuz. Hyperledger tamamen açık kaynak kodlu ve dünyanın en büyük bilişim firmaları tarafından da destekleniyor. Bir çok sektöre de çözüm getirmiş durumdalar.
Son zamanlarda blockchain ile özellikle bu yazılımı hiç yazmamış ve çeşitli yerlerden öğrenerek ilgilenen ve hatta sunum yaparak insanlara anlatan bir çok kişi görüyoruz. Yanlış yönlendirmeye müsait çok fazla bilgi kirliliği görüyoruz. Net söyleyeyim: Bir blockchain kurulan algoritmaya göre belli saniyeler içinde sürekli blok veri üretmiyorsa ve sadece veri girişlerinde üretiyorsa o private olur public olmaz yani dışarı açık olmaz. Olursa hack edilmesi kolay olur ve hack edilir. Private olanlar kendi içinde dağıtık veritabanına sahip olabilir. Kripto para ile çalışanlar sürekli blok uretirler. Blockchain in ruhu budur. Siz bunu hyperledger gibi kurumsallarda yaparsanız bunlar private dir ve blockchain yapısı kripto veriden ileri gitmez. Ancak işinizi yine de harika gorur. Private kripto para çözümlerinde de sürekli blok üretilir ve zaten bu türler hem public hem de private çalışabilir. Private olan ve sürekli blok üretmeye ihtiyacı olmayan yapıları cok kolay yazabilirsiniz. Merkle Tree ve blok ile blockchain mantığını birlikte cok kolay kullanabilirsiniz. Anahtar kısım bunun veritabanını handle edecek yapıdır. Gerisi kolay. Madem private hack edilemiyor dışarıya kapalı o zaman biz neden ssürekli blockchain uzerine gidiyoruz ve eski şekilde çalışmıyoruz sorusuna da siz yanit verin 🙂 Hiz, dağıtık yapı, yine guvenlik, permissioned yapi, moduler olabilme, algoritma yi degistirebilme, custom yapilar vs vs.. Nedir?
Buradaki yazımın konusu kripto para tabanlı blockchainler olacaktır.
Kurumsal tabanlı hyperledger türü blockchain tabanlı çözümler içinde benzer çalışma aynı şekilde yapılabilir. Yazı sonunda verilen linkte bulunan video larda kripto para ve parasiz kurumsal blockchain lerle ilgili yorumları seyredip dinleyebilirsiniz.
Akıllı kontrat desteği olmadığından bitcoin ‘i bir kenara bırakıp ethereum gibi bir yapının tamamına sahip olduğunuz yazılıma sahip olmak istemez misiniz? Binlerce satır yazılım kodu , mimarisi, blockchain teknolojisi vb ne müthiş olurdu değil mi.? Amaç sadece para çıkarmak değil de bu teknoloji ile ürettiğiniz yepyeni altyapı ile kapalı veya açık network de ne kadar çeşitli çözümler üreteceğiniz konusu. Bankalardan, finans kuruluşlarına, tapudan, kimlik bilgilerine aklınıza ne gelirse her konuda. Aksi durumda ethereum yapısına bağlısınız ve her işlem başına miner yani madencilere para ödemek zorundasınız.. Bugün bir çok kişi aslında ethereum üzerinde akıllı kontratlarla ürettikleri çözümlerle ortaya çıkıyorlar. Siz de çok uzman olmanıza gerek kalmadan solidity yazılım dilini kısa zamanda öğrenip bu yapıları kodlayabilirsiniz. Ben ise ethereum benzeri tamamına sahip olacağınız bir yazılımdan bahsediyorum.
Şimdi teknoloji ve mimari taraf hakkında biraz bilgi vererek bunu nasıl başarabileceğinizi anlatayım. Öncelikle yapacağımız yazılım saniyede 1000-1500 (iyi bir donanımla 2000 olabilir) işlem yapabilecek ve 15-20 saniyede bir bloğu zincire ekleyecek ve bir blok içinde 15.000-20.000 işlem olabilecektir. Hiç işlem olmasa dahi 15-20 saniyede blockchain ruhuna uygun olarak boş bile olsa blok ları üretip zincire ekleyecektir. Yazılım byzantine fault tolerant (BFT) olarak herhangi bir server-sistem hatasına göre sorun çıkarmadan çalışabilecektir.
Bunu yazılımı yazacak kişi sadece smart contract yazan uzman tipinde olamaz. Mimariyi başından sonuna planlayacak ileri düzey yazılım teknolojilerini bilen bir yazılım mühendisi veya mimarı olmalı. Bu yazılımı neden ve kimler için üreteceğini de net ortaya koymalı. Ben hem Bitcoin, Ethereum gibi hem de kapalı topluluklar (örnegin sadece bir banka, finans kuruluşu veya devlet tarafı) şeklinde çalışabilecek olmasını tercih ederim.
Blockchain teknolojisini çok iyi bildiğimizi varsayıyorum. Eğer bilmiyorsanız yazımın en sonunda verilen linkten video larıma göz atabilirsiniz. Ethereum gibi solidity yazılım diline bağlı olmak yerine (ki solidity Java veya C# bilenler için çok kolay) değişik yazılım dilleriyle de yazılabileceği özgürlüğünü de ortaya koyuyorum baştan. Kriptografi, VM, derleyici, merkle trees, pow ve pos (proof-of-work, proof-of-stake ) , dao, consensus ve algoritması, smart contract (akıllı sözleşme) , p2p ağlar, vb bilgilerimiz de çok çok iyi olmalı vs vs. Kısacası hazır durumdayız.
Önce esas framework (basitçe kütüphane diyelim ) yazmalısınız. Burada protokoller, network, p2p, system , kontratlar, konsensuz algoritmaları vs vs her şey olmalı.
Sonra olmazsa olmaz light bir VM – virtual machine- yani küçük ölçekte bir sanal makine virtual machine yazmalısınız. Neden? Miner lara yazacağınız yazılım bunu kullanacak ve smart kontrat lar (aslında kod bu) geldiğinde bunları işte bu VM çalıştıracak ve sonucu işleyecek.
Ana bilgisayar-server yazılımınız ki ağ-internet üzerinden çalışmalı hatta birden fazla olmalı. Bunun yazılımını da önce yazdığınız framework ile oluşturmalısınız, yazmalısınız. Bu niye lazım diyenlere düşünme süresi veriyorum 🙂 Olmazsa yine linkten video lara göz atmanızı isterim.
Sonra miner yani madenciler için olan yazılımı ki pos yani proof-of-stake olarak yazıyorsak gerekli olmaz ve wallet yani cüzdanı mutlaka yazmalısınız. Bu yazılım içinde yukarıda bahsettiğim VM de olmalı. Unutmayın ilk önce ana framework ü yazmalı ve sonra diğer tüm yazılımlarda bunu kullanmalısınız.
İşte Bitcoin, ethereum vb blockchain tabanlı yazılımlar bunları yaparak işe başladılar.
Ve sonunda yazdınız, artık bunun tüm know-how ve teknolojisine sahipsiniz. İster bu teknolojik yazılımı tek başına bir kuruma kurup sadece kendilerinin kullanmasını sağlarsınız isterseniz de herkese açacak sektör bazlı vb çözümler üretecek yerlere kiraya da verebilir ya da satabilirsiniz. ICO ya da çıkabilirsiniz. Bildiğim benzersiz bir know-how a sahipsiniz ve elinizde böyle bir hazine varsa kapınızı çalacak da çok kişi veya kurum da olacaktır. Know-how ve yazılımın tamamının bir üniversite tarafından sahip olunması bu konuda eğitim açısından o üniversiteye inanılmaz bir avantaj da sağlayacaktır.
Bu makalenin etkili şekilde anlaşılması için bu konularda kendi geliştirdiğim tüm yazılımların çalışmasını, bu yapı ile yazılan bu yazılımların kısa, öz sunumlarını ve ilgili tüm detay video lara aşağıdaki linkten ulaşabilirsiniz.
https://www.youtube.com/user/socialmediagent