Hoppa till huvudinnehåll

Den stokastiska takten: Sannolikhetsbaserade Byzantinska gränser i skalande nätverk

· 8 minuter läsning
Storinquisitören vid Technica Necesse Est
Tomas Rörchatt
Lekman med Rörig Chatt
Folk Fantom
Lekman Folkfantom
Krüsz Prtvoč
Latent Invocation Mangler

Featured illustration

Tänk dig att du arrangerar en middag. Du inviterar 10 vänner för att bestämma var man ska äta ikväll. Varje person röstar: italiensk, thai eller pizza. Du vill ha ett rättvist beslut—så du säger: “Vi går med det som får majoritet.” Men här är vändningen: en av dina gäster är hemligen en matkritiker som hatar pizza och kommer rösta mot den oavsett vad. Kanske är det till och med två av dem som är hemligen anti-pizza. Du vet inte vem.

Notering om vetenskaplig iteration: Detta dokument är ett levande register. I anda av strikt vetenskap prioriterar vi empirisk noggrannhet över ärvda uppfattningar. Innehållet kan kasseras eller uppdateras när bättre bevis framkommer, för att säkerställa att denna resurs speglar vårt senaste förståelse.

Och vad händer om du inviterar 100 personer? Gör det beslutet säkrare?

På första synen, ja. Fler röster = mer demokrati. Men vad om några av dessa 100 personerna också är hemligen anti-pizza? Ju fler gäster du inviterar, desto större är chansen att några dåliga aktörer smyger sig in. Och när det gäller digitala system—som blockchains, finansiella nätverk eller röstningsplattformar—gäller samma matematik. Ju fler noder (datorer) du lägger till, desto mer sannolikt är det att några kommer att bli komprometterade. Och där blir saker konstiga.

Detta handlar inte bara om pizza. Det handlar om en dold lag för förtroende: att lägga till fler noder gör inte alltid system säkrare—det kan faktiskt göra dem mindre pålitliga.


Det magiska numret: 3f + 1

Inom datavetenskap finns det en känd regel som heter “3f + 1”. Den kommer från något som kallas Byzantine Fault Tolerance (BFT), ett snabbt uttryck för “hur man säkerställer att en grupp datorer är ense om något även om vissa ljuger eller är trasiga.”

Här är regeln: Om du har ff dåliga aktörer (noder som är komprometterade, hackade eller fiendeliga), behöver du minst 3f+13f + 1 totala noder för att nå ett pålitligt samförstånd.

Varför? För i varje grupp kan de dåliga aktörerna ljug, samarbeta och förvirra alla. För att överlista dem behöver du tillräckligt många ärliga noder för att överskugga ljugarna två gånger. Tänk på det som en domstol: om 3 personer säger "skyldig" och 2 säger "oskyldig", behöver du en tredje domare för att bryta likheten. Men om de 2 oskyldiga personerna blir lurade av ljugare, behöver du fler ärliga domare för att se igenom bedrägeriet.

Så om du förväntar dig 1 dålig aktör, behöver du minst 4 noder.
Om du förväntar dig 2 dåliga aktörer? Du behöver 7.
Om du förväntar dig 10? Du behöver 31.

Denna regel fungerar perfekt i teorin. Men här är problemet: den antar att du vet hur många dåliga aktörer det finns.

I verkligheten? Du gör aldrig det.


Den riktiga fienden: Slumpmässigt fel

Antag att du kör ett nätverk med 100 noder. Du tänker: “Vi är säkra—vi har mycket mer än 3f + 1.” Men vad om du inte vet hur många noder som är komprometterade? Vad om varje nod har en 5% chans att bli hackad, felkonfigurerad eller drivas av någon som helt enkelt inte bryr sig?

Det är inte ett målrikt anfall. Det är vardagsliv.

Tänk på det som din telefonbatteri. Du planerar inte för att den ska dö—du vet bara att batterier i längden går sönder. Samma sak gäller datorer. En server överhettas. Någon glömmer att uppdatera programvara. En utvecklare gör ett stavfel. En hackare hittar ett gammalt, opatchat system.

Detta kallas stokastisk pålitlighet—matematiken bakom slumpmässiga fel. Den bryr sig inte om dina regler. Den bara kastar tärningen.

Så om varje nod har en 5% chans att vara dålig, och du har 100 noder… vad är sannolikheten att mer än 33 av dem är dåliga? Eftersom om det är så, bryter din “3f + 1”-regel.

Låt oss göra en snabb tankeexperiment. Kasta en tärning 10 gånger. Hur ofta får du 7 huvuden? Inte särskilt ovanligt, eller hur? Nu kasta den 100 gånger. Vad är chansen att du får 55 huvuden? Fortfarande möjligt. Nu kasta den 1 000 gånger. Vad är chansen att du får 550 huvuden? Nästan säker.

Samma sak gäller noder. Ju fler du har, desto mer sannolikt är det att några kommer att misslyckas—oavsett hur försiktig du är.

Faktum är att med 100 noder och en 5% felrate finns det cirka en 37% chans att mer än 10 noder är dåliga. Det betyder att ditt system behöver minst 31 noder för att vara säkert—men du är redan förbi det. Och med 500 noder? Sannolikheten att ha mer än 167 dåliga (vilket bryter 3f+1-regeln) är över 90%.

Du fixade inte förtroendet genom att lägga till noder. Du gjorde det sämre.


Förtroendets maximum: En klockkurva av förräderi

