Blockchain nasıl çalışır?

blok zinciri

Yıllar boyunca Bitcoin’in geleceğin dijital para birimi olması ve sürekli artan değeri hakkında haberler duymuş olabilirsiniz. Bu iddiaların gerçekleşmesini sağlayan teknolojinin adı: Blockchain.

Blockchain, Bitcoin, Ethereum, Litecoin, ZCash, Dash ve Doge gibi dijital para birimlerinin oluşmasını sağlayan teknolojidir. Blockchain, çok basit ve güvenilir bir çalışma teorisi olması ile birlikte sadece para birimi değil, dijital kimlik, dijital sözleşme, tapu işlemleri, telif hakları gibi bir çok alanda çözüm üretebilmemizi sağlıyor.

1 Bitcoin, 13 Temmuz 2016’da 670$ seviyesinden işlem görüyordu. 13 Temmuz 2017 itibariyle 1 Bitcoin 2380$ civarında. Kaynak: CoinMarketCap

Biz de girişimimiz GlobalMiles için bir sanal para birimi oluşturduk ve bununla ilgili detayları ilerleyen yazılarda sizinle paylaşacağım. Şimdi size basitçe, blockchain’in çalışma mantığını anlatmaya çalışacağım, resmin büyük haline bakacağız. Daha teknik konulara ileriki yazılarda değineceğim ve özellikle Ethereum hakkında yazacağım.

Adı üstünde: Blok zinciri!

Blockchain temel olarak adının da hakkını vererek, bazı data bloklarının birbiri ile zincirlenerek birleştirilmesi ile oluşuyor. İçerisinde veri bulunan bazı dosyaların, bir sıra ile birbirlerine bağlı olduğu, zincirde bir parça değiştirilirse tüm zincirin bozulacağı bir yapıyı temsil ediyor. Gelin bunu şekiller ile anlatalım:

Elimizde içerisinde verilerin olduğu bir blok düşünelim. Bu bizim silsilemizin ilk bloğu olsun. Bunu içerisinde herhangi bir metin olan bir Word dosyası gibi düşünebilirsiniz.

Bu bloğa bir adres veriliyor. İlk blok olduğu için bloğumuzun adresi kolay olsun diye 6 adet sıfırdan oluşsun: 000000. Buna blok’un hash adresi deniyor.

Hash değeri belirlenen blok artık işleme kapanmış oluyor ve zincirimizin ilk halkasını oluşturuyor. Daha sonra blockchain network’üne dahil olan kullanıcılar, sisteme daha fazla bilgi aktarma ihtiyacı duyuyorlar. Bu da yeni bir bloğun oluşturulmasını sağlıyor.

Burada en önem gerektiren yer, Blok 2’nin hash değeri. Henüz boş çünkü, bir başka kullanıcı tarafından hesaplanması gerekiyor. Burada da Blockchain bilgilerimize bir yenisi ekleniyor: Madencilik, orjinal ismi ile Mining. Blokların içerisine yazılan bilgilerin, bir miner tarafından, hash değeri bulunuyor. Blok 2 içerisindeki bilgiler ve Blok 1’in hash değeri birleştirilerek yeni bir hash değeri oluşturuluyor.

2’nci bloğumuzun hash bilgisi, içerisindeki veri ve önceki bloğun hash değeri birleştirilerek, bir madenci tarafından bulundu: abcdef. Bu hash değeri bir miner tarafından bulunduktan sonra Blockchain veritabanına yazılıyor ve ağa bağlı tüm bilgisayarlarda güncelleniyor.

Blockchain sisteminde bir kullanıcıların verilerini zincir içerisine sürekli ekleme ihtiyacı olmalı. Örneğin Bitcoin’i ele alırsak, bir dijital para birimi olarak hesaplar arasında para transferi olacaktır. X kullanıcısı herhangi bir neden ile Y kullanıcısına bir miktar para transferi (Bitcoin) yapacak. Bu bilgi bir sonraki bloğun içeriğini oluşturacak. Dünya üzerinde sürekli para transferi gerçekleşeceğinden ötürü, her saniye yeni bir blok ihtiyacı olacaktır. Bu bloklara yazılan verilerin doğrulanıp, hash değerini bulmayı sağlayan madenciler (miner) olacaktır.

