Protokola uzlabojumu skaidrojums
Sākums
Raksti
Protokola uzlabojumu skaidrojums

Protokola uzlabojumu skaidrojums

Sarežģītākas tēmas
Publicēts Nov 29, 2018Atjaunināts Feb 9, 2023
8m

Ievads

Ja tev viedtālrunī tiek piedāvāts atjaunināt internetbankas lietotni, tu, visticamāk, to izdari, pat neaizdomājoties. Tavs tālrunis varētu veikt automātiskus atjauninājumus, tevi par to nemaz nebrīdinot. Tas galu galā ir nepieciešams – neinstalējot jaunāko programmatūras versiju, tev var tikt liegta piekļuve attiecīgajiem pakalpojumiem.

Tomēr ar atvērtā pirmkoda kriptovalūtām situācija ir pavisam citāda. Lai varētu izmantot Bitcoin pamatā esošo kodu, tev nav jāizlasa katra tā rindiņa, taču ir svarīgi, lai nepieciešamības gadījumā tev būtu šāda iespēja. Šeit nav nekādas hierarhijas un nav nevienas bankas, kas varētu instalēt atjauninājumus un pēc saviem ieskatiem ieviest izmaiņas. Tā rezultātā jaunu funkciju ieviešana blokķēdes tīklos var būt sarežģīta.
Šajā rakstā apskatīsim, kā iespējams jaunināt kriptovalūtu tīklus, neraugoties uz centrālās iestādes neesamību. Šajā nolūkā izmanto divus atšķirīgus mehānismus: stingro šķelšanu un vieglo šķelšanu


Kas pieņem šos lēmumus blokķēdes tīklā?

Lai saprastu, kā darbojas protokola uzlabojumi, ir svarīgi vispirms gūt izpratni par tīkla lēmumu pieņemšanā (jeb pārvaldībā) iesaistītajām personām.
Bitcoin tīkla dalībniekus var iedalīt trīs lielās apakšgrupās – izstrādātājos, ieguvējos un pilno mezglu lietotājos. Šīs trīs dalībnieku grupas nodrošina tīkla darbību. Vieglie mezgli (t. i., maki lietotāju tālruņos, klēpjdatoros u. c.) tiek plaši izmantoti, taču tie nav uzskatāmi par tīkla "dalībniekiem".


Izstrādātāji

Izstrādātāji ir atbildīgi par koda izveidi un atjaunināšanu. Tipiskas kriptovalūtas gadījumā šajā procesā var iesaistīties jebkurš. Kods ir publiski pieejams, un jebkurš var iesniegt izstrādātājiem izmaiņu priekšlikumus izskatīšanai. 


Ieguvēji

Ieguvēji rūpējas par tīkla drošību. Viņi palaiž kriptovalūtas kodu un izmanto savus resursus jaunu bloku pievienošanai blokķēdē. Piemēram, Bitcoin tīklā tas tiek darīts, izmantojot darba apliecinājuma algoritmu. Par ieguldīto darbu ieguvēji saņem bloka atlīdzības.


Pilno mezglu lietotāji

Pilnie mezgli veido kriptovalūtas tīkla pamatu. Tie validē, nosūta un saņem blokus un darījumus un glabā blokķēdes kopiju.


Šīs kategorijas bieži vien pārklājas. Piemēram, izstrādātājs vai ieguvējs var vienlaikus būt arī pilnā mezgla lietotājs. Viens cilvēks var veikt visas trīs šīs funkcijas vai nevienu no tām. Faktiski daudzi no tā saucamajiem kriptovalūtu lietotājiem neveic nevienu no šīm funkcijām. Tā vietā viņi izmanto vieglos mezglus vai centralizētus pakalpojumus.

Aplūkojot minētos aprakstus, varētu secināt, ka ar tīklu saistītos lēmumus pieņem izstrādātāji un ieguvēji. Izstrādātāji raksta kodu – bez viņiem nebūtu programmatūras un neviens nevarētu novērst kļūdas vai ieviest jaunas funkcijas. Ieguvēji nodrošina tīkla aizsardzību – bez veselīgas ieguves konkurences kāds varētu pārņemt kontroli pār ķēdi vai tā varētu pārstāt darboties.
Tomēr, ja abu šo kategoriju pārstāvji mēģinātu piespiest pārējos tīkla dalībniekus rīkoties pēc viņu prāta, tas nebeigtos labi. Daudzi uzskata, ka vara patiesībā pieder pilnajiem mezgliem. Tā lielā mērā ir tīkla izvēles principa funkcija – lietotāji var izvēlēties, kādu programmatūru izmantot. 

