Bizans Generalleri Problemi

Birbirinden bağımsız sistemlerin (bunlara dağıtık sistemler de deniyor) arasındaki ilişkiler ve çıkan anlaşmazlıklar literatüre ?Bizans Generalleri Problemi? olarak girmiş.

İlk olarak Prof. Dr. Eralp Akkoyunlu ve ekibi tarafından 1975 yılında yazılan “Some constraints in and trade-offs in the design of network communications” isimli bir araştırmada bu sorun ortaya atılmış. (New York Üniversitesi Bilgisayar Bölümü’nde kürsü başkanı olan ve 1987 yılında kendi elleri ile yaptığı on iki metrelik teknesi ile bir dünya seyahati gerçekleştiren Prof. Dr. Akkoyunlu‘yu da bu vesile ile saygıyla analım).
Sonrasında da 1982 yılında Bizans Generalleri Problemi adıyla geliştirilmiş. Peki nedir bu problem, kısaca anlatalım.

Vakti zamanında Bizans Ordusu bir şehri kuşatır. Ancak şehrin etrafında vadiler ve dağlar olduğu için ordu parça parça birlikler halinde kuşatmıştır şehri. Birlikler birbirinden uzakta oldukları için aralarındaki haberleşmeyi ulaklar sağlamaktadır. Ancak ordunun asker sayısı oldukça sınırlı, savunmadaki şehir halkı da oldukça dişlidir. Ayrıca birliklerin başındaki generaller içinde (komutan da bunlara dahil) hainlerin bulunma ihtimali vardır. Kale ancak ordu dört bir yandan topluca birlikte hareket ederse alınabilecektir. Aksi takdirde, birliklerin bir kısmı hücum eder diğerleri hücuma katılmazsa saldıranların telef olacağı kuşatma, Bizans ordusunun hezimetiyle sona erecektir.
Komutan ve birliklerin başındaki generallerin birbiri ile anlaşması ve “saat 10:00’da hücum” ya da “geri çekil” emrini ortak bir şekilde gerçekleştirmeleri nasıl sağlanabilir? Yani birbirine güvenmeyen (içlerinde hain ya da hatalı sinyaller verebilecek) parçaların ortak hareket etmesi nasıl sağlanır? Nasıl bir “Mutabakat Mekanizması” olmalı ki aralarında beraberce hareket edebilirler? İşte Bizans Generalleri Problemi bu.
Bu problemi çözmek için oluşturulan sistemin adı ise Bizans Hata Tolerans Sistemi. Bütün hava ulaşım araçlarının motorlarında ve nükleer santrallerde kullanılıyor. Bu sistem, belli bir alana dağılmış ve birbirlerine sinyaller gönderen değişik parçaların gelen çelişkili sinyaller karşısında nasıl doğru hareket etmeleri gerektiğini belirliyor.
Sistem aşağıdaki kurallara bağlı olarak çalışıyor:

  1. Oyuncuların en az 2/3’ü doğru çalışıyor olmalı (yalan söylemez);
  2. Her bir parça kendisine gelen mesajlar içinde çoğunluğun gönderdiği mesajı uygular;
  3. Sistem oyuncuların çoğunluğunun ilerlediği şekilde ilerler. (Burada önemli olan “doğru” bir sonuç çıkması değil “tutarlı bir” sonuç çıkması, ortada bir kararsızlık kalmaması)

Örneğimizden devam edelim:
Öncelikle şu basit duruma bakalım: Bir komutan ve üç general var. Ve bu generallerden biri hain (ya da hatalı bilgi veriyor). Bu durumda komutanın hücum emri vermesi durumunda nasıl bir sonuç çıkıyor aşağıda görelim:
 

Bizans Generalleri Problemi
İkinci General gözünden gelen mesajlar: Ne yapmalı bu general?

 
İki numaralı generalin perspektifinden bakalım: Kendisine üç mesaj geliyor. Bunlardan ikisi “hücum”, biri “çekil” şeklinde. Bu durumda general, “hücum” emrini uygular, çünkü kendisine gelen hücum emirleri daha fazla. Bir numaralı general de aynı şekilde hareket eder. Üç numaralı hain general “çekil” emri gereği dursa bile sonuçta iki general (yani çoğunluk) “hücum” emrini verdiği için sistem hücum eder.
Peki ya kumandan hainse? Ve generallere farklı mesajlar yolluyor ise? Bu durumda olaylar şu şekilde gelişir:
 

Bizans Generalleri Problemi
Komutan hain ise, generaller ne yaparlar?

 
Komutan bir emir veriyor, bu emir tüm generallere dağıtılıyor. Generaller de bu emri birbirileri ile paylaşıyorlar. Bu durumda her bir generale iki “hücum” ve bir “çekil” mesajı gelecek. Bu durumda da generaller “hücum” emrini uygulayacaklar.

Araştırmacılar Leslie Lamport, Robert Shostak ve Marshall Pease’in 1982’de yayınlanan akademik bir makalesinde anlattıkları mantıksal bir ikilem, “Bizans generallerinin” probleminin bir çözümünü temsil ettiği için bu şekilde adlandırıldı. Esasen, bir grup Bizans generali ve orduları çevreledikleri bir kaleye saldırıya hazırlanıyorlar. Başarılı olmak için, bu orduların hepsi aynı anda hücum etmelidir. Ama aralarında bir hain olduğunu biliyorlar. Önlerindeki sorun şu; içlerinde varolan bilinmeyen bir kötü aktörle başarılı bir saldırı başlatmaları gerekmektedir.

Bizans Generalleri Problemi

Bizans generalleri problemi

Metafor aslında birçok bilgisayar ağını rahatsız eden bir sorunu anlatıyor. Bir topluluk nasıl davranacaklarına ilişkin toplu bir karar vermeye çalışırken, grup içindeki hainler tercihleri ??hakkında kafa karıştırıcı mesajlar gönderebilirler. Hainler, grubun bazı üyelerine bir şey yapmak istediklerini söyleyebilir ve grubun diğer üyelerine bunun tam tersini söyleyebilirler. Bu, grubun eylemlerini etkili bir şekilde koordine etme becerisi için sorunlara neden olabilir. Grubun bazı üyeleri bir şeye inanmaya yönlendirilirse ve diğerleri farklı şeyler düşünürlerse, grup üyeleri birlikte hareket etmeyi başaramayacaklardır. Tam da hainlerin arzuladığı gibi, grubun bütünlüğü ve etkinliği bozulacaktır.

Kaynaklar

 

Yorumunuzu Ekleyin

Yükleniyor...