Neden %51?
Bitcoin’de %51 atak kavramını duymuşsunuzdur. Protokolün güvende kalması için madencilerin %50’den fazlasının hain olmaması gerekir. Peki neden?
Ağı ele geçirebilmek için Nakamoto Konsensüs'ta(Bitcoin vb) %51 yetiyorken BFT-Klasik Konsensüs’ta(Polkadot, Cosmos vb) neden %33 yetiyor.
Her konsensüs belli varsayımlarda bulunur. Örneğin Bitcoin, bütün konsensüs mesajlaşmasının 10dk içinde tamamlanacağını varsayar. Diğer bir varsayım ise ağın düzgün çalışması için kıt kaynağın(hash gücü) çoğunlukta yani %50+1'de(Honest Majority-Dürüst Çoğunluk) olacağını varsayar.
Bu varsayımlar altında;n
tane node,f
tane hatalı/düşman node olsun
Dürüst çoğunluğu(%50+1) matematiksel olarak ifade etmek gerekirse;
f
’yi çekersek;
Yani başka bir deyişle Bitcoin, hatalı node sayısı(f
) toplam düğüm sayısının yarısından az olduğu sürece ağın emniyetini garanti edebilir.
Nakamoto Konsensüs senkron(syncronous) bir algoritmadır.(konsensüs mesajlaşmasının 10dk içinde tamamlandığını varsayması) Bu özellik Bitcoin’i izinsiz bir ağ yapar, herkes madencilik yapabilir.
Fakat BFT bir algoritmada konsensüse katılmak konsensüs onayı gerektirir ve her node ağda oy kullanmak zorundadır.
Her nodeun mesaj almasını garanti altına almak için, konsensüse varmak için sabit bir zaman yoktur. Yani konsensüse ne kadar sürede varılacağı ağdaki nodeların mesajlaşma süresine bağlıdır. Buna kısmen senkron denir.
Kısmi senkron ağ modelleri, gelecekte mutabakata varılacağı konusunda garanti verse de, birkaç mutabakat turu için yeni bir blok oluşturamayabilir.(bknz: Solana)
Yine bu varsayımlar altında;n
tane node,f
tane hatalı/düşman nodex
tane de her nodeun alacağı mesaj(oy vs) olsun.
Düşman nodelar herhangi bir mesaj göndermemeyi seçebilir, bu nedenle en kötü durumda bir node en fazla n-f
mesaj alması gerekir diyebiliriz, yani birinci denklem;
Fakat n-f
mesajdan hangisinin dürüst hangisinin düşman olduğunu bilemeyiz ya da yanıt vermeyen düğümler düşman olmayabilir belki sadece ağ gecikmesi vardır. Bir karar verebilmek için, en az f+1
dürüst mesaj olduğunu ve hatalı mesajların sayısından fazla olduğunu garanti etmeliyiz.
Yani dürüst düğümlerden gelen mesaj sayısının, hatalı düğümlerden sayıca fazla olacak kadar yeterli yanıt almış olmalıyız. Bu nedenle ikinci denklem;
Bu iki denklemi birleştirip f
’yi çekersek;
Yani Tendermint ya da Solana gibi bir BFT, hatalı node sayısı(f
) toplam düğüm sayısının 1/3'ten az olduğu sürece ağın emniyetini garanti edebilir.