Blockchain adı sistemin içindeki tüm blockların birbirlerine ekleniş sırasına göre zincir şeklinde ilişkisinden ortaya çıkmaktadır. Yeni data her zaman sonraki block olarak eklenir ve önceki data asla değiştirilemez.
Blockchain altyapısı için çeşitli alternatifler bulunmaktadır. Bitcoin, Ethereum, Ripple vb chainler çeşitli farklılıklar ile temelde aynı şeyleri sağlamaktadırlar. Sistemdeki her katılımcının bir defteri (ledger) vardır ve bu defterdeki her değişiklik gerektiren harekette güncellenir. Bu hareketlere transaction veya tx denir.
Blockchain altyapılarında genel olarak aşağıdaki durum söz konusudur;
- Güvenilmesi gereken bir makam yoktur. Ledgerdaki data kesinlikle doğrudur.
- Tüm data chainde saklanır. Herhangi bir db gereksinimi yoktur.
- Tx'ler doğru gönderildikten sonra kesinlikle yapılır.
- Tx'ler tüm katılımcıların defterlerine güncellenir.
- Tx'ler miner'lar tarafından gönderildikleri block kapatıldıktan sonra sisteme dahil edilir.
- Tüm hesaplar ve hareketler tüm katılımcılar tarafından görülebilir.
Bu noktada miner'ların dedike olarak blockları mine eden katılımcılar olduğunu eklemem lazım. Miner'lar bllockları kapatıp ilerledikçe sistem güncellenir. Miner algorithmaları tüm altyapılar için farklı olduğundan farklı bir yazıda detaya girebiliriz.
Değinmek istediğim bir nokta da bu blockchain altyapıları arasındaki farklardır.
Bitcoin blockchain temel olarak a kişisinden b kişisine gönderim yapılmasını ve bu tx'ların sistemden teyit edilebilmesini sağlar. Tx'lar 30sn-10dk arasında onaylanır.
Ripple'da aynı şekilde bir yapıya sahiptir ve ek olarak bankaların para transferi işlemleri işine odaklanmış bir altyapı olmasından dolayı bir bankaya ait tüm işlemler gateway denilen ana unsurlar etrafında yapılır. Gatewaylerin para birimi oluşturma ve katılımcı hesaplarına çeşitli işlemler yapma imkanları bulunmaktadır.
Ethereum, üstteki chainler ile temelde benzer olmakla beraber tx onay süreleri sn'ler bazındadır. Ek olarak tüm production seviyesindeki chain altyapılarından farklı olarak contract denilen unsurlar chain'e eklenebilir. Contractlar chainde otomatik çalışan kodlardır ve "Contract as a Service" mantığının temelini oluşturmaktadır. Örneğin oylama sistemini doğrudan chain'e ekleyebilir ve sadece basit bir önyüz ile chain üzerinde kod çalıştırabilirsiniz. Contractlar solidity dilinde yazılır. Yeni bir para biriminden, kişisel bilgilerinize herşey bir contract olabilir. Hayalgücünüzü bir zorlamayı deneyin ve yapılabileceklere şok olun.
Bu yazıda herşeyi çok temelde tutmayı çalıştım ancak sonraki yazılarda Ethereum bir chain kendi bilgisayarınızda nasıl ayağa kaldırılır ve neler yapılabilir onnları yazmaya çalışacağım.
Bey,