Izstrādātāji neielaužas tavās mājās un nespiež ar varu lejupielādēt Bitcoin Core bināros failus. Ja ieguvēji ieņemtu kategorisku pozīciju un uzspiestu lietotājiem nevēlamas izmaiņas, lietotāji vienkārši izvēlētos citu risinājumu. 

Šie dalībnieki nav uzskatāmi par visvareniem pavēlniekiem – viņi tikai nodrošina pakalpojumus. Ja cilvēki nevēlēsies izmantot šo tīklu, tā kriptovalūta zaudēs vērtību. Vērtības zudums tieši ietekmē ieguvējus (samazināsies viņu atlīdzības vērtība dolāros). Savukārt izstrādātājus lietotāji var vienkārši ignorēt.
Programmatūra galu galā nav patentēta. Tajā var veikt jebkādus labojumus, un, ja citi izmantos tavu modificēto programmatūras versiju, jūs visi varēsiet sazināties. Tādējādi tu veido programmatūras protokola uzlabojumu un jaunu tīklu.


Kas ir protokola uzlabojums?

Protokola uzlabojums notiek tad, kad programmatūra tiek kopēta un modificēta. Sākotnējais projekts turpina pastāvēt, taču tagad tas ir nošķirts no jaunā, kas ieņem atšķirīgu virzību. Pieņemsim, ka tavas iecienītākās ar kriptovalūtām saistītās vietnes komanda nespēj vienoties par turpmāko projekta attīstību. Daļa komandas varētu nokopēt vietni uz cita domēna. Taču turpmāk šajā vietnes versijā izvietotais saturs atšķirtos no oriģinālās vietnes satura.

Projekti balstās uz kopīgu pamatu un vēsturi. Līdzīgi ceļam, kas sadalās divos, abi ceļi tiek neatgriezeniski šķirti.

Atvērtā pirmkoda projektos tā notiek bieži un notika vēl krietnu laiku pirms Bitcoin un Ethereum ieviešanas. Tomēr dalījums stingrajā un vieglajā šķelšanā pastāv gandrīz tikai blokķēžu pasaulē. Apskatīsim šo tēmu detalizētāk.



Stingrā un vieglā šķelšana

Lai arī šiem procesiem ir līdzīgi nosaukumi un tie būtībā kalpo vienam un tam pašam mērķim, stingrā un vieglā šķelšana būtiski atšķiras. Aplūkosim katru no tām atsevišķi.


Kas ir stingrā šķelšana?

Stingrā šķelšana ietver programmatūras atjauninājumus, kas nav atpakaļsaderīgi. Parasti tā notiek tad, ja mezgli pievieno jaunus noteikumus, kas ir pretrunā līdzšinējiem. Jaunie mezgli var sazināties tikai ar citiem mezgliem, kas izmanto jauno versiju. Rezultātā blokķēde sadalās, veidojot divus atsevišķus tīklus – viens izmanto vecos noteikumus, bet otrs – jaunos.

Pēc atjaunināšanas mezgli iekrāsojas zilā krāsā. Senākie (dzeltenie) mezgli tos noraida, bet zilie izveido savstarpējus savienojumus.


Tātad tagad paralēli darbojas divi tīkli. Tie abi turpina pārraidīt blokus un darījumus, taču tie vairs nedarbojas vienā un tajā pašā blokķēdē. Visiem mezgliem bija viena blokķēde līdz brīdim, kad tika veikts protokola uzlabojums (un šī vēstures daļa saglabājas), taču turpmāk tiem veidojas atšķirīgi bloki un darījumi.


Tā kā vēsture ir kopīga, tad visa pirms protokola uzlabojuma tavā rīcībā esošā kriptovalūta joprojām paliks tavā rīcībā abos tīklos. Pieņemsim, ka tev bija 5 BTC brīdī, kad 600 000. blokā tika veikts protokola uzlabojums. Tu varētu iztērēt šos 5 BTC 600 001. blokā vecajā ķēdē, taču tie nebūs iztērēti jaunās blokķēdes 600 001. blokā. Pieņemot, ka kriptogrāfija nav mainījusies, tavas privātās atslēgas joprojām glabā piecas kriptovalūtas vienības jaunajā tīklā. 
Kā stingrās šķelšanas piemēru var minēt 2017. gadā ieviesto protokola uzlabojumu, kad Bitcoin tīkls tika sadalīts divās atsevišķās ķēdēs – oriģinālajā (Bitcoin – BTC) un jaunajā (Bitcoin Cash – BCH). Stingrā šķelšana tika veikta pēc plašām diskusijām par labāko mērogošanas risinājumu. Bitcoin Cash atbalstītāji vēlējās palielināt bloka izmēru, bet Bitcoin atbalstītāji tam iebilda.

