SAFE-Fleming (част 2): Динамично членство

SAFE-Fleming (част 2): Динамично членство


С напредъка към излизането на SAFE-Fleming (Алфа 3) започваме да представяме отделните части от пъзела за създаването на децентрализирана peer-to-peer рутинг мрежа — мозъкът на новия децентрализиран интернет . И с включването на стотици хора от цял свят формиращи peer-to-peer връзки в скорошния Crust тест дойде времето да преминем към следващата фаза.

Какво е Динамично членство? И какво общо има с PARSEC?

Когато представихме бялата книга на PARSEC нашия разтърсващ ABFT консенсус алгоритъм през май 2018 година, бяхме водени от определени принципи. Първо един консенсус механизъм трябва да може да бъде мащабируем за да поеме огромното количество информация движеща се в една световна мрежа. Също така трябва да може да бъде доказано математически, че консенсус ще бъде достигнат дори и при най-лошите условия, които теоритично може да понесе, който и да е ABFT консенсус механизъм устойчив на византийски атаки.

От тогава вграждаме PARSEC в мозъка на SAFE мрежата. Известен още като Рутинг нивото в него се вземат всички решения. И голяма част от работата е насочена към решаването на един въпрос: да включим PARSEC да работи в динамична мрежа, за разлика от статична такава.

Статична срещу Динамична мрежа. С позволение или без позволение.

Нека разгледаме това за момент. Каква е разликата между статична и динамична мрежа? Статична мрежа просто значи, че е изградена от компютри, които не се променят. Може би те са членове на една и съща организация. Или различни компании, които работят заедно за да споделят ползите от това. Без значение от причината, обикновено се взима решение да се ограничи свободния достъп на членовете и системата е създадена и оптимизирана само за тези, компютри, на които е позволено да участват в нея.

Това е много различно от динамичното членство — нещо, което получавате с SAFE Network, където един от ръководните принципи е да бъде отворена и без нужда от нечие позволение за присъединяване към нея. Всеки, независимо къде живее трябва да може да предостави ресурсите на компютъра си и да се присъедини към мрежата. С други думи кимпютрите трябва да могат да идват и да си отиват, когато решат.

Без посредници.

Но в една децентрализирана мрежа това поставя редица препятствия. Какво спира злонамерена атака от хиляди компютри срещу мрежата (известна като Sybil атака)? Какво ако компютри с ниски характеристики, които не покриват минималните изисквания се присъединят към мрежата и увредят функционалността й? Тези неща, заедно с други концепции (като Disjoint Sections, криптиране, churn и Сугурен Предавател на Съобщения) са обсъждани преди и ние също ще им ибърнем внимание в бъдещи публикации.

Но за целите на тази статия ще се фокусираме само върху едно: Динамичното членство. Защото то е от критично значение: с широко отворени врати, как компютрите достигат до съгласие какво се е случило и в какъв ред, докато компютрите се присъединяват и напускат мрежата по желание? И как нов компютър може да разбере вурху какво е постигнато съгласие в миналото по сигурен и проверим начин?

Слушайте внимателно — До тези, които могат да докажат, че казват истината

Всеки компютър слуша внимателно с цел да разбере какво се случва в мрежата. Но заради огромния размер на мрежата съобщения идват по различно време и в различен ред до различните компютри по света. И затова имаме нужда от PARSEC — за да гарантираме, че всяко съобщение в мрежата е записано — при това в същия ред навсякъде — от всеки компютър.

Вижте следното видео за да разберете повече за това как PARSEC работи с Динамичното Членство — с други думи влизането и излизането на компютри в мрежата по желание. Показан е пример, който може да тествате сами (отидете на https://github.com/maidsafe/parsec) за да видите графики, които илюстрират процеса за вас. Примерът показва какво точно се случва при всеки рунд на клюки и как различните компютри взимат тази информация за да достигнат до същата поредност от стабилни блокове — въпреки факта, че компютри влизат и излизат от мрежата постоянно.

Накратко: няма значение, че участниците в мрежата постоянно се променят.

SAFE мрежата въпреки всичко ще постигне консенсус.

Какво се случва, когато компютър има слаба интернет връзка или другите компютри открият, че е злонамерен и иска да атакува мрежата? Всички компютри гладуват използвайки PARSEC. И ако се достигне до консенсус тв премахват компютъра от списъка си с контакти, принуждавайки го да напусне. Става прокуден. Никой честен компютър няма да приеме съобщения от него. Няма друг избор освен да се изключи от мрежата.

PARSEC и присъединяване към мрежата

PARSEC се използва също така от всеки компютър, който иска да се присъедини към мрежата. Компютър, които следва PARSEC съобщава на другите, че е нов компютър, който иска да се присъедини. Отново е време за гласуване — и когато съществуващите компютри достигнат до консенсус, новият компютър се присъединява.

Но как новия компютър наваксва с това, което се е случило досега? Къде отива за да научи досегашната история на мрежата?

Това е интересната част. След като е гласувано да се присъедини на новия компютър се изпраща цялата графика от клюки в мрежата до този момент от времето. Така че всеки новодошъл може да проследи цялата история на консенсус в мрежата от първия ден до настоящето. Може да използва това за да докаже валидността на съществуващия списък от членове, като прегледа всяка промяна на членовете в настоящата Секция на мрежата от създаването й.

И сега графиката е обновена — за да покаже, че нов компютър се е присъединил и е валиден член на мрежата.

Заключение

Ако създавате мрежа достъпна за всеки (permissionless) това е добре известен проблем. Когато не може да използвате нещо като блокчейн с доказателство за работа (proof-of-work) (защото ограниченията в капацитета и криптирането в блокчейн технологията не са достатъчно добри за проект като нашия), отговора не е ясен на пръв поглед. Но сега да се надяваме може да видите как SAFE Network предлага решение.

Разбира се това е част от голямата картина — не е цялото решение. Но с всеки изминал ден се приближаваме до следващата голяма стъпка SAFE-Fleming. В следващите статии ще ви запознаем подробно с Засичането на Злонамерени агенти (Malice Detection) и Сигурното предаване на съобщения (Secure Message Relay), заедно с други концепции — но нека оставим това за друг ден…