Кіріспе

Компьютер жүйесінде әр түрлі бақылаушыларға әр түрлі белгілер көрсететін ақау – Византиялық ақау (сондай-ақ Византиялық генералдар мәселесі, өзара үйлесімділік, дерек көзінің сәйкестігі, қателер көшкіні, Византиялық келісім мәселесі және Византиялық сәтсіздік) – компьютер жүйесінің, әсіресе таратылған есептеу жүйелерінің жағдайы. Мұнда компоненттер сәтсіздікке ұшырауы мүмкін және компонент сәтсіз болды ма, жоқ па деген тура мағлұмат жеткіліксіз. Бұл термин «Византиялық генералдар мәселесі» аллегориясынан алынған, ол жүйенің катастрофалық сәтсіздікке ұшырауына жол бермеу үшін жүйедегі қатысушылардың біріккен стратегияға келісуі керек, бірақ олардың кейбіреулері сенімсіз болуы мүмкін. Византиялық ақаулықта сервер сияқты компонент, сәтсіздік анықтау жүйелеріне қарама-қайшы түрде, бір бақылаушыға сәтсіз, екіншісіне жұмыс істеп тұрғандай көрінуі мүмкін, соның салдарынан әр түрлі белгілерді көрсетеді. Басқа компоненттер үшін оны сәтсіз деп жариялап, желіден шығару қиын, себебі ең алдымен қай компонент сәтсіздікке ұшырады дегенге келісімге келу қажет. Византиялық ақаулыққа төзімділік (BFT) – ақаулыққа төзімді компьютер жүйесінің мұндай жағдайларға төзімділігі.

Тарих

Византиялық консенсусты алу мәселесін Роберт Шостак ойлап тапты және оны интерактивті сәйкестік мәселесі деп атады. Бұл жұмыс 1978 жылы НАСА қолдауымен жүзеге асырылған SIFT жобасы аясында жасалды. Авторлар осы мақаласы үшін 2005 жылы Эдсгер В. Дайкстра сыйлығымен марапатталды. Интерактивті сәйкестік мәселесін түсінуді жеңілдету үшін Лампорт әр түрлі түсті әңгіме-теңеу ойлап тапты, онда әскер генералдары тобы қалаға шабуыл жасау жоспарын жасайды. Алғашқы нұсқасында генералдар албан армиясының командирлері ретінде бейнеленген. Атау Джек Голдбергтің ұсынысы бойынша өзгертілді және ақырында «Византиялық» деп шешілді, болашақта туындауы мүмкін наразылықты болдырмау мақсатында. Мәселенің осы формулировкасы, сондай-ақ қосымша нәтижелер 1982 жылы «Византиялық генералдар мәселесі» атты мақаласында осы авторлар тарапынан ұсынылды. Бұл бастапқыда IEEE Computer Society's Technical Committee on Dependable Computing and Fault Tolerance және IFIP Working Group 10.4 on Dependable Computing and Fault Tolerance құраған «Негізгі ұғымдар мен терминология» жөніндегі бірлескен комитетпен құрылды. Сенімділік туралы да қараңыз. Византиялық қатеге төзімділік тек хабар таратудың дұрыстығына қатысты, яғни бір компонент басқа барлық компоненттерге бір мәнді хабарлағанда, олардың барлығы дәл осы мәнді алады, немесе хабар таратушы дұрыс болмаған жағдайда, басқа компоненттер өзара келісімге келеді. Бұл қатеге төзімділік мәннің дұрыстығын қамтымайды; мысалы, қасақана дұрыс емес мәнді жіберген, бірақ осы мәнді барлық компоненттерге үнемі жіберіп отыратын қарсылас компонент Византиялық қатеге төзімділік жүйесінде анықталмайды.

Шешімдер

