Ugrás a tartalomhoz

Byzantine generals problem

A Wikiszótárból, a nyitott szótárból


Főnév

Byzantine generals problem (tsz. Byzantine generals problems)

  1. (informatika) A Byzantine Generals Problem (BGP) egy alapvető konszenzus‐probléma az elosztott rendszerekben, amely a megbízható döntéshozatal kérdését vizsgálja akkor, ha egyes szereplők (csomópontok, katonai hadvezérek) akár rosszindulatúan (Byzantine hiba) is viselkedhetnek. Leslie Lamport és munkatársai fogalmazták meg 1982-ben.



1. A probléma leírása

Képzeljünk el római hadvezért, akik különálló táborokban állomásoznak egy ellenséges város körül. Minden hadvezérnek el kell döntenie, támadjanak-e („Attack”) vagy vonuljanak vissza („Retreat”). A siker érdekében:

  1. Egységes döntésre kell jutniuk: minden lojalitásban maradt hadvezér ugyanazt a parancsot hozza.
  2. Ha a főparancsnok („commander”) lojalitásos („loyal”) és parancsot ad, minden lojalitásos tiszt végrehajtja azt.

Viszont akár a főparancsnok, akár bármelyik alhadvezér lehet csaló («Byzantine»), aki üzeneteket hamisít, késve vagy összevissza küldi őket. A kérdés: milyen kommunikációs és döntési protokoll mellett képesek a lojalitásos hadvezérek konszenzusra jutni, ha legfeljebb hiba lehet?



2. Modell és feltételezések

  • Csomópontok: generális, köztük 1 potenciális főparancsnok és alhadvezér.
  • Hibák típusa: Byzantine – a csalók tetszőleges, akár rosszindulatú viselkedést tanúsíthatnak (ellentmondó vagy hiányos üzenetek).
  • Kommunikáció: privát, hitelt érdemlő hitelesített csatornákon. Két modell:
    • Oral messages (hitelesítés nélküli): a küldő személyazonosságát lehet bizonyítani, de tartalom hamisítható.
    • Signed messages (digitális aláírással): a csaló nem hamisíthatja más alhadvezér aláírását.
  • Synchronous környezet: az üzenetek garantáltan egy ismert, korlátos időn belül megérkeznek.



3. Megoldhatósági határok

  1. Oral messages esetén

    • Konszenzus csak akkor lehetséges, ha

    • Tehát a megengedhető csalók száma .

    • A megoldás általában rekurzív üzenetküldést használ (Lamport–Shostak–Pease protokoll), és körben zajlik.

  2. Signed messages esetén

    • Ha a hitelesített aláírás biztosított, akkor elegendő

      vagyis bármennyi hiba esetén működik, amíg marad legalább egy lojalitásos alhadvezér.

    • Az aláírások segítségével a csomagút követhető, nincs szükség rekurzióra.



4. A Lamport–Shostak–Pease protokoll (oral messages)

A legegyszerűbb eset , generális. A protokoll:

  1. Kör 0: a főparancsnok (“”) elküldi az „Attack” vagy „Retreat” parancsát minden alhadvezérnek.
  2. Kör 1: minden alhadvezér, aki üzenetet kapott, továbbküldi azt minden más alhadvezérnek. Akik semmit sem kaptak, üres értéket („Ø”) továbbítanak.
  3. Döntés: minden alhadvezér rekúrral definiált függvénnyel („majority‐vote”) dönt: ha legalább két „Attack” érkezett, támad; ha kettő „Retreat”, hátrál; egyébként „Retreat”.

Általános esetén kört futtatunk, minden kör új rekurzív réteget ad hozzá.



5. Várakozásos és aszinkron kiterjesztések

  • Synchronous vs. Asynchronous A fenti protokoll a szinkron környezetre épül. Aszinkron rendszerben (ismeretlen késleltetések, esetleges kiesések) FLP-tétel (Fischer–Lynch–Paterson) bizonyítja, hogy nem létezik determinisztikus, toleráns konszenzus aszinkron környezetben, ahol még 1 csomópont is elhalálozhat.
  • Probabilistic és végzetes eljárásokRandomized Byzantine Agreement: véletlen penny-flipeléssel elérhető aszimptotikusan gyors konszenzus bizonyos hiba-ráta mellett. – Leader‐based protokollok: pl. PBFT (Practical Byzantine Fault Tolerance), amely szinkron modellhez közeli generálódási sorozatot használ, és optimista gyorsítást.



6. Practical Byzantine Fault Tolerance (PBFT)

Mikro-szolgáltatások és blokkláncok inspirálta protokoll:

  • Rétegek: Pre‐prepare, Prepare, Commit, Reply üzenetek.
  • Replikák: példány, elosztott szolgáltatás, melyeket ügyfelek kérdeznek le.
  • Vezetőcsomópont (primary) forgása a view-change mechanizmus és checkpointing révén.
  • Teljesítmény: alacsony késleltetés és magas átbocsátóképesség, amíg elosztott hiba nem lép fel.



7. Alkalmazások

  • Distributed databases: megbízható tranzakciók és replikáció.
  • Blokkláncok és kriptovaluták: permissioned hálózatok (Hyperledger Fabric, Tendermint) PBFT‐szerű konszenzust használnak.
  • Missziós kritikus rendszerek: repülésirányítás, védelmi és koszmunikációs rendszerek.



8. Összefoglaló

A Byzantine Generals Problem rávilágít arra, hogy háromszor annyi résztvevőre van szükségünk, mint a megengedett hibák száma, ha nem tudjuk hitelesíteni az üzeneteket, és aszinkron környezetben determinisztikus konszenzus nem lehetséges. A probléma megoldása alapvető a megbízható elosztott rendszerekben, és a modern protokollok – mint a PBFT – közvetlenül ebből nőnek ki.