Lai palielinātu bloka izmēru, ir jāmaina noteikumi. Tas notika pirms SegWit vieglās šķelšanas (par to pastāstīsim nedaudz vēlāk), tāpēc mezgli varēja pieņemt tikai blokus līdz 1 MB. Izveidojot 2 MB lielu bloku, kas visādi citādi būtu derīgs, pārējie mezgli to tik un tā noraidītu.

Šādus blokus varēja pieņemt tikai tie mezgli, kas bija mainījuši savu programmatūru, lai varētu pieņemt blokus, kuru izmērs pārsniedza 1 MB. Protams, tā rezultātā šādi mezgli vairs nebūtu saderīgi ar iepriekšējo versiju, tāpēc sazināties varēja tikai mezgli ar vienādām protokola versijām.


Kas ir vieglā šķelšana?

Vieglā šķelšana ir atpakaļsaderīgs jauninājums, kas nozīmē, ka jauninātie mezgli joprojām var sazināties ar tiem mezgliem, kas nav veikuši jaunināšanu. Vieglās šķelšanas gadījumā parasti tiek pievienots jauns noteikums, kas nav pretrunā līdzšinējiem noteikumiem.
Piemēram, vieglās šķelšanas rezultātā var samazināt bloka izmēru. Kā piemēru atkal izmantosim Bitcoin – lai arī pastāv bloka maksimālā izmēra ierobežojums, tā minimālais lielums nav noteikts. Ja vēlies pieņemt tikai tādus blokus, kas ir mazāki par noteiktu izmēru, tev ir vienkārši jānoraida lielāki bloki.

Tomēr tā rezultātā tu automātiski netiksi atvienots no tīkla. Tu joprojām varēsi sazināties ar mezgliem, kas nav ieviesuši šos noteikumus, taču varēsi atsijāt daļu informācijas, ko tie tev sūta.

Labs praktisks piemērs vieglajai šķelšanai ir jau minētais Segregated Witness (SegWit) protokola uzlabojums, kas tika ieviests drīz pēc Bitcoin un Bitcoin Cash šķelšanās. Ar SegWit atjauninājumu tika mainīts bloku un darījumu formāts, taču tas tika gudri izplānots. Vecie mezgli joprojām varēja validēt blokus un darījumus (formatēšana nebija pretrunā ar noteikumiem), taču tie vienkārši nesaprata šos datus. Dažus laukus varēja nolasīt tikai tie mezgli, kas bija jauninājuši programmatūru, ļaujot tiem apstrādāt papildu datus.


Pat divus gadus pēc SegWit ieviešanas joprojām ir mezgli, kas nav veikuši jaunināšanu. Jaunināšanai ir savas priekšrocības, taču tā nav steidzami jāveic, jo neietver būtiskas tīkla izmaiņas.


Stingrā un vieglā šķelšana – kura ir labāka?

Būtībā stingrā un vieglā šķelšana kalpo atšķirīgiem mērķiem. Nevienprātīga stingrā šķelšana var sašķelt kopienu, taču plānoti protokola uzlabojumi sniedz iespēju brīvi mainīt programmatūru, ja visi tam piekrīt.

Vieglā šķelšana ir "maigāks" risinājums. Vispārīgi izsakoties, tavas iespējas ir neierobežotas, ja vien tavas ierosinātās izmaiņas nav pretrunā ar līdzšinējiem noteikumiem. Tomēr, ja var nodrošināt tava atjauninājuma saderību, tev nav jāuztraucas par tīkla sašķelšanu.


Noslēgumā

Protokola uzlabojumi ir ļoti nozīmīgi blokķēdes tīklu ilgtermiņa attīstībā. Tie ļauj ieviest izmaiņas un jauninājumus decentralizētās sistēmās par spīti centrālas vadības neesamībai.

Izmantojot protokolu uzlabojumus, blokķēdes un kriptovalūtas to attīstības procesā var ieviest jaunas funkcijas. Bez šiem mehānismiem būtu nepieciešama centralizēta sistēma ar vertikālu hierarhiju. Pretējā gadījumā protokola noteikumi nekad nemainītos.