Elrond's Design Rationale

Opmerking: in dit artikel van de indiener verwijzen we naar een knooppunt / entiteit in het netwerk die op een specifiek tijdstip verantwoordelijk is voor het voorstellen van een nieuw blok, terwijl validator (en) de knooppunten / entiteiten zullen aanwijzen die verantwoordelijk zijn voor het valideren van de blok naar voren gebracht door de indiener, dus effectief "instaan" voor de indiener.

De twee problemen die Elrond vanaf het begin probeert op te lossen, zijn een toename van de doorvoer - haalbaar door sharding en een daling van het energieverbruik - haalbaar door van een consensus op basis van werkbewustzijn over te gaan naar een consensusbevestiging. Voor elk van deze twee tanden moet rekening worden gehouden met verschillende aspecten bij het ontwerpen van de architectuur en de componenten eromheen.

Het PoS-aspect moet alle (meest?) Veelvoorkomende problemen in PoS-systemen omzeilen - waardoor rationeel gedrag wordt gestimuleerd. Het scherfaspect heeft mechanismen nodig om afspraken te maken binnen elk kleiner deel van het netwerk (scherf), evenals overeenstemming tussen deelnemers aan een transactie die meer scherven omvat. En al deze moeten ook rekening houden met het potentiële Byzantijnse (tegenstander) gedrag.

Laten we allereerst een gemeenschappelijke aanpak bespreken wanneer we het hebben over blockchains op basis van bewijs van belang: iedereen neigt de tijd te meten met twee eenheden; de voor de hand liggende wordt bloktijd genoemd (het interval tussen twee opeenvolgende blokken) maar ook een van hogere orde die tijd of tijdperk wordt genoemd. Vanuit dit oogpunt is het interval dat vereist is om een ​​specifiek aantal (X) blokken te genereren een tijdperk (dus altijd tijdperk = X * bloktijd).

Ken je vijand…

Alle PoS-blockchains, die vandaag bestaan ​​of alleen theoretisch zijn, gebruiken crypto-economische prikkels om ervoor te zorgen dat het gedrag van mensen (zoals hun netwerkpersonages vertegenwoordigd door knooppunten) een verwacht patroon volgt - knooppunten worden beloond voor het doen van goede dingen (voor het netwerk) en zij gestraft worden voor het doen van slechte dingen. Hoewel in sommige gevallen deze carrot-and-stick-benadering een kant van de vergelijking te veel benadrukt (d.w.z. er zijn geen gevallen waarin er geen straffen zijn voor tegenstrijdig gedrag), zijn deze twee kanten meestal in evenwicht. Het is ook vermeldenswaard dat straffen grotendeels gerelateerd zijn aan een inzet die elke knoop vergrendelt voor een vooraf gedefinieerde periode (meestal meerdere tijdvakken). Het tegenstandersgedrag bij afwezigheid van deze vergrendelde inzet die de knoop (geheel of gedeeltelijk) kan verliezen, wordt niets-op-inzet aanval genoemd.

Een ander soort tegengedrag in verband met vergrendelde inzetten houdt in dat een knooppunt deel uitmaakt van het "beslissingsproces", vervolgens afhaakt van dit proces en zijn inzet terughaalt. Enige tijd na deze gebeurtenissen, kan de node / entiteit met behulp van de referenties die aan de ring zijn gekoppeld (d.w.z. sleutels) proberen een andere geschiedenis te "vervalsen" (hetzij zelf, hetzij door deze referenties aan een kwaadwillende partij te verstrekken); waardoor de aanval wordt omgezet in een vertraagde niets op het spel, meestal langeafstandsaanval genoemd. Vanuit dit oogpunt, verwijzend naar de voorwaarden die in het vorige artikel zijn geschetst, is het belangrijk dat het ontgrendelen van de ring pas plaatsvindt nadat de blokken die zijn voorgesteld of gevalideerd door het knooppunt in kwestie zijn afgerond.

Bij sommige soorten langeafstandsaanvallen uitgevoerd in blockchains die sancties implementeren (in principe die met levendigheidsdoelen), kan het publiceren van deze alternatieve geschiedenis de indruk wekken dat sommige knooppunten hun taken niet hebben uitgevoerd en dus (oneerlijk) worden gestraft. Dit type tegenwerkers wordt ringbloeding genoemd [SB].

Ten slotte, maar zeker niet het minst, kunnen we situaties hebben waarin knooppunten door tegenstanders van het netwerk worden geïsoleerd, waardoor ze een vertekend beeld van de werkelijkheid krijgen (bijvoorbeeld alleen transactietransacties van hun ‘vrienden’ en legitieme transacties censureren). Dit soort aanvallen worden eclipse-aanvallen genoemd.

... maar ken ook je zwakke punten om tegen te gaan

Zoals eerder geschetst, moeten PoS-systemen een paar zwakkere punten behandelen bij het omgaan met tegenstanders, twee van de belangrijkste zijn:

  • Extern: de DoS-ing (of anderszins aantasting) van de huidige validator (s) of huidige aanbieder, zodat deze niet in staat zijn om met de rest van de knooppunten te communiceren en geen beslissingen kunnen nemen. Dit heeft uiteraard invloed op de mogelijkheden van de blockchain, maar kan ook de beveiliging beïnvloeden (wat leidt tot onvoorspelbare resultaten).
  • Intern: knooppunten (identiteiten of entiteiten) die bij een specifieke stap worden gekozen om een ​​van de 'officiële' rollen voor de volgende stap (pen) op te nemen, kunnen zich op een vijandige manier gedragen (bijv. Ongeldige blokken voorstellen, weigeren deel te nemen aan collectieve ondertekening procedures enz.).

