Blockchain konusu oldukça önemli olduğundan, bu konuyu dört başlık altında inceleyeceğiz. Bu haftaki yazımızda, Blockchain’in temel kavramlarını açıklamaya çalışacağım. Bir sonraki hafta Blockchain türlerini, daha sonraki haftada ise Blockchain’in kullanım alanlarını anlatacağım. Blockchain’in yaygınlaşmasının önemli nedenlerinden biri olan kripto paralar ve Bitcoin’i ise sona bıraktım.
Blockchain kavramını Türkçe'ye "Blok Zinciri" olarak çevirmek mümkün. Bu konuyla ilgilenenlerin yaptıkları tanımlamalara göre; "Blockchain, binlerce makineden oluşan bir ağ üzerinde aynı anda çalışan dağıtık bir veri tabanıdır."
Sistemde bir tek veri merkezi yoktur; tüm veri binlerce makineye dağıtıldığından uygulamaya "Dağıtık Veri Tabanı (Distributed Database)" denilmektedir. Blockchain’i diğer veri tabanlarından ayıran önemli bir özelliği ise veri tabanında arka arkaya eklenen verilerin, bloklar halinde birbirine güvenli bir zincir ile bağlanmasıdır. Blokchain’i aslında, içine giriş yapıldıktan sonra kayıtları değiştirilemeyen / silinemeyen (immutable) büyük bir defter ("Defter-i Kebir" gibi) olarak da düşünebilirsiniz. Ancak, kayıtları kimse tarafından değiştirilemeyen bu defteri istendiğinde sayısız kişi ve kurumlar ile paylaşabilirsiniz.
Sisteme veri girişleri, art arda gelen bloklar olarak yapılırken, her bir veri kayıt bloğunun içinde, zamanı da bulunduran bir güvenlik damgası bulunur. Böylece sisteme kaydedilen veriler, bir önceki veri ile şifrelenmiş bağlantı damgası (cryptographic hash) bulunan bloklarda yer alır.
Blockchain uygulamasına giren hiçbir verinin silinmesine / değiştirilmesine izin verilmez (immutable). Bu uygulama bazı kesimlerce güven unsuru olarak nitelenirken, bazı kesimlerce de, tam tersi, sistemin yumuşak karnı olarak adlandırılmaktadır.
İlk bakışta yukarıda kullanılan tanımlar biraz karışık gibi görünmektedir. Tanımı anlayabilmek için, web, blok, dağıtık veri tabanı, açıklık, güvenlik gibi kavramları ve bu kavramlarla ilgili bazı değişkenleri anlamamız gerekmektedir. Bu kavramlardan sonra sistemi daha detayıyla tanıtmaya çalışacağım.
Blockchain teknolojisi özünde bir Web uygulamasıdır. Aslında Web uygulamalarının üçüncü ayağı (Web 3.0) da denilebilir. Web’in aşamalarını konuya yabancı olanlar için biraz açıklayayım:
Web kelime anlamı ile örümcek ağı demektir. İnternet üzerine kurulan bu ağ, üzerinde yer alan bilgilerin birbiri ile ilişkisini ve iletişimini anlatır. Yetmişli yıllarda kullanılmaya başlanan Web 1.0 dönemi kullanıcılar için pek fazla interaktif değildi. Uluslararası kurumlar ve akademisyenlerin başını çektiği grupların oluşturduğu ve sadece bilgi vermek amacıyla kurulmuş sayfalardı. Bu dönemde web kullanıcıları e-postalarını ve dosyalarını yollayabiliyorlar, var olan web sitelerinde yayınlanan bilgilerden ise sadece yararlanabiliyorlardı. Siteye yorum yapma, soru sorma ya da içeriğe katkıda bulunma imkânları yoktu. Yani pasif kullanıcı durumundaydılar.
Web 1.0 döneminde kullanıma sunulan sistemlerin öne çıkan özellikleri, herkesin erişimine açık ve ücretsiz olmalarıydı.
Web 2.0’da ise hem kullanıcı aktif hem de sitelerin kullanımı interaktiftir. Facebook, Twitter, Flickr, Ebay, Amazon, Youtube, vb. gibi siteler Web 2.0’ın en iyi örnekleridir. Bu kar odaklı şirketler, internet kullanıcılarına aktif olma ve özgürce kendilerini ifade etme imkânı sundular.
Ancak kapitalizmde hiçbir hizmet ücretsiz sunulmaz. Her hizmet bir şekilde paraya dönüştürülür. Yukarıda saydığımız web sitelerinin hizmetleri de ücretsiz gibi görünse de aslında değildir. Bizlerden elde ettikleri kişisel verilerimizi büyük paralara çevirmektedirler. Bu konuyu "Endüstri 4.0’ın Bileşenleri: Büyük Veri" adlı yazımda anlattığım için detaya girmeyeceğim.
Günümüzde ağırlıklı olarak Kripto paralar ile yapılan finansal işlemlerin güvenilir bir şekilde kayıt altına alınması amacıyla kullanılan blockchain ve benzeri teknolojilere Web 3.0 adı verilmektedir. Blockchain’in en önemli özelliklerinden biri kullanımının ücretsiz olmasıdır. Yazımızın ilerleyen bölümlerinde anlatılacağı üzere, ticari işlemlerde pek çok arayıcıyı saf dışı ederek, muhatapları karşı karşıya getirmektedir.
Dolayısıyla kavramlarımın tanıtımına "Blok" kavramı ile devam edelim.
Sizin bir makine üreticisi olduğunuzu ve yurtdışında bir firmaya satış yaptığınızı varsayalım: Bu satış süreci size ulaşan talep yazısı ile başlar. Sonra siz teklif verirsiniz. Sonra pazarlık yazışmaları başlar. Sonra anlaşma yapılır. Belki ön ödeme alınır. Ürün ve para transferleri sonuçlanana kadar süreç böylece devam eder.
Bu işlemleri yaparken birbirine zincirle bağlanmış ve her biri iki anahtarla açılan dosya kutucukları kullandığınızı varsayalım. Size gelen talep yazışmaları ve sizin teklifinizi bir kutuda toplamak istiyorsunuz. Bu kutuyu açabilmeniz için iki anahtara ihtiyacınız var. Birinci anahtar sizin özel anahtarınız, ikincisi ise her bir kutuya özgü anahtarlardır.
Birinci kutuyu kendi özel anahtarınız ve kutu anahtarı ile açtıktan sonra dosyalarınızı kutuya koymaya başlıyorsunuz. Kutunun kapasitesi dolunca elindeki dosya ve evrakları ikinci kutuya koymanız gerekecektir. İkinci kutuyu açabilmeniz için hem birinci kutunun anahtarına hem de ikinci kutunun anahtarına ihtiyacınız var. Üçüncü kutuya geçerken ikinci kutuyu kilitlemeniz gerekmektedir. İkinci kutuyu kilitlerken, birinci kutunun anahtarını ikinci kutunun içine koyup, kilitliyorsunuz.
Üçüncü kutuyu kendi anahtarı ve sizin özel anahtarınız ile açıyorsunuz. Bu kutu ile işiniz bittiğinde ikinci kutunun anahtarını da içine koyup kilitliyorsunuz. Bu işlem sürekli benzer şekilde tekrarlanıyor. Her yeni kutunun içine bir önceki kutunun anahtarını da yerleştiriyorsunuz
Yukarıdaki örnekte bahsettiğimiz her bir dosya kutusu, blockchain teknolojisinde bahsedilen "Blok" kavramını tanımlar. Bu blokların birbirine zincirlenmesinin amacı, işlemlerin zaman sürecine göre izlenebilmesidir. Her bir kutunun anahtarının diğerinin içinde saklanması ise kutuların açılıp, işlemlerin değiştirilmesini önlemekte bir engel teşkil etmektedir. Bu işlem blokchain teknolojisinin çok önemli bir özelliğidir. Blockchain’e giren ve onaylanan hiçbir işlem geriye dönük olarak değiştirilemez. Bu ise dolandırıcılık ve sahtekârlık olaylarını önler.
Varsayalım ki işini iyi bilen bir hırsız kutulardan birini açtı veya bloklarda kullanılan şifreyi çözdü. Böyle bir durumda, kayıtlara geçen verilerinizin değiştirilebilmesine karşı nasıl bir güvenlik önleminiz olabilir?
İşte burada, yukarıdaki tanımda belirtilen "Dağıtık (Distributed) Veri" kavramı devreye giriyor. Siz, kilitleyip, birbirine zincirlediğiniz her dosyanın birer kopyasının şirkette görevli 10 kişiye daha yolluyorsunuz. Yani onlarda da sizin dosya zincirinizin tamamı var. Bu on kişi sürekli birbiriyle iletişim halindeler. Bu kutular içinde bir işlem yapıldığında bu on kişiye bir uyarı gidiyor ve onlar da aynı değişiklikleri kaydedip, onaylıyorlar.
Tekrar becerikli hırsızımıza dönelim; hırsız herhangi bir kutuyu açıp, bir değişiklik yapmaya kalktığında, yapılan işlemler diğer defterlerdeki zincirler ile uyumlu olmayacağından, diğer onaylayıcılar bu işleme itiraz onaylamayacaklardır.
Verilerin bu şekilde dağıtık şekilde tutulması sistemin ikinci en önemli güvenlik önlemidir.
Her bir zincirlenmiş kayıt bloğunda şifreleme damgası (cryptographic hash) bulunması ve kayıtların bulunduğu defterin internet üzerinde dağıtık bir şekilde birçok bilgisayarda kopyasının bulunması uygulamanın önemli güvenlik önlemlerinin başında gelmektedir.
Ayrıca, blockchain üzerindeki herhangi bir kopyada, bilerek veya bilmeyerek, herhangi bir kayıt bloğunda yapılacak olan değişikliğin diğer defter kopyaları tarafından reddedilecek olması blockchain’deki kayıtların bozulamayacak / değiştirilemeyecek / silinemeyecek (immutable) şekilde güvenli olmasını sağlamaktadır.
Erişilmek istenilen blockchain güvenliği seviyesine bağlı olarak aynı kurum içinde birçok bilgisayarda, aynı şehirde birçok değişik binada, aynı ülkede birçok değişik şehirde ve en sonunda dünyada birçok ülkede bulunabilir.
Blockchain teknolojisinin bir özelliği de sistemdeki tüm bilgilerin herkese açık olmasıdır. Yani sistem yüzde yüz şeffaftır. Zincirdeki tüm işlemler, zaman sırasına göre herkesin incelemesine açıktır. Bunu da kütüphanelerdeki kitap kayıt kartlarına benzetiyorum. Eskiden kitapların arka kapağının içinde bir kart yer alırdı. Bu karta kitabı sizden önce okuyanların ad ve soyadları, kitabı aldıkları ve teslim ettikleri tarihler yazılırdı. Böylece herkes hangi kitabı, kimlerin hangi tarihlerde okuduğunu görebilirdi.
Blockchain’de yapılan tüm işlemler de, yukarıda yer alan kitap kartı örneğindeki gibi herkese açıktır. Ancak burada bir fark vardır. Diğer kullanıcılar gerçek kimliğiniz yerine, 64 alfa-numerik karakterden oluşan bir kimlik bilgisi görürler.
Blockchain’in ana temellerinden biri de "Akıllı Kontrat" kavramıdır. Özetlemek gerekirse, Akıllı Kontratlar, içeriği itibariyle aslında günlük hayatta kullandığımız kontratların program diline uyarlanmasıdır.
Normal hayatta yapılan kontratlara uymama olasılığı blockchain teknolojisinde geçerli değildir. Akıllı kontratta, içinde belirtilen koşullar gerçekleştiğinde, bilgisayarlar tüm taahhütleri otomatik olarak yerine getirmektedir.
Diyelim ki bir kişi blockchain kullanarak bir başka kişiden mal satın alımı yapmak istiyor; ilk koşul, her iki tarafın da bir blockchain ağı üzerinde birer Kripto para hesabı (cüzdanı) olmasıdır. Şayet alıcı ve satıcının Kripto para hesabı varsa ikinci aşama olarak, aralarında gerçek hayattakine benzer bir kontrat yapıp, kontratı blockchain’e gireceklerdir. Kontratta belirtilen koşullar gerçekleştiğinde blockchain hiçbir tereddüte gerek kalmadan ödemeyi yapacaktır.
Blockchain tek başına bir uygulama değildir. Temelde web uygulamalarına alt yapı sağlayan bir sistemdir. Ancak, pek doğru olmasa da blockchain sistemi üzerinde çalışan benzer web uygulamalarının jenerik adı olarak da kullanılmaktadır. Halihazırda pek çok blockchain uygulaması vardır. Blockchain’in özü, birbirine uzaktan bağlı makinelerin, belli işlemleri ortak bir mutabakat yoluyla değiştirilemez (immutable) biçimde tutmalarıdır.
Blockchain teknolojisi, bitcoin ile birlikte anılmasına rağmen, bitcoin’den çok önce icat edilmiş bir yazılım teknolojisidir. Bu uygulamanın fikri 1970’lerde doğmuş, ilk kullanımı 1991 yılında gerçekleştirilmiştir.
31 Ekim 2008’de, "Satoshi Nakamoto" adında gizemli bir yazar kriptografi ile ilgili bir mail grubunda "Bitcoin: Eşler Arası Elektronik Nakit Sistemi" adında bir araştırma makalesi yayınladı. (Satoshi Nakamoto’nun gerçek bir kişi olup olmadığı ya da tek kişi mi bir grup mu olduğu halen gizemini korumaktadır.) Makalede "dünyanın ilk merkezi olmayan dijital para biriminin yaratılması" çağrısı yapıldı.[1]
Bu çağrıyı takiben blockchain üzerinde ilk kripto para türü olan bitcoin kullanılmaya başlandı. Bitcoin kavramını önümüzdeki hafta yayınlanacak yazımda detayıyla inceleyeceğiz. Dolayısıyla detaya girmeden, kısa bir tanım yapalım; bitcoin, sanal dünyada gerçekleşen her türlü alış verişin ödemesinin, blockchain teknolojisi kullanılarak yapıldığı, uluslararası geçerliliği olan (her ne kadar bazı ülkeler resmi olarak tanımasalar da) bir sanal, kripto paradır.
Çok kullanılan kripto kelimesinin de tanımını yapmadan geçmeyelim:
Günlük hayatta kripto, siyasi görüşlerini saklayan kimseleri tanımlamakta kullanılır. Günümüz siyasi hayatında sıkça kullanılmaktadır. Ticari kullanımı ise; gizli, saklı, şifrelenmiş belge demektir. Kripto para ise; sanal ortamda kullanılmak için yaratılmış paranın, blockchain teknolojisi altında, kriptoloji tekniği ile kodlanması demektir.
Blockchain binlerce bilgisayar, mobil telefon, tablet ve üzerinde internet iletişimi bulunan birçok değişik cihazların birbirine bağlanması ile oluşan ağdır. Bu ağ üzerinde yapılan işlemlerin kaydedildiği ya da onaylandığı tek bir merkez yoktur. Yapılan her işlem binlerce makineye kaydedilir. Yine işlemlerin onayı da binlerce makineden gelir. Bu duruma ‘Dağıtık Ağ’ denilir. Aşağıdaki diyagramlarda tek merkezli, çok merkezli ve dağıtık merkezli ağlar gösterilmektedir.
Birçok araştırmacının, blockchain’i bütün işlemlerin kaydedildiği ‘Büyük Defter’ olarak da tanımlamakta olduğunu zaten yazımızda, yukarıda belirtmiştik. Şimdi yukarıdaki diyagrama bakarak düşünelim:
Birinci alternatifimiz tüm verilerin tek merkezli bir ağda toplanması olsun. Günümüzde hacker’ların açamayacağı dijital kilit yoktur. Ne kadar iyi korunursa korunsun, hacker’lar bu tek merkezli ağı ele geçirdiğinde tüm verilere sahip olurlar. Facebook’un verilerinin, 2016 yılında, siyasi amaçlarla kullanılmasında böyle bir güvenlik zafiyeti mazeret olarak gösterilmişti.
Çok merkezli ağ, tek merkezli ağa göre daha güvenli gözükse de bir merkezden diğerine sızmak imkânsız değildir.
Dağıtık ağ sisteminde ise merkez kavramı yoktur. Sistemdeki binlerce bilgisayar tüm verilerin kaydını tutmakta ve işlemlere onay vermektedir. Sistemin bu özelliği kullanıcıların en çok önem verdiği güvenlik kavramını gerçekleştirir. Hacker’lar sisteme bir yerlerden sızsa bile, gerçekleştireceği değişiklik diğer makineler tarafından kendi kayıtları ile uyuşmayacağından, fark edilip, onaylanmayacaktır.[2]
Yukarıdaki örnekte de belirttiğimiz üzere, yapılan işlemler bloklar halinde kaydedilir ve bu bloklar birbirilerine bağlanarak, saklanır. Her blokun kapasitesi 1 MB civarındadır. Bu kapasite dolduğunda blok şifrelenerek diğer bloka bağlanır. Blokların birbirine bağlanması ile oluşan sıraya zincir adı verilir. Her bir işlemin blok içinde bir zaman damgası vardır. Yukarıda verdiğimiz örnekte, bir dosya kutusu (blok) dolup diğerine geçerken, bir önceki kutunun anahtarını da mevcut kutunun içine koyup, kilitliyoruz, demiştik. Bu kilit blockchain teknolojisinde ‘Hash’ olarak adlandırılır. Hash, bloğun parmak izi gibidir.
Hazır yeri gelmişken hash’in ne olduğunu da görelim. Hash bir siteye girerken oluşturduğumuz parolamızın, söz konusu sitede MD5 ya da SHA-256 kriptografik algoritma sistemlerinden biri ile şifrelenmesidir. Örneğin, parola olarak "HayriCem"i kullanmaya karar versem, SHA-256 sistemi bu parolayı; "55939f9b548eb5c8c714cb8bdd5ff3323e192bca06987d922f53c41c30202499" benzeri bir şekle dönüştürecektir.[3]
Bu sistemin güzel yanı, yazdıklarınız, uzunluğundan bağımsız olarak, 64 karakter olarak şifrelenmektedir. Yani sadece Hayricem de yazsanız, koskoca bir paragraf da yazsanız sizin karşınıza 64 karakterden oluşan bir metin çıkacaktır. Mesela, "Bugün işe gitmedim" diye yazdığımda da sistem bu cümleyi şöyle şifreledi; "e856e13dcee9dec91c0c9270efa6714e8a41eebe2a71b8f4e10de37c582768c2"
Hash’lerin kullanım amacı, parolaları veri tabanında (database) düz yazı halinde depolamasının sakıncalarını ortadan kaldırmaktır. Örneğin bu veri tabanı bir hacker tarafından çalınsaydı parolamızın "HayriCem" olduğunu anında görecekti. Oysa hash’leri kırmak için ayrı bir çaba sarf etmek gerekir. "HayriCem" çok zayıf bir parola olduğu için dakikalar içinde kırılabilir ama daha uzun ve karmaşık parolaları kırmak için yıllar gerekecektir.[4]
Blockchain üzerinde, verinin dağıtıldığı merkezlerde birer "Node - (Düğüm)" adı verilen cihaz bulunmaktadır. Bu cihazların büyük çoğunluğu bilgisayarlardır. Ancak, mobil telefon ve tablet gibi pek çok cihaz da bu görevi yapabilir. Bu cihazlar, kendilerine ulaşan hash’leri çözerek, diğer cihazlar arasında mutabakat sağlar ve yapılan işlemin tüm noktalarda kaydedilmesini gerçekleştirir.
Blockchain uygulamasında, hash’leri çözen düğüm noktalarını yöneten kişiler "Madenci - (Miner)" olarak adlandırılmaktadır. Bu madenciler, 1 MB’a ulaşan blokları onaylayıp, zincire dahil ederler. Bir blokun zincire dahil edilebilmesi için en az 2 madenci tarafından onaylanması gerekir. Madenciler, elektronik mutabakat tarafından onaylanan bir blok ürettiklerinde coin ile ödüllendirilirler.
Madencileri bu iş için teşvik eden tek şey ödül değil; aynı zamanda bitcoin kullanıcılarının ödedikleri işlemlerden de ücret alıyorlar. Güncel olarak bitcoin kullanılarak çok fazla sayıda işlem yapıldığı için işlem ücretleri de fırlamış durumda. İşlem ücreti gönderici tarafından gönüllü olarak ödeniyor fakat madenciler yüksek ücret ödenmiş işlemlere öncelik gösteriyor. Yani nispeten yüksek bir ücret ödemediğiniz zaman işleminizin onaylanması uzun süre alabiliyor.[5]
Blockchain teknolojisinde geriye dönük işlem yapma imkânı yoktur. Varsayalım ki bir para transferini yanlışlıkla yaptınız, bu yanlışlığı düzeltmenize imkân verilmemektedir. Bu katı sistem, kayıtlı verilerin geriye dönük değiştirilerek, yolsuzluk yapılmasını imkânsızlaştırmak için oluşturulmuştur. Sisteme bir yerden bir hacker’ın sızdığını varsayalım, geriye gidebilmek için tüm blokları tek tek açıp, bir önceki anahtarı da bulup kullanması gerekmektedir. Bu imkânsıza yakın bir işlemdir. Yine varsayalım ki tüm anahtarları da çözüp, bazı işlemleri iptal etti ya da yeni işlemler yapmaya çalıştı. Bu işlem değişiklikleri blockchain’in dağıtık ağı üzerindeki diğer makinelerce anında fark edilecektir. Zira blockchain üzerinde yapılan tüm işlemler binlerce makineye (Node - Düğüm) dağıtılmakta ve aralarında mutabakat sağlanmaktadır. Bu özelliğinden dolayı blockchain teknolojisine, muhasebede kullanılan yukarıda bahsettiğimiz Defter-i Kebir (Distributed Ledger) yakıştırması yapılmaktadır.
(Haftaya Blockchain Türleri’ni anlatacağım.)
[1] ROSS Alec, Geleceğin Endüstrileri, Orion Kitabevi, Ankara 2017, s.104
[2] DEMARTINO Ian, Bitcoin Rehberi, Epsilon, İstanbul 2018, s.38
[3] https://movable-type.co.uk/scripts/sha256.html
[4] Hash Nedir Nasıl Çalışır, BilgiGüvende.com, URL: https://bilgiguvende.com/hash-nedir-nasil-calisir-ne-ise-yarar/
[5] URL : Coin Telegraph. https://tr.cointelegraph.com/bitcoin-for-beginners/how-blockchain-technology-works-guide-for-beginners