Разумевање Стеллар Цонсенсус Протоцола

Разумевање Стеллар Цонсенсус Протоцола

Протокол Стеллар консензуса је први пут описан у научни чланак Давид Мазиер 2015. Ово је „федерални византијски споразумни систем“ који омогућава децентрализованим рачунарским мрежама без лидера да ефикасно постигну консензус о одлуци. Стеллар платна мрежа користи Стеллар Цонсенсус Протоцол (СЦП) за одржавање конзистентне историје трансакција која је видљива свим учесницима.

Сматра се да су протоколи консензуса тешко разумљиви. СЦП је једноставнији од већине њих, али и даље дели ову репутацију – делимично због погрешне идеје да је „федеративно гласање“, које је тема прве половине научног чланка, СЦП. Али то није истина! Ово је само важан градивни блок који друга половина чланка користи за стварање stvarni Протокол звезданог консензуса.

У овом чланку ћемо укратко објаснити шта је „систем уговора“, шта га може учинити „византијским“ и зашто византијски систем учинити „федералним“. Затим ћемо објаснити процедуру федералног гласања описану у СЦП чланку, и на крају ћемо објаснити сам СЦП протокол.

Системи споразума

Систем договора омогућава групи учесника да постигне консензус о некој теми, као што је шта наручити за ручак.

У Интерстеллар-у смо имплементирали сопствени систем договора о ресторанима: наручујемо оно што каже наш оперативни менаџер Џон. Ово је једноставан и ефикасан систем споразума. Сви верујемо Џону и верујемо да ће сваки дан пронаћи нешто занимљиво и хранљиво.

Али шта ако Џон злоупотреби наше поверење? Он може сам одлучити да сви требамо постати вегани. За недељу или две вероватно ћемо га свргнути и предати власт Елизабети. Али одједном она воли авокадо са инћунима и мисли да би сви требали бити такви. Власт квари. Зато је боље пронаћи неки демократскији метод: неки начин да се узму у обзир различите преференције, уз обезбеђивање правовремених и недвосмислених резултата, тако да нико не наручи ручак, или да пет људи наручи различите наруџбине, или дискусију вуче се у вече.

Чини се да је решење једноставно: одржите гласање! Али ово је погрешан утисак. Ко ће прикупити гласачке листиће и извести резултате? И зашто би други веровали у оно што он каже? Можда можемо у почетку гласајте за лидера коме верујемо да ће водити гласање - али који ће га водити прво гласањем? Шта ако се не можемо договорити око вође? Или шта ако се договоримо, али овај лидер заглави на састанку или оде на боловање?

Слични проблеми се јављају у дистрибуираним рачунарским мрежама. Сви учесници или чворови морају да се сложе око неке одлуке, на пример чији је ред да ажурирају дељени фајл или уклоне задатак из реда за обраду. У мрежи криптовалута, чворови стално морају да бирају како цела прича изгледа из неколико могућих верзија, које се понекад сукобљавају. Овај мрежни уговор пружа сигурност примаоцу да је новчић (а) важећи (није фалсификован) и (б) да још није потрошен на другом месту. Ово такође осигурава да ће моћи да троши новчиће у будућности јер ће нови прималац имати исте гаранције из истих разлога.

Сваки систем консензуса у дистрибуираној рачунарској мрежи мора бити толерантан на грешке: мора да даје доследне резултате упркос грешкама као што су споре везе, чворови који не реагују и нетачан редослед порука. византијски Систем договора је додатно отпоран на „византијске” грешке: чворове који дају лажне информације, било због грешке, било у намерном покушају да се поткопа систем или стекне нека предност. „Византијска” толеранција грешака – способност да се верује групној одлуци чак и када неки чланови групе могу лагати или на други начин не поштовати правила доношења одлука – назива се парабола о војсковођама Византијског царствакоји је покушао да координише напад. Добар опис код Ентонија Стивенса.

Замислите власницу крипто новчића Алис, која мора да бира између куповине укусног сладоледа од Боба и отплате Керолиног дуга. Можда Алиса жели да плати обоје одједном лажним трошењем истог новчића. Да би то урадила, она мора да убеди Бобов компјутер да новчић никада није плаћен Керол, и да убеди Керолин компјутер да новчић никада није плаћен Бобу. Византијски систем споразума то чини практично немогућим, користећи облик владавине већине тзв кворум. Чвор у таквој мрежи одбија да пређе на одређену верзију историје све док не види да довољан број вршњака – кворум – пристаје на такву транзицију. Када се то деси, они ће формирати гласачки блок који је довољно велик да примора преостале мрежне чворове да се сложе са њиховом одлуком. Алиса може натерати неке чворове да лажу у њено име, али ако је мрежа довољно велика, њен покушај ће бити надвладан гласовима поштених чворова.

