1. torrent gibi çalışan sistemin veri tabanını oluşturan çok yeni ve bilgisayar biliminde büyük sıçramalara sebep olacak bitcoin'in kendisinden daha büyük bir iş.

    kabaca, şifrelenmiş işlem takibi sağlayan bir veri tabanı.

    dijital her işlem bu sistemle güvence altına alınabilir. özellikle bu sistemin finans sektörüne entegresi büyük tasarruf demek, güvenlik demek. bitcoin gibi bir sistemin devlet eliyle sunulması bildiğimiz kağıt paranın tarih olması demek. halihazırda zaten para diye bir şey gören yok, bir sayı var banka hesabınızda, kiraya bir sayı, elektrik suya bir sayı derken kalan sayıları da elinizdeki kart ile tüketiyorsunuz.
  2. konuyla ilgili faydalı bir kaynak.
  3. blockchain teknolojisinin ortaya çıkışı
    2008 eylül ayında lehman brothers’ın çöküşünden sade¬ce iki ay sonra gerçek kimliği belirsiz olmakla birlikte “satoshi nakamato” takma adını kullanan bir kişi (veya bir grup olma ihtimali de var) “bitcoin: eşten eşe elektronik nakit ödeme sistemi” başlıklı teknik bir çalışma yayınladı. kimdi bu kişi dersek avustralyalı iş adamı craig wright bitcoin'in yaratıcısına ait olduğu bilinen bitcoinlere dair teknik verileri de paylaştı ve böylece sanal paranın yaratıcısı olduğunu da kanıtlamış oldu(gerçi bu da kolpa olabilir bence).
    blockchain teknolojisine ait kavramsal temellerin ilk olarak 90’lı yıllarda kaleme alınan üç farklı makale ile karşımıza çıkar;
    -stuart haber ve w. scott stornetta tarafından hazırla¬nan 1991 yılına ait makalede, belgelerin zaman damgası ile birlikte kripto imzalarla nasıl kullanılacağı anlatıl¬maktadır.
    -ross anderson’ın hazırladığı 1996 yılına ait bir makale¬de ise kaydedilen güncellemelerin silinemeyeceği mer¬kezi olmayan bir veri depolama sistemini tanımlanır.
    -bruce schneier ve john kelsey tarafından hazırlanan 1998 yılına ait bir makale ise, güvenilmeyen makineler üzerinde tutulan günlük dosyalarının (log files) içerdiği hassas bilgilerin korunması için şifrelemenin nasıl kulla¬nılacağını açıklar.
    2008 küresel finans krizi yaşandığında gayet köklü yapılar üzerine kurulu olduğuna inanılan bankacılık ve finans sektörüne karşı da çok ciddi bir güvensizlik kaçınılmaz olarak ortaya çıktı. tüketiciler kendilerine satılan finansal ürünleri ve hizmetleri yeterince denetlemediği ve düzenlemediği için küresel merkez bankalarını suçladılar ve onlara mahkum kalmaya devam ettiler ama. hatırlıyorum ben deep web de dolaşırken bitcoin istiyordu siteler çünkü güvenli bir ödeme aracı ile işlem yapıp devletin ve istihbarat kurumlarının takibinden kaçmak, bankaların ağı dışında işlem yapmak istiyordu. ancak bu durum değişti artık sadece bu amaçlarla kullanılmıyor bitcoin ve altcoinler(yani ilk dijital para birimi olan bitcoin dışında kalan dijital paralar). ileride açıklanacağı üzere bu para sistemi takip edilemez değil çok zordur takibi, devlet her zaman en güçlü olmak değil gücü denetim altında tutmak ister işte blockchain teknolojisi buna izin vermediği için devlet tarafından, kendisini saf dışı bıraktığı içinde bankalar tarafından istenmiyor. yani bizim bu japon abi bu işin ilk uzmanı değil çünkü bitcoin benzeri bir sistem denendi ancak çökmüştür.
    dijital para kapsamındaki bu ihtiyaçların giderilmesinde kriptoloji kullanımı konusunda öncü çalışmalardan bir tanesi matematikçi david chaum tarafından 1983 yılında yayınladığı bir akademik makale kapsamında ortaya çıkmıştır. david chaum sonrasında bu araştırmalarını temel alarak “digicash” adlı elektronik para firmasını 1990 yılında kurmuştur. digicash tarafından sunulan yazılım ile birlikte kullanıcılar paralarını “ecash” adlı, banka tarafından kriptografik olarak imzalanmış dijital bir formatta bilgisayarlarında tutup, bu dijital parayı an-laşmalı her hangi bir kurumda bir kredi kartı numarası gibi bir bilgi paylaşımı yapmadan, gizli ve güvenli bir şekilde kullanabi¬liyorlardı. bu çalışma 1998 yılında yeterli kullanıcı sayısına ula-şamadığından dolayı iflas etmiş olsa da getirdiği kavramlar ve yaklaşımlar ileride çözümler için esin kaynağı olmuştur.
    blockchain yükselişi
    blockchain teknolojisi toplumlara ve işletmelere merkez bankaları gibi kontrol mekanizmaları olmaksızın üstelik kimlik denetiminden bağımsız yeni bir uluslararası, hızlı ve güvenilebilir platform sunmayı başarmış ve kendini bu noktada ispatlamıştır.
    2000’lerin başında bir birinden bağımsız iki proje ola¬rak karşımıza çıkan edonkey ve bittorrent tam olarak internet üzerinde hiç tanımadığımız ama iletişime geçebileceğimiz diğer kişiler, daha doğrusu makineler, üzerinden verinin paylaşılması için geliştirilmiş uçtan uca “peer to peer - p2p” olarak isimlen¬dirilen bir tür veri depolama çözümü olarak karşımıza çıktılar(p2p için, birçok bilgisayarı birleştirip veri paylaşımına açıyor diyebiliriz. çünkü bu sistem bize sınırsız kaynaktan veri sunumu yapabiliyor. biraz açacak olursak p2p sayesinde bir veriyi tek tek arkadaşlarımıza göndermekle uğraşmıyor, tek seferde bir veriyi milyonlarca kişiye göndere biliyorsunuz.). bu sistemlerde veri tek bir merkezde değil sayısı milyonları bulabilecek makine üzerinde bulunur. bu makinelerden bazıları verinin tamamını bazıları ise kısmen belli bir parçasını içere¬bilir. eğer bu veriye ulaşmak isterseniz sistem sizi olabilecek en optimum düzenleme ile bu veriyi farklı makinelerden çekecek şekilde yönlendirir. siz veriyi kendi bilgisayarınıza çektiğiniz süreç içinde aynı zamanda aldığınız veri için diğer kullanıcılara bir veri kaynağı olarak hizmet edersiniz. sistemin kullanıcıları sisteme verdikleri destek süreci ile doğru orantılı olarak sistem¬den faydalanabilirler. bu platformlar bulutun ötesinde bir çö¬züm sunar ancak buna rağmen içeriğin şifrelenmemesi, verinin nerelerde saklanacağına dair tercih seçeneği sunmaması gibi nedenlerden dolayı kurumsal veya mahremiyet içeren kişisel veriler için güvenli bir depolama çözümü değildir. bu yaklaşım ile dağıtık kayıt defterleri (distributed ledger systems) isimli çözümler ortaya çıkmıştır, blockchain teknolojisi de bu çözümün farklı bir uygulaması olarak değerlendirilebilir.
    eğer veriyi, iletişim ağları üzerinden, geniş ağlara kopyalayıp çoğaltarak dağıtacaksak ve farklı veri tabanlarında saklayacak¬sak bu verilerin gerçekten gizli kalırken tutarlılığının sağlan¬ması gerekir. bu amaç içinse kriptoloji kullanılır. şifreleme, herhangi bir veri kümesini bir kural yapısı kulla¬narak rastgele görünen bir veri kümesine dönüştürür. bu rast¬gele gibi görünen veri kümesi, şifreleme yapılırken kullanılan anahtar ile sahibi için orijinal anlamlı haline geri dönüştürüle¬bilirken bu anahtara sahip olmayanlar için tekrar orijinal yapı¬sına çevrilemez. böylece şifrelenmiş veri nerede ve ne şekilde depolanırsa depolansın sadece anahtar sahibi tarafından an¬lamlı kalmaya devam edecektir.
    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ılmıştır.. ancak bu ağların ortak sorunu üzerinde tutulan verinin şifrelenmemiş olmasıdır. bu sebeple dileyen herkes bu verilere erişebilir. bu noktada verileri şifreleyerek (kriptografi) ile dağıtık kayıt defterlerine dağıtmak 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 ge¬lirse verimiz şifrelenmiş olsa bile tutarlılığı ortadan kalkacak¬tır.
    farklı bir ifade ile birden fazla tarafın bulunduğu bir sistemde, sisteme eklenmesi istenen herhangi bir işlemin geçerli olarak kabul edilebilmesi için sistemin geneli tarafından kabul edilmiş kurallara uygunluğunun kontrol edilmesi gerekiyor. bu kontrol sürecine ve sonunda fikir birliğine varmaya “mutabakat” adı veriliyor. mutabakatın sistemin kendisi tarafından gerçekleştirilmesi için dağıtık sistem üzerinde kayıt defterini tutan makinelerin bu işlemin geçerliliği konusunda kendi aralarında fikir birliğine varması lazım. bu fikir birliği gerçekleştiğinde yani mutabakat sağlandığında artık yeni işlemin kayıt defterine yansıtılması için bir engel kalmıyor. bu yaklaşıma da “mutabakat yapısı” adı veriliyor. dijital bir sistem üzerinde mutabakat yapısının sağlanması için bunun yazılımsal açıdan garanti altına alınması lazım. işte tam bu noktada blockchain teknolojisi ortaya çıkıyor ve diyor ki; “ben tüm bu sorunları çözeceğim. veriyi, iletişim ağları üze¬rinden, dağıtılmış şekilde saklamanızı ve bu süreç içinde veri¬nin tüm noktalarda aynı kaldığına dair mutabakat yapmanızı sağlayacağım. hatta bununla da kalmayacağım herkes kendi verisini şifreleyeceği için bu veriyi sadece kendisi kullanacak ve izin verirse diğer taraflar bu veriye erişebilecek.
    şöyle bir çözüm sunuyor; veriyi bloklar halinde ele alalım, her bir blok önce belirli kurallara göre oluşturulsun sonra sis¬teme yazılsın, bu blok tüm dağıtık kayıt defteri yapısındaki uç noktalara yayılsın. yeni bir blok geldiğinde bir önceki bloğun bir özetini alalım (burada yazılımsal bir kriptoloji yaklaşımı kullanılıyor) bu özet ile birlikte ikinci bloğu oluşturalım ve zinci¬re ekleyelim. bu şekilde her bir yeni blok geldiğinde bir önceki¬nin özeti ile ilişkili olacağı için tüm zincir bir birini tamamlayan bir yapıya sahip olur. yani sistem bize sistemin korunması ve her bir blok oluşumunda önceki blok oluşumu ile bağının kesilmemesi, araya başkasının girmemesini garanti ediyor.
    blockchain kayıtlarını pek çok uç noktaya dağıttığımızı be¬lirtmiştik. bu durumda tüm noktalar kendi aralarında iletişim halinde kalarak sistemin bozulmadığının teyidini yapabilirler. eğer blockchain 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.
    blockchain dünyasında gizlilik ve anonimlik
    blockchain yapısında temel olarak bloklar ve blok kapsamın¬daki tüm işlemler ağa katılanların erişimine açık olarak bulun¬maktadır. bu noktada ağ üzerindeki işlemlere ait özel bilgilerin kriptografi tabanlı çözümler ile şifrelenmiş bir şekilde tutulma¬sının sağlanması blockchain yapılarında mutlak bir gizlilik ve anonimlik (gerçek kimlikten bağımsızlık) algısının oluşmasına yol açmaktadır. bu algının önemli nedenlerinden birisi de bit¬coin blockchain ağının tasarımı gereği üzerinde oluşturulan kişilere ait cüzdan bilgileri için gerçek kimlik bilgileri talep et-memesidir. farklı bir ifade ile bitcoin blockchain ağına giren bir kişinin gerçek hayatta kim olduğunu sadece ağ yapısını incele¬yerek pratik olarak bulmak neredeyse imkansızdır. anonimlik özelliği kazanabilmek için ortaya atılan yakla¬şımlardan bir tanesi “karıştırma” (mixing) servisleridir. bu servisler kendilerine yönlendirilen işlemleri “karıştırarak” yön-lendirme yapan kullanıcılar tarafından belirtilen adreslere geri gönderip (basitleştirmek gerekirse servise x birim kripto-para gönderip y adresine iletilmesini isteyen a kullanıcısı için servis kendisine istekte bulunan diğer kullanıcılardan aktarılan krip¬to-para işlemleri içerisinden x birimi ayırıp belirtilen y adresi¬ne yönlendirir, bu şekilde a kullanıcısının kripto-para aktardığı hesaptan bağımsız, ilişkisi olmayan kaynaklar tarafından yön¬lendirilme yapılmış x birim kripto-para içeren yeni bir hesabı olmuş olur) takip sistemlerini engellemeye çalışırlar. bunların en bilinenlerinden coinjoin protokolü, bitcoin blockchain platformu üzerinde kullanıcıla¬rın farklı işlemlerini tek bir işlem altında toparlayarak gerçek¬leştirilmesini, bu sayede kullanıcı bazında girdi-çıktı ilişkisinin takibinin yapılamamasını sağlamaktadır.
    bitcoin’in başarısı ile birlikte çeşitli kripto-para birimleri ortaya çıkmıştır. bitcoin ile aynı tasarım yapısına sahip olup tamamı ile farklı bir blockchain ağı üzerinde yaşam döngüsünü sürdüren bu kripto para birimleri “alt-coin” (alternative coin) adı verilmektedir.

    bitcoin
    blockchain kavramının hayatımıza girmesinde en büyük role sahip blockchain platformu şüphesiz ki bitcoin platformudur. bitcoin aynı zamanda en çok bilinen ve tanınan blockchain platformudur. ilk olarak kasım 2008’de satoshi nakamoto adı ile yayınlanan bir makale kapsamında ortaya çıkmış, 2009 yılı başında açık bir ağ olarak faaliyete girmiştir.
    bitcoin temel olarak p2p (uçtan uca) para transferi konu¬sunda alternatif bir yaklaşım getirmektedir. günümüz dünya¬sında para transferi yapabilmek için bankalar yada bu konuda özelleşmiş ara kurumlar (westernunion gibi) hizmet sunmak¬tadır. ancak bu servisleri kullanarak gerçekleşen işlemler hem maliyetli olmakta hem de uzun sürelerde gerçekleşmektedir. bitcoin platformunda kripto para birimi bitcoin (btc) ve plat¬forma dahil olan kişilerin dijital cüzdanları (bitcoin adresleri) bulunmaktadır.
    oluşturulan her bir cüzdan ile ilişkili olarak sahibi için bir adet açık-özel anahtar çifti oluşturulur, açık anah¬tar ağ içerisindeki diğer herkes ile paylaşılırken gizli anahtar özeldir ve saklı tutulması gerekmektedir.
    bir kullanıcı (ahmet) başka bir kullanıcıya (serkan) bitco¬in göndermek istediğinde; gönderim kapsamında kullanılacak ahmet’in kontrol ettiği bitcoin hesapları ve serkan’ın paylaştı¬ğı açık anahtar ile oluşturulmuş bitcoin adresini içerecek şekil¬de, ahmet’in gizli anahtarı ile imzalanmış bir işlem oluşturulur.
    böyle bir işlemin gerçekten ahmet tarafından oluşturuldu¬ğu, ahmet’in herkes ile paylaşılmış açık anahtar ile doğrulana¬bilir ama ortada iki temel sorun bulunmaktadır:
    - ahmet’in elinde, göndermek istediği kadar bitcoin var mı?
    - ahmet, elindeki bitcoin’i birden fazla kez gönderebilir/harcayabilir mi?
    işte bu noktada blockchain yapısı devreye girmektedir.
    bitcoin sistemindeki tüm işlemler ağ üzerindeki herkese açık, güvenli (değiştirilemez) ve ortak bir blockchain yapısı üze¬rinde tutulduğundan dolayı, hangi hesapta ne kadar bitcoin var sorusunun cevabına ulaşılabilir ve bu şekilde ahmet’in kontrol ettiği hesaplarda olmayan bir para ile işlem yapmasına izin ve¬rilmez. yine aynı mantık ile ahmet’in aynı parayı birden fazla kez harcanmasının önüne geçilmiş olunur. sistemde bulunan ve mutabakat yapan tüm makineler ahmet’in işlemlerini kontrol eder ve eğer bu sistemdeki kurallara uymayan bir işlem ise buna izin verilmez. burada mutabakatı yapan sistemdeki tüm muta¬bakat noktalarıdır, merkezi bir kontrol yoktur ve işlemin onay¬lanması için sistemde bulunan tüm mutabakat yapısının yüzde 50’sinden fazlasının bu işleme onay vermesi gerekmektedir.
    peki, bitcoin ağında işlem yapılan kripto para birimi bitcoin nasıl üretilir?
    bitcoin protokolü kapsamında sistemde yeni bitcoin yaratıl¬masının tek yolu blockchain üzerinde yeni blok üretilmesidir. bir bloğun üretilebilmesi için sistem üzerinde zorluk seviyesi sisteme dahil olan mutabakat noktalarının sayısına ve bu bil¬gisayarların işlem gücüne bağlı olarak değişen bir matematiksel problemin çözüm kümesini bulmak gerekmektedir. her bir blok üretiminde bloğu üreten noktaya sistem tarafından yine mikta¬rı belirli kriterlere bağlı değerde bitcoin verilmektedir. bu yakla¬şım teşvik (incentive) yaklaşımı olarak adlandırılmaktadır.
    bitcoin üretmenin zorluğu ve miktarı neden değişkendir?
    gerçek kimliğini bilmediğimiz satoshi nakamoto sistemi ilk kez tasarlarken zaman içinde kullanıcı sayısının artabileceğini ve üretilen bitcoin değerinin yükseleceğini öngörmüştür. bu sebeple sistemde enflasyona izin vermemek için ortalama her 10 dakikada bir blok üretilmesi kuralını belirlemiştir.
    sistem, faaliyete geçtiği 3 ocak 2009’da blok başına 50 bit¬coin ödül verirken bu değerin her 210.000 blok üretildiğinde yarılanması öngörülmüştür ve bu süre yaklaşık dört yıla teka¬bül etmektedir. bu işleme yarılanma (halving) adı verilir. bu se¬beple bitcoin ağında ilk yarılanma 28 kasım 2012’de gerçekleş¬miş ve her 10 dakikada bir blok üretimi başına verilen bitcoin miktarı 25’e düşmüştür. ikinci yarılanma ise 9 temmuz 2016 tarihinden gerçekleşmiş ödül miktarı 12,5 bitcoin’e inmiştir. bu şekilde en fazla 21 milyon bitcoin üretilebilecek ve sonrasın¬da sistem kapsamında yeni bitcoin yaratımı yapılamayacaktır.
    nakamoto’nun yaptığı tasarım aynı zamanda sistemde bit¬coin üretmek için matematik problemini çözmeye çalışan nok¬ta ve işlem gücü arttıkça problemi daha zor hale getirerek 10 dakikalık blok üretim sürecinin de korunmasını sağlamaktadır.
    üretilebilecek toplam bitcoin miktarı sınırlı olmakla birlikte bitcoin kendi içerisinde daha ufak birimlere bölünebilir - ör¬neğin en bitcoin birimi bir bitcoin’in yüz milyonda biri olan “satoshi”dir.
    ethereum
    ethereum, uygulama geliştiricilerin merkezi olmayan uygu¬lamaları geliştirmesi ve devreye sokmasına olanak tanıyan ye¬nilikçi bir blockchain teknolojisine dayanan bir platformudur. ethereum’un yaratıcıları, bitcoin’i “1. nesil blockchain”, ethe¬reum’u ise “2. nesil blockchain” olarak tanımlamaktadırlar.
    ethereum blockchain ağ yapısında her makine ethereum virtual machine (evm) adı verilen bir sanal makine çalıştırır. bu sanal makine, ethereum tarafından sağlanan özel üst seviye programlama dilleri (solidity, viper, serpent) ile yazılmış her¬hangi bir uygulamanın ethereum blockchain yapısı üzerinde çalışmasına izin vermektedir. ethereum tarafından sağlanan dil yapıları turing-complete olarak adlandırılan bir özelliğe sa¬hip olduklarından teorik olarak gözlemlediğimiz her şey ethe¬reum içerisinde bir program olarak hazırlanabilmektedir.
    şifreleme ve kuantum bilgisayarlar
    blockchain platformlarını en güçlü kılan özelliklerin başında kriptografi gelmektedir. bu kapsamında kullanılan şifreleme yaklaşımlar oldukça güçlü olsa da, kuantum bilişim (quantum computing) gibi alanlardaki gelişmelerle birlikte bu konuda ile¬rideki zamanlarda çeşitli zafiyetler görülebileceği düşünülmek¬tedir. şu anda bilgisayarların sadece 1 ve 0 ile işlem yapabildiği ikili (binary) sistemlerden bahsediyoruz. ancak kauntum bilgi¬sayarlarda 1 ve 0’ın aynı anda geçerli olduğu üçüncü bir durum daha bulunmakta ve bu üçlü veri qubit adı verilen yapılarda saklanmaktadır. bu bilgisayarlar geleneksel ikili sistemlere karşı milyonlarca kat daha güçlü işlem yapabilme kabiliyetine sahiptir. bu sistemlerin kabul edilebilir sürelerde günümüzün gelişmiş ikili şifreleme yöntemlerini kırması mümkün olabilecektir. bu blockchain dünyası için hemen değil ama uzun vadede bir risk oluşturmaktadır. özellikle kripto-para çözümlerinde kullanılan açık-özel anahtar yapısındaki özel anahtarın saklanması kullanıcının sorumlulu¬ğunda bulunmaktadır. bu kullanım şeklinde yaşanacak olan bir özel anahtar kaybetme durumunda, son kullanıcının elinde şifrelenmiş işlemlerin sahipliğini doğrulayacak hiçbir bilgi kal¬mamaktadır. özel anahtarın başka bir kullanıcının eline geç¬mesi ise ilişki varlıkların sahipliğini kaybetmek ile eşdeğer bir durumdur. bu gibi problemlerin oluşmasını engellemek amacı ile kullanıcıların anahtar verilerini koruyacak yeni aracı kurum yapılarının oluşması muhtemel bir gelişmedir. bu sebeple fark¬lı alternatif çözümler sunan kripto para cüzdan uygulamaları ve servislerinin sayısı her geçen artmaktadır. ancak bu yapılar da yanlarında çeşitli güvenlik sorunlarını getirmektedir (2016 yılında gerçekleşen bitfinex dolandırıcılığında kullanıcıların kripto-para cüzdan kayıtlarına erişilerek 120.000 bitcoin çalın-mıştır).
    “poof-of-work” tipi mutabakat yaklaşımı kullanan açık block¬chain yapılarında blokların üretilmesi için gerçekleştirilen ma¬dencilik (mining) işlemi, genel olarak teşvik sistemi ile beslen¬mektedir. kripto para üretim miktarı sınırlı olan durumlarda teşvik sisteminin sonlanması ile birlikte burada oluşacak ma¬denci davranış şekli konusunda kesin bir yargıya varmak şim¬diden mümkün görünmemektedir.
    sahip oldukları açıkların giderilmesi ve yeniliklerin eklen¬mesi için platformlar üzerinde sürekli güncelleme çalışmaları yürütülmekte, ancak özellikle açık blockchain platformlarının merkezi olmayan, demokratik yapısı bu güncellemelerin ger¬çekleştirilmesinde her bir uç noktanın birlikte hareket etme¬sinde noktasında sıkıntılar yaratabilmektedir. bu durum çatal-laşma (forking) adı verilen bir sonuç doğurabilmektedir.
    çatallaşma (fork)
    bir blockchain ağında tüm katılımcılar ağın kendisine bir ya¬zılım kullanarak ağa dahil olurlar. bu yazılımlar sürekli olarak sistemi geliştirenler tarafından güncellenir. bu güncellemeler genellikle ağın yeteneklerini ve imkanlarını geliştirmeye ve performansını artırmaya yönelik gerçekleşir.
    blockchain ağındaki her bir kullanıcı ağının yerel bir kop¬yasına sahiptir. bazı istisnai durumlarda yazılımda gerçekleş¬tirilen güncellemeler sonrasında yazılımda güncelleme yapma-yanlar sadece genel blockchain ağındaki verileri okuyabilirken, güncellenmiş yazılıma sahip olanlar blockchain ağına veri yaz¬maya devam edebilirler. bu durumda yazılım güncellemesi yap¬mayan kullanıcıların sahip oldukları yerel blockchain ağ kop¬yası güncellenmediği için genel yapıdan farklılık gösterir. bu blockchain ağında bir geçici çatallaşma (soft fork) durumu ortaya çıkarır.
    bazı yazılım güncelleme durumlarında ise güncelleme alma¬yan eski noktalar blockchain ağına veri yazamadıkları gibi aynı zamanda verileri okuyamaz duruma düşerler. yazılım güncel¬lemesi yapanlar blockchain ağını kullanarak ilerlemeye devam ederlerken yazılım güncellemesi yapmayanlar sadece yerel veri¬leri üzerinde okuma ve yazma işlemi yapabilirler. ancak bu tarz durumlarda belli bir grup eski yapıyı korumaya karar verebilir ve yeni yapıya itiraz edebilir. bu durumda ister istemez bir bi¬rinden ayrılan iki tane yeni blockchain ağı oluşur. bu duruma mecburi çatallaşma (hard fork) adı verilmektedir.
    blockchain ağlarında yaşanabilen çatallaşma probleminin en büyük örneği “dao olayı” olarak adlandırılmaktadır ve et¬hereum blockchain ağında gerçekleşmiştir. temelinde bir akıl¬lı sözleşme olan dao yaklaşımı (decentralized autonomous organization – merkezi olmayan özerk kurum), herhangi bir insan müdahalesi gerek kalmayacak şekilde bir kurumun kural¬larını ve karar verme mekanizmalarını bir akıllı sözleşme kapsa¬mında tanımlayarak merkezi olmayan kontrol ile bir yapı oluş¬turmayı hedeflemektedir. “dao olayı” kapsamında nisan 2016 tarihinde ethereum üzerinde çalışmak üzere tanımlanmış bir dao kitlesel fonlamaya açılmış, 11.000 civarında kişinin katı¬lımı ile birlikte 150 milyon dolar değerinde ether (eth) toplan¬mıştır. bu toplanan kaynak girişim sermayesi fonu olarak kulla¬nılmak üzere dao’nun yönetimine bırakılmıştır. ancak dao’un üzerine inşa edildiği akıllı sözleşme yapısındaki bulunan açığı fark eden bir (veya bir grup) kullanıcı, toplanan fonun yaklaşık 1/3’nü kendi hesabına aktarmayı başarmıştır. buradaki önemli nokta bu işlemin ethereum ve dao kurallarına aykırı davran¬mayarak, herhangi bir ihlal gerçekleştirmemiş olmasıdır.
    blok
    adından da anlaşılabileceği gibi blockchain yaklaşımında veri¬lerin saklandığı yapılar blok (block) olarak adlandırılır. ve bu blok yapıları bir zincir şeklinde (zaman açısından doğrusal bir dizi yapısında) düzenlenir. bu zincir kapsamındaki ilk blok ya¬pısına “genesis” (başlangıç) blok denir.
    dağıtık ağ yapısı
    günümüz yaklaşımlarında kapalı merkezi sistemler kullanıldı¬ğını belirtmiştik. blockchain yapısında ise tüm bilgiler dağıtık (distributed), katılımcılara açık bir ağ yapısı üzerindeki tüm makinelerde eşlenik (bir birinin kopyası) halde tutulmaktadır. bu şekilde tekil bir ara kuruma ihtiyaç ortadan kalkmakta, bu durumun getirdiği maliyetler ve riskler (single point of failure / tekil kırılma noktası: çalışmaması durumunda içinde bulundu¬ğu tüm sistemin, akışın çalışmasını engel olma) ortadan kaldı¬rılmaktadır.
    mutabakat mekanizması
    bir üst madde de ağ yapısı üzerindeki tüm makinelerde block¬chain ağındaki verinin eşlenik bir kopyasını barındırdığını belirtmiştik. eşleniklik durumunu sağlamak için ağ genelinde mutabakat (consensus) yapılması gerekir.
    blockchain ağlarında verilerin blok adı verilen yapılarda tutulduğunu biliyoruz. blockchain ağlarında “güvenlik” tanı¬mı, blokların içerdiği bilgilerin dış dünyadan saklanması değil, oluşturulduktan sonra içerdiği bilgilerin fark edilmeden değiş¬tirilemeyeceğini ifade eder. bunu sağlamak için kriptografik özetleme (cryptographic hashing) ve zaman bilgisi kullanıl-maktadır.
    temel olarak blok iki parçadan oluşur:
    - blok içerisindeki veriler
    - blok içerisindeki veri bütünlüğünü kontrol etmek amaç¬lı üst bilgi/başlık (block header). bir blok başlığı temel olarak aşağıdaki bilgileri içermektedir:
    -bir önceki bloğa (üst blok) ait özet (hash) değeri
    -blok içerisindeki verilere ait merkle kök değeri (bunu kısaca tüm verilerden tek bir özetleme verisine erişme şekli olarak düşünebiliriz)
    blok başlığı içindeki bilgilerin toplu bir şekilde bir güvenli özetleme algoritmasından geçirilmesi ile o bloğa ait olan özet¬leme bilgisine (block hash) ulaşılır.
    fark edebileceğiniz gibi her blok kendisinden önceki bloğa ait özetleme bilgisini içermektedir. bu bilgiyi içeren bloğun özeti ise bir sonraki blok için kullanılacak özetleme bilgisini elde etmekte kullanılmaktadır. bu yapıda kötü niyetli birisinin, blockchain ağı üzerinde hedef aldığı bir blok içeriğini değiştirebilmesi için hem hedef bloğu hem de ondan sonra gelen tüm blokları değiştirmesi gerekmektedir. blok üretiminin sürekliliği (saldırgan değişim yaparken blockchain’e yeni blokların katılıyor olması) ve blok üretim yaklaşımlarının yapılarından dolayı bu senaryo teorik olarak gerçekleştirilebilecek olsa da pratikte gerçekleştirilmesi normal koşullarda mümkün görülmemektedir.

    blockchain ağlarını temel olarak değer içeren verilerin (para, kimlik, değerli kağıtlar gibi) güvenli ve emin bir şekilde depolanması ve yönetilmesi için tasarlanmış bir teknoloji olarak tanımlamıştık. bir mimaride bulunan her bir düğüm üzerindeki blokların eşlenik bir yapıda olabilmesi için bu makinelerin sisteme eklenmek istenen her yeni blok için bir mutabakat yaklaşımı sergilemesi gerekmektedir. blockchain platformları bu konuda farklı çözümler sunmaktadır. bunlardan en çok kullanılan üç tanesini incelersek:
    proof of work
    bu yapıda sistemin bir blok yapısını hazırlayıp, ilgili blockchain ağına eklenmesinin yönetimi için çözülmesi zor ama çözümün doğruluğun kontrolünün kolay olduğu bir problem üzerinden ilerlenir. bu konuda en çok kullanılan problem türü, hazırlanan bloğa ait özetleme (hash) değerinin belirli bir yapıya (tanımlanmış bir değer aralığı içerisinde olma, belirli bir karakter dizisi ile başlama gibi) uymasıdır. özetleme (hash) fonksiyonları yapı itibari ile tek yönlü olduklarından ve çıktıları tahmin edilemediğinden uygun bir değer üretilmesi için oldukça fazla sayıda deneme yapılması gerekmektedir. örneğin bitcoin yapısında nisan 2017 itibari ile saniyede ortalama 3,5x10^15 hash işlemi yapılmakta ve ortalama olarak 10 dakikada bir proof of work yapısına uygun blok üretilebilmektedir. ancak paylaşılan bir özetleme (hash) değerinin kontrolü için sadece ilgili blok içe¬risinde özetleme (hash) değerinin bir defa hesaplanması yeter¬lidir.
    şu andaki en popüler blockchain platformu olan bitcoin üzerinde bu mutabakat yaklaşımı kullanılmakta ve ilgili süreç madencilik (mining) olarak adlandırılmaktadır. basit bir şekil¬de bu süreci incelersek:
    - yeni blok içerisinde yer alması istenen işlemler/veriler seçilir.
    - bu işlemler/veriler kullanılarak merkle ağacı yapısı ve merkle kök değeri oluşturulur.
    - merkle kök değeri, bir önceki bloğun özetleme değeri, zaman bilgisi ve ardışık olarak artan bir sayaç olarak ta¬nımlanabilecek “nonce” değeri kullanılarak blok başlığını oluşturulur.
    - blok başlığı özetlenerek (hashing) uygun bir değer (belir¬li bir karakter kümesi ile mi başlıyor gibi) oluşup oluşma¬dığı kontrol edilir.
    - eğer uygun bir blok özetleme değeri oluştu ise yeni blok başarılı bir şekilde oluşturulmuş demektir, bu bilgi ağ üzerindeki tüm makineler ile paylaşılır.
    - eğer uygun bir blok özetleme değeri oluşmadı ise non¬ce değeri arttırılarak uygun özetleme değeri yaratılmaya çalışılır. nonce değeri limitine geldiğinde hâlâ geçerli bir blok oluşturulamadı ise (yani geçerli bir özetleme değerioluşturulamadı ise) bu durumda blok başlığını oluştu¬ran diğer değerlerde (blok içerisinde yer alacak işlemler kümesinin sırası, içeriği gibi) güncelleme yapılır ve akış tekrar baştan ele alınır.
    proof of stake
    bu yaklaşım kapsamında ise blok üretim ve geçerlilik onay me¬kanizması bloğu üreten makinenin ilgili blockchain ağı üzerin¬de sahip olduğu pay ile ilişkilendirilmektedir. bu tarz sistem¬lerde genellikle sistem içerisinde üretilebilecek tüm kripto para miktarı ilk başta üretilir, sistemdeki üyeler yatırımlarına göre paylarına düşen kripto paralarını alırlar, sonradan yeni ekle¬meler yapılmaz. sistem kapsamındaki pay değeri temel olarak sahip olunan kripto para miktarına göre hesaplanır.
    pay miktarına göre işlem yapmada farklı davranış şekilleri görülebilmektedir:
    - bir sonraki bloğu üretecek olan makine sahip olduğu pay ile ilişkilendirilmiş bir rastlantısal fonksiyon ile belirle¬nebilir zira payı yüksek olan makinenin seçilme şansı daha yüksektir. ilgili makine belirli bir süre içerisinde uy¬gun bir blok paylaşmaz ise bir sonraki makineye geçilir.
    - bir makine belirlemesi yapılmaz, ancak pay bilgisi maki¬nenin çözmesi gereken problemin (proof of work yak¬laşımına benzer bir şekilde) zorluk derecesini değiştirir. örneğin daha fazla pay sahibi olan makine için daha ko¬lay bir problem çözüm aralığı sağlanır.
    practical byzantine fault tolerance – pbft
    bu yapıyı adını bizanslı generallerin kullandığı bir yöntemden alır. bizans ordularında generaller, imparatordan gelen emir¬lerin gerçek olup olmadığını anlamak için oldukça basit ve et¬kili bir yöntem takip ediyorlardı. imparator ordusuna bir emir vereceği zaman bunu generallere ulaştırmak için birden fazla ulak yolluyor ve generaller de emri aldıklarında kendi araların¬da ulaklar ile bu emirleri paylaşıyorlardı. bu süreç içinde eğer imparatordan gelen emir ulakların çoğunluğu tarafından doğ¬rulanmış ise bu emrin doğru olduğu kabul ediliyordu. aksi tak¬dirde tekil emirlere itimat edilmiyordu.
    bu çözümü blockchain dünyasına getirirsek bu yaklaşımda ağ yapısına dahil her doğrulayıcı (validator) rolüne sahip ma¬kine için bir açık-özel anahtar ikilisi bulunmaktadır ve her ma¬kine diğer makinelerin açık anahtar bilgisine sahiptir.
    her makine kendisine gelen bir işlem (transaction) bilgi¬sini, kendi üzerinde tutulan veri yapısını kullanılarak kontrol eder, onayladığı bir işlemi imzalayarak ağ ile paylaşır. eğer bir işlem belirli bir sayıda (mesela 2n makineden oluşan bir ağ için bu sayı n+1 olabilir) makine tarafından onaylanmış ise mutaba¬kat sağlanmış kabul edilir, bu işlem ağ tarafından geçerli işlem olarak tanımlanır.
    en uzun blockchain kaydı
    dağıtık, merkezi olmayan büyük ölçekli bir mimaride bağlı her bir makinedeki blok yapısının her zaman tutarlı olması bekle¬nemez. sistem içerisinde yakın zamanlı paralel blok üretimi, blokların ağ üzerindeki makinelere farklı zamanlarda iletilmesi gibi nedenlerden dolayı ağa bağlı makineler üzerinde blockcha¬in ağında farklı blok sıralamasına sahip düğümlerin (node) bulunması karşılaşılan bir durumdur. bu durumu çözebilmek için makineler her zaman “en uzun blockchain kaydı geçerlidir” mantığı ile hareket edip, bu blockchain kaydını genişletmek amacı ile işlem yaparlar. “en uzun” yaklaşımı farklı mutabakat yapılarında farklı anlamlara gelebilmektedir, örneğin “proof-of-work” yapılarında en fazla proof-of-work’ün gerçekleştiği (bu bilgi ilgili blockchain ağını oluşturan blokların problem zorluk derecelerinin bir araya getirilmesi ile hesaplanır) blockchain yapısı “en uzun blockchain kaydı” olarak tanımlanmaktadır.
    bir makineye yeni bir blok aday olarak iletildiğinde öncelik¬le içeriği incelenerek geçerlilik kontrolü yapılır, sonrasında ise bağlı olduğu üst blok bulunarak blockchain ağına eklenmeye çalışılır. bu durumda üç farklı davranış şekli söz konusudur:
    - gelen blok, en uzun blok yapısının sonuna eklenir (blo¬ğun ilişkili olduğu üst blok, geçerli en uzun blockchain kaydının son bloğudur). bunun ile alakalı şemayı aşağıda görebilirsiniz.
    - gelen blok yapısının bağlı olduğu üst blok, en uzun blockchain kaydı yapısında sonuncu blok olmadığı du¬rumlarda ana blockchain yapısı üzerinde çatallaşmaya (fork) yol açar; bu dallara “ikincil zincir” (secondary chain) adı verilir. bir ikincil zincir, o an olmasa da za¬manla “en uzun zincir” özelliğine sahip olabilir, bu du¬rumda kendisi ana blockchain’e dönüşürken o esnada geçerli olan ana blockchain artık bir ikincil zincir olarak değerlendirilmeye başlanır.
    - gelen blok yapısının içerisinde belirtilen üst blok tanımı bilinen bir zincir yapısı kapsamında bulunamaz; bu blok¬lar “yetim” (orphan) olarak adlandırılır. bu tarz bloklar genelde birbirini takip eden hızlı blok üretimi durumla¬rında blokların ilgili makineye ağ yapısındaki gecikme¬ler vb. nedenlerden dolayı ters sıralama ile varmasından dolayı olayı oluşur. bu tarz bloklar genel olarak ilgili üst blokları ilgili makineye gelinceye kadar makine üzerinde ayrı bir havuz yapısında tutulurlar.
    blockchain yapılarında çatallaşma sık karşılaşılan bir durum¬dur, örneğin bitcoin blockchain yapısında genel olarak haftada bir tek blokluk çatallaşma görülmektedir, bunun ötesindeki ça¬tallaşmalar çok nadir görülür. genel olarak blok üretim zaman¬ları düşük olan sistemlerde çatal oluşma olasılığı artmaktadır (ortalama olarak 2,5 dakikada bir blok üretimi yapılan liteco¬in’de bitcoin’e kıyasla çok daha fazla çatallaşma oluşmaktadır).

    bu bilgileri bkm express’in blockchain e kitabından derledim, bu bilgileri internetten başka kaynaklar ile zenginleştirmeye çalıştım ancak daha etraflıca kaynak yoktu. isteyen daha genişçe bilgiler için mezkur kitabını bulabilir internetten. ben bkm ile 1 tl bağış yapıp kitabı satın almıştım ancak sitenin kendisinde bedava da sunulunca darıldım onlara.
    edit, ekşi de yer alan yazımdır yani benim kendi çalışmam.