Elrond's Design Rationale

Bemærk: I hele denne artikel af forslagsstiller henviser vi til en node / enhed i det netværk, der er ansvarlig på et bestemt tidspunkt for at foreslå en ny blok, mens validator (er) vil udpege de noder / enheder, der er ansvarlige for validering af en blok, der er fremsat af forslagsstilleren, og således "vouchering" for forslagsstilleren.

De to problemer, som Elrond forsøger at løse fra get-go, er stigning i gennemstrømning - opnåelig gennem afskærmning og fald i energiforbruget - opnåelig ved at gå fra en proof-of-work-baseret konsensus til en proof-of-stake-konsensus. Hver af disse to tænder kræver forskellige aspekter, der tages i betragtning, når man designer arkitekturen og komponenterne omkring den.

PoS-aspektet skal arbejde omkring alle (mest?) Almindelige problemer i PoS-systemer - og derved incitament til rationel adfærd. Afskærmningsaspektet har brug for mekanismer for at nå til aftaler inden for hver mindre del af netværket (skår) samt aftale mellem deltagere i en transaktion, der spænder over flere skår. Og alle disse skal også tage hensyn til den potentielle byzantinske (modstridende) adfærd.

Før noget går det nærmere på en fælles tilgang, når vi taler om blockchains baseret på proof-of-stake: alle har en tendens til at måle tid med to enheder; den åbenlyse kaldes blokeringstid (intervallet mellem to på hinanden følgende blokke), men også en højere orden, kaldet epoke eller æra. Fra dette synspunkt er det interval, der kræves for at generere et specifikt antal (X) af blokke, en æra (således altid æra = X * -blokeringstid).

Kend din fjende…

Alle PoS-blockchains, der findes i dag eller blot teoretiseret, bruger krypto-økonomiske incitamenter for at sikre, at mennesker (som deres netværkspersoner repræsenteret af noder) følger et forventet mønster - knuder får belønning for at gøre gode ting (for netværket), og de blive straffet for at have gjort dårlige ting. Mens denne gulerod-og-stick-fremgangsmåde i nogle tilfælde overvægter den ene side af ligningen (dvs. der er tilfælde, hvor der ikke er nogen straf for modstridende opførsel), er de fleste af de gange, disse to sider er afbalancerede. Det er også værd at bemærke, at straffe i vid udstrækning er relateret til en indsats, som hver knude låser fast i en foruddefineret periode (normalt flere epoker). Den modstridende opførsel i fravær af denne låste indsats, som knuden kan miste (delvis eller helt) kaldes Intet på spil.

En anden type modstridende adfærd relateret til låste indsatser involverer en knude, der er en del af "beslutning" -processen, hvorefter han dropper fra denne proces og henter sin indsats. Nogen tid efter disse begivenheder, ved hjælp af legitimationsoplysninger, der er knyttet til indsatsen (dvs. nøgler), kan noden / enheden forsøge at "forfalske" en anden historie (enten sig selv eller ved at give disse legitimationsoplysninger til en ondsindet part); og dermed omdanne angrebet til et forsinket intet, der står på spil, normalt benævnt Langtrækangreb. Fra dette synspunkt, med henvisning til betingelserne, der er skitseret i den forrige artikel, er det vigtigt, at stavlåsning først finder sted, når de blokke, der er foreslået eller valideret af noden i diskussionen, er afsluttet.

I nogle typer angreb på lang afstand, der udføres i blockchains, der implementerer sanktioner (primært dem med livlige mål), kan offentliggørelse af denne alternative historie muligvis give indtryk af, at nogle af knudepunkterne ikke har udført deres pligter og dermed (urimeligt) straffes. Denne type adversarial adfærd kaldes Stake-blødning angreb [SB].

Sidst, men bestemt ikke mindst, kan vi have situationer, hvor noder er isoleret fra netværket af modstandere, der 'fodrer' dem et forvrænget syn på virkeligheden (f.eks. Kun videresendstransaktioner fra deres 'venner' og censurerer legitime transaktioner). Disse typer angreb kaldes formørkelsesangreb.

... men kend også dine svagheder til at modvirke

Som tidligere beskrevet er PoS-systemer nødt til at dække et par svagere punkter, når de håndterer modstandere, to af de vigtigste er:

  • Ekstern: DoS-ing (eller på anden måde forringelse) af den eller de aktuelle validatorer eller nuværende forslagsstiller, så de ikke er i stand til at kommunikere med resten af ​​noder og ikke kan tage beslutninger. Dette påvirker naturligvis blockchains livskraftegenskaber, men kan også påvirke sikkerheden (hvilket fører til uforudsigelige resultater).
  • Internt: Knudepunkter (identiteter eller enheder), der vælges på et specifikt trin til at påtage sig en af ​​de 'officielle' roller til næste trin, kan opføre sig adversarial (f.eks. Foreslå ugyldige blokke, nægte at deltage i kollektiv underskrift procedurer osv.).

