Yeni Başlayanlar İçin: Konsensüs Algoritmaları

Yeni Başlayanlar İçin: Konsensüs Algoritmaları

Son güncelleme: Şubat 15, 2018

Her başarılı erkeğin arkasında bir kadın olduğu gibi, her büyük kripto para biriminin arkasında da büyük bir konsensüs algoritması vardır. Konsensüs algoritmaları mükemmel değildir, ancak her birinin farklı güçlü yönleri vardır. Kripto para dünyasında, konsensüs algoritmaları çift harcamayı (double spending) önlemek için vardır. Aşağıda, Blockchain’den DAG’lere ve aralarındaki her şeye kadar bugüne kadarki en popüler konsensüs algoritmaları ve çalışma şekillerinin hızlı bir özetini bulabilirsiniz.

Proof of Work (PoW)

Popüler uygulamalar: Bitcoin, Ethereum, Litecoin, Dogecoin, (Birçok kripto para)

Artıları: Düzgün çalıştığını biliyoruz.

Eksileri: Yavaş üretim. Çok fazla enerji tüketimi.

Proof of Work ya da Türkçe adıyla İş İspatı, ilk blockchain konsensüs algoritmasıydı. Konsensüs algoritmaları bir ataya sahip olsaydı, PoW olurdu. Kapsamlı madencilik işlemleri ve dünya çapında gördüğümüz güç tüketimi için Bitcoin blok zincirinde kullanılmak üzere Satoshi Nakamoto tarafından hazırlanan PoW’ye teşekkür borçluyuz. Düzgün bir şekilde çalıştığını biliyoruz, ancak oyunun bu aşamasında eski bir teknoloji olarak görülmeye başlamıştır. Ethereum bile daha fazla çevre dostu ve ekonomik açıdan verimli PoS’u tercih ederek, PoW’dan uzaklaşıyor. Ortada pek çok yeni alternatif varken, yeni bir blok zincirinin PoW’yi neden kullanmak isteyeceğini anlamak zor.

PoW’da, madenciler blok oluşturmak için zor, yararsız problemleri çözerler. PoW, “en uzun zincir kazanır” konseptiyle çalışır. Dolayısıyla, çoğu madencinin aynı zincir üzerinde çalıştıklarını varsayarsak, en hızlı büyüyen en uzun ve en güvenilir olacaktır. Bu nedenle, madencilerin yaptığı işin %50’den fazlası “dürüst” düğümler tarafından yapıldığı sürece, bitcoin güvenlidir.

Proof of Stake (PoS)

Popüler uygulamalar: Decred, Ethereum (yakında), Peercoin

Artıları: Saldırılar daha pahalıya mal olur. Daha adem-i merkeziyetçidir. Daha az enerji kullanır.

Eksileri: Herhangi bir hissenin (stake) olmaması. (Nothing at Stake problemi olarak bilinir. Aşağıda değineceğim.)

PoS’da, bloklar iş yapan madenciler tarafından değil, koin üretenlerin sahip oldukları tokenleri, hangi blokların geçerli olduğu konusunda “bahis” yapmasıyla oluşturulur. Bir çatal olması durumunda, koin üretenler (minter) hangi çatalı destekleyecekleri noktasında tokenlerini harcayarak oylamada bulunurlar . Çoğu kişinin doğru çatal üzerinde oy kullandıklarını varsayarsak, yanlış çatalda oy kullanan doğrulayıcılar tokenlerini “kaybederler”.

Proof of Stake algoritması karşısındaki en büyük ortak argüman, Nothing to Stake problemidir. Buradaki endişe şudur: doğrulayıcılar gerçekleşen çatalın her ikisine birden oy kullanabilirler. Böylece her zincirde oluşacak bir çatalda doğrulayıcılar iki farklı kripto para kazanarak, çift harcama yapabilirler. Bu da PoS kullanan sistemlerin daha fazla çatal sahibi olmasına sebebiyet verebilir. Daha fazla kazanmak için, sürekli forklar çıkabilir. Bunun da ilgili kripto paranın saygınlığına zarar vereceğinden korkuluyor.

Delegated Proof-of-Stake (DPoS)

Popüler Uygulamalar: Steemit, EOS, BitShares.

Artıları: Ucuz işlemler; ölçeklenebilirlik; daha az enerji kullanımı.

Eksileri: Kısmen merkezi.