Бірнеше ерте шешімдерді Лампорт, Шостак және Пиз 1982 жылы сипаттады. Екінші шешімге жасалмаған хабарлама қолтаңбалары қажет. Қауіпсіздікке қатысты жүйелер үшін цифрлық қолтаңбалар (қазіргі компьютерлік жүйелерде бұл ашық кілтті криптографияны қолдану арқылы іске асырылуы мүмкін) кез келген сандағы опасыз генералдар болғанда Византиялық қателерге төзімділікті қамтамасыз ете алады. Дегенмен, қауіпсіздікке маңызды жүйелер үшін («қауіпсіздік» зиятты қауіптерге, ал «қауіпсіздік» қызметтің немесе миссияның ішкі қауіптеріне қатысты), CRC сияқты қарапайым қателерді анықтау кодтары нашаррақ, бірақ көбінесе жеткілікті жабуды қамтамасыз етеді және бұл әлдеқайда арзан. Бұл Византиялық және Византиялық емес қателерге қатысты. Сонымен қатар, қауіпсіздік шаралары кейде қауіпсіздікті нашарлатады, ал керісінше – қауіпсіздікті күшейтеді. Сондықтан, криптографиялық цифрлық қолтаңба әдістері қауіпсіздікке маңызды жүйелер үшін жақсы таңдау емес, егер қауіпсіздікке қатысты нақты қауіп болмаса. CRC сияқты қателерді анықтау кодтары криптографиялық техникалардан жақсы болғанымен, олар қауіпсіздікке маңызды жүйелердегі активті электроника үшін жеткілікті жабуды қамтамасыз етпейді. Бұл Шредингер CRC сценарийімен көрсетілген, онда бір Византиялық қателі бітпен қорғалған CRC хабарламасы әртүрлі бақылаушыларға әртүрлі деректерді ұсынады және әр бақылаушы жарамды CRC-ні көреді. Honeywell компаниясының MMFCS және SRI компаниясының SIFT. 1999 жылы Мигель Кастро мен Барбара Лисков «Практикалық Византиялық қатеге төзімділік» (PBFT) алгоритмін ұсынды, ол Византиялық күй машинасының репликациясын жоғары өнімділікпен қамтамасыз етеді, секундына мыңдаған сұрауды өңдейді және жауап беру уақытын миллисекундқа арттырады. PBFT-ден кейін, оның сенімділігі мен өнімділігін жақсарту үшін бірнеше BFT протоколдары енгізілді. Мысалы, Q/U, HQ, Zyzzyva және ABsTRACTs өнімділік және құн мәселелерін шешті; ал Aardvark және RBFT сияқты басқа протоколдар оның сенімділігіне қатысты мәселелерді шешті. Сонымен қатар, Adapt қолданыстағы BFT протоколдарын пайдаланып, жағдайлар өзгерген сайын жүйенің сенімділігі мен өнімділігін жақсарту үшін олардың арасында бейімделу арқылы ауыстыруға тырысты. Бұдан бөлек, репликалардың санын азайту үшін сенімді компоненттерді пайдаланатын BFT протоколдары ұсынылды, мысалы, A2M PBFT EA және MinBFT.

Қолданбалар

Византиялық сәтсіздіктердің бірнеше мысалы екі мақалада келтірілген.

Компьютерлік қолдану

Византиялық қатеге төзімділік механизмдері кіріс хабарламаны (немесе тек оның қолтаңбасын) сол хабарламаны алған басқа алушыларға қайта жіберетін компоненттерді пайдаланады. Бұл механизмдердің бәрі хабарды қайта жіберу Византиялық ақаулардың таралуын тоқтатады деген тұжырымға негізделген. Қауіпсіздігі жоғары немесе қауіпсіздік маңызды жүйелер үшін, бұл тұжырымның жеткілікті дәрежеде қателіктерді қамтуға сәйкес екені дәлелденуі керек. Тестілеу арқылы дәлелдеу кезінде туындайтын бір қиындық – Византиялық белгілері бар сигналдардың жеткілікті түрлерін жасау. Мұндай тестілеу үшін арнайы ақаулық енгізу құралдары қажет болуы мүмкін.

Әскери қолдану

Жаңа салынған Вирджиния класының су асты кемелерінің төзімділік сынақтары барысында, кем дегенде 2005 жылға дейін (мәселелер жарияланған кезде), Византиялық қателер сирек және белгілі бір уақыт аралығында емес, кездейсоқ түрде байқалды.

Крипто валюталық қолданбалар

Биткойн желісі жұмыс дәлелі арқылы блокчейн жасау үшін параллель жұмыс істейді, бұл жүйеге Византиялық қателерді жеңіп, жүйенің күйіне қатысты біртұтас жаһандық көзқарасқа қол жеткізуге мүмкіндік береді. Кейбір мүлік салымының дәлелі бар блокчейндер де BFT алгоритмдерін пайдаланады.

Әуе саласындағы қолдану

Кейбір ұшақ жүйелері, мысалы, Boeing 777 ұшақ ақпарат басқару жүйесі (ARINC 659 SAFEbus желісі арқылы), Boeing 777 ұшуды басқару жүйесі және Boeing 787 ұшуды басқару жүйелері Византиялық қателерге төзімділік танытады; себебі бұл – нақты уақыт жүйелері болғандықтан, олардың Византиялық қателерге төзімділік шешімдерінің жауап беру уақыты өте төмен болуы тиіс. Мысалы, SAFEbus қосымша кешігуді микросекундтар шамасында қамтамасыз ете отырып, Византиялық қателерге төзімділікке қол жеткізе алады. SpaceX Dragon ұшағының жобасында Византиялық қателерге төзімділік ескерілген.