Byzantine Generals Problem
Byzantine Generals Problem

Byzantine Generals Problem

Isa pang palaisipan sa mga distributed systems ay ang Byzantine Generals Problem. May mga hukbo na gustong umatake sa isang syudad. Sa senaryo na ito, 3 o higit pang hukbo ang dapat magkatugma-tugma sa oras ng pag-atake. Ang mensahe ay ipinagpapalagay na laging nakakarating. Subalit, ang hamon ay maaaring traydor ang ibang heneral. Malisyoso, “malicious” ang heneral na ganito. At tapat, “honest” ang matinong heneral.

Ang dapat makamit ng hukbo sa ganitong sitwasyon ay magkasang-ayon ang mga honest na heneral. At kung ang pinunong heneral ay tapat, masusunod ng mga honest din na heneral ang kanyang utos.

Byzantine Generals Problem – traydor ang Heneral 3

Halimbawa, si heneral 3 ay traydor. Sinabi ng heneral 1 sa 2 at 3 na umatake. Bilang gunggong, si heneral 3 ay sinabing umatras kay heneral 2. Malilito ang heneral 2, subalit basta sundin nya ang heneral 1, magkakasang-ayon sila ng desisyon.

Byzantine Generals Problem – traydor ang Heneral 1

Sa isang banda, halimbawa ay si heneral 1 ang traydor. Sinabi nito kay heneral 2 na umatake, subalit kay heneral 3 ay umatras. Ipinasa lang ni heneral 3 kay 2 ang mensaheng umatras. Sa 2 sitwasyong nabanggit, walang diperensya ang dating ng mensahe kay heneral 2 mapa 1 o 3 man ang traydor. Kailangan nitong mamili kung ano nga ba ang gagawin. At kapag ang heneral 1 nga ang traydor, ang heneral 3 ay malilito rin. Kapag ang gagawin ng heneral 2 at 3 ay sumunod nalang sa utos ng heneral 1, hindi na sila magkakasang-ayon bilang mga tapat na heneral. Kaya sa 3 heneral na nagpapasahan ng pasalitang mensahe (oral message), kahit isa lang ang traydor, hindi masosolusyunan ang Byzantine Generals Problem.

Subalit di gaya ng Two Generals Problem, ang Byzantine generals problem ay may solusyon. Sa naturang kondisyon, masosolusyonan ang Byzantine generals problem kapag ang dami ng mga malicious nodes, m ay mas mababa sa 1/3 ng dami ng lahat ng nodes, n:

n ≥ 3m + 1

Ito ay pinatunayan nina M. Pease, R. Shostak at L. Lamport. Kinokonsidera na dahil makakapagpasahan ng mensahe ang mga heneral sa isa’t isa, makakabuo ng listahan ng utos. Susundan ng mga tapat na heneral ang utos na pinakamaraming beses nabanggit sa listahan. Sa 4 na heneral, kapag 1 lang ang traydor, may solusyon sa Byzantine Generals Problem. Sa 7, 2 lang dapat ang traydor, atbp.

Isang implementasyon na gamit ang limitasyong nabanggit ay ang Practical Byzantine Fault Tolerance na pwedeng gamitin sa Network File System (NFS).

Subalit sa teorya, may solusyon ang Byzantine Generals Problem para sa hanggang 1/3 na malisyosong heneral. Ito ay kapag ang bawat mensahe ay dapat mayroong lagda/signature ng heneral. Ang lagda ay hindi kayang mapeke ng iba, at kayang maberipika ang pinanggalingan nito. At sa ibabaw nun, ay lahat ng heneral ay konektado sa isa’t isa.

Sa computing, alam na nating posible ang unforgeable signatures mula sa Kabanata 3, gamit ang cryptography. Pero makikita mo na mahirap itong makamit para sa malaking network. Doon, mas mainam na hindi kailangang lahat ng nodes ay konektado. Basta lang sapat ang dami ng honest nodes na konektado sa isa’t isa.

Sa tagal ng panahon, ang mga sistemang Byzantine Fault Tolerant ay nakadisenyo na hanggang m < (1/3)n.

Kung gusto mo nang alamin kung paano naiangat ng Bitcoin ang limitasyong ito, basahin na ang Kabanata 7.


Kung hindi, kitakits sa ika-10

Mag-iwan ng Tugon

Ang iyong email address ay hindi ipa-publish. Ang mga kinakailangang mga field ay markado ng *