Anatomi Serisi: Blockchain Nasıl Çalışır?
Hello!
Anatomi Serisi: Blockchain Nasıl Çalışır? adında yeni bir yazı dizisine başlıyorum. Serinin ilk yazısında Blokzincir’ in tanımını, kullanılan algoritmaları, hangi algoritmanın nerede neden kullanıldığına değineceğiz. Serinin ilerleyen yazılarında da güvenlik zafiyetlerine doğru yelken açacağız.
Blokzincir Nedir?
Blokzincir; birbirini takip eden bloklardan oluşan dağıtık veri kayıt sistemidir. Blokzincirleri bir önceki bloğa ait hash değerini kendi bloğunda saklamaktadır. Bloklar ardışık olarak ilerlemediğinde yapı bozulmaktadır. Zincir büyüdükçe blokların değiştirilme ihtimali düştüğü için yapının güvenilirliği artmaktadır.
Isınma turu olarak Blokzincirin’ in tanımını ve nasıl çalıştığıyla başlayalım.
Dağıtık Sistem Nedir? (Distirbuted Ledger Technology)
Verilerin ağ üzerinde birden fazla alanda katılımcıların yetki seviyesine göre erişilebilir, güncellenebilir ve doğrulanabilir olmasını sağlayan merkeziyetsiz bir teknolojidir. Verilerin birden fazla noktada bulunması katılımcılar arasında kurulan konsenüs algoritmaları sayesinde otoriteye ihtiyaç duyulmadan çalışmaktadır.
Sol : Merkezi yapıda her katılımcı aynı sunucuya bağlanmaktadır.
Orta: Merkeziyetsiz yapılarda katılımcılar uygun olan sunucuya bağlanmaktadır.
Sağ Dağıtık yapıda ise katılımcılar aynı zamanda veri sağlayıcısıdırlar.
Peki Blokzincir günümüzdeki hangi sorunu çözmek için geliştirildi? Neden merkezi sistem yerine dağıtık sistemleri kullanmaktadır?
Blokzincir; kişiler arasında veri alışverişini arada herhangi bir otorite olmadan yapılmasını sağlamaktadır. Örneğin günümüzde para transferi yapacağımız zaman bankalar, devlet, ödeme işlemcisi (SWIFT, MasterCard, Visa vb.) gibi üçüncü parti otoriteler devreye girmektedir. Üçüncü parti otoritler devreye girdiğinde aracı ücreti, işlemin reddedilmesi, işlemin onaylanması için geçen süre gibi dezavantajları beraberinde gelmektedir. Blokzincir teknolojisinde ağda bulunan madenciler aracılığıyla aktarım işlemi gerçekleştirilirken herkeste verilerin bir kopyası (defter) bulunduğu için olmayan bir paranın gönderilmesi mümkün değildir. Blokzincir’ de hesap bakiyeleri takip edilmez. Yalnızca onaylanan işlemleri kayıtları tutulmaktadır. Defterler (Ledger) bakiye kaydını değil, ağda yayınlanan işleme ait kayıtları tutmaktadır. Cüzdan bakiyelerini belirlenmesi için cüzdanınızın bağlı olduğu tüm ağdaki işlemlerin analiz edilmesi ve doğrulanması gerekmektedir.
Blokzincir Nasıl Çalışır?
Blokzincir ağında veriler bloklar halinde saklanmaktadır.
Miner adı verilen bilgisayar aracılığıyla, işlemler çeşitli şifreleme standartlarına uygun bir şekilde arşivler ve blok haline getirilir. İşlemlerin sonucunda o bloğun hash değerini (özet fonksiyonu) oluşturulur.
Ağda bulunan node’ lar aracılığıyla blokların ve şifreleme işlemlerinin kontrolü yapılır. Node’ lardan yeterli seviyede onay alındığında yeni blok, zincire eklenmektedir. Her blok kendisinden bir önceki bloğun hash değerini sakladığı için bloklar hayali bir zincir şeklini oluşturmaktadır.
İşlemi gerçekleştiren miner lara blok ödülü (block reward) verilmektedir. Örneğin; başlangıçta her Bitcoin için blok ödülü 50 BTC’ ydi. Şubat 2019’ da 12.5 BTC Mayıs 2020’ de gerçekleşen yarılanma ile ödül 12.5 BTC’ den 6.5 BTC’ ye düştü.
Blokzincir Mimarisine Ufak Bir Bakış
Blokzincir; işlemleri bloklar içinde saklamakta ve bloklar ile zincir oluşturmaktadır. Bu bloklar ile zincir belirli özelliklere sahip olup belirli kurallar ile bir araya gelmektedir. Öncelikle temel kavramları sonrasında da bir bloğun içinde ne gibi veriler bulunmaktadır onları anlatacağım.
- Blok: Blokzincir’ de verilerin saklandığı yere blok denir. Bloklar içerisindeki bilgilere göre zincir yapısında sıralanmaktadır. Bu zincir yapısı içerisinde ilk blok, genesis blok isimlendirilir. Her blokta aşağıdakiler bulunmaktadır.
- Bloğu tanımlayan bir hash değeri
- Bir önceki bloğu tanımlayan hash değeri
- Bir dizi zaman damgalı işlem (timestamped transactions)
Bloktaki işlem sayısı işlemlerin boyutuna ve işlemlerdeki blok sayısına göre değişmektedir. Her blokta öncesinde bulunan blokla ilgili hash değeri tutulmakta olup [7], bir blokta yaklaşık olarak 350 ile 500 arasında işlem bilgisi yer almaktadır [8].
- Node: Ağda bulunan bilgisayarlara verilen isimdir. Bitconi ağında, 15.10.22 13:42 itibariyle 14642 adet node bulunmaktadır. (Her node, tüm zincirin bağımsız bir kopyasına sahiptir.)
- Miner: Ağa eklenecek blokların ekleme ve doğrulama işlemine yapan node lara verilen isimdir.
- Consenus Mekanizması: Blokzincir mimarisindeki verilerin tüm kayıt deftelerinde (ledger) senkronize bir şekilde bulunması gerekmektedir. Bu durumun oluşması için ağ genelinde veriler üzerinde uzlaşma sağlanmalıdır. Bu uzlaşma süreci dağıtık olmayan sistemlerde merkezi otorite tarafından sağlanır ve herkes otoriteye güvenir. Merkezi otoritenin olmadığı blokzincir mimarisinde uzlaşma süreci consenus algoritmalarıyla sağlanmaktadır. Şimdilik bu kadar diyelim. Yazımızın ana konusunu olan consenus algoritmalarına ilerde daha detaylıca değineceğim.
Bloğun içerisinde neler bulunur ve hangi amaçla kullanılmaktadır?
Blok zincir, ağdaki blokların yapısal aynı olacak şekilde tasarlanmıştır. Her blok, kendisini tanıtan başlık bilgilerinin yanı sıra ağda tanınmak, doğrulanmak ve blok zincire eklenmek için de bazı bilgileri içermektedir. Örnek olması açısından Bitcoin’ in blokzincir yapısını inceleyeceğiz. Bitcoin’in blok yapısında aşağıdaki 5 unsuru içermektedir.
- Magic Number (4 Byte): Dosya türünün Bitcoin ağına ait olduğunu gösteren sabit “0xD9B4BEF9D” değeridir.
- Block Size (4 Byte): Bir blokta bulunabilecek veri miktarını belirten alandır. Bitcoin’ in blok boyutu 1 MB (megabyte) ile sınırlandırılmıştır.
- Block Header (80 Byte): Header bilgileri 6 alt başlıktan oluşmaktadır. Aşağıda daha ayrıntılı şekilde değineceğiz.
- Version (4 Byte)
- Previous Hash (32 Byte)
- Timestamp (4 Byte)
- Bits (4 Byte)
- Nonce (4 Byte)
- Merkle/ Tx Root (32 Byte)
- Transaction Counter (1–9 Byte): Blokta yer alan işlem sayısını temsil eden pozitif bir sayıdır.
- Transactions: Blokta bulunan tüm işlemlerin listesini içeren değişken boyutlu alandır. Genellikle 1MB Bitcoin blok boyutunu dolduracak sayıda işlem bulunmaktadır.
Block Header’ larında neler bulunur?
- Version (4 Byte): Kullanılan güncel versiyon numarasını göstermektedir. Bitcoin protokolü için genellikle “1” değerini içermektedir.
- Previous Hash (32 Byte): Her blok, kendisinden önce oluşturulan bloğun 256 bitlik hash değerini içerir. Böylelikle bloklar da değişmezlik sağlanır.
- Timestamp (4 Byte): Zaman damgası işlemin gerçekleştiği zamanı tanımlamak için kullanılan dijital bir kayıttır. Bir blok zincirinin defterine kaydedilen zaman damgaları değiştirilemez ve zaman damgasının kaydettiği belirli işleme özgüdür.
- Bits (4 Byte): Hedef hash değerinin bulunmasının zorluk derecesini belirleyen bloğun hedef zorluğunu içermektedir. Blok zorluğu, bir PoW blok zinciri ortamında yeni bloklar çıkarmak için gereken hesaplama karmaşıklığını ifade eder. Daha yüksek bir zorluk hedefi, yeni bir blok çıkarmak için daha fazla hesaplama gücünün gerekli olduğunu gösterir. Bu, madencilerin daha yüksek bir hash gücü (daha verimli makineler) kullanması gerektiği anlamına gelir. Zorluk seviyesi, 1 baytlık bir üs ve ardından 3 baytlık bir katsayı olarak saklanan “Bit” olarak saklanır. Genesis bloğunun zorluğu 1'dir. Blok zorluğu, bir blokzincir protokolünün yapılandırılabilir bir yönüdür ve işlem hızları ve ağ kapasitesi gibi zorluklara uyum sağlamada blok üretim sürelerini stabilize etmek için bir mekanizma olarak kullanılabilir.
- Nonce (Numbers Only Used Once 4 Byte): Ağın zorluğuna göre üretilen random bir değerdir. Maksimum değeri 232 olabilir. Nonce dizesi blok karma değerine eklenir ve yeniden karıştırılır. Yeniden düzenlemeden sonra, nonce, hedef zorluk sayısıyla karşılaştırılır. Nonce hedef değerden küçükse blok blok zincirine eklenir. Değilse, nonce değiştirilir ve değeri hedef değerden küçük olan bir nonce bulunana kadar süreç tekrarlanır.
- Merkle/ Tx Root (32 Byte): Ağdaki bir işlemin bloğa eklenip eklenmedğini kontrol etmesine izin verip tüm işlemlerin hash değerini üreterek bir bloktaki tüm işlemleri özetler. Merkle Root, tek bir hash kalana kadar işlem çiftlerinin tekrar tekrar birleştirilmesiyle oluşur. Sondaki (en üstteki) tek hash Merkle/ Tx Root olarak adlandırılır. Tüm işlemler önce hashlenir ve ardından birbirleriyle eşleştirilir. Örneğin, bir işlem hash değeri “TxA”, başka bir işlem hash değeri “TxB” ile eşleştirilir ve “TxAB” adlı başka bir hash değeri üretmek için karma yapılır. Bu karma “TxAB” daha sonra başka bir hash değeri ile eşleştirilir, örneğin “TxDE” (“TxD” ve “TxE” karmasından oluşur). Bu, “TxABDE” adlı bir karma üretir. Merkle ağaçları ikilidir ve dolayısıyla eşit sayıda yaprak düğümü gerektirir. İşlem sayısı tekse, çift sayıda yaprak düğüm oluşturduğunda son hash eşleştirilecektir.
Merkle Root (Solidity)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;contract MerkleProof {
function verify(
bytes32[] memory proof,
bytes32 root,
bytes32 leaf,
uint index
) public pure returns (bool) {
bytes32 hash = leaf;for (uint i = 0; i < proof.length; i++) {
bytes32 proofElement = proof[i];if (index % 2 == 0) {
hash = keccak256(abi.encodePacked(hash, proofElement));
} else {
hash = keccak256(abi.encodePacked(proofElement, hash));
}index = index / 2;
}return hash == root;
}
}contract TestMerkleProof is MerkleProof {
bytes32[] public hashes;constructor() {
string[4] memory transactions = [
"alice -> bob",
"bob -> dave",
"carol -> alice",
"dave -> bob"
];for (uint i = 0; i < transactions.length; i++) {
hashes.push(keccak256(abi.encodePacked(transactions[i])));
}uint n = transactions.length;
uint offset = 0;while (n > 0) {
for (uint i = 0; i < n - 1; i += 2) {
hashes.push(
keccak256(
abi.encodePacked(hashes[offset + i], hashes[offset + i + 1])
)
);
}
offset += n;
n = n / 2;
}
}function getRoot() public view returns (bytes32) {
return hashes[hashes.length - 1];
}
Ağa gönderilen işlemler hangi adımlardan geçtikten sonra bloğa dönüşür?
İşlem havuzunda (Transaction Pool/ Memory Pool) onaylanmamış tüm işlemler bulunmaktadır. Bu havuzdaki işlemlerin içeriklerine erişilebilir ve gerçek zamanlı olarak izlenebilmektedir.
Örneğin, cüzdanınızdan arkadaşınıza 0.5 BTC göndermek istediğinizi düşünün. Gönderme işlemini gerçekleştirmek istediğinizde öncelikle cüzdanınızda yeterli bitcoin olup olmadığı kontrol edilir. Yeterli bitcoin yoksa işlem ağa gönderilmeden iptal edilecektir. Varsa işlem onaylanmak için ağda yayınlanır. Gönderme işlemi sürekli olarak işlem havuzuna atılır. Bitcoin ağındaki node lar işlem havuzunu RAM’ de depoladığı için transaction/ memory pool olarak adlandırılmaktadır.
Her node üzerinde Bitcoin Core yazılımını çalışıtır ve blokzincirin bir kopyasını saklar. Ayrıca her node kendine özel onaylanmamış işlem havuzunu içerir. Bu da bir node un işlem havuzunun tamamını içermesini önlemektedir. İşlemin doğrulanması için madenciler tarafından havuzdan alınması ve doğrulaması gerekmektedir. Bu aşamadan itibaren işleminiz zincire eklenecek aday blok (candidate block) olarak adlandırılmaktadır. İşlem, zincire eklenmeden önce 6 kez doğrulanmaktadır. 6. kez doğrulandıktan sonra geçerli olması olasılığı %99.99’ dur. %100 ile %99.99 arasındaki fark olmadığını düşünüyorsanız bu flood u okumanızı tavsiye ederim. (https://twitter.com/OrientusPrime/status/1482871715659235330?s=20)
Bitcoin işleminin onaylanması için madenciler arka planda bir çok matematiksel işlemi çözmek için elektrik gücü harcamaktadır. Madenciler, zincire eklenen her bloktan 6.25 BTC blok ödülü (block reward) alsa da her doğrulanan işlem için ekstra bitcoin olarak bir ödeme almaktadır. Bu ödemeye işlem ücreti (transaction fee) denir. İşlem ücretini ödemediğiniz durumlarda işleminiz spam olarak işaretlenebilir ve işlem havuzundan tamamen silinir. İşlemlerinizin onaylanması uzun sürüyorsa bunun nedeni düşük işlem ücreti olabilir. Hemen endişelenmenize gerek yok belki de işlem havuzu yoğun olduğu için uzun sürmüştür :)
Consenus Algoritmaları
- Proof of Work (PoW)
PoW Kullanan Kripto Paralar: Bitcoin, Litecoin, Dogecoin
PoW, blok zincirinde en yaygın kullanılan yöntemler arasındadır ve adı Bitcoin (BTC) tarafından popüler hale getirilmiştir. PoW’ un ana bileşenleri, madenciler ve BTC işlemlerini doğrulayan hesapları yaparken harcadıkları elektriktir. Madenciler, PoW (iş kanıtı) olarak adlandırılan matematiksel puzzle ı çözmek için node lar aracılığıyla hesaplamalar yapmaktadır. Puzzle ı çözen madenci, önce blok zincirindeki en son işlem bloğunu onaylar. Başarılı madenci daha sonra yeni bloğu diğer tüm nodelara yayınlar, bu da doğruluğunu onaylar ve bu bloğu blok zincirinin kopyasına ekleyerek tüm ağ için doğrulanabilir bir veri kaydı oluşturur. Bu doğrulama süreci consenusu temsil etmektedir. Yalnızca bu veriler onaylandıktan sonra ağa yeni bir blok eklenebilir. Madenciler, yeni bir veri bloğunu doğrulayan ve onu PoW blok zincirine ekleyen ilk kişi oldukları için blok ödülü (Bitcoin durumunda, BTC) alırlar.
Proof-of-Work blok zincirleri, belirli aralıklarla bloklar üretmeyi amaçlar. Bu aralık Bitcoin için yaklaşık 10 dakikadır. PoW ağları, hızları ve ölçekleri açısından sınırlıdır, çünkü kanıtlama süreci çok enerji yoğundur. Ayrıca, PoW ağları, ağdaki hesaplama gücü miktarına göre az çok zor olacak şekilde kodlanmıştır. Hesaplama gücünü rekabet olarak düşünebiliriz — daha fazla hesaplama gücü daha fazla rekabete eşittir, bu da daha zor iş kanıtlarına eşittir. Ancak hız ve ölçeklenebilirlik sınırlamalarına rağmen, PoW blok zincirleri güvenlik konusunda iyi iş çıkarmaktadır.
PoW sistemleri dağıtıldığı için, zarar vermek isteyen aktörlerin ağdaki bilgi işlem gücünün çoğunluğunu kontrol ederek blok zincirini ele geçirmesi son derece pahalıdır. Donanım, elektrik ve hesaplama maliyetleri olarak üstesinden gelinemeyecek kadar yüksektir. PoW blok zincirlerini güvenli kılan bu özellikler, ağa bir node olarak katılmanın önündeki engelleri de yükseltir. Bir madenci olarak ilgili donanım ve elektrik maliyetlerini ödemek, ortalama bir kullanıcı için çok pahalıdır ve birçok büyük ağda madencilik, ağ yönetimi üzerinde birikmiş etkiye sahip büyük ölçekli madencilerin tekelindedir.
2. Proof of Stake (PoS)
PoS Kullanan Kripto Paralar: BNB,Solana, Cardano, Peercoin, Ethereum (yakında)
PoS, ikinci en popüler consenus mekanizmasıdır ve PoW blok zincirlerinde bulunan hız eksikliği, zayıf ölçeklenebilirlik, verimsiz enerji tüketimi ve yüksek giriş engeli gibi dezavantajlarna alternatif olarak ortaya çıkmıştır.
İşlemleri onaylayan madenciler yerine, PoS blok zincirlerinde yalnızca validatörler (doğrulayıcı) bulunur. Validatörler, PoW sistemlerine benzer şekilde verileri doğrulayan madencilerdir, ancak doğrulama hakkını kazanmak için enerji yoğun bir hesaplama süreci yoktur.
Validatörler, iş kanıtlarını çözmek yerine bir validatör node olarak seçilmeye uygun hale gelmek için blok zincire özgü varlığın bir kısmını stake etmektedir. Muhtemel validatör, ağda hizmet verebilmek için blok zincire ait kripto varlığı (Ethereum için 32 ETH) stake edecektir.
PoS blok zincirindeki bir işlem bloğunda tutulan verileri doğrulama zamanı geldiğinde, sistem verileri doğrulamak için rastgele bir validatör seçer. Bir dereceye kadar rastgele olmakla birlikte, belirli değişkenler (stake edilen kripto varlık miktarı, stake edilen varlığın kullanım süresi) bir validatörün stake ettiği kripto varlığın sayısı da dahil olmak üzere, bir doğrulayıcının seçilmesini daha olası hale getirebilir. Blok onaylandığında, validatör genellikle blok ödülünü alır ve süreç yeni bir blokla başlar.
Proof-of-Stake blok zincirleri, validatörlerin kripto varlıklarını stake etmelerini gerektirerek ağı güvenli ve validatörleri dürüst tutar. Validatörler kötü niyetli davranış gösterdiklerinde, “slashing” adı verilen bir süreçle paylarını ve ağa erişimlerini kaybederler. Böylelikle, validatörlerin ağdaki kurallar çerçevesiyle kazanmalarını sağlar. Slashing sürecinin nasıl çalıştığına dair ağdan ağa göre birçok farklı varyasyonu vardır.
PoS blok zincirlerindeki validtörlerin pahalı donanımlara ve yüksek elektrik maliyetlerine yatırım yapması gerekmediğinden, validatörler için PoS blok zincirlerine giriş engeli daha düşüktür. Bununla birlikte, validatör olmak istiyorsanız, yeterli miktarda kripto paranız olmalıdır. Bu miktar blok zincirleri arasında değişmekle birlikte binlerce dolara ulaşabilir. :)
3.Delegated Proof of Stake
DPoS Kullanan Kripto Paralar: EOS, TRON, Cosmos, Ark, Bitshares
Ağ katılımcıları yeni blokların üretiminde sabit sayıda delegeye (tanık) devretme hakkına sahiptir. Kullanıcılar, hangi delegelerin yeni blokları doğrulayacağını, oyların platform kripto cüzdanlarında kilitlenen kripto varlık miktarına göre ağırlıklandırıldığı oylama mekanizması aracılığıyla belirler.
Bu oylama süreci süreklidir ve kullanıcılar etkisiz delegeleri istedikleri zaman başka bir validatör ile değiştirebilir. Böylelikle delegeler, seçmen ve paydaşlarının desteğini almaya devam etmek için ağa zarar vermeden iş akışına uygun davranmaları gerektiği anlamına gelir.
Onaylı delegeler, blok üretim haklarını kendi aralarında eşit olarak böler. Paydaşlar, bir delegeyi destekleme karşılığında, o delegeye ait blok üretim ödüllerinden, o delegeyle paylaştırılmış kripto varlıklarıyla orantılı olarak pay alırlar. Bu pay ağırlıklı oylama ve yetkilendirme süreci, DPoS’un blok oluşturma sürecini geleneksel PoS protokollerinden daha demokratik hale getiriyor ve DPoS oylama sürecine katılım eşiği çok düşük olduğundan, DPoS, fikir birliğine ulaşmanın en eşitlikçi yollarından biri olarak kabul edilebilir. Ayrıca, küçük bir validatör grubu, ağ çapında fikir birliği gerektiren bir sistemden daha hızlı fikir birliğine varabildiğinden, DPoS sistemleri diğer birçok consenus protokolünden daha hızlı bloklar oluşturabilir ve saniyede daha fazla işlem (TPS) gerçekleştirebilir. Aynı zamanda DPoS protokollerinin yeni bloklar oluşturan (Genellikle 20 ile 100 arasında) aktif delegelerin sayısı üzerinde kesin bir sınır belirlediği göz önüne alındığında, bu yapı da hala belirli bir derecede merkezileşme ile sonuçlanmaktadır.
Geleneksel PoS protokolleri sözde rastgele ancak büyük token sahipleri lehine ağırlıklı olsa da, DPoS tüm token sahiplerinin ağ kararlarını etkilemede rol oynamasına izin verir. Sonuç olarak, DPoS şu anda PoS’un en yaygın olarak benimsenen çeşididir.
4.Leased Proof of Stake
LPoS Kullanan Kripto Paralar: Waves
Leased Proof of Stake (LPoS), özellikle Waves blok zinciri tarafından kullanılan bir fikir birliği algoritmasıdır ve bu sayede kullanıcılar, bir ağ bloğu üreticisi olarak hareket etmeyi amaçlayan bir node a kripto varlıklarını kiralar. Bir node ne kadar çok varlık stake ederse, bir sonraki bloğu oluşturma ve karşılık gelen ödülü alma olasılığı o kadar yüksek olur ve kripto varlık sahipleri herhangi bir zamanda kiralamalarını iptal etme hakkına sahiptir. Sonuç olarak, geleneksel bir PoS sisteminde blok oluşturma sürecine katılmaya uygun olmayan daha küçük token sahipleri varlıklarını bir araya getirebilir ve ağın işlem ücretlerinden pay alma şanslarını artırabilir. Bazı node lar daha büyük ödüller dağıtabileceğinden, kullanıcılar yatırım stratejilerine en uygun düğümü bulmak için alışveriş yapabilirler.
LPoS protokolleri en iyi şekilde, zincir içi işlemleri doğrulama yeteneğine sahip tam bir düğüm çalıştırmak için yüksek teknik gereksinimleri olan ağlara uygulanır. Bu fikir birliği algoritması, daha küçük kullanıcıları hem şeffaf hem de sürdürülebilir bir şekilde kendi kendine hizmet eden bir şekilde en verimli validatörleri desteklemeye yönlendirerek en iyi performans gösteren node ları ödüllendirir.
Büyük resme bakıldığında DPoS’a oldukça benzer. DPoS validatörleri diğer ağ katılımcılarının en yüksek hisse ağırlıklı oylarıyla seçilirken, LPoS ağındaki kripto varlık sahipleri blok üretim sürecine katılmak için doğrudan kripto varlıklarını ödünç alıp verebilmektedir.
5. Proof of Importance (PoI)
PoI, ağ üzerinde aktif olarak işlem yapan kullanıcıları, PoS’ a dayalı olarak ödüllendirir. PoI ile, düğümlerin blok oluşturmaya uygun olmaları için bir miktar para biriktirmeleri ve ağa katkılarını ölçen bir puanla orantılı olarak bir blok oluşturmak üzere seçilirler.
Proof-of-Stake’de, bu puan kişinin toplam kazanılan miktarıdır, ancak PoI’de puan daha fazla değişken içerir. Hesaplamalar, ağ kümeleme ve sayfa sıralamasının matematiğinden ödünç alır. Hesaplama yapılırken genellikle aşağıdaki değerler baz alınır.
- Net transferler: Son 30 gün içinde ne kadar “harcandığı” ve daha yeni işlemlerin daha ağırlıklı olduğu.
- Kazanılan para birimi: Blok oluşturma amacıyla ne kadar para kazanıldığı.
- Cluster düğümleri: Birbirine bağlı clusterların parçası olan hesaplar, aykırı değerlerden veya hub’lardan (clusterları yalnızca birbirine bağlayan, ancak bunların bir parçası olmayan) göre biraz daha ağırdır.
Önem puanı, PoS’ ta blok oluşturmanın hiçbir kaynağa maliyeti olmadığından, bir çatal olduğunda, birileri zincirin her iki çatalında da özgürce bloklar oluşturabilir. PoI’nin “önem puanı” dinamik olduğundan ve ağ etkinliğine dayalı olduğundan, iki çatalın desteklenmesi, iki işlem etkinliği modelinin desteklenmesini gerektirerek, her iki ağda da anında blok oluşturmayı zorlaştırır diyerek yazımızı noktalıyoruz.
Bir sonraki yazı da yüzeysel değindiğimiz konuların daha derinlerine ineceğiz. Görüşmek üzere.
Kaynakça
1. İnternet: https://tr.cointelegraph.com/news/a-simple-explanation-of-what-is-blockchain-and-how-its-works
2. İnternet: https://dergipark.org.tr/en/download/article-file/1081395
3. İnternet: https://ethereum.org/en/developers/docs/consensus-mechanisms/pow/
4. İnternet: https://medium.com/avalancheavax/avalanche-consensus-101-99c68a3e3159
5. İnternet: https://medium.com/@BlokzincirIST
6. İnternet: https://medium.com/s/story/lets-take-a-crack-at-understanding-distributed-consensus-dad23d0dc95
7. Z. Zheng, S. Xie, H. Dai, X. Chen, H. Wang, “Blokzincir Challenges and Opportunities: A Survey”, International Journal of Electric and Hybrid Vehicles, 14(4)
8. S. Singh, N. Singh, “Blockchain: Future of financial and cyber security”, 2016 2nd International Conference on Contemporary Computing and Informatics (IC3I), 463–467
9. İnternet: P. Kovary, F. Zhou, M. Adoul, Blokzincir — Technical Details, http://www.doc.ic.ac.uk/~ma7614/topics_website/tech.html
10. A. Çarkacıoğlu, Kripto-para Bitcoin, Sermaye Piyasası Kurulu Araştırma Dairesi
11. İnternet: https://ducmanhphan.github.io/2018-12-18-Transaction-pool-in-blockchain/
12. İnternet: https://www.researchgate.net/publication 337306138_Blokzincir_for_Dynamic_Spectrum_Management
13. İnternet: https://101blockchains.com/consensus-algorithms-blockchain/