Bizans Hata Toleransı (BFT)-banner-imageAkademi

Bizans Hata Toleransı (BFT)

Satoshi Nakamoto, 2008'de Bitcoin'i yaratmıştır ve ağı, herhangi bir aracı olmadan sürdürülebilen, dağıtılmış, eşler arası bir model olarak güçlü bir hale getirmiştir. O zamandan beri tüm doğrulayıcıların aynı bilgiyi paylaştığı, aynı sistemi izlediği ve herhangi bir doğrulayıcının, aynı verileri görüntülediklerini bilerek ağ üzerinde herhangi bir diğer doğrulayıcı ile güvenli bir şekilde iletişim kurabildiği bir sistemi izleyen birçok dijital para birimi oluşturulmuştur. Kripto para ağının tüm katılımcıları, blokzincirin mevcut durumu hakkında düzenli olarak anlaşmaya veya fikir birliğine varmak zorundadır. Doğrulayıcıların en az üçte ikisi (2/3) veya daha fazlası güvenilir ve dürüst doğrulayıcılarsa, ağ daha fazla tercih edilmektedir. Doğrulayıcıların yarısından fazlası kötü niyetli davranırsa sistem, daha önce detaylı bir şekilde anlattığımız çift harcama (double spending) saldırıları ile karşı karşıya kalabilmektedir.

Bu yazımızda inceleyeceğimiz Bizans Hata Toleransı (BFT) ise, ağdaki bazı doğrulayıcılar yanıt vermediğinde veya yanlış bilgi ile yanıt verdiğinde bile fikir birliğine (aynı değerde anlaşmaya) ulaşmak için dağıtılmış bir ağın özelliğinin kullanılmasını sağlamaktadır. Bir BFT mekanizmasının amacı, hatalı doğrulayıcıların etkisini azaltmayı amaçlayan toplu karar vermeyi kullanarak sistem arızalarına karşı koruma sağlamaktır. BFT, Bizans Generalleri Sorunu’ndan türetilmiştir.


Bizans Generalleri Sorunu

1982'de Leslie Lamport, Robert Shostak ve Marshall Pease tarafından bulunan ve Bizans Hata Toleransı kavramına ilham kaynağı olan Bizans Generalleri Sorunu, Microsoft Research’te yayınlanan bir makalede kısaca şu şekilde açıklanmıştır:

“Bizans ordusunun birkaç tümeninin, her biri kendi generali tarafından komuta edilen bir düşman kentinin dışında kamp kurduğunu hayal edin. Generaller birbirleriyle ancak haberci aracılığıyla haberleşebilirler. Düşmanı gözlemledikten sonra ortak bir eylem planına karar vermeleri gerekir. Ancak bazı generaller, sadık generallerin anlaşmaya varmasını engellemeye çalışan hainler olabilirler. Generaller şehre ne zaman saldıracaklarına karar vermelidir, ancak aynı anda saldırmak için ordularının güçlü bir çoğunluğuna ihtiyaçları vardır. Generaller, (a) tüm sadık generallerin aynı eylem planına karar vermelerini ve (b) az sayıda hainin sadık generallerin kötü bir planı benimsemesine neden olmamalarını garanti edecek bir algoritmaya sahip olmalıdır. Fakat, sadık generallerin hepsi, algoritmanın yapması gerektiğini söylediği şeyi yapacak olsa bile hainler istedikleri her şeyi yapabilecektir. Algoritma, hainler ne yaparsa yapsın (a) koşulunu garanti etmelidir. Bu nedenle sadık generaller sadece anlaşmaya varmakla kalmamalı, aynı zamanda makul bir plan üzerinde anlaşmalıdır.”

yazc¦ğia¦üi.jpg.png

Bunun yanı sıra Bitcoin’i geliştiren, teknik incelemesini yazan ve ilk blokzincir veritabanını tasarlayan Satoshi Nakamoto, Bitcoin’de kullanılan İş İspatı (Proof of Work) mutabakatının Bizans Generalleri Sorunu’na bir çözüm olduğunu dile getirmiştir.

Bizans Generalleri Sorunu’nu birazda günümüze uyarlayarak İş İspatı mutabakatının önemini belirten Nakamoto, 2008 yılında bu sorunu şu şekilde anlatmıştır:

“Bir dizi Bizans generalinin her birinin bir bilgisayarı var. Belirli sayıda bir karakter uzunluğunda olduğunu öğrendikleri şifre ile Kralın wi-fi'sine saldırmak istiyorlar. Ağı bir güç oluşturmaya teşvik ettiklerinde, giriş yapmak ve verileri silmek için sınırlı bir süre içinde şifreyi kırmaları gerekir, aksi takdirde keşfedilecek ve başları belaya girecektir. Çoğunluğu aynı anda saldırırsa, şifreyi yeterince hızlı kırmak için yeterli CPU gücüne sahip olacaklardır.”

Devamında, saldırının ne zaman olacağını bilmeyen generallerin sadece hepsinin aynı fikirde olduğunu belirten Nakamoto, örneğin iki generalin aynı anda farklı saldırı zamanlarını duyurmaları durumunda bazılarının önce birini, bazılarının ise diğerini önce duyabileceği ihtimalini açıklamıştır. Bu sorunu çözmek için ise İş İspatı mutabakatını kullanabileceklerini belirtmiştir:

