Skilningur á Stellar Consensus Protocol

Skilningur á Stellar Consensus Protocol

Samkomulagi Stellar var fyrst lýst í vísindagrein David Mazier árið 2015. Þetta er „sambands býsanska samningakerfi“ sem gerir dreifðri, leiðtogalausum tölvunetum kleift að ná samstöðu um ákvörðun á skilvirkan hátt. Stellar greiðslunetið notar Stellar Consensus Protocol (SCP) til að viðhalda stöðugri viðskiptasögu sem er sýnilegur öllum þátttakendum.

Samkomulagsreglur eru taldar erfitt að skilja. SCP er einfaldara en flestir þeirra, en deilir samt þessu orðspori - að hluta til vegna þeirrar ranghugmyndar að "samtaka atkvæðagreiðsla", sem er viðfangsefni fyrri hluta vísindagreinarinnar, sé SCP. En það er ekki satt! Þetta er bara mikilvægur byggingarreitur sem seinni hluti greinarinnar notar til að búa til raunverulegt Stjörnu samstöðu samskiptareglur.

Í þessari grein munum við útskýra stuttlega hvað „samningakerfi“ er, hvað getur gert það „býsanskt“ og hvers vegna gera býsansíska kerfið „sambandsríki“. Við munum síðan útskýra samtaka atkvæðagreiðsluaðferðina sem lýst er í SCP greininni og að lokum munum við útskýra SCP samskiptaregluna sjálfa.

Samningskerfi

Kerfi samninga gerir hópi þátttakenda kleift að ná samstöðu um efni, eins og hvað á að panta í hádeginu.

Við hjá Interstellar höfum innleitt okkar eigið matarsamningakerfi: við pöntum það sem rekstrarstjórinn okkar, John, segir. Þetta er einfalt og skilvirkt samningakerfi. Við treystum öll John og trúum því að hann muni finna eitthvað áhugavert og næringarríkt á hverjum degi.

En hvað ef John misnotar traust okkar? Hann getur sjálfur ákveðið að við ættum öll að verða vegan. Eftir viku eða tvær munum við líklega steypa honum af stóli og afhenda Elísabetu völdin. En allt í einu elskar hún avókadó með ansjósu og finnst að allir ættu að vera svona. Vald spillir. Svo það er betra að finna einhverja lýðræðislegri aðferð: einhverja leið til að tryggja að mismunandi óskir séu teknar með í reikninginn, en tryggja tímanlega og ótvíræða niðurstöðu, þannig að enginn endi með því að panta hádegismat, eða fimm manns panta mismunandi pantanir, eða umræður. dregst fram á kvöld.

Svo virðist sem lausnin sé einföld: Haltu atkvæði! En þetta er villandi hugmynd. Hver mun safna kjörseðlunum og tilkynna úrslitin? Og hvers vegna ættu aðrir að trúa því sem hann segir? Kannski getum við það í fyrstu kjósa leiðtoga sem við treystum til að leiða atkvæðagreiðsluna – en hver mun leiða hana fyrst með því að kjósa? Hvað ef við getum ekki komið okkur saman um leiðtoga? Eða hvað ef við náum samkomulagi, en þessi leiðtogi festist á fundi eða fer í veikindaleyfi?

Svipuð vandamál eiga sér stað í dreifðum tölvunetum. Allir þátttakendur eða hnútar verða að vera sammála um einhverja ákvörðun, svo sem hvers röðin er að uppfæra sameiginlega skrá eða fjarlægja verkefni úr vinnsluröðinni. Í cryptocurrency neti þurfa hnútar ítrekað að velja hvernig sagan í heild sinni lítur út úr nokkrum mögulegum útgáfum, sem stundum stangast á. Þessi netsamningur veitir viðtakandanum tryggingu fyrir því að myntin sé (a) gild (ekki fölsuð) og (b) ekki enn eytt annars staðar. Þetta tryggir líka að hann geti eytt myntunum í framtíðinni því nýi viðtakandinn mun hafa sömu ábyrgðir af sömu ástæðum.

Sérhvert samráðskerfi í dreifðu tölvuneti verður að vera bilunarþolið: það verður að skila stöðugum niðurstöðum þrátt fyrir villur eins og hæga hlekki, hnúta sem svara ekki og ranga röð skilaboða. Býsansískt Samkomulagskerfið er að auki ónæmt fyrir "bysansískum" villum: hnútum sem gefa rangar upplýsingar, hvort sem það er vegna villu eða vísvitandi tilraun til að grafa undan kerfinu eða ná einhverjum forskoti. "Býsansískt" gallaþol - hæfileikinn til að treysta hópákvörðun, jafnvel þótt sumir hópmeðlimir kunni að ljúga eða á annan hátt ekki fylgja reglum ákvarðanatöku - kallast dæmisögu um hershöfðingja Býsansveldissem reyndi að samræma árásina. Góð lýsing hjá Anthony Stevens.

