Kısa bir sürenin ardından tekrardan klavye başında sevgili okuyucularla birlikte olmak harika. Her bölüm yeni bilgiler ve oluşan birikimle, her zamanki gibi kendi dilimizde ve en sade şekilde Blok Zincir teknolojisinin temellerini anlattığımız Blockchain101 serisinin devamına sözü fazla da uzatmadan geçelim.
Transaction Nasıl Çalışır?
Temelinde mantıken geleneksel bankacılık sistemiyle benzerlikler barındırır. İşlem yapılacak iki tarafın bankalarının aynı olduğunu farz edersek, banka gönderimi yapacak hesabın bakiyesini kontrol eder ve işlemi karşılayacak miktar bulundurup bulundurmadığını kontrol eder. Bu durum hemen hemen Blok Zincir için de benzerdir. Ana fark ise bakiyeleri kontrol eden tek bir taraf bulunmaması ve tüm nodeların bu işlemi yapması. İşlem yapılmak istendiğinde ağa mesaj yayınlanır ve hemen blok zincirine eklenmez, nodelar bunu görür, ancak işlemin onaydan geçmesi için diğer eylemlerin tamamlanması gerekir. Bu işlem blok zincirine eklendiğinde, tüm nodelar bu işlemin yapıldığını görebilir. Bunu yansıtmak için blok zincirinin kopyası güncellenir.
Tıpatıp aynı birim tekrardan gönderilemez çünkü çift harcama yapılmış olur. Ağ bu işlemlerin daha önceden yapıldığını ve o birimin zaten harcandığını görür. Kullanıcı adı ve parolaya ihtiyaç yoktur. Fonların sahipliğinin kanıtlanması için açık anahtarlı şifreleme kullanılır. İlk olarak birim almak için kişinin özel bir anahtar oluşturması gerekiyor. Bu kimsenin tahmin etmesi neredeyse imkânsız olan çok uzun random sayılardan oluşur. Ancak herhangi birine özel anahtarını söylerse, fonlarının sahibi olduğunu kanıtlayabilirler. Bu nedenle bunun gizli tutulması önemlidir. Bu nedenle genel bir anahtar oluşturulur. İşlem yapılacak kişiyle bu adres paylaşılır ve fonları bu genel adrese ödeyin diyen bir işlem yapılır. Ardından kendisine ait olmayan başka fonları harcama niyeti olmadığını ağa kanıtlamak için kendi özel anahtarını kullanarak dijital bir imza oluşturur.
-Bir sonraki başlığı net anlayabilmek için önceki yazılara ufak bir göz atabilirsiniz. Bknz. Bloklar Zincire Nasıl Eklenir? –
Madencilik (Proof of Work)
Madencilik, en yaygın kullanılan konsensüs algoritmasıdır. Madencilikte bir Proof of Work (PoW) algoritması kullanılır. Bu, protokol tarafından belirlenen bir bulmacayı denemek ve çözmek için bilgi işlem gücünü öncelikte tutmayan hatta fedakârlık eden kullanıcıları içerir. Bulmaca, kullanıcıların bloğa dahil edilen işlemleri ve başka bilgileri toplu hale getirmesi gerektirir. Ancak hash’in geçerli olabilmesi için belirli bir sayının altına düşmesi gerekir. Çıktının ne olacağını tahmin etmenin bir yolu olmadığı için madencilerin geçerli bir çözüm bulana kadar bir miktar değiştirilmiş verileri karıştırmaya devam etmeleri gerekir. Ancak net bir şekilde görülüyor ki tekrar tekrar veri karma işlemi hesaplama nedeniyle pahalıdır. Proof of Work blok zincirlerinde, kullanıcıların öne çıkardığı stake, madencilik için kullanılan bilgisayarlarına yatırılan para ve onları çalıştırmak için kullanılan elektriktir. Bunu bir blok ödülü almak için yapıyorlar.
Bir hash’i tersine çevirmek pratikte imkansızdır ama kontrol etmek kolaydır. Bir madenci ağın kalanına yeni bir blok gönderdiğinde, diğer tüm nodelar bunu bir hash fonksiyonunda girdi olarak kullanır. Bloğun blok zinciri kuralları altında geçerli olduğunu doğrulamak için bir sefer çalıştırmaları yeterli olacaktır. Şayet ki geçerli değilse boşa harcanan elektrik olmuş olur çünkü blok ödülünü alamazlar. İlk Proof of Work blok zincirinin Bitcoin olduğunu da söylemeden geçmeyelim. Diğer birçok blok zinciri ilk ortaya çıkışında PoW mekanizmasını benimsemiştir.
Proof of Stake
Proof of Work algoritmasında sizi dürüst davranmaya iten durum madencilik amaçlı kullanılacak bilgisayarlar ve elektrik için ödediğiniz miktarlardır. Blokları doğru şekilde kazmazsanız yatırımınızdan geri dönüş almanız mümkün değildir. Proof of Stake (PoS) harici maliyet barındırmaz. Madenciler yerine blok öneren veya benzeten validatorler var. Yeni bloklar oluşturmak için normal bir bilgisayar kullanılabilir. Ancak ayrıcalıklı olmak için fonlarının önemli bir bölümünü riske atmaları hususu vardır. Staking, her protokolün kurallarına göre blok zincirinin kendine ait kripto para biriminin önceden belirlenmiş bir miktarı ile yapılır. Farklı uygulamalarda da farklı varyasyonlar vardır. Ancak doğrulayıcı birimlerini stake ettiğinde, bir sonraki blok için protokol tarafından rastgele seçilebilirler.
Bunu doğru bir şekilde yaptıklarında ödüle ulaşacaklar. Alternatif olarak, bir sonraki blokta hemfikir olan birden fazla validator olabilir ve bir ödül, her birinin öne sürdüğüyle orantılı olarak dağıtılır. Proof of Stake blok zincirleri, tüm ağ için blokları doğrulamak için kullanıcıların nodelara oy vermesini gerektiren DPoS (Delegated Proof of Stake) blok zincirlerinden daha az yaygındır.