DPoS, EOS’un kurucusu Daniel Larimer‘in beyin çocuğudur ve aslında PoS’dan çok farklıdır. DPoS’da, token sahipleri blokların geçerliliği için kendileri oy kullanmaz, kendi adına doğrulama yapmak üzere delege seçmek için oy kullanırlar. DPOS sisteminde genellikle 21-100 arası seçilmiş delege bulunmaktadır. Delegeler periyodik olarak karıştırılır ve bloklarını teslim etmeleri için kendilerine bir emir verilir. Az sayıda delege sahip olmak, kendilerini verimli bir şekilde organize etmelerine ve her delegenin bloklarını yayınlamak için belirlenmiş zaman aralıkları oluşturmalarına izin verir. Herhangi bir delege bloklarını kaçırır veya geçersiz işlemler yayınlarsa, token sahipleri onu oylayarak sistem dışı bırakır ve daha iyi bir delege ile değiştirirler.

DPoS’da madenciler -PoW ve PoS’daki gibi yarışmak yerine- blok çıkarmak için işbirliği yapabilirler. DPoS, blokların oluşturulmasını kısmen merkezileştirerek diğer tüm konsensüs algoritmalarından daha hızlı iş emirleri verir. EOS, blok zamanı <1 saniye olan ilk blok zinciridir! Bitcoin’in 10 dakikalık blok zamanından birazcık daha hızlı : )

Proof-of-Authority (PoA)

Popüler Uygulamalar: POA.Network, Ethereum Kovan testnet.

Artıları: Yüksek verim; ölçeklenebilirlik.

Eksileri: Merkezi sistem.

Proof of Authority, işlemlerin onaylı hesaplar tarafından doğrulandığı bir konsensüs algoritmasıdır. Bu onaylı hesapları “sistemin adminleri” gibi düşünebilirsiniz. Bu hesaplar, diğer düğümlerin gerçek bilgiyi aldığı otoritelerdir. PoA yüksek verimliliğe sahiptir ve özel ağlar için optimize edilmiştir. Merkezi bir yapıya sahip olduğu için herkese açık bir blockchain’de bu algoritmanın kullanıldığını görmek çok düşük ihtimaldir.

Proof-of-Weight (PoWeight)

Popüler Uygulamalar: Algorand, Filecoin, Chia.

Artıları: Özelleştirilebilir; ölçeklenebilir.

Eksileri: Teşvik programı bir meydan okumaya dönüşebilir.

Proof of Weight, Algorand konsensüs modeline dayalı geniş bir konsensüs algoritması sınıflandırmasıdır. PoS’da, ağ üzerinde sahip olunan tokenlerin yüzdesi bir sonraki bloku “bulma” olasılığını temsil ederken, PoWeight sisteminde başka görece ağırlıklı değerler kullanılır. Somut örnek: Filecoin’in Spacetime Proof’u, depoladığınız IPFS verileri ağırlıklıdır. Diğer sistemler, Proof-of-Reputation gibi şeyleri içerebilir.

Bizans Hata Toleransı

Bunun için daha önce yazdığım detaylı makaleye bakabilirsiniz.

Popüler Uygulamalar: Hyperledger, Stellar, Dispatch ve Ripple.

Artıları: Yüksek verim; düşük maliyet; ölçeklenebilirlik.

Eksileri: Yarı güvenilir.

Kısaca özetlemek gerekirse; bir kaleyi kuşatan birkaç ordu ve onların generalleri var. Kaleyi ele geçirebilmek için aynı anda karar verip aynı anda saldırmaları gerekir. Sorun şu; bu orduların içinde hainler olabilir ve bu hainler kafa karıştırıcı mesajlar gönderebilir. Böylece ordunun tek bir fikir birliğine varmasını engelleyebilir ve koordine hareket etmesinin önüne geçebilir. Bazı generaller ötekileri olmadan saldırırsa, kuşatmaları trajik bir şekilde bitebilir. Birkaç kripto para birimi protokolü, her biri kendi artı ve eksileri ile fikir birliğine varmak için BHT’nin (Bizans Hata Toleransı) bazı sürümlerini kullanır:

Pratik Bizans Hata Toleransı (PBFT)

Yukarıda bahsettiğimiz soruna getirilen ilk çözümlerinden biri de Pratik Bizans Hata Toleransıydı. Şu anda Hyperledger Fabric tarafından kullanılıyor, az sayıda (<20) önceden seçilmiş generalle PBFT inanılmaz derecede verimli çalışıyor.

Artıları: Yüksek işlem hacmi.

Eksileri: Merkezi/izinli.

Federe Bizans Anlaşması (FBA)