Hugleiddu Alice dulmálsmyntaeiganda, sem verður að velja á milli þess að kaupa dýrindis ís frá Bob og borga upp skuldir Carol. Kannski vill Alice borga þeim báðum í einu með því að eyða sömu myntinni með sviksamlegum hætti. Til að gera þetta verður hún að sannfæra tölvu Bob um að myntin hafi aldrei verið greidd til Carol, og sannfæra tölvu Carol um að myntin hafi aldrei verið greidd til Bob. Býsansíska samningakerfið gerir þetta nánast ómögulegt, með því að nota form meirihlutastjórnar sem kallast ályktun. Hnútur í slíku neti neitar að fara yfir í ákveðna útgáfu af sögunni fyrr en hann sér að nægjanlegur fjöldi jafningja - sveitarfélag - samþykkir slík umskipti. Þegar þetta hefur gerst munu þeir mynda atkvæðahóp sem er nógu stór til að þvinga þá nethnúta sem eftir eru til að samþykkja ákvörðun sína. Alice getur þvingað nokkra hnúta til að ljúga fyrir hennar hönd, en ef netið er nógu stórt mun tilraun hennar verða gagntekin af atkvæðum heiðarlegra hnúta.

Hversu marga hnúta þarf fyrir ályktun? Að minnsta kosti meirihluti, eða réttara sagt, aukinn meirihluti til að berjast gegn mistökum og svikum. En til að telja meirihlutann þarf að vita heildarfjölda þátttakenda. Á skrifstofu Interstellar eða í héraðskosningum er auðvelt að finna þessar tölur. En ef hópurinn þinn er lauslega skilgreint net þar sem hnútar geta farið inn og farið að vild án samþykkis frá miðstöðinni, þá þarftu sambandsríki býsanska samningakerfi sem getur ákvarðað hæfileika ekki út frá fyrirfram ákveðnum lista yfir hnúta, heldur kraftmikið, út frá síbreytilegri og óhjákvæmilega ófullkominni skyndimynd af hnútum á tilteknum tímapunkti.

Það kann að virðast ómögulegt að búa til sveit frá sjónarhóli eins hnúts í víðáttumiklu neti, en það er mögulegt. Slík ályktun getur jafnvel tryggt niðurstöður dreifðrar atkvæðagreiðslu. SCP hvítbókin sýnir hvernig á að gera þetta með því að nota aðferð sem kallast með atkvæði alríkisins.

Fyrir óþolinmóð

Afgangurinn af greininni lýsir atkvæðagreiðslu sambandsins og samstöðubókun Stellar nánar. Ef þú hefur ekki áhuga á smáatriðum, hér er almennt yfirlit yfir ferlið.

  1. Hnútarnir framkvæma atkvæðagreiðslur í sambandsríkinu um „tilnefnda“. Alríkiskosningarlota þýðir:
    • Hnúturinn greiðir atkvæði með einhverri fullyrðingu, til dæmis „Ég legg til gildi V“;
    • Hnúturinn hlustar á raddir jafningjanna þar til hann finnur einn sem getur "móttekið";
    • Hnúturinn leitar að „quorum“ fyrir þessa fullyrðingu. Ályktun „staðfestir“ þann sem tilnefndur er.
  2. Þegar hnútur getur staðfest einn eða fleiri tilnefnda, reynir hann að „undirbúa“ „atkvæðagreiðsluna“ í gegnum nokkrar umferðir samtaka atkvæðagreiðslu.
  3. Þegar hnútur er fær um að staðfesta að atkvæðaseðillinn sé tilbúinn, reynir hann að fremja hann í gegnum enn fleiri umferðir samtaka atkvæðagreiðslu.
  4. Þegar hnútur getur staðfest að atkvæðagreiðsla sé framin, getur hann „ytrað“ gildi þess kjörseðils með því að nota það sem samhljóða niðurstöðu.

Þessi skref fela í sér margar umferðir samtaka atkvæðagreiðslu, sem saman mynda eina SCP umferð. Við skulum skoða nánar hvað gerist í hverju skrefi.

Samfylkingaratkvæðagreiðsla

Samtök atkvæðagreiðsla er aðferð til að ákvarða hvort netið geti komið sér saman um tillögu. Í atkvæðagreiðslunni verður hver hnútur að velja eitt af mögulegum mörgum mögulegum gildum. Það getur ekki gert þetta nema það sé fullviss um að aðrir hnútar á netinu muni ekki velja aðra niðurstöðu. Til að ganga úr skugga um þetta skiptast hnútar á bardaga af skilaboðum fram og til baka þannig að allir staðfestÞað ályktun hnútar tekur það sama ákvörðun. Afgangurinn af þessum hluta útskýrir hugtökin í þessari setningu og hvernig allt ferlið fer fram.

Sveitar og sveitarsneiðar

Byrjum á því að skilgreina sveit. Eins og við ræddum hér að ofan, í dreifðu neti með kraftmikilli aðild, er ómögulegt að vita fyrirfram fjölda hnúta og því hversu marga þarf fyrir meirihlutann. Samtök atkvæðagreiðsla leysir þetta vandamál með því að kynna nýja hugmynd sveitarskerðing (sveitarsneið): Lítið sett af jafningjum sem hnútur treystir til að miðla upplýsingum um kosningastöðu til restarinnar af netinu. Hver hnútur skilgreinir sína eigin sveitarsneið (sem hann verður í raun meðlimur).

