Какво представлява алгоритъм за консенсус на блокчейн?
Начало
Статии
Какво представлява алгоритъм за консенсус на блокчейн?

Какво представлява алгоритъм за консенсус на блокчейн?

Начинаещ
Публикувано Dec 13, 2018Актуализирано Jun 13, 2024
7m

Въведение

Алгоритъмът за консенсус е механизъм, който позволява на потребителите или машините да се координират в разпределена настройка. Трябва да гарантира, че всички участници в системата могат да се споразумеят за един източник на истина, дори ако някои участници са в неизправност. С други думи, системата трябва да е устойчива на грешки (вижте също: Обяснение на толерантност към византийска грешка).

При централизирана настройка един обект има власт над системата. В повечето случаи той може да прави промени както пожелае – няма някаква сложна система за управление за постигане на консенсус между много администратори. 

Но при децентрализирана настройка това е съвсем друга история. Да кажем, че работим с разпределена база данни – как да постигнем споразумение какви записи да се добавят?

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


Алгоритми за консенсус и криптовалута

При криптовалутите балансите на потребителите се записват в база данни – блокчейн. От съществено значение е всеки (или по-точно, всеки възел) да поддържа идентично копие на базата данни. В противен случай скоро ще получите противоречива информация, подкопавайки цялата цел на мрежата за криптовалута.

Криптографията с публичен ключ гарантира, че потребителите не могат да харчат криптовалутите на другия. Но все още трябва да има един единствен източник на истина, на който да разчитат участниците в мрежата, за да могат да определят дали средствата вече са изразходвани.

Сатоши Накамото, създателят на Биткойн, предложи система за доказателство за работа (PoW) за координиране на участниците. Скоро ще разберем как работи PoW – засега ще идентифицираме някои от общите черти на многото съществуващи алгоритми за консенсус.

Първо, изискваме потребителите, които искат да добавят блокове (ще ги наричаме валидатори), да предоставят стейк. Стейкът е някакъв вид стойност, която валидаторът трябва да изложи, което го обезкуражава да действа нечестно. Ако мамят, ще загубят стейка си. Примерите включват изчислителна мощност, криптовалута или дори репутация. 

Защо ще си правят труда да рискуват собствените си ресурси? Е, има и налична награда. Това обикновено се състои от собствената криптовалута на протокола и се състои от такси, платени от други потребители, прясно генерирани единици криптовалута или и двете.

Последното нещо, от което се нуждаем, е прозрачност. Трябва да можем да откриваме кога някой мами. В идеалния случай би трябвало да е скъпо за тях да произвеждат блокове, но евтино за всеки да ги валидира. Това гарантира, че валидаторите се контролират от обикновените потребители.


Видове алгоритми за консенсус

Доказателство за работа (PoW)

Доказателството за работа (PoW) е кръстникът на блокчейн алгоритмите за консенсус. За първи път беше внедрен в Биткойн, но действителната концепция съществува от известно време. В доказателството за работа валидаторите (наричани копачи) хешират данните, които искат да добавят, докато създадат конкретно решение.

Хешът е привидно произволен низ от букви и цифри, който се създава, когато пускате данни чрез хеш функция. Но ако пуснете същите данни през него отново, винаги ще получите същия резултат. Ако промените дори един детайл обаче и вашият хеш ще бъде напълно различен.

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

В доказателството за работа протоколът определя условията за това, което прави блока валиден. Може да каже, например, че само блок, чийто хеш започва с 00, ще бъде валиден. Единственият начин за копача да създаде такъв, който да съответства на тази комбинация, е да използва подхода на грубата сила. Може да промени параметър в своите данни, за да произведе различен резултат за всяко предположение, докато не получи правилния хеш. 

При големите блокчейни летвата е поставена невероятно високо. За да се конкурирате с други копачи, ще ви е необходим склад, пълен със специален хеширащ хардуер (ASIC), за да имате шанс да произведете валиден блок.

