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

U tihim hodnicima inženjeringa distribuiranih sustava događa se tihi, ali dubok kriz. Ispod sjajnih prezentacija blockchain start-upova i entuziastičnih podrški tvrtki za ulaganje leži matematička stvarnost koju su malo kojih spremni suočiti: kako se sustavi povećavaju u veličini, vjerojatnost greške – bilo da je to slučajna, zlonamjerna ili sustavna ranjivost – ne smanjuje se. Raste. A u slučaju protokola za Byzantine Fault Tolerance (BFT), koji čine teorijsku osnovu većine modernih decentraliziranih sustava, ovaj rast nije samo neugodan – on je katastrofalan. Široko prihvaćeno pravilo da su “n = 3f + 1” čvorova potrebno za toleriranje f zlonamjernih sudionika nije sigurnosna mjera. To je matematička zamka, koja pretpostavlja savršeno znanje o ponašanju čvorova i zanemaruje stohastičku prirodu stvarnog kompromisa. Kada modeliramo greške čvorova ne kao fiksne, poznate veličine već kao stohastičke događaje koji se podvode binomnoj distribuciji, otkrivamo uznemirujuću istinu: postoji “maksimum povjerenja” – točka iznad koje povećavanje broja čvorova ne povećava sigurnost, već ubrzava sustavni kolaps.
Ovo nije teorijska zanimljivost. To je inženjerski neuspjeh s stvarnim posljedicama. Od propasti ranih blockchain protokola za konsenzus do ponavljajućih neuspjeha distribuiranih baza podataka visoke razine u neprijateljskim uvjetima, pretpostavka da više čvorova znači više sigurnosti dovela je do sustava koji nisu samo ranjivi, već opasno prenaglašeni. Da bismo razumjeli zašto, moramo napustiti udobnu iluziju determinističkih modela grešaka i prihvatiti iskreniji okvir: Stohastičku teoriju pouzdanosti. Samo tada možemo vidjeti pravi trošak našeg povjerenja u skalabilnost.
Mit linearnog sigurnosti: Kako BFT krivo prikazuje rizik
Byzantine Fault Tolerance, prvi put formaliziran od strane Leslie Lamporta, Robert Shostaka i Marshall Peasea 1982. godine, bio je zamišljen kao rješenje za “Problem bizantskih generala” – misaoni eksperiment u kojem generali moraju se složiti o koordiniranom napadu unatoč mogućnosti da neki od njih budu izdajnici. Rješenje, u svojoj kanoničnoj formi, zahtijeva najmanje 3f + 1 ukupnih generala da bi se toleriralo f izdajnika. Ova formula od tada je prenesena u arhitekturu distribuiranih sustava, od Hyperledger Fabrica do Tenderminta i Algoranda, i tretira se kao nekompromisni zakon distribuiranog konsenzusa.
Ali izvorni problem je bio formuliran u svijetu savršenih informacija. Generali su znali koliko ima izdajnika – f – i znali su koji nisu. U stvarnosti, nijedan sustav ne posjeduje takvo znanje. Čvorovi se kompromituju tiho, često bez otkrivanja. Čvor može biti benign jednog dana i zlonamjerni sljedećeg zbog zero-day eksploatacije, unutrašnjeg prijetnje ili pogrešne konfiguracije. Broj neispravnih čvorova nije poznat unaprijed – mora se procijeniti iz opaženog ponašanja, a čak i tada je procjena stohastična.
Ovdje se pojavljuje fatalna mana BFT-a. Pravilo pretpostavlja da je fiksna, poznata varijabla. U praksi, nije konstanta – to je slučajna varijabla izvucena iz distribucije mogućih kompromisa. I kada modeliramo vjerojatnost da je bilo koji čvor kompromitiran kao (mala, ali ne-nula vrijednost), i pretpostavimo nezavisnost između čvorova, broj kompromitiranih čvorova u sustavu veličine slijedi binomnu distribuciju: .
Ovo nije apstrakcija. To je stvarnost moderne infrastrukture. U , studiji istraživača s MIT-a i Stanforda koji su analizirali preko čvorova u javnim blockchain mrežama pronašli su da je otprilike čvorova pokazivalo ponašanje usklađeno s zlonamjernim namjerama – bilo kroz namjerno manipuliranje, infiltraciju botnetom ili kompromitirane vjerodajnice. U poslovnim sustavima, brojka je viša: Gartner izvještaj procijenio je da je čvorova u distribuiranim cloud okruženjima bilo kompromitirano zbog unutrašnjih prijetnji ili napada na lanac dobavljača u vremenskom okviru od mjeseci. Ovo nisu rubni slučajevi – to su osnovne uvjete.
Ipak, BFT protokoli nastavljaju pretpostavljati da je poznat i ograničen. Oni pretpostavljaju, implicitno, da operater sustava može točno izbrojati koliko čvorova je zlonamjernih – i onda dizajnirati protokol koji može tolerirati upravo taj broj. Ali u stvarnom svijetu, ne možemo izbrojati izdajnike. Možemo samo procijeniti njihovu vjerojatnost.
Binomna zamka: Zašto više čvorova znači manje sigurnosti
Sada ćemo izvesti jednostavan, strogi račun. Pretpostavimo da imamo sustav u kojem svaki čvor ima vjerojatnost da bude kompromitiran (). Ovo je optimistična pretpostavka – mnogi stvarni sustavi imaju daleko veće stope kompromisa zbog lošeg ažuriranja, zastarjelog softvera ili trećih ovisnosti. Ali čak i pri ovoj niskoj stopi, posljedice su duboke.
Pitamo: koja je vjerojatnost da više od čvorova bude kompromitirano u sustavu veličine ? To jest, koja je vjerojatnost da naš BFT protokol neće uspjeti jer imamo više od zlonamjernih čvorova?
Za sustav dizajniran da tolerira (tj. ), vjerojatnost da je više od jednog čvora kompromitiran:
Gdje:
Dakle, , ili
Ovo izgleda prihvatljivo. Vjerojatnost neuspjeha od u .
Sada razmotrimo sustav dizajniran da tolerira (). Vjerojatnost da je više od pet čvorova kompromitirano?
Izračun ovo daje , ili . Čak i niža.
Do sada sve je dobro. Ali sada razmotrimo (). Rekli su nam da s čvorova možemo tolerirati do zlonamjernih sudionika. Ali koja je vjerojatnost da više od čvorova bude kompromitirano?
Ovo nije trivijalan izračun, ali možemo približiti koristeći normalnu aproksimaciju binomne distribucije. Srednja vrijednost , a standardna devijacija .
Pitamo: koja je vjerojatnost da kada je srednja vrijednost ? Ovo je više od standardnih devijacija iznad srednje vrijednosti. U normalnoj distribuciji, takav događaj ima vjerojatnost manju od .
Dakle, zaključujemo: s , je siguran.
Ali ovdje je zamka: pretpostavili smo . Što ako je nije ? Što ako je ?
Ponovno izračunajmo s .
Za , ,
P(X > 33) je još uvijek astronomski niska.
Sada pokušajte (realniji broj za loše upravljane sustave).
,
P(X > 33) je još uvijek zanemariva.
Ali sada pokušajte (konzervativna procjena za javno dostupne, internet pristupačne čvorove u loše sigurnom okruženju).
,
P(X > 33) = ?
Izračunavamo z-score:
Vjerojatnost premašivanja ove vrijednosti manja je od .
Još uvijek zanemariva? Nije baš. Idimo dalje.
Što ako je ?
,
– ili . Još uvijek prihvatljivo.
Sada
,
– ili
Sada smo u problemu.
Pri p = 0.25, sustav s n = 100 čvorova dizajniran da tolerira f = 33 ima 3,2% šanse za neuspjeh zbog prekomjerne količine zlonamjernih čvorova.
Ali evo ključne točke: što ako je ?
,
– ili
Pri stopi kompromisa od samo po čvoru, vjerojatnost da je više od jedne trećine čvorova kompromitirana premašuje . Iako BFT protokoli pretpostavljaju da je sigurna granica. Oni ne uzimaju u obzir činjenicu da ako svaki čvor ima šanse za kompromis, sustav nije samo ranjiv – on je statistički osuđen.
Ovo nije neuspjeh inženjerstva. To je neuspjeh modeliranja.
Pravilo pretpostavlja da je moć neprijatelja ograničena i poznata. Ali u stvarnosti, moć neprijatelja raste s veličinom sustava – ne linearno, već eksponencijalno kroz kombinatorne površine napada. Svaki dodani čvor povećava broj potencijalnih točaka ulaza, kompleksnost praćenja i vjerojatnost da će barem jedan čvor biti kompromitiran. Binomna distribucija nam kaže: kako raste, vjerojatnost da je ne smanjuje – ona konvergira prema nenultoj granici određenoj s .
I evo najopasnijeg uvida: kako raste, vjerojatnost da se premaši ne teži nuli. Ona teži ograničenju određenom s .
Ako je vjerojatnost kompromisa po čvoru , tada bez obzira koliko velik sustav postane, uvijek će postojati nenegligibilna vjerojatnost da više od jedne trećine čvorova bude kompromitirano. Pravilo ne skalira – ono se sruši.
Povijesni paraleli: Kada je matematički optimizam doveo do katastrofe
Ovo nije prvi put da je matematički model pogrešno primijenjen s katastrofalnim posljedicama. Povijest je isprekidan primjerima gdje su elegantne jednadžbe pogrešno tretirane kao garancije.
U , financijska industrija koristila je Gaussian copula modele za cijenjenje collateralized debt obligations (CDO-a). Ovi modeli pretpostavljali su da su defaulovi na hipotekama nezavisni događaji. Zanemarili su korelaciju, repne rizike i sustavne povratne petlje. Rezultat: trilijuni gubitaka kada su defauli počeli da se klastiraju.
Slično, pravilo pretpostavlja da su greške čvorova nezavisne. Ali u praksi, nisu.
Jedna ranjivost u široko korištenoj biblioteci (npr. Log4Shell) može kompromitirati tisuće čvorova istovremeno. Napad na lanac dobavljača na cloud provideru (npr. SolarWinds) može inficirati stotine čvorova istim backdoor-om. Koordinirani DDoS napad može isključiti čvorove masovno, stvarajući de facto Byzantine grešku. Pogrešna konfiguracija Kubernetes klastera može uzrokovati čvorova da padnu istovremeno.
Ovo nisu nezavisni događaji. To su korelirane greške – upravo vrsta događaja koje binomni modeli zanemaruju.
brek u Equifaxu, koji je otkrio podatke od milijuna ljudi, nije uzrokovao milijuna nezavisnih grešaka. On je uzrokovao jednim nepatch-anim Apache Struts poslužiteljem. Jedna točka greške, pojačana kroz ogroman mrežu.
U distribuiranim sustavima, isti princip vrijedi. Jedan kompromitirani validator u blockchainu može se koristiti za pokretanje Sybil napada, dvostruke potrošnje transakcija ili oštećenje poruka konsenzusa. I ako taj validator dio -čvornog sustava s , vjerojatnost da postoji barem jedan takav validator je:
To jest, postoji šanse da je barem jedan čvor kompromitiran.
I ako sustav zahtijeva da se tolerira , onda ne samo prihvaćamo rizik – mi ga pozivamo.
Učenje iz financija je jasno: modeli koji zanemaruju korelaciju i pretpostavljaju nezavisnost će se katastrofalno srušiti kada stvarnost uđe. Isto vrijedi i za BFT.
Eticki trošak skalabilnosti: Kada učinkovitost postaje neodgovornost
Ljepota skalabilnosti je privlačna. “Više čvorova znači više decentralizacije,” kažu evangelisti. “Više sudionika znači veću otpornost.” Ali ovo je opasno pomiješavanje.
Decentralizacija nije isto što i pouzdanost. Sustav s čvorova gdje svaki čvor pokreće jedna entitet koristeći isti softverski stack nije decentraliziran – to je monocultura. A monoculture se zajedno sruše.
Etički trošak zanemarivanja ove stvarnosti je dubok. Kada blockchain protokol tvrdi da je “siguran” jer koristi čvorova pod pretpostavkom da je tolerabilan, on ne samo napravlja tehničku pogrešku – on čini etičku. On obećava korisnicima da su njihovi sredstva, identiteti i podaci sigurni kada matematika kaže suprotno.
Razmotrite slučaj Poly Network eksploatacije, gdje je \610100f$ ograničen i poznat.
Ovo nije bug. To je značajka modela.
I tko plaća za to? Ne inženjeri. Ne ulagači u kapitalu. Korisnici. Oni gube svoje životne štednje. Njihovo povjerenje u tehnologiju je razbijeno.
Vidjeli smo ovo prije – u Anthem breku, gdje je milijuna zapisa ukradeno jer je tvrtka pretpostavila da je njihov sigurnosni model “dovoljan”. U Target breku, gdje je ulazna točka bila treći HVAC dobavljač. U Capital One breku, gdje je pogrešno konfiguriran firewall omogućio pristup milijuna korisničkih zapisa.
Svaki put, isti uzorak: vjerovanje da je kompleksnost jednaka sigurnosti. Da je skalabilnost štit. Da više čvorova znači manji rizik.
To nije tako.
Maksimum povjerenja: Matematička granica sigurnosti
Sada formalizirajmo koncept “maksimuma povjerenja”.
Definirajte kao vjerojatnost da je više od čvorova kompromitirano u sustavu veličine , gdje svaki čvor nezavisno kompromitiran s vjerojatnošću .
Pitamo: ima li granicu kada ?
Odgovor je da – i nije nula.
Prema Centralnoj graničnoj teoremi, kako raste, binomna distribucija konvergira u normalnu distribuciju sa srednjom vrijednošću i varijansom .
Zanimaju nas vjerojatnosti da je .
Definirajmo . Želimo .
Z-score je:
Kako , ako je , tada je i .
Ali ako je , tada je i .
I ako je , tada je i .
Ovo je ključni uvid.
Vjerojatnost da više od jedne trećine čvorova bude kompromitirana konvergira prema:
- ako je
- ako je
- ako je
Drugim riječima, ako vjerojatnost kompromisa po čvoru premašuje , tada bez obzira koliko velik vaš sustav postane, vjerojatnije je da će premašiti BFT granicu.
I ako je , vaš sustav ima šanse za neuspjeh.
Ovo nije teorijska granica. To je čvrsta granica povjerenja.
Postoji, matematički, “maksimum povjerenja” – točka iznad koje povećavanje ne povećava sigurnost. Povećava ranjivost.
I u stvarnom svijetu, p je gotovo sigurno veće od 1/3 za bilo koji sustav izložen javnom internetu.
Razmotrite:
- Prosječna tvrtka ima više od endpointa. Od njih, Gartner procjenjuje da je imalo nepatch-ani kritični ranjivosti.
- U javnim blockchainima, čvorovi su često pokrenuti od strane pojedinaca bez sigurnosnog obrazovanja. studija Ethereum validatorka pronašla je da je imalo izložene RPC endpointe, a koristilo zadane vjerodajnice.
- U cloud-native sustavima, čvorovi su efemerne. Oni se automatski pokreću i isključuju. Pomicanje konfiguracije je široko rasprostranjeno.
U takvim okruženjima, nije izuzetak – to je norma.
Iako se sustavi i dalje grade s i .
Ovo nije inovacija. To je zanemarivanje.
Suprotan argument: “Možemo otkriti i ukloniti zlonamjerne čvorove”
Najčešći odgovor na ovu analizu je da BFT sustavi ne oslanjaju se na statičke vrijednosti f. Oni uključuju mehanizme za otkrivanje i uklanjanje zlonamjernih čvorova – kroz sustave reputacije, uslove za smanjenje ili dinamičku rotaciju validatorka.
Ovo je istina. Ali zanemaruje suštinu.
Ovi mehanizmi nisu matematičke garancije – to su operativne smanjenja. Oni zahtijevaju ljudsku intervenciju, infrastrukturu nadzora i protokole odgovora koji ne postoje u većini decentraliziranih sustava.
U Bitcoinu, nema mehanizma za uklanjanje zlonamjernog minera. U Ethereum proof-of-stake sustavu, validatorki mogu biti smanjeni – ali tek nakon što su već uzrokovali štetu. Šteta je nepovratna.
Također, mehanizmi za otkrivanje sami su ranjivi na kompromis. Zlonamjerni sudionik može manipulirati dnevnicima, potlačiti upozorenja ili se udružiti s uslugama nadzora.
Bitfinex napad uključivao je kompromitiran sustav unutrašnjeg nadzora koji nije otkrio prekršaj tijekom sati. Ista ranjivost postoji i u BFT sustavima: ako je mehanizam za otkrivanje dio sustava, on također može biti kompromitiran.
I čak ako bi otkrivanje bilo savršeno, uklanjanje zahtijeva konsenzus. Da bismo uklonili zlonamjerni čvor, moramo postići sporazum među preostalim čvorovima. Ali ako je više od jedne trećine čvorova zlonamjernih, oni mogu spriječiti uklanjanje udruživanjem.
Ovo je suština Byzantine greške: izdajnici kontrolišu priču.
Nijedna količina otkrivanja ili rotacije ne može prekoračiti ovo ako je temeljni model vjerojatnosti pogrešan.
Put naprijed: Odbacivanje iluzije skalabilnosti
Što je, onda, rješenje?
Moraćemo odbaciti mit da više čvorova znači više sigurnosti. Moraćemo odbaciti ideju da protokoli konsenzusa mogu biti beskonačno skalirani bez posljedica.
Umjesto toga, moramo prihvatiti tri načela:
-
Malo je sigurno: Sustavi bi trebali biti dizajnirani s najmanjom mogućom količinom čvorova koja je u skladu s operativnim zahtjevima. -čvorni BFT klaster je sigurniji od -čvornog ako je .
-
Granice povjerenja: Čvorovi moraju biti grupirani u pouzdane domene s strogo kontroliranom pristupnošću. Nijedan čvor ne bi trebao imati pristup konsenzusu osim ako nije provjeren, auditiran i nadziran od strane pouzdane autoritete.
-
Stohastičko modeliranje rizika: Svaki sustav mora se procijeniti ne na temelju teorijske tolerancije grešaka, već na temelju empirijske vjerojatnosti kompromisa. Ako je , BFT nije pravi alat.
Također moramo razviti nove paradigme konsenzusa koje ne oslanjaju se na fiksne pragove. Stohastički modeli konsenzusa, poput onih koji se koriste u Avalanche protokolu ili Algorandovoj VRF-izabranoj metodi, nude alternative koje ne pretpostavljaju savršeno znanje o . Ovi modeli prihvaćaju nesigurnost i kvantificiraju rizik stohastički – umjesto da se pretvaraju da ne postoji.
Ali čak i ovi zahtijevaju iskrenost. Moramo prestati zvati sustave “decentraliziranim” kada su samo distribuirani. Moramo prestati jednako vrijediti skalabilnost s otpornošću.
Najsigurniji sustavi u povijesti nisu bili najveći – oni su bili najjednostavniji. U.S. nuklearni sustav za komandu i kontrolu, primjerice, oslanja se na malo broj tvrdih čvorova s fizičkim zračnim razmacima. On ne skalira. Ali je siguran.
Zaključak: Trošak matematičke pohlepe
Živimo u tehnološkom renesansi – jednoj zasnovanoj na pretpostavci da se kompleksnost može podvrgnuti skalabilnošću. Ali matematika ne brine o našim ambicijama.
Binomna distribucija je indiferentna prema vašoj procjeni startupa. Ne brine ako ste podignuli \200p$.
I u stvarnom svijetu, nije . To je . Ili .
I kada premaši , sustav nije samo ranjiv – on je matematički osuđen.
Nastaviti graditi sustave koji pretpostavljaju da je garancija nije samo tehnički neispravno. To je etički nedopustivo.
Vidjeli smo posljedice matematičke pohlepe prije – u financijama, avijaciji, nuklearnom inženjerstvu. Svaki put, trošak je bio mjeren ne u linijama koda, već u životima.
Ne smijemo ponavljati te pogreške.
Put naprijed nije više čvorova. Već manje. Bolji. Povjerljivi.
I pre svega, iskreni.
Matematika ne laže.
Mi to radimo.