Колико чворова је потребно за кворум? У најмању руку, већина, или боље речено, квалификована већина за борбу против грешака и превара. Али да бисте пребројали већину, морате знати укупан број учесника. У Интерстеллар канцеларији или на окружним изборима, ове бројке је лако сазнати. Али ако је ваша група слабо дефинисана мрежа у коју чворови могу да улазе и излазе по вољи без одобрења центра, онда вам је потребно савезни византијски споразумни систем способан да одреди кворуме не из унапред одређене листе чворова, већ динамички, из стално променљивог и неизбежно некомплетног снимка чворова у датом тренутку.

Можда изгледа немогуће створити кворум из перспективе једног чвора у огромној мрежи, али је могуће. Такав кворум може чак да гарантује резултате децентрализованог гласања. СЦП бела књига показује како се то може урадити помоћу процедуре тзв савезним гласањем.

За нестрпљиво

Остатак чланка детаљније описује федерално гласање и Стеллар протокол консензуса. Ако вас не занимају детаљи, ево општег прегледа процеса.

  1. Чворови спроводе кругове федералног гласања о „номиниранима“. Савезни круг гласања значи:
    • Чвор гласа за неку изјаву, на пример, „Предлажем вредност В“;
    • Чвор слуша гласове вршњака док не пронађе онај који може да „прими“;
    • Чвор тражи „кворум“ за ову тврдњу. Кворум „потврђује“ кандидата.
  2. Једном када чвор може да потврди једног или више кандидата, покушава да "припреми" "гласачки листић" кроз неколико кругова удруженог гласања.
  3. Једном када чвор буде у стању да потврди да је гласачки листић спреман, покушава да га изврши кроз још више кругова удруженог гласања.
  4. Једном када чвор може да потврди урезивање гласачког листића, може да "екстернализује" вредност тог гласачког листића користећи га као резултат консензуса.

Ови кораци укључују више кругова федералног гласања, који заједно чине један круг СЦП-а. Хајде да детаљније погледамо шта се дешава на сваком кораку.

Федерално гласање

Заједничко гласање је поступак за одређивање да ли се мрежа може сложити око предлога. У кругу гласања, сваки чвор мора изабрати једну од потенцијално много могућих вредности. Не може то да уради осим ако је уверен да други чворови у мрежи неће изабрати другачији исход. Да би се у то уверили, чворови размењују низ порука напред-назад, тако да сви потврђенДа kvorum кнотс узима исти одлука. Остатак овог одељка објашњава термине у овој реченици и како се цео поступак одвија.

Кворуми и делови кворума

Почнимо са дефинисањем кворума. Као што смо горе расправљали, у децентрализованој мрежи са динамичким чланством, немогуће је унапред знати број чворова и самим тим колико их је потребно већини. Федерално гласање решава овај проблем увођењем нове идеје кворум цут (кворумски исечак): Мали скуп вршњака којима чвор верује да преноси информације о статусу гласања остатку мреже. Сваки чвор дефинише сопствену кворумску исечку (чији постаје де фацто члан).

Формирање кворума почиње сечењем кворума. За сваки чвор се додају његови исечени чворови. Затим се додају термини пресека ови чворови и тако даље. Како наставите, све је више чворова које не можете да додате јер су већ укључени у пресек. Када више нема нових чворова за додавање, процес се зауставља: ​​формирали смо кворум „транзитивним затварањем“ дела кворума почетног чвора.

Разумевање Стеллар Цонсенсус Протоцола
Да бисте пронашли кворум из датог чвора...

Разумевање Стеллар Цонсенсус Протоцола
... додај чланове свог дела...

Разумевање Стеллар Цонсенсус Протоцола
...онда додајемо чланове пресека ових чворова.

Разумевање Стеллар Цонсенсус Протоцола
Настављамо све док не остане ниједан чвор за додавање.

Разумевање Стеллар Цонсенсус Протоцола

Разумевање Стеллар Цонсенсус Протоцола
Нема више чворова за додавање. Ово је кворум.

