Bizans Hata Toleransı nedir?
Konsensüs mekanizmaları söz konusu olduğunda, genel Bizans sorununun en karmaşıklarından ve tartışmalılarından biri olduğu göze çarpıyor. 2008’de Bitcoin’in piyasaya sürülmesiyle Satoshi Nakamoto, Bizans sorununu Consensus Evidence of Employment (PoW) mekanizmasını kullanarak çözeceğini aktarmıştı. Ancak bu, merkezi olmayan bir ağ üzerinde fikir birliğine varmanın sadece ilk adımıdır.
Bu makalede, blok zincirindeki Bizans problemi ve Bizans hata toleransı mekanizması (BFT) sorununa bir yanıt bulabilirsiniz.
Bizans generalleri sorunu nedir?
Bizans generallerinin sorunu, 1982’de mantıklı bir karar bilmecesi olarak kabul edilmiştir. Bu sorun, farklı güçlerin aynı tarafında bulunan generallerin, düşmana karşı ne yapacaklarına karar verirken iletişim sorunları yaşayabilmelerine dayanmaktadır.
Sorunu daha iyi anlamak için aşağıdaki şemaya göz atalım. Sorun, orduları düşmana saldırmak üzere olan bir grup generale benzemektedir. Generaller düşman kalesini 4 farklı yönden kuşatmış durumda. Şimdi aynı anda saldırma veya misilleme yapma kararını birbirlerine nasıl duyuracaklar? Bu noktada düşmana senkronize ve eşzamanlı bir saldırı yapmak başarıya götürecektir. Bizans generalleri sorunu da tam olarak bu noktada baş göstermeye başlamaktadır.
Kararları bir generalden diğerine aktarırken aşağıdaki sorunlar ortaya çıkabilir:
- Karar verildiğinde haberci haberi aktarmaya giderken durdurulabilir.
- Bir dolandırıcı alınan mesajı değiştirerek yanlış bilgi verebilir.
- Bir general, beklenen bir generalden mesaj aldığından nasıl emin olabilir?
- Ya diğer generaller hain olursa ve saldırı mesajı göndermelerine rağmen geri çekilirlerse?
Sistem, her bir generalin kendi belirlenmiş konumundan aynı anda saldırmasını nasıl sağlayabilir? Birbirinize tamamen güvenmekten başka bir yol yok mu? Blockchain, Bizans hata toleransı (BFT) fikir birliği mekanizması ile bu sorunu çözebilmektedir.
Bizans Hata Toleransı (BFT) nedir?
Bir grup generalin başarısını garanti altına almak için aşağıdaki koşulları karşılayabilecek bir algoritmaya ihtiyaçları bulunmaktadır:
- Tüm generaller plandaki bir sonraki eylem üzerinde anlaşmalıdır.
- Generaller güvenilir ve sisteme sadık kişiler olmalıdır.
- Generaller, ağ haini olacak şekilde etkilenmemelidir.
- Generaller sistem algoritmasına uyum sağlamalıdır.
- Bir grup general, hainlerin eylemlerinden bağımsız olarak bir fikir birliğine veya karara varabilmelidir.
- Sistem veya ağ, eylemin hiçbir noktasında %51 saldırısına yol açmamalıdır.
Bizans hata toleransı (BFT), Bizans generallerinin sorununa girmek için sisteme direnen bir fikir birliği yaklaşımıdır. Ayrıca, sistemde düğümlerden biri (veya tümü) başarısız olsa bile sistemin bozulmadan devam etmesi gerektiği anlamına gelir. Ek olarak, BFT, ağdaki zararlı Bizans düğümlerinin (veya genelinin) etkisini azaltmayı amaçlamaktadır.
Pratik Bizans Hata Toleransı (PBFT) nedir?
Bizans generalleri sorununun üstesinden gelmek için Barbara Liskov ve Miguel Castro tarafından, 1999’da Konsensüs Pratik Bizans Hata Toleransı (pBFT) algoritması tanıtıldı. İkilinin duyurduğu bu algoritma, kötü niyetli Bizans düğümlerini tolere etmek için pratik bir Bizans durumu makine replikasyonu sağlamayı amaçlamaktadır.
PBFT asenkron erişimi takip etmektedir ve aşağıdakiler de, pBFT konsensüs algoritmasının temel yönleridir:
- Tüm düğümler sırayla birleştirilir.
- Bir ağ düğümü, ana düğüm görevi görür ve diğerleriyse yedek düğümler olarak kalır.
- Birincil veya ana düğüm, kişinin isteğine hizmet etmektedir. Ayrıca, istemci ve yedek düğümler arasında bir moderatör görevi de görür.
- Tüm düğümler diğer düğümlerle iletişim kurabilir ve sadık düğümleri kontrol edebilir.
- Ağdaki sadık düğümler, ortak bir kurala dayalı olarak bir sonraki küresel ağ değişikliği için bir fikir birliğine varabilirler.
- Doğru gönderici tarafından gönderildiğinden emin olmak için mesajın kaynağını tanımlanır.
- İletinin süreç işlenirken değiştirilmemesini veya bozulmamasını sağlar.
pBFT ilkelerini de öğrendiğimize göre şimdi de pBFT nasıl çalışıyor, bunu öğrenebiliriz.
PBFT algoritması nasıl çalışır?
PBT algoritması, büyük ölçüde, maksimum kötü niyetli veya Bizans düğümü sayısının ağdaki tüm düğümlerin üçte birini aşması koşuluna bağlıdır. Bu nedenle, ağın güvenliği doğrudan toplam dürüst düğümlerin sayısına bağlıdır da diyebiliriz.
Özetlemek gerekirse, bir pBFT algoritması, ağ üzerinde 3f + 1 toplam düğüm sayısının olduğu ‘f’ hatalı veya Bizans düğümlerini işleyebilir.
Aşağıdaki adımlarsa, pBFT konsensüs algoritmasının sürecidir:
- Bir istemci, isteği ana düğüme gönderir.
- Ardından ana düğüm tarafından istek tüm yedek düğümlere taşınır.
- Tüm düğümler istek üzerinde çalışır ve istemciye bir yanıt gönderir.
- İstemci, tüm düğümlerden aynı sonuca sahip (f + 1) yanıtlarını bekler. Burada f = olası hata düğümlerinin sayısıdır.
pBFT mekanizması 3 aşamadan oluşur:
Ön hazırlık aşaması: Ana düğüm, her bir yedek düğüme önceden hazırlanmış bir mesaj gönderir.
Hazırlık aşaması: Yöneticiden önceden hazırlanmış bir mesaj aldıktan sonra, yedek düğümler, yönetici dahil diğer tüm düğümlere yanıt olarak hazırlanan mesajı gönderir. Bir düğüm, yalnızca yöneticiden önceden hazırlanmış mesajları alırsa ve diğer düğümlerden hazırlanan mesajların sayısını (2f + 1) öğrenirse hazır kabul edilir.
İşleme: Düğümler hazır olduğunda bir onay mesajı gönderirler. Bir düğüm işleme mesajı (f+1) alırsa, müşteri talebini yürütmeye başlar.
PBFT’nin avantajları
pBFT konsensüs algoritmasının avantajları aşağıdaki gibidir:
- pBFT, PoW gibi uzun matematiksel hesaplamalar gerektirmez.
- Bu, enerji verimli bir fikir birliği modelidir.
- Buradaki işlem bloğu, düğüm başına birden çok alındıyı takip etmek zorunda değildir. Bu sayede de zamandan tasarruf sağlar.
- pBFT, her düğümün istemci talebine katılmasını ve hizmet vermesini gerektirdiğinden, her düğüm bir ödül kazanmaktadır. Bu nedenle de her düğüm arasında düşük bir ödül farkı vardır.