Blockchain nedir?
Oldukça basit gibi görünen ancak cevap arayışında giderek karmaşık hale gelebilen “Blockchain nedir?” sorusunun yanıt arayışında, Ahmet Usta ve Serkan Doğantekin tarafından kaleme alınan Blockchain 101 v.2‘nin ilgili bölümüne göz atıyoruz.
Teknolojinin gelişmesi sonucu artık veriyi merkezi sistemlere kaydetmek zorunda değiliz. İstediğimiz her veri kümesinin dilediğimiz sayıda kopyasını çıkartarak ve bu kopyaları dağıtarak saklamamız mümkün. Artık verinin büyüklüğü, kopyalanarak pek çok noktaya dağıtılması için bir engel de teşkil etmiyor zira çok yüksek hızlı iletişim ağlarına sahibiz. Aslında bu Blockchain dünyasına giriş için gerekli olan birinci aşamayı bizlere sunuyor.
Aşama 1: Dijital Kayıtların Evrimi
Tekrarlayacak olursak; önce bir kaydın tek bir kopyasına sahiptik, daha sonra bu kaydı birkaç bilgisayara dağıttık, daha sonra bu kaydın pek çok kopyasını pek çok bilgisayara dağıttık, nihayet her bilgisayar ki burada bilgisayar ifadesinin içine artık akıllı cep telefonları ve internete bağlanabilen diğer elektronik cihazalar da girmektedir, işlemin bir kaydını tutacak hale geldi. Bunun en temel sebebi ise maliyetlerin zaman içinde ciddi şekilde düşmesiydi.
Moore, Metcalfe, Reed hatta Bezos kanunları olarak ifade edilen yaklaşımlar temelde bize aynı şeyi söyler: dijital teknolojilerde gelişim süreci o kadar hızlıdır ki her birkaç yıllık dönemde teknolojik ilerlemeye kıyasla maliyetler ters orantılı olarak düşüş gösterir.
Bu gelişim bizi yukarıdaki şekilde gördüğümüz son aşamaya; yani temel olarak verinin, ucuzlayan iletişim ağları üzerinden, pek çok sayıdaki bilgisayarlara dağıtılmasını pratik açıdan mümkün olduğu noktaya getiriyor. Bu noktada kayıtlarımız tüm sistemlere kopyalanmış oluyor.
Bu yaklaşıma Dağıtık Kayıt Defteri (Distributed Ledger) adı verilmektedir. Bu kavramın yeni bir kavram olmadığını ve geçmişte eDonkey veya Bittorrent gibi ağlarda kullanıldığını anlatmıştık. Ancak bu ağların ortak sorunu üzerinde tutulan verinin genellikle şifrelenmemiş olmasıdır. Bu sebeple dileyen herkes bu verilere erişebilir. Bu noktada verileri şifreleyerek (kriptografi) ile dağıtık kayıt defterlerine aktarmak mümkün olabilir ancak bu durumda veriyi şifreleyen kişi/taraf dışında hiç kimse bu veriden fayda göremeyecektir. Üstelik herhangi bir şekilde ağ noktalarının birisinde veri üzerinde bir değişiklik meydana gelirse verimiz şifrelenmiş olsa bile tutarsız durumlar ortaya çıkabilir. Bu durum bizi ikinci aşamaya taşır.
Aşama 2: Dağıtık Kayıt Defterinde Nitelikler ve Süreçler
Birden fazla tarafın bulunduğu bir sistemde, sisteme eklenmesi istenen her verinin geçerli bir standarda sahip olması beklenir. Böylece sistemin bütünlüğü korunabilecektir. Ancak dağıtık yapılar birbirini tanımayan taraflardan oluşabileceği için sistemin geneli tarafından kabul edilmiş kurallara bağlı bir yapı kurgulamak gerekecektir. Bu kurallar belli bir amaca hizmet edecek sistemlerin tasarım aşamasında belirlenir ve kurallar farklı ihtiyaçlara göre değişiklik gösterebilir. Bu kurallar manzumesinin yapısına ve çalışma sürecine, her bir uygulamanın kendisine özel olmak üzere, “mutabakat yapısı” adını veriyoruz.
Belli bir mutabakat yapısı ile kurgulanan sistemler içinde, tüm paydaşların uyduğu kuralların işleyiş sürecine de “mutabakat süreci” adını veriyoruz.
Sınırlı sayıda birey bir araya geldiklerinde el sıkışarak sözlü veya yazılı bir kayıt ile bir mutabakat sağlayabilirler. Dijital bir sistem üzerinde mutabakat yapısının sağlanması için bunun yazılım kodları kullanılarak garanti altına alınması lazım. İşte tam bu noktada Blockchain teknolojisi ortaya çıkıyor ve diyor ki, “Ben tüm bu sorunları çözeceğim. Baştan mutabakat yapısı (kuralları) belirlenmiş şekilde veriyi kaydetmenizi sağlayacağım. Daha sonra bu kayıtları iletişim ağları üzerinden, pek çok noktaya dağıtacağım. Bu süreç içinde verinin tüm noktalarda aynı kaldığına dair güvenilir bir mutabakat süreci sağlayacağım. Hatta bununla da kalmayacağım tüm kullanıcıların verilerini şifreleyeceği bir çözüm de sunacağım.”
Bu noktada Blockchain teknolojisi, dijital dünyada artık kolaylıkla oluşturabildiğimiz, güncellediğimiz ve hatta silebildiğimiz veri kullanım şekline farklı bir bakış açısı getiriyor; “Ben dağıtık bir veri kayıt sistemiyim” diyor ve ekliyor: “Sunduğum çözümde kaydedilen bir veri sonsuza kadar değiştirilemez, böylece güvenilir bir yapı ortaya çıkar.”
Blockchain Kayıt Yapısı
Blockchain teknolojisinde veri her zaman belirli bir sıralama yaklaşımı ile kayıt altına alınır. Bunu daha iyi anlamak için kurgusal ama basit bir örnek verelim;
Elinizde üzerinde bir deliği bulunan 5 tane minik karton etiketiniz ve bir adet yeterince uzun bir ipiniz olsun. 5 arkadaşınız ile düzenlediğiniz bir parti esnasında bir oyun oynayacaksınız. Oyuna bir etiketin üzerine adınızı yazarak bir imza atarak başlıyorsunuz. Sonra bu etiketi ipinize geçirip, bir düğüm atıyorsunuz. Daha sonra yakın bir arkadaşınız bir diğer etikete adını yazarak imza atıyor ve aynı ipe geçirerek düğüm atıyor. Bu işlemi 5 arkadaşınızın hepsi tekrarlıyor. Artık elinizde belirli bir sıra ile ilerleyen, her birinin üstünde bir kişinin adı ve imzası bulunan etiketlerin düğümlendiği bir ipiniz var.
Blockchain kayıt sistemi de temelde bu örneğe benzer. Etiketlerimizi yazdığımız isimlerimiz veriyi ifade eder. Verilerin belirli kurallar ile yazıldığı her bir etiket ise Blok adı verilen yapıları ifade eder. Her bir blok kendi özel imzasına sahiptir. Blockchain uygulamalarında imzalar, kitabımızın ikinci bölümünde detayları ile ele aldığımız özel bir matematiksel uygulama ile üretilir. İpimizin Blockchain sisteminde karşılığı ise zaman akışıdır, her bir blok oluşturulduğu anda bloğun üzerine tarih ve saat bilgilerini içeren bilgi de eklenir (ipimizde attığımız düğüm). Böylece her biri kendi imzasına sahip, belirli bir zamanda kaydı oluşturulan veri blokları sıra ile arka arkaya dizilir ve bir blok zincirini oluşturur. Bu yapıda ilk kayıt başlangıç bloğu olduğu için bu bloğa özel olarak Genesis adı verilir.
Blockchain Sıra Yapısı
Etiketlerimiz ve ipimiz ile uyguladığımız örneğimizi ile yolumuza devam edelim. Bu ip üzerindeki herhangi bir etiketi aradan çıkartmak için o etiketi yırtmanız ya da o etikete kadar tüm düğümleri çözerek o etiketi aradan çıkarttıktan sonra diğer etiketleri tekrar ipe sırayla düğümlemeniz gerekecektir. Hatta aradan çıkarttığımız etiketin yerini de değiştirebiliriz. Süreç biraz zahmetli olabilir ancak bunu başarmak mümkün. Bu tehlikeyi fark ettikten sonra, ortadan kaldırmak için, etiket zincirimizi yeni bir kural daha ekleyerek “mutabakat yapısını” tekrar oluşturalım ve oyunumuzu tekrar baştan oynayalım.
Geçen sefer olduğu gibi adımızı bir etikete yazıp, imzamızı attıktan sonra ipimize geçirip yine düğüm atıyoruz. Bu sefer bir diğer arkadaşımızın kendi adını yazıp imzasını attığı etiketin altına biz de ilk etiketin sahibi olarak kendi imzamızı atalım ve bu şekilde ipe geçirip düğüm atalım. Üçüncü sırada adını yazıp imzasını atan arkadaşımızın etiketine ise ikinci etikete adını yazan arkadaşımız imzasını atsın. Süreç bu şekilde devam ettiğinde ilk etiket hariç olmak üzere her yeni etikette o etikete adını yazıp imza atan arkadaşımız dışında, bir önceki etiketin sahibinin de imzası eklenmiş olacak.
Artık bu yeni yapıda zahmetli bir şekilde ipimizdeki düğümleri açıp, aradan bir etiket çıkartsak veya yerini değiştirsek bile her bir etiket oluşturulduğu esnada kendisinden bir önceki etiketin imzasına da sahip olacağı için etiket zincirimiz dikkatlice kontrol edildiğinde rahatlıkla sıranın bozulduğu anlaşılabilecektir.
Blockchain yapısında da benzer bir yaklaşım kullanılır. İlk oluşturulan blok kendisinden önce bir blok olmadığı için Genesis, yani başlangıç, bloğu olarak isimlendirilir ve sadece kendi dijital imzasını taşır ancak ardından gelen her bir blok kendisininki ile birlikte, bir öncekinin de benzersiz imzasını içinde taşıyacaktır. Böylece sıralı bir kayıt yapısı dijital dünyada mümkün hale gelir.
Blockchain Dağıtık Yapısı
Etiket örneğimizde arkadaşlarımız gönül rahatlığı ile eşsiz eserimizin sonsuza dek bir hatıra olarak kalacağını düşünerek evlerine gidebilirler ama son sıraya düşen arkadaşımız bu durumdan alınmıştır ve bizim çok iyi bir imza taklitçisi olduğumuzu bildiği için farklı düşünceleri olabilir 🙂
Teorik olarak bu olasılık imkansız değil. Özellikle dijital dünyada bir kaydın rahatlıkla kopyasının çıkartılabileceğini düşünürsek bu sıra değiştirme işi çok daha kolay olabilir. Bu sebeple oluşturduğumuz kayıtların yeni bir “mutabakat süreci” yapısına ihtiyacı var.
Neyse ki etiket oyunumuza başlarken bizim imza kopyalama yeteneğimizi bilen bir diğer arkadaşımız bu konuyu gündeme getirmiş ve “mutabakat sürecimizi” eşsiz bir hale dönüştürecek bir öneri yapmıştır.
Yeni yaklaşımda artık boş etiketler ve ip parçası sadece bizde değil, tüm arkadaşlarımıza dağıtılacaktır. Biz adımızı bir etikete yazıp imzaladıktan ve ipe geçirip düğüm attıktan sonra, herkes elindeki bir diğer boş etikete bizim adımızı yazacak ve bizden bu etiketi imzalamamızı isteyecektir. Daha sonra bunu kendi iplerine geçirip düğüm atacaktır. İkinci arkadaşımız kendi adını kendi etiketine yazıp imzaladıktan sonra bize imzalatacak ve ipine geçirerek düğüm atacaktır. Diğer herkes ellerindeki bir boş etikete ikinci arkadaşımızın adını yazıp bu arkadaşımız ile birlikte ilk etiketi oluşturduğumuz için bize de imzalattıktan sonra ipe geçirip düğüm atacaktır. Bu şekilde 5 kişi sıralı şekilde baştan belirlediğimiz kurallara uyarak her defasında bir birinin aynı sıraya sahip etiket zincirini oluşturacaktır.
Artık belirli bir kayıt “mutabakat yapısı” ve sıraya “mutabakat süreci” sahip ve üretilen zincirin kopyalarının herkese dağıtıldığı bir yapıya sahibiz. Bu durumda herhangi bir kişinin sıralama üzerinde gerçekleştireceği bir manipülasyon veya hile artık anlamını kaybedecektir zira çoğunluk ellerindeki kayıtları bir biri ile karşılaştırıp çoğunluğun mutabık kaldığı yapıya güvenmeye devam edebilecek ve hile hurda yapmaya çalışanları oyundan atabilecektir.
Blockchain teknolojisi de tam olarak bizlere aynı yapıyı sunmaktadır. Veri sadece bir merkez veya bir merkez grubu tarafından değil, sisteme dahil olan herkes tarafından kayıt altına alınmaktadır. Burada tarafların bir birini tanıması gerekmediği gibi güveni sağlayan şey kişiler arasındaki ilişkiler değil sistemin en başta belirlenen kuralları ve bu kurallar dahilinde üretilen kayıt zincirinin herkese dağıtılmasıdır.
Blok zinciri kayıtlarının dağıtıldığı tüm noktalar kendi aralarında iletişim halinde kalarak sistemin bozulmadığının teyidini gerçekleştirirler. Eğer veri kayıt zinciri yapısında aradan bir halka çıkarsa veya değişirse zincir kırılır ve sistemin geneli kırık/bozuk halkaya sahip noktayı dağıtık kayıt defteri ağından çıkartır. Böylece geriye kalanlar zincirin kırılmadan devam ettiği noktasında mutabık kalarak sistemi kullanmaya devam eder.
Sadece kısa bir bölümünü paylaştığımız Blockchain 101 v.2 kitabının tamamına buradan ulaşabilirsiniz.