Sveitarmyndun hefst með niðurskurði sveitar. Fyrir hvern hnút er skornum hnútum hans bætt við. Síðan er sneiðaskilmálum bætt við þessum hnútum og svo framvegis. Eftir því sem þú heldur áfram eru fleiri og fleiri hnútar sem þú getur ekki bætt við vegna þess að þeir eru nú þegar með í sneiðinni. Þegar ekki eru fleiri nýjar hnútar til að bæta við stoppar ferlið: við höfum myndað sveit með „tímabundinni lokun“ á sveitarsneið upphafshnútsins.

Skilningur á Stellar Consensus Protocol
Til að finna hæfileika frá tilteknum hnút...

Skilningur á Stellar Consensus Protocol
... bæta við meðlimum sneiðarinnar...

Skilningur á Stellar Consensus Protocol
...þá bætum við sneiðmeðlimum af þessum hnútum.

Skilningur á Stellar Consensus Protocol
Við höldum áfram þar til engir hnútar eru eftir til að bæta við.

Skilningur á Stellar Consensus Protocol

Skilningur á Stellar Consensus Protocol
Það eru engir hnútar eftir til að bæta við. Þetta er ályktun.

Reyndar getur hver hnút birst í fleiri en einni sneið. Til að mynda sveit, veldu aðeins eina af sneiðunum og bættu við meðlimum; veldu síðan hvaða sneið sem er fyrir hvern meðlim og bættu við meðlimum af þessu skera og svo framvegis. Þetta þýðir að hver hnút er meðlimur í mörgum mögulegum sveitum.

Skilningur á Stellar Consensus Protocol
Veldu aðeins eina sveitarsneið í hverju skrefi.

Skilningur á Stellar Consensus Protocol

Skilningur á Stellar Consensus Protocol

Skilningur á Stellar Consensus Protocol
Ein möguleg ályktun. Eða val...

Skilningur á Stellar Consensus Protocol
...velja aðrar sneiðar...

Skilningur á Stellar Consensus Protocol

Skilningur á Stellar Consensus Protocol
…(þegar það er hægt)…

Skilningur á Stellar Consensus Protocol
... skapar aðra ályktun.

Hvernig veit hnútur í hvaða sneiðum aðrir hnútar eru? Á sama hátt og aðrar upplýsingar um aðra hnúta: frá sendingum sem hver hnút sendir út á netið þegar kosningaástand hans breytist. Hver útsending inniheldur upplýsingar um sneiðar sendihnútsins. SCP hvítbókin tilgreinir ekki samskiptakerfi. Útfærslur nota venjulega slúðursamskiptareglur fyrir trygga útsendingu skilaboða um allt netið.

Mundu að í hinu býsanska samningakerfi sem ekki er sambandsríki er ályktun skilgreind sem meirihluti allra hnúta. Býsanska samningakerfið er hannað út frá spurningunni: hversu marga óheiðarlega hnúta þolir kerfið? Í kerfi N hnúta sem er hannað til að lifa af f bilanir ætti hnútur að geta tekið framförum með því að fá endurgjöf frá N−f jafningjum þar sem f þeirra gæti verið niðri. En eftir að hafa fengið svar frá N−f jafningjum getum við gert ráð fyrir að allir f jafningjar (sem hnúturinn fékk ekki svar frá) séu í raun heiðarlegir. Þannig eru f af N−f jafnöldrum (sem svarið barst frá) illgjarnir. Til þess að hnútar nái sömu samstöðu verður meirihluti þeirra hnúta sem eftir eru að vera heiðarlegir, það er að við þurfum að N−f sé stærra en 2f eða N > 3f. Þannig að venjulega mun kerfi sem er hannað til að lifa af f bilanir hafa samtals N=3f+1 hnúta og sveitarstærð 2f+1. Þegar tillaga hefur farið framhjá ályktunarmörkum er restin af netkerfinu sannfærð um að allar samkeppnistillögur muni mistakast. Þetta er hvernig netið rennur saman að niðurstöðunni.

En í sambands býsanska samningakerfi getur ekki aðeins verið meirihluti (vegna þess að enginn veit heildarstærð netsins), heldur er hugmyndin um meirihluta algjörlega gagnslaus! Ef aðild að kerfinu er opin, þá getur einhver fengið meirihluta einfaldlega með því að framkvæma svokallaða Sybil-árás: endurtekið tengja netið yfir marga hnúta. Svo hvers vegna er hægt að kalla tímabundna sneiðlokun ályktun, og hvernig er það fær um að bæla niður samkeppnistillögur?

Tæknilega séð, engan veginn! Ímyndaðu þér net sex hnúta, þar sem tveir þríburar eru einangraðir í sveitarsneiðum hvors annars. Fyrsti undirhópurinn getur tekið ákvörðun sem sá síðari mun aldrei heyra um, og öfugt. Það er engin leið fyrir þetta net að ná samstöðu (nema fyrir tilviljun).