Вашият стейк, когато копаете, е цената на тези машини и електричеството, необходимо за работата им. ASIC са създадени с една цел, така че нямат приложение извън копаене на криптовалута. Единственият ви начин да възстановите първоначалната си инвестиция е да копаете, което носи значителна награда, ако успешно добавите нов блок към блокчейна.

За мрежата е тривиално да провери дали наистина сте създали правилния блок. Дори ако сте опитали трилиони комбинации, за да получите правилния хеш, те просто трябва да прекарат данните ви през функция веднъж. Ако вашите данни генерират валиден хеш, той ще бъде приет и ще получите награда. В противен случай мрежата ще го отхвърли и ще загубите време и електричество напразно.


Доказателство за залог (PoS)

Доказателството за залог (PoS) беше предложено в ранните дни на Биткойн като алтернатива на доказателството за работа. В PoS система няма концепция за копачи, специализиран хардуер или масивна консумация на енергия. Всичко, от което се нуждаете, е обикновен компютър.

Е, не всички. Все още трябва да понесете някакъв риск. В PoS не предлагате външен ресурс (като електричество или хардуер), а вътрешен – криптовалута. Правилата се различават за всеки протокол, но обикновено има минимална сума от средства, които трябва да притежавате, за да отговаряте на условията за стейкинг.

Оттам заключвате средствата си в портфейл (те не могат да бъдат преместени, докато стейквате). Обикновено ще се съгласите с други валидатори какви трансакции ще влязат в следващия блок. В известен смисъл вие залагате на блока, който ще бъде избран, а протоколът ще избере един.

Ако вашият блок е избран, ще получите част от таксите за трансакция в зависимост от вашия стейк. Колкото повече средства сте заключили, толкова повече ще спечелите. Но ако се опитате да измамите, като предложите невалидни трансакции, ще загубите част (или целия) си стейк. Следователно имаме подобен механизъм на PoW – да действате честно е по-изгодно, отколкото да действате нечестно.

По принцип няма прясно създадени монети като част от наградата за валидатори. Следователно собствената валута на блокчейна трябва да бъде издадена по някакъв друг начин. Това може да стане или чрез първоначално разпространение (т.е. ICO или IEO) или чрез стартиране на протокола с PoW преди по-късно преминаване към PoS.

Към днешна дата чистото доказателство за залог наистина е било внедрено само при по-малки криптовалути. Следователно не е ясно дали може да служи като жизнеспособна алтернатива на PoW. Въпреки че изглежда теоретично обосновано, на практика ще бъде много различно. 

След като PoS бъде въведен в мрежа с голяма стойност, системата се превръща в поле за игра на теория на игрите и финансови стимули. Всеки, който има ноу-хау да „хакне“ PoS система, вероятно би го направил само ако може да спечели от нея – следователно, единственият начин да разберете дали е осъществимо е в мрежа на живо.

Скоро ще видим PoS тестван в голям мащаб – Casper ще бъде внедрен като част от поредица от надстройки на мрежата Ethereum (общо известна като Ethereum 2.0).


Други консенсусни алгоритми

Доказателство за работа и доказателство за залог са най-обсъжданите алгоритми за консенсус. Но има голямо разнообразие от други, всички със своите предимства и недостатъци. Вижте следните статии:


Заключителни мисли

Механизмите за постигане на консенсус са жизненоважни за функционирането на разпределените системи. Мнозина вярват, че най-голямата иновация в Биткойн е използването на доказателство за работа, за да се даде възможност на потребителите да се споразумеят за споделен набор от факти.

Алгоритмите за консенсус днес са в основата не само на системите за дигитални пари, но и на блокчейните, позволяващи на разработчиците да изпълняват код в разпределена мрежа. Сега те са крайъгълен камък на блокчейн технологията и са критични за дългосрочната жизнеспособност на различните съществуващи мрежи.

От всички алгоритми за консенсус, доказателството за работа остава доминиращото предложение. Все още не е предложена алтернатива, която е по-надеждна и по-сигурна. Въпреки това има огромно количество изследвания и разработки за заместители на PoW и е вероятно да видим повече от тях да се появяват през следващите години.