У ствари, сваки чвор се може појавити у више од једног пресека. Да бисте формирали кворум, изаберите само један од делова и додајте чланове; затим изаберите било који део за сваког од чланова и додајте чланове то рез и тако даље. То значи да је сваки чвор члан многих могућих кворума.

Разумевање Стеллар Цонсенсус Протоцола
Изаберите само један одељак кворума у ​​сваком кораку.

Разумевање Стеллар Цонсенсус Протоцола

Разумевање Стеллар Цонсенсус Протоцола

Разумевање Стеллар Цонсенсус Протоцола
Један могући кворум. Или алтернатива...

Разумевање Стеллар Цонсенсус Протоцола
...изаберите друге делове...

Разумевање Стеллар Цонсенсус Протоцола

Разумевање Стеллар Цонсенсус Протоцола
… (када је то могуће)…

Разумевање Стеллар Цонсенсус Протоцола
... ствара још један кворум.

Како чвор зна у којим се резовима налазе други чворови? На исти начин као и друге информације о другим чворовима: од преноса које сваки чвор емитује на мрежу када се промени стање гласања. Свако емитовање укључује информације о деловима чвора који шаље. СЦП бела књига не наводи механизам комуникације. Имплементације обично користе трач протокол за гарантовано емитовање порука широм мреже.

Подсетимо се да је у нефедералном византијском систему споразума кворум дефинисан као већина свих чворова. Византијски споразумни систем је осмишљен са становишта питања: колико непоштених чворова систем може да толерише? У систему од Н чворова који је дизајниран да преживи ф кварова, чвор би требало да буде у стању да напредује примањем повратних информација од Н-ф вршњака јер ф од њих може бити у квару. Али пошто смо добили одговор од Н−ф колега, можемо претпоставити да су сви ф равноправни (од којих чвор није добио одговор) заправо искрени. Дакле, ф од Н−ф вршњака (од којих је примљен одговор) су злонамерни. Да би чворови дошли до истог консензуса, већина преосталих чворова мора бити искрена, то јест, потребно нам је да Н−ф буде веће од 2ф или Н > 3ф. Дакле, типично ће систем дизајниран да преживи ф кварова имати укупно Н=3ф+1 чворова и величину кворума од 2ф+1. Када предлог пређе праг кворума, остатак мреже је уверен да ће било који конкурентски предлози пропасти. Овако се мрежа приближава резултату.

Али у федералном византијском споразумном систему, не само да не може постојати већина (јер нико не зна укупну величину мреже), већ је концепт већине потпуно бескористан! Ако је чланство у систему отворено, онда неко може да добије већину једноставним извођењем такозваног напада на Сибил: више пута се придружи мрежи преко више чворова. Па зашто се може назвати транзитивно затварање пресека кворум, и како је у стању да потисне конкурентне предлоге?

Технички, нема шансе! Замислите мрежу од шест чворова, где су две тројке изоловане у међусобним деловима кворума. Прва подгрупа може донети одлуку за коју друга никада неће чути, и обрнуто. Не постоји начин да ова мрежа постигне консензус (осим случајно).

Стога, СЦП захтева да мрежа мора имати својство тзв. пресек кворума. У мрежи са овим својством, било која два кворума која се могу конструисати увек се преклапају у најмање једном чвору. За одређивање преовлађујућег расположења мреже, ово је једнако добро као да имате већину. Интуитивно, ово значи да ако било који кворум пристане на изјаву Кс, ниједан други кворум се никада не може сложити ни са чим другим, јер ће нужно укључити неки чвор из првог кворума који је већ гласао за Кс.

Разумевање Стеллар Цонсенсус Протоцола
Ако постоји пресек кворума у ​​мрежи...

Разумевање Стеллар Цонсенсус Протоцола
...онда било која два кворума која можете изградити...

Разумевање Стеллар Цонсенсус Протоцола
...увек ће се укрштати.

Разумевање Стеллар Цонсенсус Протоцола

Разумевање Стеллар Цонсенсус Протоцола

(Наравно, чворови који се преклапају могу се показати као византијски или на неки други начин лоши. У овом случају, пресек кворума уопште не помаже мрежи да се сложи. Из тог разлога, многи резултати у СЦП белој књизи су засновани на експлицитне претпоставке, као што је оно што је остало у преласку кворума мреже чак и након уклањања лоших чворова. Ради једноставности, оставимо ове претпоставке имплицитно у остатку чланка).

