Пост за гости на HodlX Изпратете вашата публикация
Напоследък виждаме все повече и повече блокчейн мрежи да стават жертви на 51 процента атака. Тази атака е възможна, тъй като праговете могат да бъдат доста ниски, възлизащи на малко повече от 50 процента от хешрейта. Когато нападателят превземе мрежа, има много начини да се злоупотреби с нея. Например нападателят може да извърши двойно харчене. По-важно е обаче, че докато мрежата се контролира от злонамерени потребители, нейните операции не могат да се считат за нормални. По същество такива атаки правят блокчейна неработещ.
Това обяснява защо създаването на нов консенсус с висока устойчивост на 51 процента атака е много навременна задача. В скорошната му статия, Ръководство за 99% толерантен консенсус, Виталик Бутерин предлага начин за увеличаване на прага на 51-процентовата атака от 51 процента от дела или хешрейта на 99 процента. Ключът е въвеждането на допълнителни валидатори, наречени наблюдатели, които не участват в генерирането на блокове. Наблюдателите извършват последваща проверка на блокчейн и могат да алармират мрежата, ако бъдат намерени компрометирани блокове. За валидиране Vitalik предлага 512 възела да бъдат избрани на случаен принцип на всеки 4096 секунди от алгоритъма, зависим от латентността.
Въпреки че този подход определено подобрява защитата на мрежата, той има значителни недостатъци. Най-критичните слабости са зависимостта от времето, необходимо за консенсус, зависимостта от пропускателната способност на мрежата и синхронизирането на времето между наблюдателите.
Тук минималният интервал от време на D е емпирична стойност, чрез която наблюдателите могат да обменят данни правилно. Изчисляването на D взема предвид лошата интернет връзка и процесорната мощ на наблюдателите. Блоковете се считат за валидни само ако интервалът от време за потвърждение, разделен на D, е не по-малък от броя на наблюдателите, подписали този блок.
Тъй като стойността на D е минимумът от всички възможни, има потенциална ситуация, когато по време на интервала D блокът се потвърждава само от един наблюдател. Така че времето, необходимо за консенсус, зависи линейно от броя на наблюдателите. Това поставя значителни ограничения върху мащабируемостта и децентрализацията на мрежата.
В случай на ограничен брой наблюдатели (Бутерин предлага да се използват само 512 наблюдатели), валидирането е само псевдодецентрализирано. Значително или неограничено увеличаване на броя на наблюдателите може да доведе до значително по-голямо необходимо D време. В този случай валидирането би отнело много повече време или дори би станало безсмислено.
Съвременната честотна лента на комуникационния канал все още е ограничена, което възпрепятства след валидирането на големи блокове. Ако приемем, че размерът на транзакцията е 200 байта, което всъщност е доста малко и е възможно само при финансови транзакции без интелигентни договори и че има 50 000 транзакции в блок (съвременните блокчейни активно се опитват да достигнат това ниво), размерът на блока е 10Mb. Предаването на това количество данни в рамките на секунда изисква канал от 100Mbps. Магистралните канали определено могат да гарантират това ниво на пропускателна способност, но регионалните връзки биха били много по-бавни. Това би направило валидирането или невъзможно поради изискването за получаване на подписи в рамките на определен период от време, или псевдо-децентрализирано, където се избират само наблюдатели с най-добрите канали на магистралата.
Друга слабост е задължителната синхронизация на времето между наблюдателите, което увеличава уязвимостта на мрежата към потенциални атаки, тъй като нито една блокчейн мрежа не използва защитени протоколи за синхронизиране на времето (като SNTP). Работата с незащитена NTP създава множество възможности за несинхронизиране на пуловете на наблюдателите, които по-късно могат напълно да саботират валидирането.
В опит да се премахнат описаните по-горе проблеми и да се подобри устойчивостта на мрежата от 51 процента атака до 90 процента, подход, използващ допълнителни роли, може да осигури решение за консенсус в мрежата. Алтернативно на решението, описано от Vitalik Buterin, в този случай мрежата ще изисква пет роли, които са динамично присвоени на възли.
Поради тази настройка, решаването на проблема с толерантността към византийската грешка (BFT) за получаване на 67 процента едновременно на няколко слоя изисква контрол над 90 процента от дела. Освен това устойчивостта е толкова висока, че са необходими повече от 53 процента от дела, за да се появят дори злонамерени транзакции.
Дори и с малко вероятната поява на мрежата с 90 процента от едноличния дял, клиентите ще започнат да отхвърлят блоковете със задна дата и ще спрат да се доверяват на компрометираната мрежа, ефективно разделяйки мрежата на две. Тъй като клиентите, които използват мрежата, са най-ценната част от нея, притежаването на 90 процента от контрола върху дела дава само контрол над мъртвата мрежа без клиенти, докато останалите 10 процента ще станат 100 процента притежатели на монети в новата мрежа.
Мрежата използва асинхронно валидиране на блокове, за да елиминира зависимостта от времето на консенсус от броя валидатори. Следващият блок започва да се генерира веднага щом бъде генериран текущият и е завършил основното следвалидиране. Пълно валидиране се случва на различни слоеве в тандем (от верификатор, торент, партньорски и клиентски роли). Винаги, когато се идентифицира злонамерен блок, блокчейнът се връща към последното потвърдено състояние и възстановява от сурови транзакции.
Въпросът за потенциално лошите интернет връзки е смекчен чрез използване на технология, подобна на BitTorrent. Данните се предават през мрежата на фрагменти, осигурявайки по-бързи обменни курсове в региони с ниска честотна лента. Това позволява доставка на данни дори до изкуствено изолирани региони.
Разделителната способност за предизвикателството за синхронизация на времето е двойна: вътрешното време на процеса (в тикове) се използва навсякъде, където е възможно, а синхронизирането на времето се извършва чрез защитен собствен протокол SNTP.
В заключение, представянето на различни роли в консенсус, както е описано по-горе, вероятно е най-перспективният подход в наши дни и може да се надява значително да подобри сигурността в блокчейн.
Глеб Никитин
Глеб Никитин, технически ръководител и съосновател в #MetaHash