“Her general, ilk duyduğu saldırı süresini dikkate aldığında, bilgisayarını saldırı süresini de içeren son derece zor bir İş İspatı problemini çözmesi için ayarlar. İş İspatı o kadar zordur ki, biri bir çözüm bulmadan önce hepsinin aynı anda 10 dakika çalışması beklenmektedir. Generallerden biri bir İş İspatı bulduğunda, bunu ağa yayınlar ve herkes mevcut hesaplamasını bunun üzerinde çalıştıkları karma veriye dahil edecek şekilde değiştirir. Herhangi biri farklı bir saldırı süresi üzerinde çalışıyorsa, buna geçer çünkü bu İş İspatı zinciri artık daha uzundur. İki saat sonra, 12 İş İspatı zinciri ile bir saldırı zamanı hash edilmelidir. Her general, sadece İş İspatı zincirinin zorluğunu doğrulayarak, saat başına ne kadar paralel CPU gücünün harcandığını tahmin edebilir ve bilgisayarların çoğunluğunun bu kadar işlemci gücü üretmesi gerektirdiğini görebilir. "İş İspatı zinciri tarafından sergilenen CPU gücü parolayı kırmak için yeterliyse, kararlaştırılan zamanda güvenli bir şekilde saldırabilirler. İş İspatı zinciri, sorulan tüm senkronizasyon, dağıtılmış veritabanı ve küresel görünüm sorunlarının nasıl çözüldüğünün bir kanıtıdır."

Bu şekilde düşündüğümüzde ağdaki sadık doğrulayıcılar, değerleri üzerinde bir anlaşmaya varırsa Bizans Hata Toleransı (BFT) elde edilebilecektir.


Bizans Hata Toleransı (BFT) Nedir?

Doğrulayıcı hatasıyla başa çıkma konusunu tartışan soyut bir sorun olan Bizans Generalleri Sorunu’na dayanan Bizans Hata Toleransı (BFT), merkeziyetsiz, güvenilirliği az olan bir ağın arızalı veya kötü niyetli doğrulayıcının varlığında bile çalışmasını sağlayan bir mekanizma olarak karşımıza çıkmaktadır. Güvensiz bir ağın başarılı bir şekilde çalışması için, katılımcılar önceden belirlenmiş bir fikir birliği mekanizmasına bağlı kalırlar. Ancak, bazı doğrulayıcıların başarısız olması, hatalı davranması veya kötü niyetli davranması sonucunda ağın farklı bölümlerine çelişkili bilgilerin verilmesi olasıdır.

Bizans Hata Toleransı (BFT), ağın üçte ikisi uyumlu kaldığı sürece bir ağın çalışmaya devam etmesini mümkün kılmaktadır. Yukarıda da belirttiğimiz gibi, Satoshi Nakamoto’nun da dile getirdiği üzere İş İspatı (PoW) veya Pay İspatı (PoS) gibi en yaygın fikir birliği mekanizmaları Bizans Hata Toleranslı olacak şekilde tasarlanmıştır.

Bildiğimiz üzere BFT kavramı, bir şehre saldırması gereken birkaç generalin olduğu mantıklı bir düşünce deneyi olan Bizans Generalleri Sorunu’ndan gelmektedir ve bu sorun sırasıyla şunları içermektedir:

  • Generallerin hepsi farklı yerlerdedir ve her seferinde bir mesaj olmak üzere yalnızca haberci ile iletişim kurabilmektedir.

  • Başarılı bir şekilde saldırmak veya geri çekilmek için hepsi aynı eylemi koordine etmelidir.

  • Hepsi saldırırsa veya hepsi geri çekilirse, olay istenildiği gibi sonuçlanacaktır.

  • Sorun, bazı generaller saldırırken, diğerleri geri çekildiğinde ortaya çıkmaktadır ve bu durumda herkes için kötü bir sonuç olacaktır.

Çözülmesi gereken sorun ise şudur: Kötü niyetli aksiyonlar alınsa bile tüm generaller aynı eylemde nasıl hemfikir olacaklardır?

Bir sistem, ağın üçte ikisi aynı fikirde olduğu veya fikir birliğine vardığı sürece doğru şekilde çalışmaya devam edebildiğinde Bizans Hata Toleransı’na (BFT) sahip olmaktadır. BFT, başarısız olan veya kötü niyetli hareket eden doğrulayıcıların üçte birine kadar direnebilen bir sistemin özelliği olarak karşımıza çıkmaktadır. Bu nedenle tüm doğrulayıcıların aynı eylemde hemfikir olmaları gerekmemektedir, çoğunluğa göre hareket edilmektedir.

Bizans Hata Toleranslı bir konsensüs protokolü, bazı anlaşmazlıklara rağmen doğrulayıcıları koordine edebilir ve fikir birliğine vardırabilir. Bu, Ethereum veya Bitcoin gibi merkezi olmayan blokzincirler için hayati bir önem taşır. Bahsedildiği üzere Bitcoin'i yaratırken Satoshi Nakamoto'nun kattığı temel yeniliklerden biri, Bitcoin ağına İş İspatı mutabakatını uygulayarak Bizans Generalleri Sorunu’nu çözmesidir. BFT uygulanarak, tek bir otorite tarafından kontrol edilmeyen ve belirli taraflara güvenmeye dayanmayan sistemler tasarlanabilir. Bu bağlamda, merkezi olmayan bir ağ oluşturmak esastır. BFT ilkesi, blokzincir ağlarında önemli bir rol oynamaya devam edecektir. Daha fazla kişi ve kuruluş, dağıtılmış ve merkezi olmayan sistemleri keşfettikçe, BFT sistemleri tasarlamanın daha yenilikçi yolları keşfedilecek ve uygulanacaktır.