Може изгледати неразумно очекивати да је поуздано укрштање кворума могуће у мрежи независних чворова. Али постоје два разлога зашто је то тако.

Први разлог је постојање самог интернета. Интернет је савршен пример мреже независних чворова са кворумима који се укрштају. Већина чворова на Интернету се повезује са само неколико других локалних чворова, али ови мали скупови се довољно преклапају да се до сваког чвора може доћи са сваког другог чвора дуж неке руте.

Други разлог је специфичан за мрежу плаћања Стеллар (најчешћа употреба СЦП-а). Свако средство на Стеллар мрежи има издаваоца, а Стеллар смернице захтевају да сваки издавалац одреди један или више чворова на мрежи за обраду захтева за откуп. У вашем је најбољем интересу да директно или индиректно укључите ове чворове у делове кворума за свако средство које вас занима. Кворуми за све чворове заинтересоване за дато средство ће се тада преклапати барем на тим чворовима за откуп. Чворови заинтересовани за више средстава ће укључити све чворове откупа одговарајућих емитената у своје делове кворума и настојаће да удруже сву имовину заједно. Поред тога, сва средства која нису на овај начин повезана са другима на мрежи, и не треба повезивати - ово је осмишљено тако да нема преклапања кворума за ову мрежу (нпр. банке из доларске зоне понекад желе да тргују са банкама из зоне евра и банкама из пезо зоне, па су на истој мрежи, али ниједна од њих брине о одвојеној мрежи деце која продају бејзбол карте).

Наравно, ожидание прелазак кворума није гаранција. Други византијски системи споразума дугују велики део своје сложености гарантовању кворума. Важна иновација СЦП-а је да уклања одговорност за стварање кворума из самог алгоритма консензуса и доводи га на ниво апликације. Дакле, иако је федерално гласање довољно опште да се гласа о било ком питању, његова поузданост заправо критично зависи од ширег значења ових значења. Неке хипотетичке употребе можда неће бити толико погодне за стварање добро повезаних мрежа као друге.

Гласање, прихватање и потврда

У кругу федералног гласања, чвор опционо почиње да гласа за неку вредност В. То значи емитовање поруке мрежи: „Ја сам чвор Н, моји делови кворума су К, а ја гласам за В.“ Када чвор гласа на овај начин, он обећава да никада није гласао против В и да никада неће.

У пеер-то-пеер емитовању, сваки чвор види како други гласају. Када чвор прикупи довољно ових порука, може да прати делове кворума и покуша да пронађе кворуме. Ако види кворум вршњака који такође гласају за В, може да настави усвајање В и емитујте ову нову поруку мрежи: „Ја сам чвор Н, моји кворумски делови су К, и прихватам В.“ Прихватање пружа јачу гаранцију од обичног гласања. Када чвор гласа за В, никада не може гласати за друге опције. Али ако чвор прихвати В, ниједан чвор на мрежи никада неће прихватити другу опцију (теорема 8 у СЦП белој књизи то доказује).

Наравно, постоји велика вероватноћа да одмах неће постојати кворум чворова који се слажу са В. Други чворови могу гласати за друге вредности. Али постоји још један начин да чвор пређе са једноставног гласања на прихватање. Н може прихватити другачију вредност за В, чак и ако није гласао за то, па чак и ако не види кворум за то. Да бисте одлучили да промените свој глас, само погледајте блок за блокирање чворови који су прихватили В. Блокирајући скуп је један чвор из сваког од кворума Н. Као што име каже, може блокирати било које друго значење. Ако сви чворови у таквом скупу прихвате В, онда (према теореми 8) никада неће бити могуће формирати кворум који има другачију вредност, и стога је такође безбедно да Н прихвати В.

Разумевање Стеллар Цонсенсус Протоцола
Чвор Н са три дела кворума.

Разумевање Стеллар Цонсенсус Протоцола
БДФ је скуп за блокирање за Н: укључује по један чвор из сваког пресека Н.

Разумевање Стеллар Цонсенсус Протоцола
БЕ је такође скуп за блокирање за Н јер се Е појављује у два дела Н.

Али скуп за блокирање није кворум. Било би превише лако преварити чвор Н да прихвати жељену вредност ако би било довољно хаковати само један чвор у сваком од исечака Н. Према томе, прихватање вредности није крај гласања. Уместо тога, Н мора да потврди вредност, односно да види кворум чворова који је прихвата. Ако стигне тако далеко, онда, као што СЦП вхитепапер доказује (у теореми 11), остатак мреже ће такође на крају потврдити исту вредност, тако да ће Н завршити удружено гласање са одређеном вредношћу као резултатом.

