CONSENSUS MEKANİZMALARI

BlockchainIST Center
5 min readDec 26, 2019

--

Blokzincir teknolojilerinde veriler dağıtık defterler üzerinde tutulur. Ağdaki herkesin ledger adı verilen defterlerin içeriği üzerinde uzlaşması gerekmektedir. Bu uzlaşma işi dağıtık olmayan sistemlerde (merkezi bir otoritenin olduğu sistemlerde) merkezi otorite tarafından sağlanır ve herkes o merkezi otoriteye güvenir. Fakat bu tür merkezlerin olmadığı blokzincir de bu uzlaşma konusunda farklı farklı bir çok mekanizma geliştirilmiş ve geliştirilmeye devam ediyor.

Bunlardan en popüler iki tanesini inceleyelim.

1-Proof of Work (İş Kanıtı):

Proof of work, ilk dağıtık consensus mekanizmasıdır. Günümüzde ethereum ve birçok kripto para tarafından kullanılmaktadır. Bu mekanizmada ağda miner adı verilen madenciler bulunur. Bu madenciler hash adı verilen matematiksel bir bulmacayı çözerek ağın işleyişine katkıda bulunur ve ödüllendirilirler. Madenciler belirlenen özelliklere uygun hash’i bulmak için birbirleri ile yarışırlar.

Yarış sonunda uygun hash’i ilk bulan kişi zincire yeni blok ekleme hakkına sahip olur ve ödüllendirilir. Hemen ardından yeni bir yarış başlar ve böyle devam eder.

Bitcoin blokzincirinde bu yarış ortalama 10 dakika da bir tekrarlanır. İlk uygun hash’i bulan kişi 12.5 bitcoin ve “transaction fee” adı verilen bloğa eklediği işlemlerin ücretlerinin toplamı ile ödüllendirilir. Bitcoin ödülü, her 4 yılda bir yarıya düşürülmektedir. Şu an da 12.5 bitcoin olan blok ödülü, 2020 de 6.25 bitcoine düşürülecektir.

Proof of work mekanizması işlemleri ağa eklemenin zor fakat doğrulamasının kolay olduğu bir prensipte çalışır. Önceki bütün işlemler ağda şeffaf bir şekilde durduğu için, bir işlemin geçerli olup olmadığı çok kolay bir şekilde anlaşılabilir. Eğer kötü niyetli bir kullanıcı hileli bir şekilde işlem yapmaya kalkışırsa, ağın geri kalanı tarafından yapılan işlemleri reddedilir. Kötü niyetli kullanıcının bu hileli işlemi yapabilmesinin tek yolu devasa miktarda işlem gücüne sahip olmasıdır.

Bu da literatürde %51 saldırısı olarak geçmektedir. Kısaca açıklamak gerekirse, ağda bulunan tüm madencilerin işlem gücünün %51’ ine sahip olan bir grup veya bireyin ağa yeni blok ekleme şansı da aynı oranda olacağı için ağa eklediği blokların içerisine hileli işlemler yerleştirerek manipülasyona sebep olabilir. Bir örnek ile açıklamak gerekir ise, bir grup madencinin ağdaki işlem gücünün %60 ‘ ını elinde bulundurduğunu farz edelim. Bu grubun bir sonraki geçerli hash’i bulup ağa yeni blok ekleme şansı da %60’ tır. Üst üste blok buldukça birazdan değineceğimiz “en uzun zincir geçerli zincirdir” kuralı dolayısıyla bu grup en uzun zincire sahip olacaktır ve ağın geri kalanı bu zinciri kabul etmek zorunda kalacaktır. Bu da bu grubun bloklara istediği işlemleri yerleştirebilmesi ve manipüle etmesine yol açacaktır. Bu sebeple ne kadar fazla madenci var ise ağ o kadar güvenli olur.

“En uzun zincir geçerli zincirdir” kuralını resimlerle daha iyi anlayalım.

Başlangıçta herkesin defterinde “Blok P” son blok olsun. Şimdi tüm madenciler bir sonraki bloğu aramaya başlıyorlar.

Ardından iki ayrı madenci aynı anda bir sonraki bloğu buldu ve bunu en yakınındaki node dan başlayarak tüm ağa yaymaya başlar.

Tüm ağ ikiye ayrılmış olur. Bi taraf kırmızı renkli “Blok A” yı bir sonraki blok olarak zincire eklerken, diğer yeşil renkli taraf ise“Blok B” yi ekler.

Bundan sonra ise hangi taraftaki zincire sahip bir madenci bir sonraki bloğu bulur ise o zincir tüm ağdaki en uzun ve geçerli zincir olur. Yukarıda yeşil renkli taraftaki bir madenci bir sonraki bloğu ilk bulup bunu ağa bildirir.