Þess vegna krefst SCP þess að til að kjósa í sambandsríkinu (og til að mikilvægar setningar blaðsins eigi við), verður netið að hafa eiginleika sem kallast gatnamót sveita. Í neti með þessa eiginleika skarast allar tvær sveitir sem hægt er að smíða alltaf í að minnsta kosti einum hnút. Til að ákvarða ríkjandi viðhorf netkerfisins er þetta eins gott og að hafa meirihluta. Innsæi þýðir þetta að ef einhver sveit samþykkir yfirlýsingu X, getur engin önnur sveit samþykkt neitt annað, því hún mun endilega innihalda einhvern hnút úr fyrstu sveitinni sem hefur þegar kosið X.

Skilningur á Stellar Consensus Protocol
Ef það eru gatnamót sveita í netinu...

Skilningur á Stellar Consensus Protocol
...þá getur þú byggt upp allar tvær sveitir...

Skilningur á Stellar Consensus Protocol
... mun alltaf skerast.

Skilningur á Stellar Consensus Protocol

Skilningur á Stellar Consensus Protocol

(Auðvitað geta hnútar sem skarast reynst vera býsanskir ​​lygar eða á annan hátt slæmir. Í þessu tilviki hjálpa quorum gatnamótin alls ekki að netið komist saman. Af þessum sökum eru margar niðurstöður í SCP hvítbókinni byggðar á skýrar forsendur, eins og það sem er eftir í netheimsókninni jafnvel eftir að hafa fjarlægt slæma hnúta. Til einföldunar skulum við skilja þessar forsendur eftir óbeint í restinni af greininni).

Það kann að virðast ósanngjarnt að ætla að áreiðanleg sveitarleið sé möguleg í neti sjálfstæðra hnúta. En það eru tvær ástæður fyrir því að þetta er svona.

Fyrsta ástæðan er tilvist internetsins sjálfs. Netið er fullkomið dæmi um net sjálfstæðra hnúta með sveitum sem skerast. Flestir hnútar á internetinu tengjast aðeins nokkrum öðrum staðbundnum hnútum, en þessi litlu sett skarast nógu mikið til að hægt sé að ná í hvern hnút frá öðrum hverjum hnút á einhverri leið.

Önnur ástæðan er sérstök fyrir Stellar greiðslunetið (algengasta notkun SCP). Sérhver eign á Stellar netinu hefur útgefanda og leiðbeiningar Stellar krefjast þess að hver útgefandi tilnefni einn eða fleiri hnúta á netinu til að vinna úr innlausnarbeiðnum. Það er þér fyrir bestu að setja þessa hnúta beint eða óbeint í sveitarsneiðar fyrir hverja eign sem þú hefur áhuga á. Ályktanir fyrir alla hnúta sem hafa áhuga á tiltekinni eign munu þá skarast að minnsta kosti á þessum innlausnarhnútum. Hnútar sem hafa áhuga á mörgum eignum munu innihalda alla innlausnarhnúta viðkomandi útgefenda í sveitarhlutum sínum og þeir munu leitast við að sameina allar eignir saman. Að auki, allar eignir sem eru ekki tengdar á þennan hátt öðrum á netinu, og ætti ekki að vera tengdur - þetta er hannað þannig að það sé engin skörun ályktunarhæfis fyrir þetta net (til dæmis vilja bankar frá dollarasvæðinu stundum eiga viðskipti við banka frá evrusvæðinu og banka frá pesóasvæðinu, þannig að þeir eru á sama neti, en enginn þeirra hugsa um sérstakt net barna sem selja hafnaboltakort).

Auðvitað, eftirvænting quorum crossing er það ekki ábyrgð. Önnur býsanskur samningskerfi eiga mikið af flóknum hætti að þakka ábyrgð sveita. Mikilvæg nýjung SCP er að það fjarlægir ábyrgðina á því að búa til ályktanir úr samþykkisalgríminu sjálfu og færir það á umsóknarstigið. Þannig að þrátt fyrir að atkvæðagreiðsla í sambandsríkjum sé nógu almenn til að greiða atkvæði um hvaða mál sem er, fer áreiðanleiki hennar í raun og veru mjög eftir víðtækari merkingu þessara merkinga. Sum ímynduð notkun gæti ekki verið eins til þess fallin að búa til vel tengd net og önnur.

Atkvæðagreiðsla, staðfesting og staðfesting

Í atkvæðagreiðslu í sambandsríkinu byrjar hnútur valkvætt að kjósa um eitthvað gildi V. Þetta þýðir að senda skilaboð til netsins: „Ég er hnútur N, sveitarsneiðarnar mínar eru Q og ég er að kjósa V.“ Þegar hnútur greiðir atkvæði með þessum hætti lofar hann því að hann hafi aldrei greitt atkvæði gegn V og mun aldrei gera það.

