Blockchain nedir?
Kısaca ifade edecek olursak blockchain, merkeziyetsiz bir dijital kayıt defteri gibi işlev gören bir veri kayıt listesidir. Veriler bloklar halinde düzenlenir ve bu bloklar da
kriptografi ile kronolojik olarak sıralanır ve güvence altına alınır.
İlk blockchain modeli, 1990'ların başında bilgisayar mühendisi Stuart Haber ve fizikçi W. Scott Stornetta'nın dijital belgelerde verilerin kurcalanmasını engellemek için bloklardan oluşan bir zincirde kriptografi teknikleri kullanmasıyla yaratılmıştır.
Haber ve Stornetta'nın çalışmaları, diğer birçok bilgisayar mühendisine ve kriptografi meraklısına ilham vermiş, bu da en nihayetinde ilk merkeziyetsiz elektronik nakit sistemi (ya da ilk
kripto para) olarak Bitcoin'in yaratılmasının yolunu açmıştır.
Blockchain teknolojisi kripto paralardan daha eski olsa da ancak Bitcoin'in 2008 yılında yaratılmasıyla bu teknolojinin potansiyeli keşfedilmeye başlanmıştır. O zamandan bu yana blockchain teknolojisine yönelik ilgi kademeli olarak artmış ve kripto paralar artık daha geniş çapta kabul görür bir hale gelmiştir.
Blockchain teknolojisi çoğunlukla kripto para işlemlerini kaydetmek için kullanılır, fakat diğer birçok dijital veri türüne de uygundur ve farklı birçok kullanım alanına uygulanabilir. En eski, en güvenli ve en büyük blockchain ağı Bitcoin'dir. Bu ağ, kriptografi ve
oyun teorisinin dikkatli ve dengeli bir birleşimiyle tasarlanmıştır.
Blockchain nasıl işlev görür?
Kripto para bağlamında bir blockchain her biri daha önceden onaylanmış işlemlerin bir listesini içeren bloklardan oluşan istikrarlı bir zincirden oluşur. Blockchain ağı dünyanın dört bir yanındaki çok sayıda bilgisayar tarafından sürdürüldüğünden, merkeziyetsiz bir veritabanı (ya da kayıt defteri) olarak işlev görür. Bu da tüm katılımcıların (
düğüm) blockchain verilerinin bir kopyasını bulundurduğu ve aynı sayfada (ya da blokta) olduklarından emin olmak için birbirleriyle iletişim kurduğu anlamına gelir.
Dolayısıyla, blockchain işlemleri
eşler arası bir küresel ağda gerçekleşir ve bu da
Bitcoin'i sınır tanımayan, sansüre dayanıklı ve merkeziyetsiz bir dijital para birimi haline getirir. Buna ek olarak, çoğu blockchain sisteminin güvene dayalı olmadığı kabul edilir, çünkü bu sistemlerde herhangi bir tür güven gerekli değildir. Bitcoin'in kontrolünü elinde tutan tek bir yetkili yoktur.
Neredeyse tüm
blockchainlerin önemli bir ögesi de hashing algoritmalarını kullanan
madencilik sürecidir. Bitcoin, SHA-256 algoritmasını (256 bit güvenli hash algoritması) kullanır. Herhangi bir uzunluktaki bir girdiyi alır ve her zaman aynı uzunlukta bir çıktı üretir. Üretilen bu çıktıya "hash" adı verilir ve Bitcoin örneğinde bu çıktı her zaman 64 karakterden (256 bit) oluşur.
Süreç kaç kez tekrar edilirse edilsin bir girdi hep aynı çıktıyı verecektir. Fakat girdide küçük bir değişiklik yapılırsa, çıktı tamamen farklı olacaktır. Dolayısıyla, hash fonksiyonları belirleyicidir ve kripto para dünyasında bunların çoğu tek yönlü bir hash fonksiyonu olarak tasarlanmıştır.
Fonksiyonun tek yönlü olması, çıktıya bakarak girdiyi hesaplamanın neredeyse imkansız olduğu anlamına gelir. Girdinin ne olduğunu yalnızca tahmin etmek mümkündür, fakat bu tahminin doğru olma ihtimali son derece düşüktür. Bitcoin
blockchaininin güvenli olmasının nedenlerinden biri budur.
Algoritmanın ne yaptığını artık bildiğimize göre, basit bir işlem örneği üzerinden blockchainin nasıl işlev gördüğünü inceleyelim.
Alice ve Bob'un Bitcoin bakiyelerine sahip olduğunu ve Alice'in Bob'a 2
Bitcoin borcu olduğunu varsayalım.
Bu 2 bitcoini Bob'a göndermek için, Alice yapmak istediği işlemi içeren bir mesajı ağdaki tüm madencilere yayınlar.
Bu işlemde, Alice Bob'un adresi ve göndermek istediği bitcoin miktarının yanı sıra dijital bir imzayı ve herkese açık anahtarını
madencilerle paylaşır. İmza, Alice'in özel anahtarıyla yapılmıştır ve madenciler bu imza sayesinde coinlerin sahibinin gerçekten de Alice olduğunu doğrulayabilir.
Madenciler işlemin geçerliliğinden emin olduktan sonra bu işlemi diğer birçok işlemle birlikte bir bloka ekler ve bloku oluşturmaya çalışır. Bu oluşturma işlemi, blokun SHA-256 algoritmasından geçirilmesiyle yapılır. Çıktının geçerli kabul edilebilmesi için belirli bir sayıda 0 ile başlaması gerekir. Kaç 0 gerektiği, ağda ne kadar hesaplama gücü olduğuna dayalı olarak değişiklik gösteren "zorluk derecesine" bağlıdır.
İstenilen sayıda 0 ile başlayan bir çıktı hash'i üretmek için, madenciler algoritmadan geçirmeden önce bloka bir "
nonce" (tek kullanımlık rastgele bir sayı) ekler. Girdideki küçük değişiklikler çıktıyı tamamen değiştirdiği için, madenciler geçerli bir çıktı hash'i bulana kadar rastgele nonce'lar dener.
Blok oluşturulduktan sonra, madenci yeni oluşturulan bloku diğer tüm madencilere yayınlar. Diğer madenciler de kendi blockchain kopyalarına ekleyebilmek için bu blokun geçerli olup olmadığını kontrol eder ve işlem tamamlanır. Fakat tüm blokların birbirine bağlanabilmesi için madencilerin bir önceki blokun çıktı hash'ini de yeni bloka eklemesi gerekir. Blok zincir (blockchain) adı da buradan gelmektedir. Sistemde güvenin nasıl işlediğini göstermesi bakımından bu işlem sürecin önemli bir parçasıdır.
Tüm madenciler blockchainin bir kopyasını kendi bilgisayarında tutar ve herkes en fazla hesaplama işi barındıran yani en uzun blockchaine güvenir. Bir madenci önceki bir bloktaki bir işlemi değiştirirse, bu blok için çıktı hash'i değişecek, bloklar birbirine hash'lerle bağlı olduğu için daha sonraki tüm hash'lerin de değişmesine neden olacaktır. Bu durumda, blockchaininin herkes tarafından doğru blockchain olarak kabul edilebilmesi için madencinin tüm işi baştan yapması gerekir. Yani bir madenci hile yapmak istiyorsa, ağın hesaplama gücünün %50'sinden fazlasını elinde tutması gerekir ve bunun gerçekleşmesi de çok zordur. Bu tip ağ saldırılarına da bu yüzden
%51 saldırıları adı verilir.
Bilgisayarları bloklar üretmek için çalıştırma modeline
Proof of Work (PoW) adı verilir, fakat bu kadar hesaplama gücü gerektirmeyen ve daha fazla kullanıcıya ölçeklenebilirken bir yandan da daha az elektrik tüketen
Proof of Stake (PoS) gibi başka modeller de vardır.