Обяснение на твърдите и меките разклонения
Начало
Статии
Обяснение на твърдите и меките разклонения

Обяснение на твърдите и меките разклонения

Напреднал
Публикувано Nov 29, 2018Актуализирано Feb 9, 2023
8m

Въведение

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

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


Кой взема решенията в блокчейн мрежата?

За да разберете как работят разклоненията, е важно първо да разберете участниците, участващи в процеса на вземане на решения (или управление) на мрежата.
При Биткойн можете най-общо да направите разликата между три подмножества участници – разработчици, копачи и потребители на пълен възел. Това са страните, които действително допринасят за мрежата. Леките възли (т.е. портфейлите на вашите телефони, лаптопи и т.н.) се използват широко, но всъщност не са „участници“, що се отнася до мрежата.


Разработчици

Разработчиците са отговорни за създаването и актуализирането на кода. За вашата типична монета всеки може да допринесе за този процес. Кодът е публично достъпен, така че те могат да изпращат промени за преглед от други разработчици. 


Копачи

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


Потребители на пълни възли

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


Често ще откриете припокриване в тези категории. Можете, например, да сте разработчик и потребител на пълен възел, или копач и потребител на пълен възел. Може да сте и трите, или нито едното. Всъщност много от това, което считаме за потребители на криптовалута, не поемат нито една от тези роли. Вместо това те избират да използват леки възли или централизирани услуги.

Разглеждайки описанията по-горе, можете да направите силни аргументи за разработчиците и копачите, които вземат решенията за мрежата. Разработчиците създават кода – без тях няма да имате софтуер за стартиране и никой, който да коригира грешки или да добавя нови функции. Копачите осигуряват мрежата – без здравословна конкуренция в копаенето, веригата може да бъде отвлечена или да спре.
Ако тези две категории се опитаха да накарат останалата част от мрежата да следва волята им, обаче, това нямаше да свърши много добре. За мнозина истинската сила е концентрирана в пълните възли. Това до голяма степен е функция на мрежата, която се включва, което означава, че потребителите могат да избират какъв софтуер да използват.

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

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


Какво е разклонение?

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

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

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



Твърди разклонения срещу меки разклонения

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


Какво е твърдо разклонение?

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

Възлите стават сини, когато се актуализират. По-старите жълти възли ги отхвърлят, докато сините се свързват един с друг.


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


Тъй като има тази споделена история, ще се окажете с монети и в двете мрежи, ако сте ги държали преди разклонението. Да предположим, че сте имали 5 BTC, когато настъпи разклонение при блок 600 000. Можехте да похарчите тези 5 BTC за старата верига в Block 600 001, но те не са били изразходвани в Block 600 001 на новия блокчейн. Ако приемем, че криптографията не се е променила, вашите частни ключове все още съдържат пет монети в разклонената мрежа. 
Пример за твърдо разклонение беше разклонението от 2017 г., при което биткойнът беше фрагментиран на две отделни вериги – оригиналната, Bitcoin (BTC), и нова, Bitcoin Cash (BCH). Разклонението се случи след много спорове за най-добрия подход за мащабиране. Поддръжниците на Bitcoin Cash искаха да увеличат размера на блока, докато привържениците на Bitcoin се противопоставиха на промяната.

Увеличаването на размера на блока изисква промяна на правилата. Това беше преди мекото разклонение на SegWit (повече за това скоро), така че възлите ще приемат само блокове, по-малки от 1MB. Ако сте създали блок от 2MB, който иначе е валиден, други възли пак ще го отхвърлят.

Само възли, които са променили софтуера си, за да позволят блокове, надвишаващи 1MB по размер, могат да приемат тези блокове. Разбира се, това би ги направило несъвместими с предишната версия, така че само възли със същите модификации на протокола могат да комуникират.


Какво е меко разклонение

Мекото разклонение е обратно съвместима надстройка, което означава, че модернизираните възли все още могат да комуникират с ненадстроените. Това, което обикновено виждате при меко разклонение, е добавянето на ново правило, което не е в противоречие с по-старите правила.
Например, намаляване на размера на блока може да бъде реализирано чрез меко разклонение. Нека още веднъж начертаем биткойн, за да илюстрираме тази точка: въпреки че има ограничение за това колко голям може да бъде блокът, няма ограничение за това колко малък може да бъде. Ако искате да приемате само блокове под определен размер, просто трябва да отхвърлите по-големите.

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

Добър пример от реалния живот за меко разклонение беше гореспоменатото разклонение Segregated Witness (SegWit), което се случи малко след разделянето на Bitcoin/Bitcoin Cash. SegWit беше актуализация, която промени формата на блоковете и трансакциите, но беше умело изработена. Старите възли все още можеха да валидират блокове и трансакции (форматирането не нарушаваше правилата), но те просто нямаше да ги разберат. Някои полета са четими само когато възлите преминат към по-нов софтуер, който им позволява да анализират допълнителни данни.


Дори две години след активирането на SegWit, не всички възли са надградени. Има предимства за това, но няма реална спешност, тъй като няма промяна, която нарушава мрежата.


Твърди срещу меки разклонения – кое е по-добро?

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

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


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

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

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