Í jafningjaútsendingum sér hver hnútur hvernig hinir kjósa. Þegar hnútur hefur safnað nóg af þessum skilaboðum getur hann fylgst með sveitarsneiðum og reynt að finna sveitir. Ef hann sér ályktun jafningja sem einnig kjósa V getur hann haldið áfram ættleiðing V og sendu þessi nýju skilaboð til netkerfisins: „Ég er hnútur N, sveitarsneiðarnar mínar eru Q og ég samþykki V. Samþykki veitir sterkari tryggingu en einföld atkvæðagreiðsla. Þegar hnútur kýs V getur hann aldrei kosið aðra valkosti. En ef hnútur samþykkir V, mun enginn hnútur á netinu alltaf samþykkja hinn valmöguleikann (setning 8 í SCP hvítbókinni sannar þetta).

Auðvitað eru miklar líkur á því að það verði ekki strax ályktun hnúta sem eru sammála V. Aðrir hnútar mega kjósa önnur gildi. En það er önnur leið fyrir hnút til að fara frá einfaldri atkvæðagreiðslu til samþykkis. N getur sætt sig við annað gildi fyrir W, jafnvel þótt hann hafi ekki kosið það, og jafnvel þótt hann sjái ekki ályktunarhæfni fyrir það. Sjáðu bara til að ákveða að breyta atkvæði þínu blokkunarsett hnútar sem hafa samþykkt W. Lokunarsett er einn hnútur úr hverri sveitarsneið N. Eins og nafnið gefur til kynna getur það blokk einhverja aðra merkingu. Ef allir hnútar í slíku mengi samþykkja W, þá (með setningu 8) verður aldrei hægt að mynda sveit sem tekur annað gildi og því er líka óhætt fyrir N að samþykkja W.

Skilningur á Stellar Consensus Protocol
Hnútur N með þremur sveitarsneiðum.

Skilningur á Stellar Consensus Protocol
BDF er blokkunarsett fyrir N: það inniheldur einn hnút frá hverri sneið af N.

Skilningur á Stellar Consensus Protocol
BE er líka blokkunarsett fyrir N vegna þess að E kemur fyrir í tveimur sneiðum af N.

En lokunarsettið er ekki ályktun. Það væri of auðvelt að plata hnút N til að samþykkja æskilegt gildi ef það væri nóg að hakka aðeins einn hnút í hverja sneið af N. Þess vegna er það ekki endalok atkvæðagreiðslu að samþykkja gildið. Þess í stað verður N að staðfesta gildið, það er að segja, sjá sveit hnúta sem samþykkja það. Ef það kemst svo langt, þá, eins og SCP hvítbókin sannar (í setningu 11), mun restin af netinu líka að lokum staðfesta sama gildi, svo N mun enda samtaka atkvæðagreiðsluna með ákveðið gildi sem niðurstaða.

Skilningur á Stellar Consensus Protocol
Samfylkingaratkvæðagreiðsla.

Ferlið við atkvæðagreiðslu, staðfestingu og staðfestingu felur í sér eina heila umferð samtaka atkvæðagreiðslu. Stellar samstöðureglur sameina margar af þessum umferðum til að búa til fullkomið samstöðukerfi.

Stellar Consensus Protocol

Tveir mikilvægustu eiginleikar samstöðukerfis eru − öryggi и lifun. Samþykkt reiknirit er „öruggt“ ef það getur aldrei gefið mismunandi niðurstöður fyrir mismunandi þátttakendur (afrit Bobs af sögunni mun aldrei stangast á við Carol). „Lífhæfni“ þýðir að reikniritið mun alltaf gefa niðurstöðu, það er að segja að það festist ekki.

Lýst alríkiskosningum öruggt í þeim skilningi að ef hnútur staðfestir gildi V, mun enginn annar hnútur staðfesta hitt gildið. En „mun ekki staðfesta aðra merkingu“ þýðir ekki að það muni endilega staðfesta eitthvað. Þátttakendur geta kosið um svo mörg mismunandi gildi að ekkert nær samþykkismörkum. Þetta þýðir að í alríkiskosningu er engin lifun.

Samkomulag Stellar notar samtaka atkvæðagreiðslu á þann hátt sem tryggir bæði öryggi og lifun. (Öryggis- og lifunarábyrgðir SCP hafa fræðileg takmörk. Hönnunin velur mjög sterka öryggistryggingu, fórnar lítilli þolmörkun, en ef nægur tími gefst er mjög líklegt að samstaða náist.) Í hnotskurn er hugmyndin að hafa mörg sambandsatkvæði um mörg gildi þar til eitt þeirra kemst í gegnum alla SCP atkvæðagreiðsluna sem lýst er hér að neðan.

Gildin sem SCP leitar samstöðu um gætu verið viðskiptasaga eða hádegispöntun eða eitthvað annað, en það er mikilvægt að hafa í huga að þetta eru ekki gildin sem eru samþykkt eða staðfest. Þess í stað fer alríkiskosning fram skv fullyrðingar um þessi gildi.

Fyrstu umferðirnar í alríkiskosningunni fara fram kl tilnefningarstig (tilnefningarfasa), á mengi fullyrðinga eins og „Ég tilnefni V,“ kannski fyrir mörg mismunandi gildi V. Tilgangur tilnefningar er að finna eina eða fleiri staðhæfingar sem fara í gegnum staðfestingu og staðfestingu.

