Blokzinciri Nasıl Çalışır?

2018, kriptoparalar (blokzinciri teknolojisini kullanan şifrelenmiş dijital paralar) için parlak bir yıl olmadı. 2017’nin sonunda dünyadaki tüm kriptoparaların değeri 600 milyar dolardan fazlayken 2018 sonunda 130 milyar dolar civarındaydı. 31 Aralık 2017’de bir bitcoin 13750 dolarken şimdi 5422 dolar. 2017’de oldukça popüler olan blokzinciri teknolojisine dayanan ICO (Initial Coin Offering – Başlangıç Parası Arzı) projeleri 2018’de çökmeye ve yatırımcılar bu projelerden uzaklaşmaya başladı (Orcutt, 2018).

2018’in başında bilgisayar korsanlarının kriptopara bozdurulan Japonya merkezli Coincheck adlı sanal para borsasından 530 milyon dolar çalması blokzincirinin gerçek dünyayla temas ettiği arayüzlerdeki güvenlik sorununu açığa çıkardı ve kriptopara bozdurma hakkındaki endişeleri artırdı. Kriptopara yatırımcılarının karşı karşıya kaldığı bir diğer sorun ise ICO projeleriydi. ABD’de ICO projelerinin hisse senetleri, tahviller ve diğer geleneksel yatırım sözleşmeleri için geçerli düzenlemelere tabi olup olmayacağı hakkındaki tartışmalar kriptopara faaliyetlerinin merkezi otoriteden fazla kaçamayacağını gösteriyordu. Nitekim 2018’in Kasım ayında SEC (ABD Menkul Kıymetler ve Borsa Komisyonu), faaliyetleri hakkında kendisini bilgilendirmedikleri için Paragon ve Airfox adlı iki ICO firmasını cezalandırdı. SEC’in bu kararı diğer ICO firmaları için de örnek oluşturacak. Bilgisayar korsanı saldırıları ve daha sıkı piyasa düzenlemelerine ek olarak kriptopara piyasası manipülasyonu hakkındaki iddialar ve ABD Adalet Bakanlığı’nın bu iddiaları araştırmak üzere bir soruşturma başlatması kriptoparaları olumsuz etkileyen gelişmelerdi (age).