Yukarıdaki örnekte önceki blok olarak “Blok B” yi kabul edip bir sonraki bloğu bulan madenci, bunu ağa yaydığı anda “Blok A” yı önceki blok olarak kabul eden madenciler en uzun zincire diğeri olduğu için bu zinciri kabul etmek durumunda kalırlar.

“Blok A” ise literatürde “orphaned block(yetim blok)” olarak adlandırılan duruma düşer. İçerisindeki işlemler ile beraber ağdan çıkarılır. İşlemler yeniden başka bir bloğa eklenmek üzere mempool adı verilen işlem havuzuna döner.

Son durumda görüleceği üzere kırmızı renki zincir, çatallanarak diğer zinciri takip etmeye devam eder.

Bitcoin başta olmak üzere birçok kripto parada merkezi otoritenin olmadığı bir sistemde uzlaşmayı sağlamak için proof of work kullanılır. Fakat bu oldukça pahalı bir yöntem ve enerji tüketimi konusunda büyük problemler teşkil etmektedir. Bunların yanında işlem süresinin uzun olması ve belli başlı güvenlik sorunları mevcuttur. Bu sebeple alternatif ve yeni consensus mimarileri geliştirilmektedir. Ethereum’ un kısa süre içerisinde geçmek için uğraştığı Proof of Stake bunlardan biridir.

2-Proof of Stake (Değer Kanıtı):

Proof of stake son yıllarda popüler olmaya başlayan, bazı kripto paraların farklı varyasyonlarını kullandığı bir consensus mekanizmasıdır. Proof of stake mimarisinde, proof of work de olduğu gibi devasa miktarda işlem gücüne ve cihazlara ihtiyaç yoktur. Ağ üzerinde madenci yerine “validator” denilen doğrulayıcılar vardır ve blok ekleme işini bu kişiler yapar.

Doğrulayıcılar, blok ekleme şansına sahip olabilmek için ağa “stake” adı verilen değer kitlemek zorundadırlar. Örnek olarak, ilerde ethereum ağında proof of stake kullanıldığında bir validator olabilmek için ağa ether kitlemek durumunda olacağız. Kitlenen değer ne kadar fazla ise bir sonraki bloğu ekleme şans da o kadar fazla olur.

Farklı farklı implementasyonlara sahip olmakla birlikte, örneğin bu mimarinin bir örneğinde sistem ağda değer kitlemiş birimler arasında kitledikleri değerler bazında rastgele bir seçim yapar ve seçtiği kişi validator olur. Seçilen kişi ağa yeni bloğu ekler ve ödülünü alır. Ödül ise bu mimari de sadece “transaction fee” adı verilen işlem ücretleridir.

Proof of stake mimarisinde her blok 10 saniyede bir eklenir. Bu da bitcoin blokzincirine nazaran çok daha hızlı işlem gerçekleşme süresi sağlamaktadır.

Eğer bir doğrulayıcı hileli bir işlem yapmak isterse veya ağı herhangi bir yolla manipüle etmek isterse kitlediği değerleri kaybeder. Ağda hileli işlem yapmanın önü bu şekilde kapatılmaya çalışılmıştır. Bir doğrulayıcının kitlediği değer ne kadar yüksek olursa, doğrulayıcının o değeri kaybetmeyi göze alma ihtimali o kadar düşük olur. Bu yüzden sistem en çok değer kitleyen doğrulayıcıya daha yüksek seçilme şansı tanır.

Bunların yanında bu mimarinin en büyük dezavantajı, ufak değer kitleyebilen node ların seçilme şansının sıfıra yakın olması ve sadece yüksek değerlere sahip kişilerin validator olabilmesidir. Ağ üzerindeki doğrulayıcının fazla olması güvenliği arttırdığı için ufak değere sahip kişilerin de teşviklendirilmesi gerekmektedir. Bu sorun farklı proof of stake implementasyonları ile çözülmeye çalışılmıştır (LPOS, DPOS, etc.).

Written by Murat ÇELİKTEPE

Twitter: _muratceliktepe,

LinkedIn: celiktepemurat

Kaynakçalar:

https://mastanbtc.github.io/blockchainnotes/consensustypes/

https://blog.wavesplatform.com/review-of-blockchain-consensus-mechanisms-f575afae38f2

https://medium.com/s/story/lets-take-a-crack-at-understanding-distributed-consensus-dad23d0dc95?

--

--

BlockchainIST Center

BlockchainIST Center is an R&D Center for Blockchain, DeFi and FinTech. We provide consultancy and training for private and public sector around the world.