Eftir að hafa fundið sannanlega frambjóðendur heldur SCP áfram í atkvæðagreiðslustigið, þar sem markmiðið er að finna ákveðinn bulletin (þ.e. ílát fyrir fyrirhugað gildi) og ályktunarhæfni sem getur lýst yfir skuldbinda sig fyrir það (skuldbinda). Ef ályktunarhæfur skuldbindur atkvæðagreiðslu er gildi hennar samþykkt sem samstaða. En áður en hnútur getur kosið um atkvæðagreiðslu verður hann fyrst að staðfesta uppsögn allir atkvæðaseðlar með lægra mótgildi. Þessi skref - að hætta við atkvæðaseðla til að finna einn sem hægt er að fremja - fela í sér margar umferðir samtaka atkvæðagreiðslu um margar kosningakröfur.

Eftirfarandi kaflar lýsa tilnefningum og atkvæðagreiðslu nánar.

Tilnefning

Í upphafi tilnefningarfasa getur hver hnút valið sjálfkrafa gildi fyrir V og greitt atkvæði með yfirlýsingunni „Ég tilnefni V. Markmiðið á þessu stigi er að staðfesta tilnefningu einhverra verðmæta með atkvæðagreiðslu.

Ef til vill greiða nógu margir hnútar atkvæði um nægilega ólíkar tillögur til að engin tilnefning geti náð samþykkismörkum. Þess vegna, auk þess að senda út eigin tilnefningaratkvæði, „endurspegla“ hnútar tilnefningar jafnaldra þeirra. Bergmál þýðir að ef hnútur kýs tilnefningu V, en sér skilaboð frá nágranna sem kjósa tilnefningu W, mun hann nú kjósa bæði V og W. (Ekki eru öll jafningjaatkvæði endurómuð við tilnefningu vegna þess að það getur valdið sprengingu um mismunandi tilnefndir. SCP inniheldur kerfi til að stjórna þessum atkvæðum. Í stuttu máli er formúla til að ákvarða "forgang" jafningja frá sjónarhóli hnúts, og aðeins atkvæði forgangshnúta endurspeglast. Því lengur sem tilnefningin er tekur, því lægri sem þröskuldurinn er, þannig að hnúturinn stækkar hóp jafningja sem atkvæði hans mun endurspegla. Forgangsformúlan inniheldur rifanúmerið sem eitt af inntak þess, þannig að jafningi með háan forgang fyrir einn rifa getur verið jafningi með lágan forgang fyrir annað og öfugt).

Hugmyndalega er tilnefningin samhliða, bæði V og W eru aðskilin sambandsatkvæði, hvert fyrir sig fær um að fá staðfestingu eða staðfestingu. Í reynd pakka SCP samskiptaskilaboðum þessum einstöku atkvæðum saman.

Þótt atkvæðagreiðsla um tilnefningu V sé loforð um að greiða aldrei atkvæði gegn tilnefningu V, þá er það á umsóknarstigi - í þessu tilviki SCP - sem ákveðið er hvað "á móti" þýðir. SCP sér ekki yfirlýsingu sem stangast á við "ég tilnefni X" atkvæði, það er, það er engin "ég er á móti því að tilnefna X" skilaboð, þannig að hnúturinn getur kosið til að tilnefna hvaða gildi sem er. Margar af þessum tilnefningum munu hvergi fara, en að lokum mun hnúturinn geta samþykkt eða staðfest eitt eða fleiri gildi. Þegar tilnefndur hefur verið staðfestur verður hann frambjóðandi.

Skilningur á Stellar Consensus Protocol
SCP tilnefning með sambandskosningu. Það geta verið mörg „B“ gildi sett fram af jafningjum og „endurspeglast“ af hnútnum.

Tilnefningar geta leitt til þess að margir staðfestir frambjóðendur. Þess vegna krefst SCP þess að umsóknarlagið bjóði upp á einhverja aðferð til að sameina umsækjendur í einn samsettur (samsett). Sameiningaraðferðin getur verið hvað sem er. Aðalatriðið er að ef þessi aðferð er ákveðin, þá mun hver hnút sameina sömu frambjóðendur. Í hádegiskosnakerfi getur „sameining“ einfaldlega þýtt að hafna einum af tveimur frambjóðendum. (En á ákveðinn hátt: hver hnút verður að velja sama gildi til að endurstilla. Til dæmis, fyrra valið í stafrófsröð). Í Stellar greiðslunetinu, þar sem kosið er um viðskiptasögu, felur sameining tveggja fyrirhugaðra tilnefndra aðila í sér að sameina viðskiptin sem þeir innihalda og nýjasta af tveimur tímastimplum þeirra.