Princeton Üniversitesi’nden Arvind Narayanan’a göre blokzinciri ve merkezsizleşme hikayesinin parçalanmasının en büyük nedeni yanlış varsayımlardı (https://twitter.com/random_walker/status/1079759096272818178). Blokzinciri dünyasındaki yaygın inanca göre merkezileşme, hükümet düzenlemelerinden ve tekelci rant arayışından kaynaklanıyor. Narayanan ise merkezileşmenin serbest piyasada ölçek ekonomileri ve diğer verimliliklerin doğal bir sonucu olduğunu savunuyor. Hükümetin yokluğu merkezileşmenin olmadığı anlamına gelmediği gibi merkezileşme çoğu kez hükümetin yokluğundan kaynaklanıyor. Örneğin, 1978’de ABD’de havayolları üzerindeki devlet denetimi kalktıktan sonra hızla noktadan noktaya bir modelden daha merkezi bir havayolu ağına geçiş yapılmış. Bitcoin madenciliğinin gelişimi de altın madenciliğinin gelişimine çok benziyor. İlkel araçlarla başlayan altın madenciliğinin daha sonra sadece ileri teknolojik donanıma sahip olanların yapabileceği bir iş haline gelmesi gibi bitcoin madenciliği için önce CPU (Central Processing Unit – Merkezi İşlem Birimi) yeterliyken daha sonra bitcoin ağındaki rekabette öne geçebilmek için GPU’lar (Graphics Processing Unit – Grafik İşlem Birimi) kullanılmaya başlandı. Daha sonra FPGA’ya (Field Programmable Gate Arrays – Alan Programlanabilir Kapı Dizileri) ve ondan sonra ASIC’e (Application Specific Integrated Circuit – Uygulamaya Özgü Tümleşik Devre) geçildi. Böylece bitcoin madenciliği daha profesyonel bir iş haline geldi.

N arayanan, açıklık ve ademi merkeziyetçiliğin özgür ve açık kaynaklı yazılımda olduğu gibi daha çok geliştiricileri ilgilendiren bir konu olduğuna dikkati çekiyor. Ademi merkeziyetçi platformların başarılı olabilmek için geliştiricileri kendine çekmesi ve birbiri üzerine kurulu bir hizmet ekosistemini teşvik etmesi, işlevselliği ve kaliteyi kademeleri olarak geliştirmesi gerekiyor. İnternetin Compuserve ve AOL’yi bu yolla alt edebildiğini ifade ediyor. Ayrıca Narayanan, ademi merkeziyetçiliğin yapısızlık olmadığını ve yapısız grupların var olamayacağını; hükümetlerin reddedilebileceğini ama yönetimden vazgeçilemeyeceğini savunuyor.

Bitcoin ve blokzincirinin etrafındaki hale dağılıyor gibi. Orcutt’ın (2019) savunduğu gibi 2019, blokzincirinin sıradanlaştığı ve normalleştiği bir yıl olabilir. Telgraf, telefon, radyo, televizyon ve internet de olduğu gibi sıradanlaşma ve normalleşme blokzincirine daha yaygın kullanım alanları sağlayabilir. Geçmişte kullanıcılar, bu teknolojileri ilk geliştiren kişi ve grupların niyetlerinden farklı kullanım alanları buldular ve sözkonusu teknolojilerin daha sonraki gelişimini etkilediler. Blokzinciri de benzer bir gelişim gösterebilir. Çünkü blokzincirinin tasarımındaki açıklık, geliştiricilerin bu teknolojiyi yeniden üretebilmelerine olanak sağlıyor.

Bu nedenle, blokzincirinin ne olduğu, nasıl çalıştığı, sağladığı olanaklar ve sınırlılıkları hakkında tartışmanın yararlı olacağını düşünüyorum.

Bitcoin

Bitcoinin ve onun teknolojik altyapısını oluşturan blokzincirinin hikayesi kriptografi odaklı bir e-posta listesine atılan e-postayla başlıyor (http://www.metzdowd.com/pipermail/cryptography/2008-October/014810.html). E-postayı atan Satoshi Nakamoto adlı kişi güvenilir üçüncü kuruluşlara gerek duymayan, tamamen eşler arasında (peer-to-peer) olan bir elektronik para sistemi üzerinde çalıştığını duyurur ve sistemin nasıl çalışacağını anlatan bir makale paylaşır (http://www.bitcoin.org/bitcoin.pdf).

Nakamoto’nun duyurduğu bitcoinin temel özellikleri şöyle olacaktır:

  • Mükerrer harcama eşler arası bir ağla önlenecek
  • Darphane veya diğer güvenilir kuruluşlar olmayacak
  • Katılımcılar anonim olabilecek
  • Yeni paralar Hashcash tipi iş kanıt sistemiyle üretilecek
  • Yeni paraların oluşturulması için kullanılan iş kanıt, ağdaki mükerrer harcamaları da önleyecek

Nakamato, 2009’un başında ilk bitcoinleri çıkarmaya (mine) başlar. Bitcoinin altındaki blokzinciri teknolojisinin tamamen yeni bir teknoloji olduğu söylenemez. Blokzinciri, uzun zamandır bilinen şifreleme araçlarından ve bilgisayar biliminin, birbirine güvenmek zorunda olmayan katılımcılardan meydana gelen bir ağın nasıl yönetilebileceği hakkında geliştirdiği yöntemlerden yararlanmaktadır. Blokzinciri teknolojisi günümüzde daha çok bitcoin, ethereum vb kriptoparalarla gündeme gelmekte ve finans sistemi üzerinde yıkıcı bir etkisi olacağı iddia edilmektedir. Fakat son yıllardaki gelişmelerin de gösterdiği gibi blokzincirinin finans sistemi tarafından özümlenmesi daha yüksek bir olasılık. Ancak blokzinciri teknolojisi finans dışı alanlarda da eşsiz bir potansiyele sahip. Askeri bir proje olarak başlayan internetin daha sonraki gelişiminde olduğu gibi blokzinciri büyük veri, nesnelerin interneti, akıllı şehirler gibi alanlarda oyunun kurallarını tamamen değiştirebilir.

Blokzinciri Nedir?

Blokzincirinin ne olduğu sorusuna geçmeden önce blokzincirinin amacına bakalım. Bilişim sistemleri geliştirilirken gereksinimler doğrultusunda sistem mimarisi hakkında bazı kararlar verilir. Örneğin, geliştirilen sistemin merkeziyetçi ya da ademi merkeziyetçi olmasına karar verilebilir. Her iki kararın da çeşitli avantajları ve dezavantajları vardır. Blokzinciri, merkezdeki aracı kurumlara bağımlı olmak istemeyen ama ademi merkeziyetçi sistemlerden kaynaklı sorunların da farkında olan ve bu sorunlara yanıt verebilmek amacıyla geliştirilmiş bir teknolojidir. Blokzinciri, bir veri yapısını, algoritmayı, teknoloji grubunu veya ortak kullanım alanına sahip tamamen dağıtık, eşler arası (P2P – Peer To Peer) sistemleri ifade etmek için kullanılabilir (Drescher, 2017).

B


Resim 1: Merkezi Ağ ve Eşler Arası Ağ
ilgisayar biliminde veri yapısı, veriyi içeriğinden bağımsız olarak nasıl organize edilebileceği ile ilgilidir. Örneğin veri yapısı, ilk eklenen verinin ilk çıktığı bir kuyruk, en son eklenen verinin ilk çıktığı bir yığın, verilerin birbirine bağlı olduğu bir liste, verinin dallara ayrıldığı bir ağaç olabilir. Programcılar, çözmek istediklerine soruna en uygun veri yapılarını seçerler. Blokzincirinin temel veri yapısı da her bir bloğun kendinden önceki bloğa bağlandığı bir zincirdir. Zincirin başına yeni blok eklenebilir ama zincirin ortasındaki bir bloğun verileri değiştirilemez.

Algoritma, bir bilgisayar tarafından yerine getirilen talimatlar sırasıdır. Bu bağlamda blokzinciri, sistemin bütünlüğünü koruyan, yeni blokların nasıl üretileceği ve zincire ekleneceğini düzenleyen bir algoritmadır.

Blokzinciri, bir teknoloji takımını ifade etmek için kullanıldığında ise uygulamanın amacından bağımsız olarak, blokzinciri veri yapısı, blokzinciri algoritması ve çeşitli şifreleme ve güvenlik teknolojisinin bir birleşimini anlatır.

Ama blokzincirini çoğunlukla,

  • ortak kullanım alanına sahip,
  • tamamen dağıtık yapıda,

yazılımı da içeren eşler arası defter sistemlerini anlatmak için kullanıyoruz.

Blokzinciri, merkezde herhangi bir otorite veya eşler arasında bir aracı olmadan eşler arasındaki güveni tesis eder. En yaygın kullanım alanlarından biri dijital ürünlerin sahipliğinin yönetimidir. Sıradan paralar alışverişte el değiştirir ve alışverişte bir tarafın parası artarken diğerininki azalmalıdır. Fakat dijital ürünlerin kopyalanıp çoğaltılmasının önünde fiziksel bir engel yoktur. Bu gibi durumlarda blokzinciri, dijital ürünlerin sahipliğinin yönetimi için kullanılabilir. Bunun yanında, nesnelerin internetinden yayılan verilerin kontrolü ve sadece belirli şartlarda kullanımı için blokzinciri teknolojisinden yararlanılabilir.

Şimdi blokzinciri teknolojisinin nasıl çalıştığını inceleyelim.

Dağıtık Kayıt Defteri

Blokzinciri, en başta sahipliği belgeleyen kayıtlar içeren bir defterdir. Sahiplik ilişkisi farklı biçimlerde belgelenebilir. Akla gelen ilk yöntem, “A, X nesnesine sahiptir”, “A’nın 100 bitcoini vardır” gibi envanter kayıtları tutmaktır. Blokzinciri ise sahipliği işlemlerin (“A, B’ye 10 bitcoin gönderdi.” gibi ifadeler) tarihçesinden çıkarır. Örneğin, A’nın Z’ye 20 bitcoin gönderip gönderemeyeceğini belirleyebilmek için “A’nın yeterli parası var mı?” sorusuna doğrudan yanıt verebilecek bir kayıt yoktur. Blokzinciri defteri, “B, A’ya 5 bitcoin gönderdi.”, “C, A’ya 25 bitcoin gönderdi.”, “A, D’ye 3 bitcoin gönderdi.” vb işlemleri tutar ve blokzinciri, bu işlemleri dikkate alarak A’nın para göndermek için yeterli parasının olup olmadığına karar verir. Böylece defter A’nın toplam parasını gösterirken bunun ispatını da yapar: A, Z’ye 20 bitcoin gönderebilir, çünkü şimdiye kadar hesabına x kadar para girmiş, y kadar para çıkmıştır ve x-y > 20’dir.

Blokzincirine eklenen bir işlem kaydı,

  • Gönderen hesabı
  • Alıcı hesabı
  • Transfer edilen nesnenin miktarı
  • İşlem tarihi

gibi bilgileri içerir ve bu işlem doğrulanıp deftere eklenmesi için blokzinciri ağındaki tüm bilgisayarlara gönderilir.

Sahip olduğu parayı ya da bir nesneyi başkasına devreden kişinin bunu elektronik olarak imzalaması gerekir. Blokzinciri, işlem tarihçesini merkezdeki bir bilgisayarda değil de herkesin okuyabileceği ve yazabileceği dağıtık bir mimaride sakladığından ağdaki kullanıcıların kendilerinin olmayan para ya da nesnelerle işlem yapmasının engellenmesi ve veri bütünlüğünün korunması gerekir. Bunun için özet (hash) fonksiyonundan yararlanılır.

Özet (Hash) Fonksiyonu

Özet fonksiyonu için verinin parmak izidir diyebiliriz. Parmak izinden kişinin fiziksel özelliklerine ulaşamayız ama parmak iziyle kişiyi doğrulayabiliriz; özet fonksiyonları da verinin parmak izini çıkarır. Özet fonksiyonu, her tür veriyi, veri uzunluğundan bağımsız olarak sabit sayıda karakter içeren bir diziye dönüştürür. Özet fonksiyonların nasıl çalıştığını http://www.blockchain-basics.com/HashFunctions.html adresinden deneyebilirsiniz. Örneğin, “Bilim ve Gelecek” girdiğimde SHA256 algoritmasına göre özet çıktısı 8B3A7C959AFB15A796B431A8220274D4DA007CAB76F5C1749CFDF4F13EB93333’dir. Sadece bir harfi büyük yapıp, “Bilim Ve Gelecek” yazdığımda çıktı tamamen farklı bir değer olur: C6FEBC4093663169919F76C0078134687414FE70231EFEA089FACB9C9AE722E1. Özet fonksiyonu,

  • Girdi çok büyük olsa da çok hızlı özet çıktısı üretir.
  • Aynı girdiye her zaman aynı çıktıyı verir.
  • Girilen verinin nasıl çıktı vereceğini tahmin etmeyi olanaksızlaştırır (Yukarıdaki örnekte sadece ‘ve’ kelimesini ‘Ve’ yaptığımda bile tamamen farklı bir özet oluştu).
  • Tek yönlüdür. Özet değeri kullanılarak girilen veri tahmin edilemez.
  • Çakışmalara karşı dirençlidir. Aynı özet değerine sahip iki farklı veri bulmak çok zordur.

Özet fonksiyonu, blokzincirinin farklı aşamalarında farklı görevlerle karşımıza çıkar. Birinci görevi, veri bütünlüğünü (verinin değişip değişmediğini) tespittir. Dosyaları, karakter karakter karşılaştırmak yerine özet fonksiyonu çıktılarını karşılaştırmak çok daha hızlı olmaktadır.

Örneğin blokzinciri, aşağıdakine benzer bir yapıdan yararlanır. Zincirdeki her bir blok, kendinden önceki bloğa bağlanır. Data 1, ilk bloktur. R1, Data 1’in; R2, R1 + Data 1’in; R3 de R2 + Data 2’nin özeti olsun. Bu durumda, Data 1’deki en ufak bir değişiklik R3’ü de etkiler.

Blokzincirinin yararlandığı bir diğer yapı da Merkle ağacıdır. Ağaçtaki birinci işlem, “Ali, Ayşe’ye 100 bitcoin gönderdi.” (R1), ikinci işlem de “Ayşe, Can’a 120 bitcoin gönderdi.” (R2) olsun. İşlemleri karakter karakter karşılaştırmak yerine işlemlerin özet değerlerini karşılaştırmak daha uygulanabilirdir. Daha sonra R1 ve R2’den, R12; R3 ve R4’ten R34 özet değerleri üretilir. En sonunda da R12 ve R34’ten de R özet değeri çıkar. Bir saldırgan, birinci işlemi “Ali, Ayşe’ye 1000 bitcoin gönderdi.” diye değiştirmeye çalıştığında R değeri de değişecek ve sistemin bütünlüğünün bozulduğu anlaşılacaktır.

Özet fonksiyonunun ikinci kullanım alanı ise ağdaki bilgisayarların çözmesi için zaman alıcı bulmacalar üretmektir. Örneğin, “Bilim ve Gelecek”in kısaltılmış (gerçek değerin ilk 8 karakteri) özet değeri 8B3A7C95’tir. Bulmaca şöyle olabilir: Özet değerinin başında üç sıfır olabilmesi için “Bilim ve Gelecek”i hangi özel sayıyla (nonce) birleştirmek gerekir?

Bu bilmeceler, zeka ya da veri kullanımıyla (en azından şimdilik) çözülememektedir; bilgisayar deneme yanılmayla sonuca ulaşmak zorundadır:

Bilim ve Gelecek 1 -> 3E9940CC

Bilim ve Gelecek 2 -> 661ABCA0

Bilim ve Gelecek 3 -> 3E8A6B6D

Bilim ve Gelecek 100 -> CDB6C5F8

Bilim ve Gelecek 665 -> 1BDB8DAD

Bilim ve Gelecek 666 -> 000137A9

Bilgisayarların işlem kapasitesi arttıkça bilmeceler zorlaştırılır. Örneğin özet değerinin başında dört sıfır olsun dersek 122612, beş sıfır olması içinse 1914029 deneme yapmak gerekecektir. Blokzinciri ağındaki bilgisayarlar bulmacayı çözerken Nakamoto’nun iş kanıtı dediği şeyi yapmaktadırlar:

İş kanıtının temelinde SHA-256 gibi bir özet fonksiyonunda özet çıktısının belli bir sayıda 0 biti ile başlamasını sağlayacak bir amaç değerin aranması yatar. Ortalama gerekli iş yükü özette amaçlanan ve tek bir özet hesaplamasıyla sınanabilen 0 bitlerinin sayısı ile üssel olarak orantılıdır.

Zaman damgası ağımız için iş kanıtı modelini, blok özeti istenen sayıda 0 biti ile başlayıncaya kadar bloğun içindeki bir amaç değerinin değiştirilmesi üzerine inşa ediyoruz.

Yazının devamında özet fonksiyonunun blokzinciri için neden önemli olduğunu daha iyi anlayacağız.

İşlemlerin Doğrulanması

Özet fonksiyonu, blokzincirinin bütünlüğü korurken şifreleme araçları da kullanıcıların kimliğinin tespitini ve hesaplarının korunabilmesini sağlar. Şifreleme algoritmalarını iki gruba ayırabiliriz: Simetrik şifreleme ve asimetrik şifreleme. Simetrik şifrelemede, veri şifrelemek ve açmak için aynı anahtar kullanılır. Asimetrik şifrelemede ise açık ve özel adlı iki anahtar kullanılır. Bu şifrelemenin asimetrik olarak adlandırılmasının nedeni açık anahtarla yapılan şifrelemenin yalnızca özel anahtarla açılabilmesidir (ya da tam tersi). Kişi özel anahtarını saklar, açık anahtarını paylaşır. Örneğin A’ya bir mesaj göndermek istiyorsunuz ve bu mesajın A dışında kimse tarafından okunmaması gerekiyor. Mesajı, A’nın açık anahtarı ile şifreleyip gönderirseniz bu mesajlar sadece A’nın özel anahtarı ile açılabilecektir. Ya da A, gönderdiği mesajı kendi özel anahtarı ile imzaladığında A’nın açık anahtarına sahip alıcı, bu mesajın gerçekten A tarafından gönderildiğini bilecektir.

Blokzincirinde asimetrik şifreleme, hesapları tespit etmek ve işlemleri yetkilendirmek için kullanılır. Kullanıcıların hesaplarını tespitte açık anahtarlarından yararlanılır. Açık anahtarları, kişilerin posta kutusu adresi olarak da düşünebiliriz. Bize mektup göndermek isteyenler açık anahtarımızı (posta kutumuzu) bilirler ama açık anahtarımıza (posta kutumuza) gelenleri ancak özel anahtarımızla açabiliriz. Yaptığımız işlemlerin geçerli olabilmesi içinse işlemi özel anahtarımızla imzalamamız gerekir. Transfer işlemini başlatan taraf (age),

  1. İşlem için gerekli olan hesap numaraları, miktar vb bilgileri girer.
  2. Özet fonksiyonu aracılığıyla işlemin özet değerini oluşturur.
  3. Oluşturulan özet değerini, özel anahtarı ile imzalar
  4. Üçüncü adımda oluşturulan imzalanmış metni, işlemin yanına ekler.

İşlemin yetkili bir kullanıcı tarafından başlatıldığını doğrulamak içinse aşağıdaki adımları takip edilir:

  1. Özet fonksiyonu aracılığıyla işlemin özet değerini oluşturur
  2. İşlemi başlatanın açık anahtarı ile işlemin dijital imzasını açar
  3. Birinci adımdaki özet değeri ile ikinci adımdaki özet değerini karşılaştırır. Sonuç aynıysa, işlemin transferin, transferi başlatan kişinin özel anahtarıyla imzalandığı doğrulanmış olur.

İşlemin yetkili kullanıcı tarafından başlatıldığı ve kişinin sahip olduğu bir şeyi transfer etmek istediği doğrulandıktan sonra bu işlemim deftere işlenmesi gerekir.

Buraya kadar öğrendiklerimizi özetlersek,

  1. Blokzinciri, ağdaki işlemlerin tutulduğu; herkesin okuyup yazabildiği bir defterdir.
  2. Yapılan işlemler blokzinciri ağına iletildikten sonra ağdaki bilgisayarlar işlemin geçerli olup olmadığını kontrol eder. İşlem geçerli değilse gözardı edilir.

Şimdi geçerli işlemlerin deftere eklenmesi gerekmektedir.

Blokların Zincirlenmesi

Blokzinciri, ağda yapılan işlemleri tek tek değil, bir bloğun içinde saklar. Bloklar, işlemlerin yanında diğer bloklara bağlanmasına yardımcı olan bir başlığa sahiptir. Bir blok başlığının en azından aşağıdaki alanlara sahip olması gerekir:

  • İşlemlerin Merkle kökü
  • Önceki bloğa referans
  • Zaman damgası
  • Bulmacanın zorluk derecesi
  • Özel sayı (nonce)

Bloklar zincire eklenirken protokolün belirlediği kurallar çerçevesinde hareket edilir.

Birinci adımda, Merkle kökünün özet değerinin hesaplanması gerekmektedir. Bu hesaplama için blokta yer alan tüm işlemlerden bir Merkle ağacı oluşturulur. Adım adım aşağıdan yukarıya çıkarak ağacın kökünün özet değeri hesaplanır. Örneğin önce birinci işlemin, daha sonra da ikinci işlemin özet değeri hesaplanır. Daha sonra iki işlemin özet değerinden yeni bir özet değeri oluşturulur. Bu işlem, Merkle ağacının köküne ulaşılana kadar devam eder.

İkinci adımda, önceki bloğun başlığının özet değerine referans verilir. Dolayısıyla birinci blok oluşturulmadan ikinci blok oluşturulamayacağı gibi birinci bloğun özet değerini etkileyecek herhangi bir değişiklik sonraki tüm blokları da etkileyecektir. Örneğin, 2. işlemin içeriğindeki en ufak bir değişiklik bile önce R2’nin, sonra da R12’nin, en sonunda da Merkle kökünün özet değerini değiştirir. Artık 1. Bloğun özet değeri, ikinci bloktaki B1 değerine eşit olmayacağından zincir kopar ve ikinci bloğun yeniden yaratılması gerekir.

Üçüncü adımda blokta geçerli zorluk düzeyinin derecesi alınır. Dördüncü adımda, o anki zaman alınır. Zaman damgasının önceki bloğun zamanından sonra olması gerekir. Beşinci adımda bu bilgileri kullanarak bir ön başlık oluşturulur. Altıncı adımda, iş kanıtı olarak çözümü ortalama on dakika süren bir bulmaca çözülür. Donanım teknolojisindeki gelişmelere paralel olarak bulmacanın zorluk derecesi de zamanla artmaktadır. Yedinci ve son adımda da bulunan özel değer (nonce) ön başlığa eklenerek blok tamamlanır.

Blokzincirindeki bir işlemi değiştirmek isteyen birinin kendinden sonraki tüm blokları değiştirmesi ve yukarıdaki hesaplamaları yeniden yapması gerekir. On blok önceki bir blokta yer alan bir işlem değiştirilmek istendiğinde yukarıdaki adımların tekrarlanması, tüm bloklarda özet değeri hesaplamak için kullanılan girdiler değişeceğinden her bir blok için ortalama on dakika süren iş kanıtının yeniden hesaplanması gerekir. Bu zorluk, blokzincirin değişmezliğini (immutability) sağlar. Ayrıca tek bir bilgisayarda blokzincirin değiştirilmesi yeterli olmayacağından, ağdaki diğer bilgisayarların da bu yeni blok yapısını kabul etmesi gerekecektir. Büyük ve bilgisayarların birbirinden bağımsız çalıştığı bir blokzinciri ağında on blok öncesinde bir değişiklik yapıp bunu ağa kabul ettirmek olanaklı görünmemektedir.

Blokzinciri ağındaki tüm bilgisayarlar aynı blokzincirini (kayıt defterini) tutmaya çalışır. Bankalar yaptıkları işlemden bir ücret alırlar. Burada ise bilgisayarını ağa sunan ama bunun için doğrudan bir ücret almayan kullanıcılar varmış gibi görünebilir. Fakat insanlar bilgisayarlarını blokzinciri ağlarına dahil edip bilgisayarlarını ağdaki işlemleri doğrulamak için kullandırtırken bunu özgeciliklerinden değil maddi bir çıkarları olduğu için yapar. Bulmacayı çözen ve yeni bloğu oluşturan kişi bunun karşılığında bir ödül alır. Bu nedenle, blokzinciri ağında yer alan bir bilgisayar, ağa iletilen işlemlerin geçerliliğini kontrol eder (“transfer işlemi yetkili kişiler tarafından mı başlatılmış?”, “Ali’nin Can’a 10 bitcoin gönderebilmesi için yeterli parası var mı?” vb) ve hemen bunlardan bir blok oluşturmaya çalışır. Bulmacayı çözer çözmez yeni bloğu zincire ekler ve bunu ağdaki diğer bilgisayarlara duyurur. Ağdaki bilgisayarlar bu duyuruyu aldıktan sonra yeni bloğun doğrulamasını yaparlar. Blok geçerli değilse bunu dikkate almaz kendi bloklarını yapmaya devam ederler. Geçerliyse, gelen bloğu onaylar ve bu bloğu referans alacak yeni bir blok yapmaya başlarlar. Zincirin yeni bloğunu oluşturan kişi ödüllendirilir. Ama daha sonra eklediği blok zincirden çıkarılırsa ödülü geri alınır. “Eğer bloklar geçerlilikleri test edildikten sonra zincire eklenebiliyorsa neden siliniyor?” gibi bir soru akıllara gelebilir.

Blokzinciri ağı dünyanın dört bir yanındaki bilgisayarlardan oluşur. “A, bulmacayı çözdü; yeni bloğu ekledi. Zincir, bundan sonra Ali’nin eklediği bloktan devam edecek.” diyebilecek merkezi bir otorite yoktur. A, yeni bloğunu ağda duyurur. Fakat aynı anda B de bulmacayı çözmüş ve yeni bir blok üretmiş ve A’nın haberi kendine gelmeden bunu duyurmuş olabilir. Bu durumda ağdaki bilgisayarlardan bazıları A’nın, bazıları da B’nin bloğunu ekleyecek ve yeni blok üzerine çalışmaya farklı dallardan devam edecektir. Böylece iki farklı kayıt defteri ortaya çıkar. Örneğin, aşağıda olduğu gibi A, AB12 bloğunu; B de DD01 bloğunu eklemiş olabilir (Descher, 2016).

İlk başta her iki blok da geçerlidir. Fakat zaman içinde ağdaki bilgisayarların çoğunluğunun (%51’inin) tercihi hangi yöndeyse o tercih edilecek ve diğeri blokzincirinden düşürülecektir. Blokzinciri ağındaki bilgisayarlar tercihlerini zincirde oluşan dalların harcadığı hesaplama gücüne göre yaparlar. Buna göre bazı ağlarda karar verilirken en uzun zincir tercih edilir. Örneğin aşağıda en uzun zincir, 33FF, A397, AB12, BB11 ve 0101 bloklarından oluşmaktadır. Ağdaki bilgisayarlar, DD01 ve CCC1 içeren devam yollarına rağbet etmediğinden bu bloklar zincirden düşürülecek, yapılan işlemlerin onayı geri alınacak ve bloğu üreten kişiye verilen ödül geri alınacaktır.

Aşağıdaki örnekte ise 33FF, A397, AB12 ve CCC1 daha zor bulmacalar çözerek daha fazla hesaplama gücü kullandığından 0101, BB11 ve DD01 geçersiz olacaktır.

Dolayısıyla blokzincirinin oluşumunda kolektif karar alma süreci vardır. Süreç içinde çoğunluğun kabul ettiği devam yolu kabul edilmektedir. Blokzinciri ağı güvenlidir ve kayıt defterinin bütünlüğünü bozmak her bir kullanıcının bağımsız olduğu koşullarda olanaksızdır. Fakat saldırganlar ağın hesaplama gücünün %51’ine sahip olduğunda ağın işleyişini aksatma ve veri bütünlüğü bozma gücünü de elde eder.

Blokzinciri Teknolojisinin Yeniden Üretimi

Blokzinciri denilince akla ilk olarak bitcoin geliyor. Açıkçası bitcoinin, finansal sistemi sarsabileceğini düşünmüyorum. Ama yukarıda ana hatlarıyla nasıl çalıştığını anlatmaya çalıştığım blokzinciri teknolojisi çok farklı alanlarda büyük değişimler yaratma potansiyeline sahip. Blokzinciri teknolojisi değişiyor, farklı ihtiyaçlara göre yeniden üretiliyor. Descher (2016) blokzinciri teknolojisindeki değişiklikleri üç başlık altında ele alıyor. Birincisi, blokzincirinin küçük teknik değişikliklerle geliştirilmesi ve farklı varyasyonlarının yaratılmasıdır. Bu iyileştirmeler özet fonksiyonlarında, anahtar oluşturmak kullanılan şifreleme yöntemlerinde veya iş kanıtı için kullanılan bulmacalarda yapılan değişikliklerle elde edilmektedir. Bu iyileştirmeler, blokzincirinin temel işleyişi değiştirmemektedir.

İkinci çalışma alanı blokzincirinin ölçeklenebilirliği (https://www.coinkolik.com/blockchain-olceklendirme-sorunu-nedir/) için ağ verimliliği, depolama, veri kullanımı ve ağda konsensüs oluşturma üzerine yapılan çalışmalardır. Örneğin, yıldırım ağı (Lightning Network) bu tip bir çalışmanın sonucunda çıkmıştır ve para transferlerini hızlandırmayı hedeflemektedir. Yıldırım ağı, basit bir teknolojik iyileştirmenin ötesinde blokzincirinin işleyişinde köklü bir değişiklik yapmaktadır. Yıldırım ağı sayesinde iki kişi arasında bir kanal açılmakta; para transferi, blokzinciri ağının onayına gerek kalmadan gerçekleştirilebilmektedir. Para transferinin çok hızlı gerçekleştiği bu tip teknolojiler kriptoparaların gündelik hayattaki basit alışverişlerde kullanımının önünü açabilir.

Üçüncü tip değişiklikler ise erişim hakları, mahremiyet, konsensüs ve yapılabilen işlemler hakkındaki kavramsal değişikliklerdir. Erişim haklarında yapılan değişikliklerle farklı amaçlar için kullanılabilecek farklı blokzincir mimarileri geliştirilmiştir. Bitcoinin herkesin okuyup yazabildiği açık mimarisinin dışında, herkesin okuyabildiği ama izinli olan kullanıcıların yazabildiği ya da sadece izinli kullanıcıların okuyup yazabildiği mimariler de vardır. Hatta bitcoinle kovulmak istenen bankalar bu kapılardan geri gelmektedir.

Tüm işlemlerin herkes tarafından görüldüğü ve yeni işlemlerin bu işlem kayıtlarına göre doğrulandığı bir defterin mahremiyet sorunu yarattığını düşünenler de vardır. Bunun için, kullanıcıların yazabildiği ama okuyamadığı veya yeni işlemlerin doğrulanması için defterdeki işlemlerin taranmasına gerek duymayan çözümler geliştirilmiştir.

Blokzinciri ağındaki bilgisayarlar, farklı uzunluktaki zincirler söz konusu olduğunda en fazla hesaplama gücü harcamış olan zinciri seçmek üzerine kurulu bir oydaşmaya dayanır. Bu oydaşma, daha fazla işlem gücüne sahip tarafın daha çok söz hakkına sahip olabileceği anlamına gelmektedir. %51 saldırısı olarak adlandırılan bu ihtimal sadece varsayımsal bir durum olarak görünse de merkezsiz yapı yerini daha fazla hesaplama gücüne (dolayısıyla paraya) sahip olanın belirleyici olduğu bir yapıya evrilmektedir. Bu sorunu aşabilmek için Paxos ve Raft gibi oydaşmaya farklı çözümler getiren algoritmalar geliştirilmiştir.

Bitcoinin blokzinciri, sadece bir iş üzerine uzmanlaşan ilkel bilgisayarları andırır. Blokzincir sadece dijital ürünlerin A’dan B’ye para transferi veya sabit kayıtların tutulması işlevine sahiptir. 1994 doğumlu Vitalik Buterin’in 2013’te duyurduğu (https://github.com/ethereum/wiki/wiki/White-Paper) Ethereum’un programlanabilir blokzincirlerin önünü açmasıyla blokzincir farklı işler için yeniden programlanabilir dağıtık bir platforma dönüştü. Artık blokzinciri aşağıdaki gibi anlaşmaları yapmak üzere programlanabilir:

Ali 50000 TL kaşılığında Ahmet’in arabasını satın almak istiyor. Ahmet, parayı aldığı anda arabasının mülkiyetini Ali’ye devredecek. Böyle bir işlem için bir ücret karşılığında noterin anlaşmayı onaylaması ve Ahmet’in araba üzerindeki haklarını Ali’ye devretmesi gerekir.

Akıllı sözleşmelerde ise bir aracıya gerek kalmaz. Ahmet arabasını 50000 TL’ye satmak istediğini belirten bir sözleşme hazırlar ve arabasını akıllı sözleşmeyle kontrol edilen bir akıllı kilitle kitler. Ali, Ahmet’in satılık araba ilanını görür ve araba karşılığında Ahmet’e 50000 TL göndermeyi kabul eden akıllı sözleşmeyi imzalar. Blokzinciri ağı Ahmet’in arabaya sahip olup olmadığını doğruladıktan sonra parayı Ali’den Ahmet’e, arabayı Ahmet’ten Ali’ye devreder. Şimdi Ali arabaya gidip onu özel anahtarıyla açabilir.

Bilgisayarların farklı ihtiyaçlar için programlanabilirlik özelliği kazanması nasıl farklı alanlarda yeni iş modelleri yarattıysa akıllı sözleşmelerin de benzer bir etkisi olacaktır.

Sonuç

Bitcoinin 2008 küresel krizi sonrası finans sistemine güvenin sarsıldığı bir zamanda ortaya çıkmış olması rastlantı değildir. Blokzinciri teknolojisinin en önemli başarısı taraflar arasındaki güven ilişkisinden sorumlu aracı kurumlara duyulan ihtiyacı ortadan kaldırmasıdır. Blokzinciri, aradaki kurumların yaptığı işi daha sıkı kurallar çerçevesinde yerine getirebilmektedir. Blokzincirinin banka, noter gibi aracı kurumları aradan çıkarmasının taraflara maddi getirisi vardır. Ayrıca blokzinciri teknolojisini kullanan platformların çok küçük miktarda para transferine izin vermesi gündelik yaşamın dijitalleşmesini hızlandırabilir.

Business Insider’ın grafiği blokzincirinin gelişimini çok iyi özetliyor. Blokzincirinin geleceği de muhtemelen grafikteki gibi olacak (Kaynak: http://blokzincir.tubitak.gov.tr/img/image-bz01.png):

Blokzinciri kullanımı yaygınlaştıkça otomatikleştirilebilen iş süreçleri de artacak ve insanlar arası ilişkilerin yerini yazılım alacaktır. Geçen sayıda, Cemil Şinasi Türün’ün Marc Andreessen’den aktardığı gibi yazılımın dünyayı yiyeceğinden kuşkum yok. Protokoller ve teknolojiler, diğer insanlara ve kurumlara duyulan güvenin yerini alıyor. Bunun iyi mi yoksa kötü mü olduğu ise ayrı bir tartışma…

Teknolojiyi masallardaki adil hükümdarların yerine koymaya istekli olabiliriz. Ama teknoloji, masallardaki adil hükümdarlar gibi tarafsız değildir. Üretim araçlarının özel mülkiyeti üzerine kurulu üretim ilişkileri var olduğu sürece ne internet ne blokzinciri eşitlikçi yapısını devam ettirebilir.

Blokzinciri ağında yeni bloğu yaratmak ve ödülü kazanmak için bir yarış vardır. Daha güçlü ve hızlı işlem yapabilen bilgisayarlara sahip olanların yeni bloğu yaratabilme ve ödülü kazanabilme şansları çok daha yüksektir. Daha güçlü bilgisayarlar için yatırım yapma şansı olmayanlar zamanla bu yarışta kalmanın ve bilgisayarlarını kullandırmanın anlamsız olduğu sonucuna varabilir. Bu durumda, gücünü ve güvenilirliğini ağdaki bilgisayarların fazlalığından ve çeşitliliğinden alan blokzinciri ağları zayıflayacaktır. Az sayıda kişi, ağın işleyişinde belirleyici olmaya başlayacak ve ağ, protokolün tarafsız çalışmasının engellenebileceği bir yapıya evrilecektir. Böylece sanayide olduğu gibi tekelleşme için elverişli bir ortam oluşacak. Görünürde bir dağıtık yapı olacak ama sistemin bütünlüğünü sağlama görevi (ya da ayrıcalığı) hesaplama kapasitesi en yüksek olanların elinde yoğunlaşacak.

Bu tehlikeye rağmen blokzinciri teknolojisinin internetteki merkezileşmeye karşı önemli bir potansiyel taşıdığını düşünüyorum. Blokzinciri, platform kapitalizmine karşı alternatif platformlar yaratabilir. Nesnelerin interneti ve akıllı şehirlerin şirketlere bağımlı olmadan tasarlanmasına yardımcı olabilir.

Kaynaklar

Drescher, D. (2017). Blockchain basics: a non-technical introduction in 25 steps, APress.

Orcutt, M. (2018). Cryptocurrencies crashed in 2018. Now they’re right where they should be, https://www.technologyreview.com/s/612659/cryptocurrencies-crashed-in-2018-now-theyre-right-where-they-should-be/, son erişim 17 Ocak 2019

Orcutt, M. (2019). In 2019, blockchains will start to become boring, https://www.technologyreview.com/s/612687/in-2019-blockchains-will-start-to-become-boring/, son erişim 17 Ocak 2019