Разумевање Стеллар Цонсенсус Протоцола
Федерално гласање.

Процес гласања, прихватања и потврђивања чини један пуни круг удруженог гласања. Протокол Стеллар консензуса комбинује многе од ових рунди да би створио комплетан систем консензуса.

Стеллар Цонсенсус Протоцол

Два најважнија својства система консензуса су − сигурност и преживљавање. Алгоритам консензуса је „безбедан“ ако никада не може дати различите резултате различитим учесницима (Бобова копија историје никада неће бити у супротности са Керол). „Животност“ значи да ће алгоритам увек произвести резултат, односно да се неће заглавити.

Описана процедура федералног гласања безопасан у смислу да ако чвор потврди вредност В, ниједан други чвор неће потврдити другу вредност. Али „неће потврдити друго значење“ не значи да ће нужно нешто потврдити. Учесници могу гласати за толико различитих вредности да ништа неће достићи праг прихватања. То значи да у савезном гласању нема преживљавање.

Протокол Стеллар консензуса користи удружено гласање на начин који осигурава и сигурност и преживљавање. (СЦП-ове гаранције сигурности и преживљавања имају теоретско ограничење. Дизајн бира веома јаку гаранцију сигурности, жртвујући мало ублажавање преживљавања, али ако се има довољно времена, врло је вероватно да ће се постићи консензус.) Укратко, идеја је имати вишеструко удружено гласање за више вредности све док један од њих не прође кроз све фазе СЦП гласања описане у наставку.

Вредности о којима СЦП тражи консензус могу бити историја трансакција или поруџбина за ручак или нешто друго, али важно је напоменути да то нису вредности које се прихватају или потврђују. Уместо тога, федерално гласање се одвија према изјаве о овим вредностима.

Одржавају се први кругови савезног гласања фаза номинације (фаза номинације), на скупу изјава попут „Номинирам В“, можда за много различитих вредности В. Сврха номинације је да се пронађе једна или више изјава које пролазе кроз прихватање и потврду.

Након проналажења проверљивих кандидата, СЦП прелази на фазу гласања, где је циљ да се пронађе одређени билтен (односно контејнер за предложену вредност) и кворум који може да прогласи урадити за то (починити). Ако кворум изврши гласање, његова вредност се прихвата као консензус. Али пре него што чвор може да гласа о обавези гласања, прво мора да потврди отказивање сви гласачки листићи са мањом противвредношћу. Ови кораци – поништавање гласачких листића да би се пронашао онај који може бити извршен – укључују више кругова федералног гласања о вишеструким захтевима за гласање.

Следећи одељци детаљније описују номинације и гласање.

Номинација

На почетку фазе номинације, сваки чвор може спонтано изабрати вредност за В и гласати за изјаву „Именујем В“. Циљ у овој фази је потврдити номинацију неке вредности путем савезног гласања.

Можда довољно чворова гласа за довољно различите предлоге да ниједна номинација не може да достигне праг прихватања. Стога, осим што емитују сопствене гласове за номинацију, чворови „рефлектују“ номинације својих колега. Ехо значи да ако чвор гласа за номинацију В, али види поруку од суседа који гласа за номинацију В, сада ће гласати и за В и за В. (Не одјекује се сви гласови колега током номинације јер то може довести до експлозије различити номиновани. СЦП укључује механизам за регулисање ових гласова. Укратко, постоји формула за одређивање "приоритета" вршњака са тачке гледишта чвора и одражавају се само гласови чворова високог приоритета. Што је номинација дужа узима, што је праг нижи, тако да чвор проширује скуп колега чије ће гласове одражавати. Формула приоритета укључује број слота као један од својих улаза, тако да равноправни уређај високог приоритета за један слот може бити равноправан са ниским приоритетом за друго, и обрнуто).

Концептуално, номинација је паралелна, и В и В су одвојени савезни гласови, сваки појединачно способан да постигне прихватање или потврду. У пракси, поруке СЦП протокола пакују ове појединачне гласове заједно.

