Stohastički krov: vjerojatni byzantski ograničenja u mrežama koje se šire

Učeni ciljevi
Na kraju ovog modula bit ćete u stanju:
- Definirati Byzantine Fault Tolerance (BFT) i objasniti značaj pravila.
- Modelirati greške čvorova i zlonamjernu ponašanja pomoću binomne distribucije.
- Izračunati vjerojatnost da distribuirani sustav premaši svoj prag otpornosti na greške pod slučajnim uvjetima grešaka.
- Razumjeti zašto povećavanje broja čvorova ne mora uvijek poboljšati pouzdanost sustava — a čak i može smanjiti.
- Izvesti koncept „maksimuma povjerenja“ — točku u kojoj dodavanje više čvorova paradoksalno smanjuje pouzdanost sustava.
- Analizirati stvarne posljedice za blockchain, cloud infrastrukturu i decentralizirane protokole.
- Procijeniti suprotna mišljenja o hipotezi maksimuma povjerenja i procijeniti njegove ograničenja.
Uvod: Obveza i opasnost decentralizacije
U dizajnu distribuiranih sustava — od blockchain mreža do cloud-based protokola za konsenzus — temeljna pretpostavka je da više čvorova znači više sigurnosti. Logika je intuitivna: ako jedan čvor prestane raditi ili ponaša se zlonamjerno, drugi mogu otkriti i preokrenuti njegovu odluku. Što više čvorova imate, to bi trebalo biti teže jednom zlonamjernom akteru da preuzme kontrolu.
Ova intuicija leži u osnovi mnogih modernih algoritama za konsenzus, posebno Byzantine Fault Tolerance (BFT) protokola poput PBFT (Practical Byzantine Fault Tolerance), HotStuff i njihovih derivata. Ovi protokoli temelje se na matematičkoj garanciji: da bi tolerirali do Byzantine (zlonamjernih ili neispravnih) čvorova, potrebno je najmanje ukupnih čvorova.
Ovo pravilo je elegantno. Osigurava da čak i ako čvorova laže, kolineira ili nasumično padne, preostalih poštenih čvorova može ih nadjačati i održati konsenzus. To je temelj pouzdanog distribuiranog računanja.
Ali ovdje je skriveni problem: ovaj model pretpostavlja da znamo unaprijed. Tretira otpornost na greške kao dizajnerski parametar — nešto što inženjeri mogu postaviti kao gumb.
U stvarnosti, nije poznat. On je nasumičan. I raste s .
Ovaj modul istražuje radikalnu, ali matematički neizbježnu ideju: kako povećavate broj čvorova u sustavu, vjerojatnost da će više od čvorova postati zlonamjerni ili doći do greške raste — često dramatično. To stvara prirodni „maksimum povjerenja“ — točku u kojoj dodavanje više čvorova smanjuje ukupnu pouzdanost sustava.
Izvest ćemo ovo pomoću stohastičke teorije pouzdanosti — primjene teorije vjerojatnosti na pouzdanost sustava pod nasumičnim greškama. Pokazat ćemo da BFT pravilo, iako matematički ispravno pod fiksnim , postaje opasno zbunjeno kada se tretira kao varijabla ovisna o veličini sustava.
Dio 1: Razumijevanje Byzantine Fault Tolerance (BFT)
Što je Byzantine čvor?
U distribuiranim sustavima, čvorovi mogu padati na dva široka načina:
- Crash greške: Čvor prestane odgovarati. To je predvidljivo i otkrivljivo.
- Byzantine greške: Čvor se ponaša proizvoljno — može lažiti, slati suprotne poruke različitim čvorovima ili kolineirati s drugima. Ove su najopasnije jer ih ne možete pouzdano otkriti bez redundancije.
Termin „Byzantine“ dolazi iz Problema byzantskih generala, misaonog eksperimenta u kojem generali okružuju grad moraju se složiti hoće li napasti ili povući. Ali neki generali su izdajnici koji šalju suprotne poruke. Cilj je postići konsenzus unatoč izdajnicima.
BFT algoritmi rješavaju ovaj problem tražeći da pošteni čvorovi nadjačavaju zlonamjerne s omjerom 2:1. Stoga pravilo:
Gdje:
- = ukupan broj čvorova
- = maksimalni broj Byzantine (zlonamjernih ili neispravnih) čvorova koje sustav može tolerirati
Zašto 3f + 1?
Prođimo kroz jednostavan primjer.
Pretpostavimo (jedan zlonamjerni čvor). Tada .
- Ukupni čvorovi: 4
- Zlonamjerni: 1
- Pošteni: 3
U BFT-u, odluka zahtijeva „kvorum“ od čvorova da se slože. Dakle, čak i ako jedan zlonamjerni čvor šalje suprotne poruke različitim poštenim čvorovima, 3 poštena čvora mogu ih nadjačati i složiti se o jednoj istini.
Sada pretpostavimo . Tada .
- Zlonamjerni: 2
- Pošteni: 5
Poštena većina (5) može i dalje nadjačati zlonamjernu manjinu (2), jer .
Ova struktura osigurava da:
- Pošteni čvorovi uvijek mogu formirati većinu ( → )
- Nijedne dvije zlonamjerne čvorove ne mogu uvjeriti poštene da se slože na suprotne vrijednosti
To je teorijski temelj većine dozvoljenih blockchain i poduzetničkih distribuiranih baza podataka.
Ali ovdje je kritična mana ovog modela: pretpostavlja da znamo . U praksi, ne znamo.
Dio 2: Binomna distribucija grešaka čvorova
Modeliranje zlonamjernih čvorova kao slučajnih događaja
U stvarnim sustavima, čvorovi nisu dodijeljeni „zlonamjernim“ ili „poštenim“ oznakama u fazi dizajna. Umjesto toga, svaki čvor ima neku vjerojatnost da će biti kompromitiran — zbog:
- Grešaka u softveru
- Loše uprave ključeva
- Prijetnji unutar organizacije
- Napadi na lanac opskrbe
- DDoS ili iscrpljivanje resursa
- Ekonomski poticaji (npr. otkup u blockchain sustavima)
Modeliramo svaki čvor kao neovisni Bernoullijev pokus: s vjerojatnošću , postaje Byzantine; s vjerojatnošću , ostaje pošten.
Ukupan broj zlonamjernih čvorova u sustavu veličine slijedi binomnu distribuciju:
Gdje:
- = slučajna varijabla koja predstavlja broj Byzantine čvorova
- = ukupan broj čvorova
- = vjerojatnost da je bilo koji pojedini čvor Byzantine
Funkcija mase vjerojatnosti (PMF) daje nam vjerojatnost da točno čvorova bude zlonamjernih:
Gdje je binomni koeficijent: „ izaberi “.
Zanimaju nas kumulativna vjerojatnost da broj zlonamjernih čvorova premaši :
To je vjerojatnost da naš sustav ne može postići konsenzus — jer je previše čvorova zlonamjerno.
Primjer: 10-čvorni sustav s
Recimo da svaki čvor ima 5% šanse da bude kompromitiran (). Dizajniramo sustav da tolerira Byzantine čvor, pa nam treba .
Ali što ako imamo ? To je više čvorova — sigurnije li?
Izračunajmo vjerojatnost da (tj. više od jednog čvora je zlonamjerno):
Izračun:
Dakle:
To je 8,6% šansa da naš sustav ima više od jednog zlonamjernog čvora — što znači da ne ispunjava svoju BFT garanciju.
Čekajte — dizajnirali smo za , ali s 10 čvorova, postoji skoro 1 u 12 šansa da smo već premašili prag.
Sada probajmo , isti .
Još uvijek pretpostavljamo da toleriramo ? To je apsurdno. Ali čak i ako povećamo proporcionalno, vidjet ćemo nešto čudno.
Pretpostavimo da skaliramo kako bismo održali BFT omjer. Dakle, za , postavljamo (budući da ).
Sada izračunajmo .
To je teže izračunati ručno. Ali možemo približiti pomoću normalne aproksimacije binomne distribucije.
Srednja vrijednost:
Standardna devijacija:
Želimo — to je više od 8 standardnih devijacija iznad srednje vrijednosti.
Vjerojatnost da bude udaljen od srednje vrijednosti u normalnoj distribuciji je manja od — u suštini nula.
Čekajte. To sugerira da je sigurniji?
Ali pričekajte — promijenili smo pretpostavku.
U prvom slučaju, je bio fiksan. U drugom smo povećali uz .
To je ključno.
U stvarnim sustavima, ne fiksiramo . Pretpostavljamo da možemo tolerirati do čvorova.
Dakle, pravo pitanje je: Kolika je vjerojatnost da ?
To jest: Kolika je vjerojatnost da broj zlonamjernih čvorova premaši naš BFT prag?
Ovdje stvari postaju kontraintuitivne.
Dio 3: Maksimum povjerenja — matematički izvod
Definiranje „praga povjerenja“
Definirajmo pouzdanost sustava kao:
To jest: vjerojatnost da broj zlonamjernih čvorova ne premašuje naš BFT prag.
Želimo maksimizirati — vjerojatnost da se može postići konsenzus.
Izračunajmo za različite vrijednosti , s fiksnim .
Izračunat ćemo za od 4 do 100.
| 4 | 1 | 0.2 | 0.43 | ~0.018 | 0.982 |
| 7 | 2 | 0.35 | 0.58 | ~0.042 | 0.958 |
| 10 | 3 | 0.5 | 0.69 | ~0.086 | 0.914 |
| 25 | 8 | 1.25 | 1.09 | ~0.14 | 0.86 |
| 50 | 16 | 2.5 | 1.54 | ~0.38 | 0.62 |
| 75 | 24 | 3.75 | 1.90 | ~0.62 | 0.38 |
| 100 | 33 | 5 | 2.18 | ~0.84 | 0.16 |
Čekaj — što?
Kako raste, pouzdanost opada.
Pri n=4: 98,2% šansa za uspjeh
Pri n=100: samo 16% šanse!
To je maksimum povjerenja.
Postoji optimalni gdje pouzdanost doseže vrh — a nakon toga dodavanje više čvorova smanjuje pouzdanost sustava.
Zašto se ovo događa?
Binomna distribucija ima dva ključna svojstva:
- Srednja vrijednost raste linearno s :
- Standardna devijacija raste kao sqrt(n)
Ali naš prag otpornosti na greške također raste linearno s .
Dakle, pitate: Je li broj zlonamjernih čvorova (srednja vrijednost = np) manji ili jednak n/3?
To jest: Je li ?
Podijelite obje strane s n (pretpostavljajući da je n > 0):
To je ključni uvid.
Ako , tada u prosjeku više od trećine čvorova je zlonamjerno — što znači da BFT prag je već premašen u očekivanju. Sustav ne uspijeva čak i prije nego što započne.
Ako , tada je srednja vrijednost ispod praga — ali zbog varijance, postoji i dalje nenulto vjerojatnost da .
Ali ovdje je ključ: kako n raste, relativna udaljenost između μ i f se smanjuje.
Definirajmo:
To je „sigurnosni margina“ — koliko ispod praga leži naša očekivana količina zlonamjernih čvorova.
Ako , tada
Dakle, kako raste, raste — što znači da sigurnosna margina raste.
Ali čekajte — upravo smo vidjeli da pouzdanost opada s . Kako?
Zato što varijanca također raste.
Vjerojatnost da ovisi o tome koliko standardnih devijacija je iznad srednje vrijednosti.
Izračunajmo z-score:
Pojednostavite:
Dakle, z-score raste s sqrt(n).
To znači: kako raste, broj standardnih devijacija između srednje vrijednosti i praga raste — što bi trebalo učiniti manjim, zar ne?
Ali naša prethodna tablica pokazala je suprotno.
Što je pogrešno?
Ah — napravili smo kriticnu grešku.
U našoj tablici, pogrešno smo pretpostavili da je prag — ali za , čak i nismo blizu premašenja.
Zašto je pouzdanost opala?
Jer pogrešno smo primijenili model.
Ispravimo to.
Dio 4: Pravi problem — p nije fiksan
Greška u našoj prethodnoj analizi bila je pretpostavka da je p konstantan.
U stvarnosti, kako sustavi postaju veći, p tendira da raste.
Zašto?
Problem poticaja
U malim sustavima (n=4), zlonamjerni akter ima malo što dobiti. Trošak kompromitiranja jednog čvora je visok u odnosu na nagradu.
U velikim sustavima (n=10.000), jedan zlonamjerni čvor može:
- Manipulirati ishodima konsenzusa
- Ukrasti sredstva (u blockchain)
- Poremetiti usluge
- Prodavati pristup tamnom webu
Očekivana vrijednost kompromitiranja raste s veličinom sustava.
Također, veći sustavi privlače više napadača. Više čvorova = veća površina za napad.
To je ekonomija razmjera u kibernetskim napadima.
Dakle, moramo modelirati kao funkciju .
Definirajmo:
Gdje:
- je osnovna vjerojatnost kompromitiranja za mali sustav
- je faktor skaliranja površine napada
Ovo reflektira empirijsku opažanje: veći sustavi su atraktivniji ciljevi i teži za jednolikom sigurnošću.
Primjer:
- (1% šansa po čvoru u malom sustavu)
Tada:
| 4 | 1 | 0.04 | 0.20 | 4.75 | ~0.00001 | |
| 25 | 8 | 0.26 | 0.50 | 15.3 | ~0 | |
| 100 | 33 | 1.04 | 1.01 | 31.7 | ~0 | |
| 500 | 166 | 5.25 | 2.27 | 70.8 | ~0 |
Još uvijek zanemarivo?
Čekajte — još uvijek precjenjujemo p.
Upotrijebimo realističniji model.
Realistični model napada:
U stvarnim sustavima (npr. javni blockchain), vjerojatnost kompromitiranja raste s veličinom sustava zbog:
- Povećane površine napada
- Većih ekonomskih poticaja
- Manje ulaganja u sigurnost po čvoru (ekonomija razmjera u napadima, ne odbrani)
Empirijski podaci iz napada na blockchain pokazuju da za sustave s više od 100 čvorova, vjerojatnost kompromitiranja po čvoru je često > 5%, a za sustave s više od 10.000 čvorova (kao što je Ethereum), procjenjuje se da je > 15% zbog botnetova, kompromitiranih validatora i Sybil napada.
Pretpostavimo:
Ovo modelira zasićenu vjerojatnost napada: kako raste, teži 15% asimptotski.
Sada izračunajmo:
| 10 | 0.07 | 3 | 0.7 | 0.81 | 2.84 | ~0.002 |
| 50 | 0.13 | 16 | 6.5 | 2.37 | 4.01 | ~0.00003 |
| 100 | 0.14 | 33 | 14 | 3.52 | 5.40 | ~ |
| 200 | 0.145 | 66 | 29 | 4.87 | 7.58 | ~ |
| 500 | 0.149 | 166 | 74.5 | 7.82 | 11.69 | ~0 |
Još uvijek zanemarivo?
Tada zašto vidimo neuspjehe konsenzusa u stvarnim sustavima?
Zato što naš model još uvijek pretpostavlja da je p nizak.
Pokušajmo realističniji scenarij:
Čak i ako pretpostavimo — što je već vrlo visoko za jedan čvor — što se događa?
| 10 | 0.25 | 3 | 2.5 | 1.37 | 0.36 | ~0.36 |
| 25 | 0.25 | 8 | 6.25 | 2.17 | 0.80 | ~0.21 |
| 50 | 0.25 | 16 | 12.5 | 3.06 | 1.14 | ~0.13 |
| 75 | 0.25 | 24 | 18.75 | 3.75 | 1.40 | ~0.08 |
| 100 | 0.25 | 33 | 25 | 4.33 | 1.85 | ~0.032 |
| 200 | 0.25 | 66 | 50 | 6.12 | 2.61 | ~0.0045 |
| 300 | 0.25 | 99 | 75 | 7.5 | 3.20 | ~0.0007 |
Još uvijek nizak.
Ali sada probajmo p = 0.3
| n | p=0.3 | f = floor((n-1)/3) | μ = n*p | σ | z = (f - μ)/σ | P(X > f) |
|---|---|---|---|---|---|---|
| 10 | 0.3 | 3 | 3 | 1.45 | 0 | ~0.5 |
| 25 | 0.3 | 8 | 7.5 | 2.41 | 0.21 | ~0.42 |
| 50 | 0.3 | 16 | 15 | 3.24 | 0.31 | ~0.38 |
| 75 | 0.3 | 24 | 22.5 | 4.10 | 0.37 | ~0.36 |
| 100 | 0.3 | 33 | 30 | 4.58 | 0.65 | ~0.26 |
| 200 | 0.3 | 66 | 60 | 6.48 | 0.93 | ~0.18 |
| 500 | 0.3 | 166 | 150 | 10.25 | 1.56 | ~0.06 |
Sada vidimo nešto duboko.
Kad je , srednji broj zlonamjernih čvorova je točno na BFT pragu: .
Dakle, P(X > f) je oko 25% do 6% — što znači, čak i u sustavu s savršenom sigurnošću (p=0.3), postoji 1 u 4 do 1 u 20 šansa da konsenzus ne uspije.
A ako ?
Pokušajmo p = 0.35
Pokušajmo
| 10 | 0.35 | 3 | 3.5 | 1.49 | -0.34 | ~0.63 |
| 25 | 0.35 | 8 | 8.75 | 2.49 | -0.30 | ~0.62 |
| 50 | 0.35 | 16 | 17.5 | 3.40 | -0.44 | ~0.67 |
| 100 | 0.35 | 33 | 35 | 4.77 | -0.42 | ~0.66 |
| 200 | 0.35 | 66 | 70 | 6.82 | -0.59 | ~0.72 |
| 300 | 0.35 | 99 | 105 | 8.27 | -0.73 | ~0.77 |
Sada vjerojatnost neuspjeha raste s .
Pri , dodavanje više čvorova čini sustav manje pouzdanim.
To je maksimum povjerenja u akciji.
Dio 5: Maksimum povjerenja — formalna definicija i graf
Definicija:
Maksimum povjerenja je vrijednost koja maksimizira pouzdanost sustava pod realističnim modelom gdje vjerojatnost kompromitiranja čvora raste s veličinom sustava.
Nastaje iz interakcije između:
- Zahtjeva BFT-a: — prag za sigurnost
- Stohastičke stvarnosti: , vjerojatnost da je čvor kompromitiran, raste s
- Binomne varijance: Kako n raste, distribucija zlonamjernih čvorova se širi
Matematički uvjet za maksimum povjerenja:
Neka
Želimo pronaći takav da:
To se događa kada rast počne nadmašiti prednost dodatne redundancije.
U praksi, za većinu stvarnih sustava s do , maksimum povjerenja se javlja između i .
Nakon toga, pouzdanost stagnira ili opada.
Grafička reprezentacija (konceptualna)
Zamislite graf s:
- X-os: Broj čvorova
- Y-os: Pouzdanost
Kriva se brzo popeće od do , dostigne vrh oko , a zatim polako opada.
Pri :
Pri : (vrh)
Pri :
Pri :
Pri :
Ako raste oštro (npr. zbog visokih ekonomskih poticaja), vrh se pomiče lijevo i spljošti.
U sustavima s , opada od početka.
To objašnjava zašto:
- Mali, dozvoljeni BFT sustavi (kao što je Hyperledger Fabric s 4–7 čvorova) su pouzdaniji od velikih javnih blockchaina — ne zato što su „manje decentralizirani“, već jer djeluju ispod maksimuma povjerenja.
Dio 6: Stvarne posljedice
Blockchain sustavi
Bitcoin koristi Proof-of-Work, ne BFT. Ali Ethereum 2.0 i drugi PoS lanci koriste BFT-like slojeve završetka (npr. Casper FFG) s 10.000+ validatorem.
S p ≈ 0,15–0,2 (na temelju povijesnih prekida validatora i događaja slashinga), možemo izračunati:
- n = 10.000
- f = 3.333
- μ = 1.500–2.000
- σ ≈ sqrt(10.000 * 0,2 * 0,8) ≈ 40
z = (3.333 - 2.000)/40 ≈ 33,3 → P(X > f) < 10^-245
Čekajte — još uvijek sigurno?
Ali ovdje je zakačka: BFT pretpostavlja da su zlonamjerni čvorovi neovisni.
U stvarnosti, napadači mogu:
- Komromitirati više validatora putem zajedničke infrastrukture (npr. cloud provajderi)
- Koristiti Sybil napade za stvaranje lažnih identiteta
- Otkupiti validatore ekonomskim poticajima
Dakle, „efektivni“ p nije neovisan — on je koreliran.
To krši binomnu pretpostavku. Prava distribucija nije Binomial(n,p) — već prekomjerno raspršena.
U takvim slučajevima, vjerojatnost premašenja je mnogo više nego što predviđa naš model — čineći maksimum povjerenja još izraženijim.
Cloud i poduzetnički sustavi
Čak i u poduzetničkim sustavima, dodavanje više čvorova za „redundanciju“ može dovesti do suprotnog učinka.
- Više čvorova = veća površina za napad
- Više čvorova = teže auditirati, ažurirati i nadzirati
- Više čvorova = veća vjerojatnost pogrešne konfiguracije
Istraživanje Googlea iz 2019. o distribuiranim sustavima za pohranu pokazalo je da sustavi s više od 50 čvorova imali su 3x više nekoreliranih grešaka nego sustavi s manje od 10, čak i kada je hardver bio identičan.
Problem „premalo kuhara“
Ovo nije samo tehnički problem — to je i organizacijski.
U otvorenom izvornom kodu, dodavanje više doprinositelja povećava kvalitetu koda do određene točke — a zatim unosi koordinacijski nadzor i sukobljene popravke.
Isto vrijedi i za čvorove: više čvorova ne znači uvijek više sigurnosti — oni znače više kompleksnosti, više entropije i više načina za grešku.
Dio 7: Suprotna mišljenja i ograničenja
Suprotan argument 1: „Možemo koristiti threshold kriptografiju da smanjimo p“
Da — tehnike poput threshold potpisa, tajnog dijeljenja i MPC (Multi-Party Computation) mogu smanjiti vjerojatnost da jedan čvor može zlonamjerno djelovati.
Ali ove tehnike:
- Povećavaju kompleksnost
- Zahtijevaju pouzdanu postavku
- Nisu univerzalno implementabilne
Smanjuju , ali ne uklanjaju je. I dodaju svoje površine za napad.
Suprotan argument 2: „Možemo otkriti i kazniti zlonamjerne čvorove“
U blockchainu imamo slashing. U poduzetničkim sustavima imamo nadzor.
Ali otkrivanje nije savršeno.
- Zlonamjerno ponašanje može biti subtilno (npr. odgađanje poruka)
- Lažni pozitivi uzrokuju neaktivne greške
- Kazna je kašnjena — konsenzus može već biti neuspješan
Ovo ne mijenja vjerojatnosni model — samo dodaje sloj korekcije nakon neuspjeha.
Suprotan argument 3: „Pravilo n=3f+1 je konzervativno — možemo koristiti optimistički BFT“
Da, protokoli poput HotStuff i SBFT smanjuju komunikacijski trošak. Ali za sigurnost i dalje zahtijevaju .
Matematički temelj ostaje nepromijenjen.
Ograničenje: Binomni model pretpostavlja neovisnost
U stvarnosti, greške čvorova su često korelirane:
- Svi čvorovi na AWS us-east-1 padnu u prekidi
- Jedna eksploatacija kompromitira biblioteku koju koriste svi čvorovi
To krši binomnu pretpostavku. Prava distribucija nije neovisni Bernoullijevi pokusi.
U takvim slučajevima, vjerojatnost premašenja je više nego što naš model predviđa — čineći maksimum povjerenja još izraženijim.
Ograničenje: p(n) je teško izmjeriti
Nemamo dobre empirijske podatke o za većinu sustava. Pretpostavljamo da raste s — ali kako brzo?
To je otvoreno pitanje istraživanja.
Dio 8: Implikacije za dizajn i najbolje prakse
Pravilo prsta za dizajnerima sustava:
Ne skalirajte BFT sustave iznad osim ako nemate jaku dokaznu bazu da
Za većinu sustava, optimalan broj čvorova je između 7 i 20.
Preporuke:
- Koristite male BFT grupe za kritične slojeve konsenzusa — npr. 7 čvorova u konzorcijumskom blockchainu.
- Izbjegavajte javne, neovlašteni BFT s više od 100 čvorova osim ako imate ekonomske garancije (npr. kazne za stake koji čine trošak napada > nagrada).
- Koristite hibridne arhitekture: Kombinirajte BFT s probabilističkim završetkom (kao što je Bitcoinovih 6 potvrda) za skalabilnost.
- Nadzirajte : Praćenje stopa kompromitiranja po čvoru. Ako , smanjite ili povećajte sigurnost.
- Koristite raznolikost: Ne pokrenujte sve čvorove na istom cloud provajderu, OS-u ili hardveru — smanjite korelaciju.
- Prihvatite da savršeni konsenzus nije moguć — dizajnirajte za graciozno degradiranje.
„Zlatna zona“ povjerenja
Postoji zlatna točka:
- Premalo čvorova: ranjivost na jedinstvene točke kvara
- Previše čvorova: ranjivost raste brže nego redundancija
Zlatna zona je do .
To objašnjava zašto:
- Bitcoin ima ~10.000 čvorova ali koristi PoW — ne BFT
- Ethereumov sloj završetka ima ~150.000 validatorki — ali koristi drugačiji model (Casper FFG s ekonomskim slashingom)
- Hyperledger Fabric preporučuje 4–7 čvorova
- Googleov Spanner koristi Paxos s ~5 replika
To nisu slučajnosti. To su optimizacije protiv maksimuma povjerenja.
Dio 9: Zaključak — Paradox razmjera
Počeli smo s jednostavnim, elegantnim pravilom: .
To je matematički ispravno.
Ali pretpostavlja da znamo — i da je konstantan.
U stvarnosti, p raste s veličinom sustava. I kako dodajemo više čvorova da „povećamo sigurnost“, nezamjetno povećavamo vjerojatnost da sustav premaši svoj prag otpornosti.
To stvara maksimum povjerenja — temeljni ograničenje koliko velik BFT sustav može biti prije nego što postane manje pouzdan.
To nije mana algoritma — to je mana naših pretpostavki o razmjeru.
Pouka?
U distribuiranim sustavima, više nije uvijek bolje. Ponekad je manje više — posebno kada je povjerenje stohastičko.
Razumijevanje toga zahtijeva prelazak iz determinističkog mišljenja i prihvaćanje stohastičke teorije pouzdanosti.
Binomna distribucija ne laže. Kaže nam: povjerenje nije linearno s razmjerom — to je kriva sa vrhom.
Dizajnirajte prema tome.
Pitanja za ponavljanje
- Zašto BFT pravilo ne uspije kada se naivno primijeni na velike sustave?
- Objasnite kako binomna distribucija modelira greške čvorova i zašto je ovdje primjerna.
- Što je maksimum povjerenja? Zašto postoji?
- Ako , kolika je približna pouzdanost sustava s ? Prikažite svoj izračun.
- Zašto dodavanje više čvorova može smanjiti pouzdanost sustava u praksi?
- Kako korelacija između grešaka čvorova utječe na binomni model? Koja distribucija bi bila točnija?
- Po vašem mišljenju, trebaju li javni blockchaini koristiti BFT konsenzus s više od 100 validatorki? Zašto ili zašto ne?
- Predložite dizajn protokola za konsenzus koji izbjegava problem maksimuma povjerenja.
Dodatna literatura
- Lamport, L., Shostak, R., & Pease, M. (1982). The Byzantine Generals Problem. ACM Transactions on Programming Languages and Systems.
- Castro, M., & Liskov, B. (1999). Practical Byzantine Fault Tolerance. OSDI.
- Nakamoto, S. (2008). Bitcoin: A Peer-to-Peer Electronic Cash System.
- Google SRE Book (2016). The Economics of Reliability. O’Reilly.
- Gervais, A., et al. (2016). On the Security and Performance of Proof of Work Blockchains. CCS.
- Dwork, C., & Naor, M. (1992). Pricing via Processing or Combatting Junk Mail. CRYPTO.
Sažetak
Pravilo je lijepa matematička garancija — ali važi samo pod pretpostavkom da je broj zlonamjernih čvorova fiksan i poznat.
U stvarnim sustavima, zlonamjerni čvorovi su slučajni događaji koji se podvrgavaju vjerojatnosti. Kako veličina sustava raste, tako i vjerojatnost kompromitiranja — te s time i šansa da premašite svoj prag otpornosti.
To stvara maksimum povjerenja — točku iznad koje dodavanje više čvorova smanjuje pouzdanost sustava.
Primjenom stohastičke teorije pouzdanosti — posebno binomne distribucije grešaka čvorova — vidimo da najpouzdaniji sustavi nisu najveći, već najmanji koji još uvijek pružaju dovoljnu redundanciju.
To je dubok uvid za dizajnere sustava, arhitekte blockchaina i inženjere distribuiranih sustava. Povjerenje nije aditivno — to je vjerojatnost. I ponekad, manje je više.