SCP hvítbókin sannar (setning 12) að í lok framlengingarfasa rennur netið að lokum saman í eina samsetningu. En það er vandamál: Sambandsatkvæðagreiðsla er ósamstilltur siðareglur (eins og SCP). Með öðrum orðum, hnútar eru ekki samræmdir eftir tíma, heldur aðeins eftir skilaboðunum sem þeir senda. Frá sjónarhóli hnútsins er óljóst hvenær lauk framlengingarfasa. Og þó að allir hnútar komi á endanum á sama samsetta samsetningu, gætu þeir farið mismunandi leiðir á leiðinni, búið til mismunandi samsettar frambjóðendur á leiðinni og geta aldrei sagt hver er sá síðasti.

En það er eðlilegt. Tilnefning er bara undirbúningur. Aðalatriðið er að takmarka fjölda frambjóðenda til að ná samstöðu, sem á sér stað í ferlinu í framboði (atkvæðagreiðsla).

Hlaupandi

Bulletin er par , þar sem teljari er heil tala sem byrjar á 1 og gildi er frambjóðandi frá tilnefningarstigi. Þetta getur verið eigin frambjóðandi hnúts eða frambjóðandi nágrannahnúts sem samþykktur er af þeim hnút. Í grófum dráttum felur atkvæðagreiðsla í sér endurteknar tilraunir til að þvinga tengslanetið til að ná samstöðu um einhvern frambjóðanda á einhverjum atkvæðaseðli með því að halda hugsanlega mörg alríkisatkvæði um yfirlýsingar um kjörseðla. Teljarar á atkvæðaseðlum halda utan um tilraunir sem gerðar eru og atkvæðaseðlar með hærri tölu ganga framar kjörseðlum með lægri tölu. Ef fréttabréfið festist, ný atkvæðagreiðsla hefst, nú á kjörseðlinum .

Það er mikilvægt að greina merkingar (til dæmis, hver ætti hádegispöntunin að vera: pizza eða salöt), fréttabréf (mótgildi par) og yfirlýsingar um atkvæðagreiðslur. SCP umferðin felur í sér nokkrar atkvæðagreiðslur í sambandsríkinu, einkum um eftirfarandi yfirlýsingar:

  • "Ég er tilbúinn að fremja atkvæðagreiðslu B" og
  • „Ég tilkynni um framsetningu atkvæðagreiðslu B“

Frá sjónarhóli tiltekins hnúts næst samstaða þegar hann finnur atkvæðaseðil B sem hann getur viðurkennt (það er að segja að ályktunarhæfni samþykki) fullyrðinguna "Ég skuldbinda atkvæði B." Frá þessum tímapunkti er óhætt að bregðast við gildinu sem tilgreint er í B - til dæmis að leggja inn þessa pöntun í hádeginu. Það er kallað utanaðkomandi merkingar. Þegar staðfesting á atkvæðaseðlinum hefur verið staðfest getur hnút verið viss um að hver annar hnútur hafi útfært sama gildi eða muni gera það í framtíðinni.

Þrátt fyrir að mörg atkvæði í sambandsríkinu séu hugmyndalega gerð um kröfur um marga mismunandi atkvæðaseðla, skiptast þau ekki á eins mörgum skilaboðum vegna þess að hvert skeyti felur í sér fjölda atkvæða. Ein skilaboð stuðla þannig að ríki margra samtaka atkvæða í einu, til dæmis: „Ég samþykki atkvæðagreiðslur frá kl. áður "

Hvað þýða hugtökin „undirbúin“ og „skuldbinda“?