FBA, Stellar ve Ripple gibi para birimlerinin kullandığı Bizans generallerinin çözümünde bir başka çözüm sınıfıdır. Genel fikir, kendi zincirlerinden sorumlu olan her Bizans generali, mesajları gerçeği belirlemek için sıraya koyarlar. Burada generalden kasıt doğrulayıcıdır. Ripple’da generaller (doğrulayıcılar) Ripple vakfı tarafından önceden seçilirler. Stellar’da herkes doğrulayıcı olabilir, bu nedenle hangi doğrulayıcılara güveneceğinizi kendiniz seçersiniz.

İnanılmaz verim, düşük işlem maliyeti ve ağ ölçeklenebilirliği sağladığı için, konsensüse dayalı algoritmalar içinde en iyisinin FBA olduğuna inanıyorum.

Directed Acyclic Graphs (DAGs)

Popüler Uygulamalar: Iota, Hashgraph, Nano.

Artıları: Ağ ölçeklenebilirliği; düşük maliyet.

Eksileri: Uygulamaya bağlı.

DAG’ler, blockchain veri yapısını kullanmayan ve çoğunlukla eşzamansız (async) olarak işlemleri yöneten bir konsensüs algoritmasıdır. En büyük özelliği teorik olarak saniye başına sonsuz işlem sunmasıdır, ancak DAG’lerin diğer konsensüsler gibi güçlü ve zayıf yönleri vardır.

Tangle

Tangle, Iota tarafından kullanılan DAG konsensüs algoritmasıdır. Iota transferi yapabilmek için aldığınız iki önceki işlemi onaylamanız gerekir. Konsensüs, teorik olarak işlemlerle kurulduğundan, eğer birisi işlemlerin 1/3’ünü üretebilirse, ağın geri kalanını geçersiz işlemin geçerli olduğu yönünde ikna edebilir. İşlem hacminin 1/3’ünün imkansız hale gelmesi için yeterli işlem hacmi bulunmadığı sürece, Iota, “Koordinatör” olarak adlandırılan merkezi bir düğümdeki tüm ağ işlemlerini iki kez kontrol eder. Iota, Koordinatörün sistem için tekerlek gibi çalıştığını ve Tangle yeterince büyük hale geldikten sonra kaldırılacağını söyler.

Hashgraph

Hashgraph, Leemon Baird tarafından geliştirilen bir dedikodu-protokol uzlaşmasıdır. Düğümler, diğer düğümlerle bilinen işlemlerini rasgele paylaşır, böylece tüm işlemler tüm düğümlerin etrafında dedikodu gibi yayılmış olur. Hashgraph gerçekten hızlıdır (saniyede 250.000+ işlem) ancak Sybil saldırılarına karşı dirençli değildir. Bu yüzden Hashgraph özel ağlar için mükemmel bir seçenektir, ancak Ethereum veya Dispatch gibi kamuya açık ağlarda kullanılmaz.

Block-lattice

Nano ya da eski adıyla RaiBlocks, block-lattice adlı blok zincirinde çalışır. Block-lattice, her kullanıcının (adres) yalnızca kendisinin yazabildiği bir zincire sahip olduğu ve herkesin tüm zincirlerin bir kopyasını bulundurduğu bir yapıdır. Her işlem, gönderenin zincirindeki bir gönderme bloğu ile alıcı tarafın zincirindeki bir alma bloğuna ayrılmıştır. Block-lattice’in benzersiz yapısı, Penny-harcama saldırısı gibi bazı benzersiz saldırı vektörlerine kendisini açık bırakır; burada saldırganlar, düğümün takip etmesi gereken zincir sayısını, çok çeşitli boş cüzdanlara küçük miktarlar göndererek şişirir.

SPECTRE

SPECTRE, ölçeklenebilir fikir birliğine ulaşmak için PoW ve DAG’lerin bir kombinasyonunu kullanan bir Bitcoin ölçekleme çözümüdür. SPECTRE’de, çıkarılan bloklar sadece bir tane değil, çok sayıda ana bloğu işaret eder, dolayısıyla ağ saniyede birden fazla blok işleyebilir. Proof of Work algoritmasında “en uzun zincir” kazanırken, SPECTRE’de “en fazla çocuğu olan bloklar” kazanır. SPECTRE’nin canlı ortamlarda henüz testleri yapılmadı ve pek çok saldırı vektörüne açık olabilir, ancak Bitcoin’in ölçeklenme sorununu da çözebilecek potansiyele sahip gözüküyor.

Konsensüs algoritmaları bu şekilde. Gözden kaçırdığım varsa, yorum yazarak iletebilirsiniz. Piyasada çok fazla konsensüs algoritmaları mevcut. Ben sadece en önemlilere değindim.

Bir Cevap Yazın