Byzantine Fault – Bizans Generalleri Problemi Nedir?
Bizans Generalleri Problemi; ilgili tarafların tam bir başarısızlıktan kaçınmak için tek bir strateji üzerinde anlaşmaları gerektiği, ancak ilgili taraflardan bazılarının yozlaştığı ve yanlış bilgi yaydığı veya başka bir şekilde güvenilmez olduğu bir durumun, bilgisayar bilimi tarafından kabul edilmiş bir terimdir. Bizans generalleri sorunu, Bitcoin’in Proof-of-Work konsensüs algoritmasının nasıl işlediğine dair mükemmel bir temel örnek teşkil eder ve onu anlamak, genellikle diğer konsensüs algoritmaları hakkındaki anlayışınızı yükseltir.
Bizans Generalleri Problemi; 1982 senesinde, bir grup Bizans generalinin bir sonraki hamlelerinde anlaşmaya çalışırken nasıl iletişim sorunları yaşayabileceğini gösteren mantıksal bir ikilem olarak tasarlanmıştır. İkilem, her generalin kendi ordusuna sahip olduğunu ve her grubun saldırmayı planladıkları şehrin farklı yerlerinde bulunduğunu varsayıyor. Generallerin ya saldırmak ya da geri çekilmek konusunda anlaşmaları gerekiyor. Tüm generaller fikir birliğine vardıkları, yani koordineli bir şekilde yürütmek için ortak bir karar üzerinde anlaştıkları sürece, saldırmaları veya geri çekilmeleri önemli değildir. Bu nedenle, her ordunun generallerinin tam olarak ne zaman saldıracakları konusunda anlaşmaları gerekiyor. Buradaki ana sorun, iletişim problemleridir. İletişim, bir generalin bir diğer generalle yalnızca bir ulak tarafından taşınan mesajlar aracılığıyla iletişim kurabilmesine dayanmaktadır. Sonuç olarak, Bizans Generalleri Probleminde ana zorluk mesajların bir şekilde gecikebilmesi, zarar görebilmesi ya da kayıp olabilmesidir. Ancak işin püf noktası şudur: haberci potansiyel olarak şehirde yakalanabilir ve yerine diğer generali kasıtlı olarak yanlış zamanda şehre saldırması için kandırmaya çalışacak ve ordumuzu kaybetmeye mahkum edecek, bir sahte haber ulağı geçebilir. Mesajın gerçek olup olmadığını kontrol etmenin bir yolu yok, o halde ülkedeki en iyi askeri stratejistler olarak, şehre saldırmada zaferi garantileyen “güvenilmez” bir sistemi nasıl oluşturabiliriz? İşte bu duruma, Bizans Generalleri Problemi denir.
Bizans Generallerinin Problemi ve Bitcoin:
Yukarıdaki ikilem mutlaka sadece iki generalle sınırlı değildir. Bitcoin’inki gibi dağıtılmış bir ağda, tüm katılımcılar ve düğümler esasen eşit derecede hiyerarşiye sahiptir. Bu nedenle, şimdi iki taraf arasında doğrulama ve anlaşmaya varmak yerine, yozlaşmış veya yanıltıcı oyuncuları etkisiz hale getirirken tüm katılımcıların onaylamasına ihtiyacımız var. Tüm bu düğümler arasındaki anlaşmaya, sıkça duyduğunuz bir terim olan consensus yani fikir birliği denir. Bizans Generalleri Sorununun çözümü hiçbir şekilde basit değildir. Mesajı doğrulamak için bazı karma, yoğun hesaplama çalışmaları ve tüm düğümler (generaller) arasındaki iletişimi içerir. Dolayısıyla, bu tip dağıtılmış sistemlerde mutabakat sağlanmasının tek yolu ağ node’larının en az ⅔’ünün dürüst ve güvenilir olmasıdır. Bu da eğer ağın çoğunluğu art niyetli davranmaya karar verirse sistemin arızalara ve saldırılara (ör. %51 saldırısı) açık olacağı anlamına gelir.