Иако је гласање за В-ову номинацију обећање да се никада неће гласати против В-ове номинације, на нивоу апликације - у овом случају СЦП - се утврђује шта значи "против". СЦП не види изјаву која је у супротности са гласањем „Ја номинујем Кс“, то јест, не постоји порука „Ја сам против номиновања Кс“, тако да чвор може гласати за номиновање било које вредности. Многе од ових номинација неће ићи нигде, али ће на крају чвор моћи да прихвати или потврди једну или више вредности. Када се кандидат потврди, он постаје кандидат.

Разумевање Стеллар Цонсенсус Протоцола
СЦП номинација коришћењем федералног гласања. Може постојати много вредности „Б“ које износе вршњаци и које „рефлектује“ чвор.

Номинације могу резултирати вишеструким потврђеним кандидатима. Стога, СЦП захтева да слој апликације обезбеди неки метод комбиновања кандидата у један композитни (композит). Метода спајања може бити било која. Главна ствар је да ако је овај метод детерминистички, онда ће сваки чвор комбиновати исте кандидате. У систему гласања за ручак, „уједињење“ може једноставно значити одбијање једног од два кандидата. (Али на детерминистички начин: сваки чвор мора да изабере исту вредност за ресетовање. На пример, ранији избор по абецедном реду). На платној мрежи Стеллар, где се гласа о историји трансакција, спајање два предложена кандидата укључује спајање трансакција које садрже и последње од њихове две временске ознаке.

СЦП бела књига доказује (теорема 12) да се на крају фазе проширења мрежа на крају конвергира у један композит. Али постоји проблем: удружено гласање је асинхрони протокол (као СЦП). Другим речима, чворови нису координисани временом, већ само порукама које шаљу. Са тачке гледишта чвора, нејасно је када завршио фаза проширења. И иако ће сви чворови на крају стићи до истог композита, они могу ићи различитим рутама на путу, стварајући различите композитне кандидате на путу, и никада не могу рећи који је од њих коначни.

Али то је нормално. Номинација је само припрема. Најважније је ограничити број кандидата да би се постигао консензус, који се јавља у процесу гласање (гласање).

Трчање

Билтен је пар , где је бројач цео број који почиње са 1, а вредност је кандидат из фазе номинације. Ово може бити сопствени кандидат чвора или кандидат суседног чвора који тај чвор прихвата. Грубо говорећи, гласање укључује поновљене покушаје да се мрежа присили да постигне консензус о неком кандидату на неком гласачком листићу тако што ће се одржати потенцијално много савезних гласова на изјавама о гласању. Бројачи на гласачким листићима прате учињене покушаје, а листићи са већим бројем гласова имају предност у односу на листиће са нижим бројем. Ако је билтен заглави, почиње ново гласање, сада на листићу .

Важно је разликовати значења (на пример, шта треба да буде наруџбина за ручак: пица или салате), билтени (пар противвредности) и изјаве о гласачким листићима. СЦП рунда укључује неколико рунди савезног гласања, посебно о следећим изјавама:

  • „Спреман сам да извршим гласање Б“ и
  • „Објављујем извршење гласања Б“

Из перспективе датог чвора, консензус се постиже када пронађе гласачки листић Б за који може потврдити (тј. пронаћи кворум који прихвата) изјаву „Полажем гласачки листић Б“. Од овог тренутка, безбедно је деловати према вредности наведеној у Б - на пример, наручити ову наруџбу за ручак. Зове се екстернализација значења. Када се потврди прихватање гласачког листића, чвор може бити сигуран да је било који други чвор екстернализовао исту вредност или ће то учинити у будућности.

Иако се многа удружена гласања концептуално спроводе на основу захтева за много различитих гласачких листића, они не размењују толико порука јер свака порука обухвата одређени број гласачких листића. Једна порука тако промовише стање многих савезних гласова одједном, на пример: „Прихватам гласачке листиће који се крећу од пре него што "

Шта значе изрази „припремљен” и „посвећени”?