Hvis du husker fra den forrige artikel, blev tre typer afskærmning beskrevet - netværk, transaktion og tilstand. Vi har valgt at udføre statsafskærmning, og som svar på disse to særlige problemer, der netop er skitseret, har vi fundet to koncepter, som vi har kaldt Secure Proof of Stake and Adaptive State Sharding.

En roman tilgang til adversarial adfærd gennem robust tilpasningsevne

Alles intuition fortæller, at jo længere tid på forhånd en modstander kender forslags-knudepunktet og / eller validatorknudepunkterne - startende fra nodens identitet, men måske også deres 'netværkskoordinater' - jo mere skade denne modstander kan påføre noden (og efter forlængelse , til netværket). Et endnu værre scenario er, hvis modstanderen ved at vide længe på forhånd, hvem der skal være ansvarlig for et bestemt blokforslag, kan samgå med den nævnte forslagsstiller (eller validator), så de foreslår (eller validerer) ugyldige blokke (f.eks. Tillader en dobbelt bruge eller mynte mønter ud af luften - ikke i modsætning til hvad centralbanker gør i dag :-D). Som et resultat er det ønskeligt at kende en nodes rolle for et specifikt trin (blok) så lidt på forhånd som muligt.

For at løse dette forhold har vi taget følgende fremgangsmåde: vi bruger den aktuelle bloksignatur som en tilfældighedskilde og baseret på, at vi vælger et / nuværende forslagsstiller og b / nuværende validatorsæt. En måde dette kan opnås på er, at alle berettigede kører en verificerbar tilfældig funktion (VRF) på den aktuelle blok hash og kommer med et tilfældigt tal (og et bevis på, at tilfældigt tal blev korrekt genereret af den valgte VRF).

De tilfældige tal er arrangeret (sige lav til høj) og den første (producent af det mindste antal) er forslagsstilleren, den næste N er validatorerne. Mens forslagsstilleren kan vælge en bestemt blok, vil de ikke på denne måde kunne fortælle, hvilken af ​​de andre konsensusdeltagere, der får et måske mindre tilfældigt tal på det næste trin.

For at gøre tingene endnu vanskeligere for byzantinske knudepunkter har vi også udtænkt en proces, hvorfra en gang fra tid til anden (sig hver epoke) en del af skærsknudepunkterne tildeles til forskellige skær, uden at nogen i netværket kan fortælle på forhånd noden bliver tildelt igen, og til hvilken skæve den vil blive flyttet. Omfordelingsprocessen kan igen være resultatet af at køre en VRF.

Det særlige, vi har brugt ved at designe vores gulerod-og-stick-mekanismer, er, at hver knude udover belønninger og nedskæring har en rating, der repræsenterer visningen af ​​netværket på den nævnte nodes opførsel. At spille efter reglerne øger (op til en grænse) knudepunktets bedømmelse, mens adversarial opførsel reducerer den.

Denne bedømmelse vil blive kombineret med nodens indsats ved beregning af stavrelaterede sandsynligheder - dvs. i sidste ende en vægt på brugerens indsats. Positive ratings vil fungere som om nodeens indsats er større end den faktiske indsats, mens negative ratings vil have den samme effekt som at sænke nodeens indsats. Faktiske belønninger og straffe kunne også påvirkes af denne vurdering (således ville en positiv opførsel gavne en knude mere i det lange løb end en negativ, hvis man antager den samme indsats til at starte med)

Takeaways

Afslutningsvis - vi satte os til at bygge denne nye blockchain-arkitektur ved at finde de optimale (vi tror) mekanismer, som vi:

  • Incitamenter god opførsel - ved at bede enheder, der ønsker at "spille" for at "lægge deres penge, hvor deres mund er", og samtidig give belønning for at være en del af konsensusmekanismen
  • Minimer bias-evnen ved bestemte beslutninger og deltagernes udsættelse for angreb ved at tage nogle beslutninger (skårdeløsning, gruppe- og ledervalg) baseret på en tilfældighedskilde (blok- og nodeunderskrifter).
  • Eliminer (eller i det mindste drastisk mindsk sandsynligheden for) kollusion ved at blande knudepunkter i skår fra tid til anden og også skifte roller inde i et skær

Referencer

[SB] https://eprint.iacr.org/2018/248.pdf, “Stake-Bleeding Attacks
om Proof-of-Stake Blockchains ”
[LRA] https://blog.cosmos.network/consensus-compare-casper-vs-tendermint-6df154ad56ae “Consensus Compare: Casper vs. Tendermint”

Besøg os for mere information:

  • Officiel webside: www.elrond.com
  • Elrond Github: https://github.com/ElrondNetwork
  • Whitepaper: https://elrond.com/files/Elrond_Whitepaper_EN.pdf
  • Twitter: https://twitter.com/elrondnetwork