Hnútur greiðir atkvæði með atkvæðagreiðslu þegar hann er fullviss um að aðrir hnútar muni ekki fremja atkvæðaseðla með mismunandi gildi. Sannfærandi þetta er tilgangurinn með því að útbúa umsóknina. Atkvæðagreiðsla sem segir „Ég er tilbúinn að fremja atkvæðaseðil B“ er loforð um að greiða aldrei minni kjörseðil en B, þ.e.a.s. með minni talningu (SCP krefst þess að gildin í atkvæðaseðlum séu í ákveðinni röð. Þannig fréttabréf minna , ef N1

Af hverju þýðir „ég er tilbúinn að fremja atkvæðaseðil B“ „Ég lofa að greiða aldrei minni kjörseðla en B“? Vegna þess að SCP skilgreinir fóstureyðingu sem andstæða skuldbindingar. Atkvæðagreiðsla til að undirbúa atkvæðagreiðslu felur einnig í sér atkvæðagreiðslu um að ógilda aðra atkvæðaseðla og eins og við ræddum áðan er eitt atriði loforð um að greiða aldrei atkvæði gegn því.

Áður en hann sendir út skuldbindingu verður hnútur fyrst að finna bulletin sem hann getur staðfest að sé tilbúinn. Með öðrum orðum, það framkvæmir samtaka atkvæðagreiðslu um efnið „Ég er tilbúinn að fremja atkvæðaseðil B,“ hugsanlega á mörgum mismunandi atkvæðaseðlum, þar til það finnur einn sem samþykkir ályktun.

Hvaðan koma kjörseðlarnir til að undirbúa atkvæðagreiðsluna? Í fyrsta lagi sendir hnúturinn út undirbúning til að kjósa <1,C>, þar sem C er samsetti frambjóðandinn sem framleiddur er á tilnefningarstigi. Hins vegar, jafnvel eftir að undirbúningur fyrir atkvæðagreiðslu er hafinn, geta tilnefningar leitt til þess að fleiri frambjóðendur virðast verða að nýjum kjörseðlum. Á sama tíma geta jafnaldrar haft mismunandi frambjóðendur og þeir geta myndað blokkunarsett sem tekur við „ég er tilbúinn til að fremja B2 atkvæðagreiðsluna,“ sem mun sannfæra hnútinn um að samþykkja það líka. Að lokum, það er tímamörk sem framkallar nýjar atkvæðagreiðslur um nýja atkvæðaseðla með hærri fjölda ef núverandi atkvæðaseðlar eru fastir.

Um leið og hnúturinn finnur atkvæðaseðil B sem hann getur staðfest að sé undirbúinn, sendir hann út ný skilaboð „Framkvæmdu atkvæðaseðil B. Þessi atkvæðagreiðsla segir jafningjum að hnúturinn mun aldrei gefast upp B. Reyndar ef B er kjörseðill , síðan „Framleiða atkvæðagreiðslu " merkir skilyrðislaust samþykki til að greiða atkvæði um reiðubúin hvern atkvæðaseðil frá til <∞, s>. Þetta aukagildi hjálpar öðrum jafningjum að ná fram jafningjanum ef þeir eru enn á fyrri stigum samskiptareglunnar.

Á þessu stigi er rétt að undirstrika enn og aftur að þetta eru ósamstilltar samskiptareglur. Bara vegna þess að einn hnútur sendir atkvæði fyrir skuldbindingu þýðir ekki að jafnaldrar hans geri það líka. Sumir þeirra kunna enn að greiða atkvæði um yfirlýsingar til undirbúnings atkvæðagreiðslu, aðrir kunna að hafa þegar gert út á merkinguna. SCP útskýrir hvernig hnútur ætti að vinna úr hverri tegund jafningjaskilaboða óháð fasa þeirra.

Ef skilaboðin „Ég hef tilkynnt um skuldbindingu » ekki hægt að taka við eða staðfesta, það er að segja líkurnar á því að skilaboðin verði samþykkt eða staðfest eða - eða, í öllu falli, hvaða atkvæðaseðill sem er með gildið C, en ekki einhver annar, þar sem hnúturinn hefur þegar lofað að hætta við . Þegar hnútur sendir út atkvæði um skuldbindingu verður það C eða ekkert, eftir því hversu langt samstaðan nær. Hins vegar er þetta ekki enn nóg fyrir hnútinn til að gera C utanaðkomandi. Sumir býsanskir ​​jafningjar (sem eru færri en sveitarfélag, miðað við öryggisforsendur okkar) kunna að ljúga að hnútnum. Það að samþykkja og síðan staðfesta einhverja atkvæðaseðla (eða úrval atkvæða) er það sem gefur hnútnum sjálfstraust til að loksins útfæra C.

Skilningur á Stellar Consensus Protocol
SCP atkvæðagreiðsla í gegnum sambandskosningu. Ekki sýnt: Tímamælirinn getur farið í gang hvenær sem er, aukið talningu á atkvæðaseðlinum (og hugsanlega búið til nýja samsetningu af fleiri tilnefndum frambjóðendum).

Og það er allt! Þegar netið hefur náð samstöðu er það tilbúið til að gera það aftur og aftur. Á Stellar greiðslunetinu gerist þetta um það bil einu sinni á 5 sekúndna fresti: afrek sem krefst bæði öryggis og lífsafkomu sem SCP tryggir.

SCP getur náð þessu með því að treysta á margar umferðir samtaka atkvæðagreiðslu. Samtök atkvæðagreiðsla er möguleg með hugmyndinni um sveitarsneiðar: hópur jafningja sem hver hnút hefur ákveðið að treysta sem hluta af (huglægri) ályktun sinni. Þessi uppsetning þýðir að hægt er að ná samstöðu jafnvel í neti með opinni aðild og býsanska blekkingum.

Frekari lestur

  • Upprunalega SCP hvítbókina er að finna hérOg hér drög að forskriftum um framkvæmd þess.
  • Upprunalegur höfundur SCP-samskiptareglunnar, David Mazier, útskýrir hana á einfaldaðan (en samt tæknilegan) hátt. hér.
  • Þú gætir hafa verið hissa á að finna ekki hugtökin „námuvinnsla“ eða „sönnun um vinnu“ í þessari grein. SCP notar ekki þessar aðferðir, en sum önnur algrím gera það. Zane Witherspoon skrifaði aðgengilegt yfirlit yfir samstöðu reiknirit.
  • Skref fyrir skref lýsingu einfalt net sem nær samstöðu í einni fullri umferð af SCP.
  • Fyrir lesendur sem hafa áhuga á SCP útfærslum: sjá C++ kóða, notað af Stellar greiðslunetinu, eða Fara kóða, sem ég skrifaði til að fá betri skilning á SCP.

Heimild: www.habr.com

Bæta við athugasemd