Här är den motstridiga sanningen: förtroendet ökar inte med skalan—det når en topp, sedan kollapsar det.

Tänk dig en graf. På vänster sida har du 5 noder. Mycket få dåliga aktörer möjliga. Hög förtroende.
Vid 20 noder? Fortfarande bra.
Vid 50? Du är nära förtroendets topp—tillräckligt många noder för att upptäcka ljug, inte tillräckligt för kaos.
Vid 100? Antalet dåliga aktörer börjar stiga snabbt.
Vid 500? Du är i farozonen.

Detta är inte en rät linje. Det är en klockkurva—med förtroendet som når en “söt punkt”, sedan sjunker när du lägger till fler noder.

Varför? Eftersom sannolikheten för att ha för många dåliga aktörer ökar snabbare än din förmåga att upptäcka dem.

Tänk på det som en brandlarm. En sensor? Kan missa en liten låga. Tio sensorer? Utmärkt täckning. Men 1 000 sensorer? Nu får du falska larm var femte minut. Människor börjar ignorera dem. Systemet blir mindre pålitligt eftersom det är för mycket brus.

I digitala system är de “falska larmen” ärliga noder som ignoreras eftersom systemet är överbelastat av dåliga aktörer. Ju fler noder, desto svårare blir det att avgöra vem som ljuger—och desto lättare blir det för ljugare att dölja sig i öppen syn.


Den riktiga lösningen är inte fler noder—utan bättre noder

Så vad gör vi?

Vi slutar tänka “mer är bättre” och börjar fråga: Hur kan vi göra varje nod mer förtroendevärdig?

Istället för att lägga till 10 000 noder med låg säkerhet, vad om vi hade 50 noder med hög integritet?

  • Noder med hårdvarusäkerhet (t.ex. TPM-chip)
  • Noder som drivs av trovärdiga institutioner
  • Noder som kräver identitetsbekräftelse
  • Noder med ekonomiska sanktioner för dåligt beteende (t.ex. staking)

Detta är skillnaden mellan en överfylld bussstation där vem som helst kan stå och en VIP-lounge med vakter.

I verkligheten löser vi inte förtroendeproblem genom att bjuda in fler människor. Vi löser dem genom att granska de som dyker upp.

Bitcoin gör detta med mining: det bryr sig inte om hur många minare det finns—det gör att de betalar riktigt pengar för att delta. Om du försöker bedra, förlorar du din investering. Det är inte om kvantitet—det är om kostnad.

Ethereum 2.0 gör något liknande med staking: du låser upp riktiga pengar för att validera transaktioner. Om du beter dig dåligt, förstörs din stake.

Detta är inte “fler noder”. Det är bättre noder. Och de fungerar eftersom de gör förtroende till något mätbart—något med skin in the game.


Faran med falsk självförtroende

Här blir det farligt: vi lär oss att tro att “decentralisering = fler noder = säkrare.”

Men decentralisering handlar inte om siffror. Det handlar om mångfald.

Ett nätverk med 1 000 noder som drivs av samma företag i samma datacenter? Det är inte decentraliserat. Det är en enda svag punkt med fina etiketter.

Ett nätverk med 10 noder, varje en driven av olika personer i olika länder, med olika hårdvara och programvara? Det är decentraliserat.

Målet är inte att maximera noder. Det är att minimera korrelerade fel—när många noder misslyckas för samma orsak.

Om alla noder kör samma programvara, och den programvaran har en bugg? Boom. 100 noder ner samtidigt.

Om alla noder är värdade av samma molntjänst? Boom. 1 000 noder ner samtidigt.

Detta är inte ett matematiskt problem—det är ett ingenjörs- och socialt problem. Förtroende byggs inte genom skala. Det byggs genom mångfald, ansvar och incitament.


Vad detta betyder för dig

Du behöver inte förstå BFT eller stokastiska modeller för att förstå detta.

Tänk på din telefon. Du installerar inte 10 olika antivirusprogram eftersom “mer är bättre”. Du väljer ett bra. Du uppdaterar det. Du klickar inte på misstänkta länkar.

Samma sak gäller digitala system.

När du hör “vår blockchain har 10 000 noder!”—fråga:

  • Vem driver dem?
  • Är de mångfaldiga?
  • Har de något att förlora om de bedrar?
  • Eller är det bara billiga servrar som kör i en källare?

Det riktiga frågan är inte “Hur många noder?”
Den är: “Kan jag lita på de vi har?”

Och ibland är svaret: Färre. Men bättre.


Framtiden: Förtroende som en designval

Vi står vid en vändpunkt.

När system växer—från sociala medier till finansiella nätverk—antar vi fortfarande att skala löser komplexitet. Men matematiken ljuger inte.

Ju fler noder du lägger till, desto större är din chans för fel. Och när fel inträffar samtidigt—eftersom de alla kör samma kod, värdade på samma moln—kollapsar de som dominobrickor.

Framtiden för förtroende ligger inte i större nätverk. Den ligger i smartare.

  • Noder som bevisar sin integritet med kryptografi, inte bara siffror.
  • System som straffar dåligt beteende, inte bara belönar deltagande.
  • Design som antar att fel är oungångligt—och planerar för det.

Vi behöver inte fler noder. Vi behöver bättre.

Och vi behöver sluta påstå att kvantitet liknar kvalitet.

För i slutändan är förtroende inte ett nummer.
Det är ett val.

Och ibland är det bästa valet att säga: Lägg av.