Als u het zich herinnert uit het vorige artikel, werden drie soorten sharding beschreven: netwerk, transactie en status. We hebben ervoor gekozen state sharding te doen en, als reactie op deze twee specifieke problemen die zojuist zijn geschetst, hebben we twee concepten bedacht die we Secure Proof of Stake en Adaptive State Sharding hebben genoemd.

Een nieuwe benadering van vijandig gedrag door robuuste adaptiviteit

De intuïtie van iedereen zegt dat hoe langer van tevoren een tegenstander op de hoogte is van de voorstellingsknooppunt en / of validatorknooppunten - uitgaande van de knooppuntidentiteit maar misschien ook hun 'netwerkcoördinaten' - hoe meer schade deze tegenstander aan het knooppunt kan toebrengen (en bij uitbreiding) , op het netwerk). Een nog slechter scenario is als de tegenstander, door lang van tevoren te weten wie verantwoordelijk zal zijn voor een bepaald blokvoorstel, kan samenspannen met de genoemde indiener (of validator), zodat zij ongeldige blokken voorstellen (of valideren) (bijvoorbeeld een dubbele munten uitgeven of slaan uit het niets - niet anders dan wat centrale banken vandaag doen :-D). Daarom is het wenselijk om zo snel mogelijk de rol van een knooppunt voor een specifieke stap (blok) te kennen.

Om dit raadsel op te lossen, hebben we de volgende aanpak gekozen: we gebruiken de huidige bloksignatuur als een willekeurigheidsbron en op basis daarvan kiezen we een / huidige aanbieder en b / huidige validatorset. Een manier waarop dit kan worden bereikt, is dat iedereen die in aanmerking komt een Verifiable Random Function (VRF) uitvoert op de huidige blokhash en een willekeurig nummer bedenkt (en een bewijs dat het willekeurige nummer correct is gegenereerd door de gekozen VRF).

De willekeurige getallen zijn gerangschikt (zeg laag naar hoog) en de eerste (producent van het kleinste getal) is de indiener, de volgende N zijn de validators. Op deze manier kunnen de indiener een bepaald blok kiezen, maar niet weten welke van de andere consensusdeelnemers bij de volgende stap een misschien kleiner willekeurig getal krijgen.

Om het voor Byzantijnse knooppunten nog moeilijker te maken, hebben we ook een proces bedacht waarbij van tijd tot tijd (zeg elk tijdperk) een deel van de scherfknooppunten wordt toegewezen aan verschillende scherven, zonder dat iemand in het netwerk van tevoren kan vertellen wat knoop zal opnieuw worden toegewezen en bovendien naar welke scherf zal worden verplaatst. Het toewijzingsproces kan opnieuw het resultaat zijn van het uitvoeren van een VRF.

De bijzonderheid die we hebben gebruikt bij het ontwerpen van onze carrot-and-stick-mechanismen is dat naast beloningen en scheuren elke knoop een beoordeling heeft die het beeld van het netwerk op het gedrag van de knoop vertegenwoordigt. Als je je aan de regels houdt, neemt de rating van het knooppunt toe (tot een limiet), terwijl het gedrag door tegenstanders afneemt.

Deze beoordeling wordt gecombineerd met de inzet van het knooppunt bij het berekenen van de inzetgerelateerde kansen - d.w.z. uiteindelijk een gewicht op de inzet van de gebruiker. Positieve beoordelingen werken alsof de inzet van de knoop groter is dan de daadwerkelijke inzet, terwijl negatieve beoordelingen hetzelfde effect hebben als het verlagen van de inzet van de knoop. Feitelijke beloningen en straffen kunnen ook worden beïnvloed door deze beoordeling (dus een positief gedrag zou op de lange termijn meer voordeel opleveren voor een knoop dan een negatieve, uitgaande van dezelfde inzet om mee te beginnen)

Takeaways

Concluderend: we zijn van plan deze nieuwe blockchain-architectuur te bouwen door de optimale (we denken) mechanismen te vinden waarmee we:

  • Stimuleer goed gedrag - door entiteiten die willen 'spelen' te vragen om 'hun geld te plaatsen waar hun mond is', en tegelijkertijd beloningen te bieden voor deelname aan het consensusmechanisme
  • Minimaliseer de bias-mogelijkheid van bepaalde beslissingen en de blootstelling van deelnemers aan aanvallen door enkele beslissingen te nemen (shard-toewijzing, groeps- en leidersverkiezingen) op basis van een willekeurige bron (blok- en knooppunthandtekeningen).
  • Elimineer (of verminder op zijn minst drastisch de waarschijnlijkheid van) collusie door van tijd tot tijd de knopen in scherven te schudden en ook de rollen binnen een scherf te veranderen

Referenties

[SB] https://eprint.iacr.org/2018/248.pdf, “Stake-bloedende aanvallen
over proof-of-stake blockchains ”
[LRA] https://blog.cosmos.network/consensus-compare-casper-vs-tendermint-6df154ad56ae "Consensus vergelijken: Casper versus Tendermint"

Bezoek ons ​​voor meer informatie:

  • Officiële website: www.elrond.com
  • Elrond Github: https://github.com/ElrondNetwork
  • Whitepaper: https://elrond.com/files/Elrond_Whitepaper_EN.pdf
  • Twitter: https://twitter.com/elrondnetwork