Чвор гласа за уписивање гласачког листића када је сигуран да други чворови неће урезати гласачке листиће са различитим вредностима. Уверавање у то је сврха припреме пријаве. Глас који каже „Спреман сам да извршим гласање Б“ је обећање да никада неће дати гласачки листић мањи од Б, тј. са мањим бројем (СЦП захтева да вредности на листићима буду у одређеном редоследу. Дакле, билтен мање , ако је Н1

Зашто „спреман сам да гласам Б“ значи „обећавам да никада нећу дати листиће мање од Б“? Зато што СЦП дефинише прекид као супротност урезивања. Гласање за припрему гласачког листића такође укључује гласање за дисквалификацију неких других листића, и, као што смо раније говорили, гласање за једну ствар је обећање да никада нећете гласати против.

Пре емитовања урезивања, чвор прво мора да пронађе билтен који може да потврди да је припремљен. Другим речима, спроводи удружено гласање о теми „Спреман сам да извршим гласање Б“, вероватно на много различитих гласачких листића, све док не пронађе онај који прихвата кворум.

Одакле долазе гласачки листићи за припрему гласања? Прво, чвор емитује припреме за гласање за <1,Ц>, где је Ц композитни кандидат произведен у фази номинације. Међутим, чак и након што припреме за гласање почну, номинације могу довести до тога да додатни кандидати постану нови гласачки листићи. У међувремену, вршњаци могу имати различите кандидате и могу формирати скуп за блокирање који прихвата „Спреман сам да извршим гласање Б2“, што ће убедити чвор да га такође прихвати. Коначно, постоји механизам тајм-аута који генерише нове рунде федералног гласања на новим гласачким листићима са већим бројем ако су тренутни гласачки листићи заглављени.

Чим чвор пронађе гласачки листић Б који може потврдити као припремљен, емитује нову поруку „Учини гласање Б“. Ово гласање говори колегама да чвор никада неће одустати од Б. У ствари, ако је Б гласачки листић , а затим „Учини гласање “ означава безусловну сагласност да се гласа за спремност сваког гласачког листића из до <∞, с>. Ова додатна вредност помаже другим вршњацима да сустигну равноправну везу за урезивање ако су још увек у ранијим фазама протокола.

У овој фази вреди још једном нагласити да су то асинхрони протоколи. Само зато што један чвор шаље гласове за урезивање не значи да то раде и његови колеге. Неки од њих можда још увек гласају о изјавама у припреми за гласање, други су можда већ екстернализовали значење. СЦП објашњава како чвор треба да обради сваки тип истоврсне поруке без обзира на њену фазу.

Ако се порука „Најавио сам урезивање » не може бити примљена или потврђена, односно вероватноћа да ће порука бити прихваћена или потврђена или - или, у сваком случају, било који гласачки листић са вредношћу Ц, а не било који други, пошто је чвор већ обећао да никада неће отказати . До тренутка када чвор емитује гласове за урезивање, биће Ц или ништа, у зависности од тога колико далеко иде консензус. Међутим, ово још увек није довољно да чвор екстернализује Ц. Неки византијски вршњаци (који чине мање од кворума, на основу наших безбедносних претпоставки) могу лагати чвору. Прихватање и затим потврђивање неког гласачког листића (или распона гласачких листића) је оно што чвору даје самопоуздање да коначно екстернализује Ц.

Разумевање Стеллар Цонсенсус Протоцола
СЦП гласање путем федералног гласања. Није приказано: Тајмер може да се искључи у било ком тренутку, повећавајући број на гласачком листићу (и евентуално стварајући нови састав додатних номинованих кандидата).

И то је све! Када мрежа постигне консензус, спремна је да то чини изнова и изнова. На Стеллар мрежи плаћања, ово се дешава отприлике сваких 5 секунди: подвиг који захтева и сигурност и преживљавање које гарантује СЦП.

СЦП то може постићи ослањајући се на више кругова федералног гласања. Федеративно гласање је омогућено концептом кворумских исечака: скупови колега којима је сваки чвор одлучио да верује као део свог (субјективног) кворума. Ова конфигурација значи да се консензус може постићи чак и у мрежи са отвореним чланством и византијским обманама.

Додатна литература

  • Оригинални СЦП бели папир се може пронаћи овдеИ овде нацрт спецификација за његову имплементацију.
  • Оригинални аутор СЦП протокола, Давид Мазиер, објашњава то на поједностављен (али ипак технички) начин. овде.
  • Можда сте били изненађени што у овом чланку нисте пронашли изразе „рударство“ или „доказ о раду“. СЦП не користи ове методе, али неки други консензус алгоритми користе. Зејн Витерспун је написао приступачно преглед алгоритама консензуса.
  • Корак по корак опис једноставна мрежа која постиже консензус у једном пуном кругу СЦП-а.
  • За читаоце заинтересоване за СЦП имплементације: види Ц++ код, коју користи платна мрежа Стеллар, или Иди код, који сам написао ради бољег разумевања СЦП-а.

Извор: ввв.хабр.цом

Додај коментар