Blokzincir, içerisine işlenecek her verinin şifrelendiği ve belirli zaman aralıklarında blok adı verilen yapının içerisinde saklanarak her yeni blokta bir önceki bloğa ait bir özetin bulunduğu ve tüm bu verilerin birden çok veri depolama noktasında saklandığı bir yapıdır.
Tarihi ve İlk Örnekleri:
Günümüzdeki blokzincir kavramı ilk kez hayatımıza, 1991 yılında Stuart Haber ve W. Scott Stornetta’nın önemli belgelere zaman damgası işleyerek belgelerin tarihlerinde değişiklik yapılmasını önlemek için girmiştir. Asıl amaç noter gibi dışarıdan bir onay alınmasına gerek duyulmadan değiştirilemeyecek bir belge oluşturabilmekti.
1992 yılında, oluşturulan bu sistemin verimliliğini arttırabilmek için, kullanılan kodların birbirlerine işlenerek, bir sonraki kodları oluşturduğu daha güvenilir bir şifreleme sistemi olan Merkle Ağaçları adlı blokzincir oluşturuldu. Merkle Ağaçları, sistemde bulunan verilerin daha hızlı doğrulanabilmesi için geliştirilmiş, her aşamada bir önceki işlemin verilerini saklayan ve tüm işlemleri kök denilen son aşamasında sakladığı için çok daha az hafıza kaplayan bir şifreleme sistemidir.
Merkle Ağaçları ile güçlendirilen bu sistem, Satoshi Nakamoto’nun 2008 yılında Bitcoin teknolojisini ortaya koyana kadar işlevselliğini korumuştur.
Kavramların İncelenmesi:
- İşlemler: Blokzincirde gerçekleşen her bir etkinliğe işlem (transaction) adı verilir. Blokzincir içinde yapılan her işlem aslında bir veri transferidir. Örnek olarak Bitcoin blokzincirinde gerçekleştirilen her işlem bir harcanmamış Bitcoin bakiyesini temsil eder. Tedarik zinciri için çalışan bir blokzincirinde ise bir ürünün yolculuğunun kayıtlarını adım adım kayıt altına tutabilir.
- Şifreleme: Blokzincir üzerindeki veriler oluşturulma yöntemine göre şifrelenmektedir. Örnek olarak Bitcoin blokzincirinde NASA tarafından kurgusu yapılan SHA-256 şifreleme metodu kullanılarak her bir işlem, cüzdan adresi şifrelenir. Üretilen her şifre için “hash” terimi kullanılır.
- Blok: Blokzincirinde, mimari yapısına göre belirlenen süre sonunda gerçekleşen işlemler bir araya getirilerek şifrelenir ve blok üst başlığı adı verilen en son şifrelemenin özeti bir yeni bloğun içine dahil edilir. Blokzincir’i kelime öbeğindeki zincir kavramı buradan doğmaktadır.
- Doğrulayıcılar (Node): Blokzincir üzerinde gerçekleşen işlemler doğrulayıcılar tarafından doğrulayıcılara aktarılır ve şifrelenmesinin ardından blokzincirinde kalıcı olarak yerini alır. Doğrulayıcılar, blokzinciri üzerindeki geçmiş verileri indirerek madencilerin kendilerine ilettikleri işlemlerin blokzincirin protokolüne uygun olup olmadığını kontrol eder. Örnek olarak bir Bitcoin transferi gerçekleştirildiğinde gönderim sağlayan cüzdanların bakiyeleri tarihçede kontrol edilir ve kabul edilir. Doğrulayıcılar birbirleri ile sürekli iletişim halindedir ve aynı veriyi saklarlar (saklama teknolojilerine göre farklılık gösterebilir.) Böylece blokzincire yeni bir veri gönderildiğinde tüm doğrulayıcılar aynı veriyi kontrol ederler ve çoğunluk sağlanır ise veri kalıcı olarak kayıt edilir.
- Madenciler (Miners): Madenciler, İşin İspatı (Proof of Work) metodu ile çalışan blokzincirlerde son gerçekleşen bloğun ardından yeni bloğun oluşmasına kadar geçen sürede oluşan tüm işlemleri şifreleyerek blok ödülü almaya çalışan organlardır. Madenciler, ödülü almak amacı ile en hızlı şekilde blokzincirinin gereksinimini sağlayan şifreleme yöntemine göre sonucu bulmaya çalışır ve doğrulayıcılara iletir. Doğrulayıcılar tarafından kabul edilen ilk işlem için madenciler ödül elde ederler.
- Zorluk Derecesi: Madencilerin üretmeye çalıştıkları şifreli sonuçlar için şifrenin zorluğunu belirleyen kavramdır. Örneğin Bitcoin blokzincirinde bulunması gereken tüm şifre için şifrenin başında belirli miktarda 0 (sıfır) bulunur. Sıfır sayısı arttıkça şifreli mesajın üretimi zorlaşır ve madenciler arasındaki rekabet de artar. Ayrıca zorluk derecesi ile şifre üretiminin de süresi uzadığından bloklar yaklaşık hep aynı sürede üretilir.
- Kayıtlar: Blokzincir kayıtları, ilgili blokzincir yapısının üzerine oluşturulduğu her türlü içerik bilgisidir. Bu bilgiler tasarıma göre para aktarımı, demirbaş girdisi, müşteri kayıtları gibi değerler olabilir. Sanal para birimleri için bu kayıtlar para transferi bilgileridir. Sistemde kayıtlı olan bir kullanıcıdan bir başka kayıtlı kullanıcıya yapılmış olan transferler bu kayıtlar ile tutulur. Yeni transfer istekleri de sıraya konularak bir sonraki işlem sırasında kaydedilerek yerini alır.
- Bloklar: Kayıtlar birleştirilip belirli aralıklarla işlenerek blokların içine yazılır. Blokların içerisinde kaç tane kayıt bulunacağı ve kayıtların hangi işlemlerden geçtikten sonra bir blok oluşturacağı gibi kıstaslar, blokzincirin tasarımına özeldir. Genel itibariyle, bir bloğun oluşturulması sırasında kriptografik özet algoritmaları ve dijital imza kullanılır.
Blokzincir üzerinde gerçekleşen bütün işlemler şifrelenerek, sistemde yer alan tüm bilgisayarlarda aynı şekilde kopyalanarak kayıt altına alınır. Blokzinciri 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. Bu kayıtlar belirli aralıklarla birbirlerine işlenerek blokları oluşturur.