En basit ifadeyle bir blok zinciri, bu veri işlemlerinin gerçekliğini ve güvenliğini sağlamak için birlikte çalışan bir grup bilgisayar tarafından işlenen ve kaydedilen verilerdir.
Ancak bu işlemlerin gerçekten doğrulanmış ve güvenli olmasını nasıl sağlayabiliriz? Blok zincirleri doğası gereği merkezi olmayan ve dağıtık yapıdadır, yani sistem üzerinde yönetim uygulayacak merkezi bir otorite yoktur. Protokol kurallarına uyulduğundan emin olmak ve etik olmayan davranışları önlemek için blok zincirleri, güvenilmez varlıklar arasında mutabakat olarak bilinen şeyi elde etmek için çeşitli algoritmalar uygular.
Konsensüsün Hızlı Tanımı
Konsensüs, bir grup ajanın yerel etkileşim yoluyla ortak durumları üzerinde anlaşması olarak tanımlanabilir.
Blok zinciri bağlamında mutabakat, bir Blok Zinciri ağının eşlerinin ağdaki verilerin mevcut durumu hakkında anlaşmaya vardığı bir prosedürdür. Blockchain sistemlerinde güvenilirliği ve güveni tesis eden bu mutabakat algoritmalarıdır.
İşlemleri doğrulamak ve kayıtları korumak için tek bir yönetim otoritesine güvenilen merkezi ağlarda mutabakat sağlamak oldukça kolay olsa da, merkezi olmayan sistemler söz konusu olduğunda bu çok daha az kolaydır.
Blockchain’de Mutabakat
Blok zinciri, veri blokları ekleyerek çalışır ve fikir birliğinin özü, zincire eklenen her bloğun, sistemdeki tüm düğümler tarafından üzerinde anlaşmaya varılan gerçeğin tek ve tek versiyonu olmasını sağlamaktır. Bu, blok zincirinin merkezi olmayan doğasının temel bir özelliğidir.
Blok zincirinde mutabakat için temel kurallar şunlardır:
- Bir anlaşmaya varma hedefi
- İşbirliği, dayanışma ve her düğüm/akraba için eşit haklar ve
- Her bir düğümün sürece zorunlu katılımı
Merkezi olmayan sistemler üzerinde uzlaşmaya varmak için birçok farklı yaklaşım vardır. Burada uzlaşmanın ve fikir birliği oluşturmanın farklı yollarına bakacağız.
Nakamoto Mutabakatı
Tüm blok zinciri mutabakatlarının anası olan Nakamoto mutabakat protokolü, 2009 yılında Satoshi Nakamoto tarafından bir blok zinciri ağının gerçekliğini doğrulamanın ve çifte harcamayı önlemenin yeni bir yolu olarak tasarlandı. Bitcoin blok zincirini yönetmek için iş kanıtı (PoW) ile birlikte çalışan bir Bizans hata toleranslı mutabakat algoritmasıdır.
Bizans hata toleransı (BFT), dağıtık bir sistemin kötü niyetli aktörlerin ve ağ kusurlarının varlığında hataya karşı toleranslı kalabildiği bir durumdur.
PoW, madencilerin yeni bir bloğu doğrulama ve bir ‘blok ödülü’ kazanma hakkını elde etmek için son derece karmaşık (ve pahalı) hesaplama bulmacalarını çözmek için birbirleriyle rekabet ettikleri kriptografik mekanizmayı ifade ederken. Bu parasal ödül madencileri kurallara uymaya ve dürüst kalmaya teşvik ederken, katılım maliyetleri de Bitcoin ağına saldırmaları için ekonomik bir caydırıcı unsur olarak hizmet ederek blok zincirini daha da güvenli hale getiriyor.
Nakamoto, BFT ve PoW’u bir araya getirerek BFT’nin ölçeklenebilirlikle ilgili bazı doğal sorunlarının etrafından dolaşmaya ve kötü aktörleri caydırmaya çalıştı. Nakamoto, blok zincirinin geçerliliği için standart bir ölçüm yaratarak – bu durumda, üzerinde harcanan hesaplama kaynaklarının (veya ‘hashing gücü’) miktarı – Bizans Genel Problemi ‘ni izinsiz bir kurulumda çözmek için yeni bir yön açtı. Bunlardan biri, hisse kanıtı (PoS), otorite kanıtı (PoA), itibar kanıtı (PoR) ve önem kanıtı (PoI) gibi birçok yeni mutabakat algoritmasının ortaya çıkmasına yol açacaktır.
X’in Kanıtı
Bu bir şeyin kanıtı (PoX) mutabakatının arkasındaki fikir, kötü niyetli saldırganların X’i kolayca elde edemeyeceği bazı kıt kaynakları X kullanmaktır. Böylece sistem merkezi olmayan ve izne tabi olmayan bir şekilde güvende kalabilir. Genelde şöyle çalışır.
İşlemleri doğrulama ve yeni coin madenciliği yapma ayrıcalığını elde etmek için PoX ağındaki düğümlerin X kriterini başarıyla yerine getirdiklerine dair kanıt sunmaları gerekir. Çoğu zaman bu süreç bir tür fedakârlık gerektirir. Örneğin, PoW’da hesaplama gücü ve çabası, PoS’da ise stake edilmiş coinler. Farklı şekillerde, bunlar madencilerin dürüst kalmaları için teşvik görevi görür.
Genel olarak PoX, Nakamoto mutabakatı sınıfına aittir. Nakamoto mutabakatı normalde aşağıdaki tasarım seçeneklerini kullanır:
- Bizans hata toleranslı – bazı düğümler başarısız olsa veya kötü niyetli davransa bile ağlar çalışmaya devam edebilir
- Senkron – mesajlar sabit bir süre içinde iletilir
- Olasılıksal – düğümler değerin doğru olma olasılığı konusunda hemfikirdir
- Lider tabanl ı – liderler işlemleri onaylamak için seçilir
Ve böylece aşağıdaki özellikleri elde edebilir:
- Akranlar istedikleri zaman katılabilir ve ayrılabilirler
- Güvenlik pahasına canlılığa odaklanır (yani bir eş her zaman yeni bloklar üretebilir) (yani alınan karar geri alınabilir)
- Kendi kendini idame ettirme – eşler ağı sürdürmeye teşvik edilir
Hepsini tanıtmak için çok fazla PoX protokolü var. İlgilenen okuyucular, günümüzde en iyi bilinen PoX konsensüslerinin bir özeti için konsensüs mekanizmalarına başlangıç kılavuzumuzu okuyabilirler.
Klasik fikir birliği
Klasik uzlaşı ise oylama yoluyla uzlaşıya varır. Bu protokoller, mutabakat ağı boyutu sabit olduğundan ve gerekli oylar görülür görülmez ilerleme kaydedilebildiğinden, yukarıda tartışılan Nakamoto mutabakat türlerinden daha hızlı işlemleri onaylar.
İşte klasik mutabakatın bazı önemli örnekleri:
Pratik Bizans Hata Toleransı (pBFT)
90’ların sonunda Barbara Liskov ve Miguel Castro tarafından ortaya atılan pratik Bizans hata toleransı (pBFT ), yukarıda bahsedilen Bizans hata toleransı (BFT) çözümleriyle ilişkili sorunların çoğunu çözmeyi amaçlamaktadır.
pBFT, lideri seçmek için üç fazlı bir durum makinesi ve bir blok seçim kullanır. pBFT’nin üç aşaması ön hazırlık, hazırlık ve taahhüt olarak bilinir. Olağan durumda, fikir birliği, düğümler arasında yerel durumlarına aşamalı bir geçiş getiren mesajların değiş tokuş edilmesiyle elde edilir. Aksi takdirde, düğüm arızası durumunda, bir ‘görünüm değişikliği’ tetiklenecek ve liderin yuvarlak robin şeklinde yeniden seçilmesine yol açacaktır. pBFT, Bizans hatalarının ⅓’ünden daha azını idare edebilir, bu 3f+1= Toplam düğüm olarak görülebilir, burada f=Bizans hatalarının miktarıdır.
Ancak, bazı dezavantajları da beraberinde getirir:
- Zayıf liderlik – düğümler liderden gelen talepleri reddedebilir ve yeniden seçilmeyi önerebilir, ancak lider seçimi için yetki hizmetleri gerektirir.
- Bizans hata toleransı – Düğümlerin %33’ü kötü niyetli olabilir.
- Düşük ağ ölçeklenebilirliği – yüksek iletişim ek yükü ve çoklu mesaj turlarının gecikmesi nedeniyle, düğüm sayısının artırılması sistemin karmaşıklığını da dört kat artıracaktır.
- İşlem hacmi – 1 saniyelik onay süresi ile saniyede 50.000 tx’e kadar.
- Kullanım örneği – sınırlı yetkili doğrulayıcıya sahip konsorsiyum blok zinciri.
Yetkilendirilmiş Bizans Hata Toleransı (dBFT)
Delegated Byzantine fault tolerance (dBFT) 2014 yılında NEO projesi tarafından önerilmiştir. Lideri seçmek için otorite hizmetlerine ihtiyaç duyan pBFT’nin aksine, dBFT’nin oylama sistemi, delege edilmiş hisse kanıtına (DPoS) benzer bir şekilde büyük ölçekli katılıma izin verir.
Genel mutabakat prosedürü pBFT’ye çok benzer, farklı olduğu nokta oyların nasıl sayıldığıdır. dBFT’de oyların ağırlığı, katılımcıların oylama sırasında sahip oldukları token sayısı ile orantılıdır. Katılımcılar jetonlarını (oylarını) güvenilir temsilcilere devredebilirler. Bu, performansı artırır, ancak aynı zamanda bu ekstra temsil katmanı nedeniyle zaman içinde daha merkezi hale gelebileceği anlamına gelir. Bu yöntemin bir dezavantajı, seçilen delegelerin artık anonim olmalarına izin verilmemesidir. NEO blok zincirindeki delegeler gerçek kimlikler altında çalışır.
Federe Bizans Anlaşması (FBA)
Federe Bizans anlaşması (FBA), açık üyeliği destekleyen ve doğrulayıcıların ağa serbestçe katılmasına izin veren bir algoritmadır. Yüksek verim, ölçeklenebilirlik ve düşük işlem maliyetleri ile dikkat çekmektedir.
FBA izinsiz bir BFT olarak düşünülebilir. Ancak, bir işlemin belirli bir imzalayanlar grubu tarafından imzalanması gerekir. Bir FBA sisteminde doğrulayıcılar güvendikleri diğer doğrulayıcıları seçebilir ve buradan bir çekirdek dilim olarak bilinen şeyi oluştururlar. Çok sayıda doğrulayıcıya sahip bir sistemde birden fazla çekirdek dilimi olabilir ve birden fazla çekirdek diliminde bazı düğümlerin birden fazla dilimde güvenilir olmasıyla çakışma olur. Bu örtüşmeler bir araya gelerek kapsayıcı nisabı oluşturur. Bu da FBA’da uzlaşmaya varma yöntemi olarak kullanılır. FBA kullanan önemli projeler Ripple(XRP) ve Stellar(XLM)’dır.
FBA’nın bazı avantajları şunlardır:
- Üyelik, güvenilir olduğu ve nisap dilimine katılabildiği sürece açık olduğundan giriş engeli düşüktür.
- Herkes istediği zaman sisteme katılabilir ve sistem çalışmaya devam ederken ayrılabilir.
Sal
Diego Ongaro ve John Ousterhout tarafından 2014 yılında geliştirilen Raft, Paxos protokolüne dayanmaktadır ve anlaşılması ve uygulanması daha kolay olacak şekilde tasarlanmıştır. Diğer birçok mutabakat algoritmasıyla karşılaştırıldığında, Raft lidere daha güçlü bir bağımlılığa sahiptir. Düğümler, rastgele zamanlayıcılar lideri seçtikten sonra lidere güvenecek ve yalnızca mevcut lider başarısız olursa yeniden seçilecektir.
Bu, işleri önemli ölçüde iyileştirdi:
- Güçlü liderlik – düğümler liderden gelen talepleri reddetmez, lider müsait olmayana kadar yeniden seçim yapılmaz.
- Çökme hatasına toleranslı – düğümlerin %49’u çökebilir veya kullanılamaz hale gelebilir.
- Yüksek ağ ölçeklenebilirliği – Bu mutabakat algoritmasının karmaşıklığı düğüm sayısı ile doğrusal orantılıdır.
Örnekler:
Lidersiz Konsensüs
Tanıtacağımız son mutabakat türü, yeni ortaya çıkan bir yönelimdir – lidersiz mutabakat.
Daha önce de ele alındığı gibi, konsensüs, bir grup ajanın yerel etkileşim yoluyla ortak durumları üzerinde anlaşması anlamına gelir.
Lidersiz uzlaşma probleminde sanal bir lidere ihtiyaç duyulmazken, lideri takip eden uzlaşma probleminde tüm grup için hedefi belirleyen sanal bir lider gereklidir. Daha spesifik olarak, statik bir sanal lider ile mutabakat, mutabakat düzenleme problemi olarak adlandırılır ve dinamik bir sanal lider ile mutabakat, mutabakat izleme problemi olarak adlandırılır.
Lidersiz mutabakat projelerine örnek olarak Avalanche, IOTA ve NKN verilebilir. Burada Avalanche ve IOTA’yı yüksek düzeyde tanıtacağız.
Çığ
Avalanche teknik incelemesi, kendilerini yalnızca Team Rocket olarak tanıtan bir ekip tarafından Mayıs 2018 ortasında anonim olarak yayınlandı. Daha sonra, Avalanche (AVA) tokenini geliştirmek için AVA Labs kuruldu ve Cornell Üniversitesi’nden bir grup bilgisayar bilimcisinin (Emin Gün Sirer, Kevin Sekniqi, Ted Yin) projeyle yakından ilişkili olduğuna inanılıyor.
Team Rocket, mutabakat protokolünü “kripto para birimleri için yeni bir metastabil mutabakat protokolü ailesi” olarak adlandırdı ve “metastabil bir mekanizma üzerine inşa edilmiş yeni bir lidersiz Bizans hata toleransı protokolü ailesi” olarak tanımladı.
Avalanche, bir fikir birliğine varmak için oylama için tekrarlanan rastgele alt örnekleme kullanır. Her düğümün, çoğunluğa uyup uymadığını görmek için durumlarını doğrulamak üzere belirli sayıda komşuyu örneklemesi gerekir. Aksi takdirde, çoğunluğa uyarak durumlarını değiştireceklerdir. Süreç tekrar tekrar tekrarlanacak ve nihayetinde tüm ağ uzun vadede her yerde bulunan bir sonuca ulaşacaktır.
Avalanche, mutabakat mekanizmasının 4 saniye gecikmeyle 1.300 tps’ye ulaşabileceğini iddia etti.
Ekibe göre, Avalanche’ın ana ağının Eylül 2020’de piyasaya sürülmesi bekleniyor.
IOTA
IOTA 2015 yılında David Sonstebo, Sergey Ivancheglo, Dominik Schiener ve Dr. Serguei Popov tarafından kurulmuştur. IOTA, blok zinciri yerine dağıtılmış bir defter teknolojisi (DLT) için temel veri yapısı olarak yönlendirilmiş asiklik grafiği (DAG) kullanmayı öneren ilk coinlerden biridir.
IOTA’nın mevcut sürümü Tangle adı verilen bir protokol kullanmaktadır. Tangle, bitcoin’den farklı olarak aşağıdaki özelliklere sahiptir:
- İşlemleri zincirleme bloklar halinde gruplamak yerine işlem grafiğini oluşturmak için DAG tabanlı bir veri yapısı kullanır.
- Madencilerin rolünü ortadan kaldırır ve kullanıcının ağa yeni işlemler göndermek istemesi halinde önceki iki (onaylanmamış) işlemi doğrulamasını gerektirir.
- Fikir birliği/oylama yerel bilgilere dayanır ve tüm ağ ile etkileşim gerektirmez. Bunun yerine, Monte-Carlo Markov Zinciri (MCMC) adı verilen ağırlıklı bir rastgele yürüyüş süreci ile elde edilir
- Ancak, teknik dokümanda dağıtık bir ortamda fikir birliğine nasıl ulaşılabileceği açıkça belirtilmemiştir. Bu nedenle ağ, bugüne kadar kripto topluluğunun geniş çapta eleştirdiği merkezi bir ‘koordinatöre’ dayanmaktadır.
Yakın zamanda IOTA Vakfı, protokolü yenilemek ve koordinatörü kaldırmak için ‘Coordicide’ adlı yol haritasını açıkladı. İki konsensüs önerilmiştir: hızlı olasılıksal konsensüs (FPC) ve hücresel konsensüs (CC). Her iki çözüm de lidersiz mutabakat sınıfına aittir.
Mutabakat ve Blockchain’in Ölçeklendirilmesi
İşte en yaygın kullanılan mutabakat mekanizmalarına genel bir bakış. Bir blok zincirinin hareket etmesini sağlayan tüm parçalar gibi, burada da orijinal konseptten daha yüksek hızlar ve daha büyük ağlar için blok zincirlerini ölçeklendirmeye yardımcı olan daha hızlı ve çevik versiyonlara kadar belirgin bir evrim görebiliriz. Blok zincirinin temel işlevleri hakkında daha fazla bilgi edinmek istiyorsanız, yan zincirler ve zincir üzerinde bir ödeme sisteminden çok daha fazlasını oluşturmaya nasıl yardımcı oldukları hakkındaki makalelerimize de göz atın.