Neden güvenli?

Şimdi bir senaryo üzerinden gidelim. Elimizde bir para birimi olduğunu, kullanıcıların birbirine sürekli para transferi yaptığını ve minerların bu bilgileri doğruladığını düşünelim. Yukarıda bahsettiğimiz şekilde, bloklar içerisine yazan veriler ve bir önceki bloğun hash değeri ile blokların hash değeri olduğunu bu şekilde bir zincir gibi birbirine bağlı olduğunu düşünelim.

İlk Ethereum bloğu 30 Haziran 2015‘te oluşturuldu. Bu yazının yazıldığı anda ise bir madenci tarafından 4016251‘nci blok işlendi (mine edildi). Kaynak: EtherScan

Yukarıdaki görsel, bizim para transferlerimizi saklayan veritabanının şeması olsun ve blok zincirimiz 1000’e ulaşmış olsun. 1000’ninci blok, kendisinden önceki bloklar gibi bir miner tarafından işlenmiş ve hash değeri bulunmuş (fedcba). Elimizde bu veritabanını değiştirme şansı olsa; örneğin 500’üncü blokta X kullanıcısı Y kullanıcısına 150 dijital para yollamış bilgisi yer alsa ve biz bunu daha sonra (hash değeri bulunduktan sonra) gelip aslında transfer edilen miktar 150 değil de 100’dü diye değiştirmek istesek. 500’üncü bloğun hash değerinin yeniden hesaplanması gerekecektir. Bununla da yetinmeyip kendisinden sonra gelen 501’inci blok, 500’üncü bloğun hash değerini kullanarak bir hash değeri oluşturduğu için 501’inci bloğun da hash değeri değişmesi gerekecektir. Aslında sonraki her bloğun hash değerinin değişmesi gerekecektir. Bu da sonraki para transferlerin değerlerinin teker teker yeniden hesaplanması anlamına geliyor.

Neden Daha da Güvenli?

Yukarıdaki zinciri barındıran veritabanı, bu blockchain network’üne dahil olan her kullanıcının bilgisiyarına indirilmiş halde olacaktır. Aksi halde, yeni bloklara veri yazamayacaksınız. Bunu torrent’e benzetebiliriz. İçerik dağıtık bir şekilde binlerce hatta milyonlarca kullanıcının bilgisayarında bulunabilir. Bu da yukarıdaki değiştirdiğiniz değerin (gerçekten farklı gösterdiğiniz transfer değeri), bu ağa dahil olan tüm kullanıcıların bilgisayarında değiştirmeniz gerektiği anlamına geliyor. Blockchain altyapısının en popüler kullanıcısı olan Bitcoin zincirinin milyonlarca kullanıcının bilgisayarında bulunduğunu düşünürsek, dünyadaki en güçlü bilgisayara sahip olsanız da zinciri hepsinin bilgisayarında değiştiremeyecektiniz.

Sonuç; Blockchain Nasıl Çalışır?

Blockchain, içerisinde veri yer alan blokların, zincir şeklinde birbirine bağlı olduğu bir veritabanıdır. Bu bloklardan biri değiştiğinde, sonra gelen her bloğun değişmesi gerekecektir. Bu veritabanı merkezi bir noktada değil, kullanıcıların bilgisayarında yer almaktadır. Dolayısı ile blokların içerisine yazılan bilgi, değiştirilemeyecektir!

İlerleyen yazılarda Blockchain teorisinde ve teknik detaylarında daha ileri gideceğiz. Yeni yazılardan haberdar olmak için Twitter hesabımı takip edebilirsiniz: @MehmetDavut

Yeni yazım: Blockchain Cüzdanı‘na da göz atmak isteyebilirsiniz.