Skalerbarhet i blockchain: Når, hvor, hvordan?

Blockchain Scalability, et veldig reelt problem!

(hvis du vil hjelpe til med å løse problemet, sjekk ut våre blockchain-kurs og begynn å eksperimentere)

Kryptovaluta blir mer og mer vanlig. La oss faktisk sjekke hvor populært bitcoin og ethereum har blitt over tid. Dette er en graf over antall daglige bitcoin-transaksjoner sporet gjennom årene:

Skalerbarhet i blockchain: Når, hvor, hvordan?

Bilde med tillatelse: Wikipedia

Og her har vi antall Ethereum-transaksjoner per måned gjennom årene:

Skalerbarhet i blockchain: Når, hvor, hvordan?

Bilde med tillatelse: Etherscan

Nå kan dette se veldig imponerende ut, men her er tingen, den opprinnelige utformingen av kryptovalutaer var ikke ment for utbredt bruk og tilpasning. Selv om det var håndterbart når antall transaksjoner var mindre, siden de har blitt mer populære, har mange problemer kommet opp.

Tren for å bli en Blockchain-utvikler

Start din gratis prøveversjon i dag!

Skalerbarhetsproblemet for kryptovalutaer

For at bitcoin og ethereum skal konkurrere med mer vanlige systemer som visa og paypal, må de alvorlig øke spillet sitt når det gjelder transaksjonstider. Mens paypal administrerer 193 transaksjoner per sekund, og visa styrer 1667 transaksjoner per sekund, gjør ethereum bare 20 transaksjoner per sekund mens bitcoin klarer hele 7 transaksjoner per sekund! Den eneste måten disse tallene kan forbedres på, er hvis de jobber med skalerbarheten.

Hvis vi skulle kategorisere de viktigste skalerbarhetsproblemene i kryptovalutaene, ville de være:

  • Det tar tid å sette en transaksjon i blokken.
  • Det tar tid å oppnå enighet.

Tiden det tar å sette en transaksjon i blokken

I bitcoin og ethereum går en transaksjon gjennom når en gruvearbeider legger transaksjonsdataene i blokkene de har utvunnet. Så antar at Alice vil sende 4 BTC til Bob, hun vil sende disse transaksjonsdataene til gruvearbeiderne, gruvearbeideren vil deretter legge dem i blokkeringen deres og transaksjonen blir ansett som fullført.

Når bitcoin imidlertid blir mer og mer populært, blir dette mer tidkrevende. I tillegg er det også det minste spørsmål om transaksjonsgebyrer. Ser du, når gruvearbeidere bryter en blokk, blir de midlertidige diktatorer for den blokken. Hvis du vil at transaksjonene dine skal gjennomføres, må du betale en avgift til den ansvarlige gruvearbeideren. Denne “bompenger” kalles transaksjonsgebyrer.

Jo høyere transaksjonsgebyrene er, desto raskere vil gruvearbeiderne sette dem opp i blokken. Selv om dette er ok for folk som har et stort lager av bitcoins, er det kanskje ikke de mest økonomisk levedyktige alternativene. Her er faktisk en interessant studie for deg. Dette er tiden folk måtte vente på om de betalte lavest mulig transaksjonsgebyr:

Skalerbarhet i blockchain: Når, hvor, hvordan?

Hvis du betaler lavest mulig transaksjonsgebyr, må du vente på en median tid på 13 minutter for at transaksjonen skal gjennomføres.

Oftere enn ikke måtte transaksjonene vente til en ny blokk ble utvunnet (som er 10 minutter i bitcoin), fordi de eldre blokkene ville fylle opp med transaksjoner. Bitcoin har en størrelsesgrense på 1 mb (dette vil bli utvidet senere), noe som begrenser transaksjonens bæreevne sterkt.

Ok, så hva med ethereum?

Teoretisk sett skal Ethereum behandle 1000 transaksjoner per sekund. I praksis er imidlertid eterum begrenset med 6,7 millioner gassgrenser på hver blokk.

Skalerbarhet i blockchain: Når, hvor, hvordan?

For å forstå hva “gass” betyr, tenk på denne situasjonen. Alice har utstedt en smart kontrakt for Bob. Bob ser at elementene i kontrakten vil koste X mengde bensin. Bensin betyr mengden beregningsinnsats fra Bobs side. Følgelig vil han belaste Alice for mengden bensin han brukte.

Slik ser gassprisdiagrammet ut:

Skalerbarhet i blockchain: Når, hvor, hvordan?

Bilde med tillatelse: Etherscan.

Hva betyr dette for Blockchain-skalerbarhet?

Siden hver blokk har en gassgrense, kan gruvearbeiderne bare legge til transaksjoner hvis gassbehov legger opp til noe som er lik eller mindre enn gassgrensen til blokken.

eterygassgrense

Nok en gang er det begrenset med en rekke transaksjoner.

Tiden det tar å oppnå enighet

For tiden er alle blockchain-baserte valutaer strukturert som et peer-to-peer-nettverk. Deltakerne, også kalt nodene, får ikke ekstra spesielle privilegier. Tanken er å skape et egalitært nettverk. Det er ingen sentral autoritet, og det er heller ikke noe hierarki. Det er en flat topologi.

Alle desentraliserte kryptovalutaer er strukturert slik på grunn av en enkel grunn, for å holde seg tro mot sin filosofi. Tanken er å ha et valutasystem, der alle blir behandlet som likeverdige og det ikke er noe styrende organ som kan bestemme verdien av valutaen ut fra et innfall. Dette gjelder både bitcoin og ethereum.

Nå, hvis det ikke er noen sentral enhet, hvordan ville alle i systemet få vite at en bestemt transaksjon har skjedd? Nettverket følger sladderprotokollen. Tenk på hvordan sladder sprer seg. Anta at Alice sendte 3 ETH til Bob. Nodene nærmest henne vil bli kjent med dette, og så vil de fortelle nodene nærmest dem, og så vil de fortelle naboene, og dette vil fortsette å spre seg til alle vet. Noder er i utgangspunktet dine nysgjerrige, irriterende slektninger.

Husk at nodene følger et tillitsløst system. Hva dette betyr er, bare fordi node A sier at en transaksjon er gyldig, betyr det ikke at node B vil tro det er slik. Node B vil gjøre sitt eget beregningssett for å se om transaksjonen faktisk er gyldig eller ikke. Dette betyr at hver node må ha sin egen kopi av blockchain for å hjelpe dem med å gjøre det. Som du kan forestille deg, gjør dette hele prosessen veldig treg.

Problemet er at jo mer antall noder øker i et kryptovaluta-nettverk, i motsetning til andre teknologideler, jo langsommere blir hele prosessen. Konsensus skjer lineært, noe som betyr at vi antar at det er 3 noder A, B og C.

For at konsensus skal oppstå, vil A først gjøre beregningene og verifisere, og deretter vil B gjøre det samme og deretter C.

Imidlertid, hvis det er en ny node i systemet kalt “D”, vil det legge til en ny node til konsensussystemet, noe som vil øke den totale tidsperioden. Etter hvert som kryptokurver har blitt mer populære, har transaksjonstidene blitt tregere.

Dette er spesielt et problem med etereum, fordi det har flest noder blant alle kryptovalutaer. Takket være ICO-mani ønsker alle å ha et stykke eterum, noe som har økt antall noder i nettverket betydelig. Faktisk, i mai 2017 hadde ethereum 25.000 noder sammenlignet med Bitcoins 7000 !! Det er mer enn tre ganger. Faktisk øker antall noder fra april til mai med 81% … det er nesten dobbelt!

Skalerbarhet i blockchain: Når, hvor, hvordan?

Bilde med tillatelse: Tillitsnoder.

Så hva er løsningene på Blockchain-skalerbarhetsproblemene?

Både ethereum og Bitcoins har kommet med en rekke løsninger som enten allerede har vært eller kommer til å bli implementert. La oss gå gjennom noen av de store.

De vi skal dekke er:

  • Segwit.
  • Blokkstørrelse Øk.
  • Sharding.
  • Bevis for stav.
  • Off Chain State Channels.
  • Plasma

Segwit (eksklusivt bare for bitcoin)

Blockstreams Dr Peter Wiulle så for seg Segwit som en av funksjonene i sidekjeden som vil gå parallelt med den viktigste bitcoin-blockchain.

sidekjedet diagram

Aktivering av Segwit alias Segregated Witness vil bety at alle signaturdata for hver transaksjon vil bevege seg fra hovedkjeden til sidekjeden. Hva mener vi med signaturdata? La oss se på dataene bak en scene for en transaksjon:

Koden for transaksjonsdetaljer

Slik ser transaksjonen ut i kodeskjemaet. Anta at Alice vil sende 0,0015 BTC til Bob, og for å gjøre det, sender hun innganger som er verdt 0,0015770 BTC. Slik ser transaksjonsdetaljene ut:

Skalerbarhet i blockchain: Når, hvor, hvordan?

Bilde med tillatelse: djp3 youtube-kanal.

Det første du ser:

Skalerbarhet i blockchain: Når, hvor, hvordan?

Er navnet på Transaksjonen også hash for inngangs- og utgangsverdien.

  • Vin_sz er antall inndata, siden Alice sender dataene ved hjelp av bare en av hennes tidligere transaksjoner, er det 1.
  • Vout_sz er 2 fordi de eneste utgangene er Bob og endringen.

Dette er inngangsdataene:

Skalerbarhet i blockchain: Når, hvor, hvordan?

Ser du inngangsdataene? Alice bruker bare en inngangstransaksjon ettersom vin_sz er 1. Inndataene er 0,0015770 BTC.

Under inngangsdataene er hennes signaturdata (Husk dette for neste avsnitt)

Under alt dette er utdataene:

  • Den første delen av dataene betyr at Bob får 0,0015 BTC.
  • Den andre delen betyr at 0.00005120 BTC er det Alice får tilbake som endring.
  • Husk nå at inngangsdataene våre var 0,0015770 BTC? Dette er større enn (0,0015 + 0,00005120). Underskuddet på disse to verdiene er transaksjonsgebyret som gruvearbeiderne samler inn.

Dette er anatomien til en enkel transaksjon.

Så hva vil skje med å aktivere Segwit?

Problemet med disse signaturdataene er at de er veldig store. Faktisk er 65% av dataene som tas opp av transaksjonen på grunn av signaturen. Og disse dataene er bare nyttige for den første bekreftelsesprosessen. Det er ikke nødvendig i det hele tatt senere.

Så hva vil skje med å aktivere Segwit?

Signaturdataene går videre fra hovedkjeden til den utvidede blokken i parallellkjeden:

Hva dette vil gjøre er at det frigjør mye plass i selve blokken for flere transaksjoner.

Man så for seg at signaturdataene skulle ordnes i form av et Merkle-tre i sidekjeden. Merkle-roten til transaksjonene ble plassert i blokken sammen med myntbasetransaksjonen (den første transaksjonen i hver blokk som i utgangspunktet betyr blokkbelønningen). Imidlertid, på å gjøre dette, snublet utviklerne på noe uventet. De oppdaget at når de satte merkle-roten på det aktuelle stedet, økte de på en eller annen måte den totale blokkstørrelsesgrensen UTEN å øke blokkstørrelsesgrensen!

Fra og med 24. august 2017 ble segwit aktivert på bitcoin. La oss se hva Segwit hadde å si om det:

Hva er Segwit? Et nybegynnerkrasjkurs!

Bilde med tillatelse: segwit.co

Fordeler og ulemper med Segwit

Fordeler med segwit:

  • Øker et antall transaksjoner som en blokk kan ta.
  • Reduserer transaksjonsgebyrer.
  • Reduserer størrelsen på hver enkelt transaksjon.
  • Transaksjoner kan nå bekreftes raskere fordi ventetiden reduseres.
  • Hjelper med skalerbarhet av bitcoin.
  • Siden antall transaksjoner i hver blokk vil øke, kan det øke de totale gebyrene som en gruvearbeider kan samle inn.
  • Fjerner smidighet for transaksjoner og hjelper til med å aktivere lynprotokollen (mer om dette senere)
  • Fjerner det kvadratiske hashingproblemet: Quadratic hashing er et problem som kommer sammen med økningen av blokkstørrelsen. Problemet er at signaturhashing skalerer kvadratisk i visse transaksjoner

Skalerbarhet i blockchain: Når, hvor, hvordan?

Bilde med tillatelse: Bitcoincore.org

I utgangspunktet vil dobling av antall transaksjoner i en blokk doble et antall transaksjoner, og som igjen vil doble mengden signaturdata som vil være inne i hver av disse transaksjonene. Dette vil gjøre transaksjonene enda mer store og øke transaksjonstiden med et enormt beløp. Dette åpner portene for ondsinnede parter som kanskje vil spamme blockchain.

Segwit løser dette ved å endre beregningen av signaturhashen og gjøre hele prosessen mer effektiv som et resultat.

Ulemper med segwit:

  • Gruvearbeidere vil nå få mindre transaksjonsgebyrer for hver enkelt transaksjon.
  • Implementeringen er kompleks, og alle lommebøkene må implementere segwit selv. Det er stor sjanse for at de kanskje ikke får det riktig første gang.
  • Det vil øke ressursbruken betydelig siden kapasitet, transaksjoner, båndbredde alt vil øke.
  • Som etableringen av Bitcoin Cash viser, splittet den til slutt Bitcoin Core-fellesskapet.
  • Et annet problem med Segwit er vedlikeholdet. Sidekjeden som inneholder signaturdataene, må også vedlikeholdes av gruvearbeidere. I motsetning til hovedblokkjeden har gruvearbeiderne imidlertid ingen økonomiske fordeler ved å gjøre det, det må gjøres pro-bono, eller det må tenkes på en belønningsordning for å stimulere gruvearbeiderne.

Blokkstørrelse Øk

Nå, siden hovedproblemet med bitcoin og eterum har vært den begrensede blokkstørrelsen, hvorfor øker vi dem ikke bare? Bitcoin skulle ikke ha en 1 MB-grense, men da ble Satoshi tvunget til å si det fordi de ikke ønsket at Bitcoin skulle bli rammet av spamtransaksjoner.

Selv om dette i praksis kan høres ut som en god idé, har implementeringen av dette vært alt annet enn. Faktisk har dette gitt mye debatt i Bitcoin-samfunnet med sider som lidenskapelig argumenterer både for og imot økningen av blokkstørrelsen. La oss sjekke noen av disse argumentene:

Argumenter mot blokkstørrelse øker

  • Gruvearbeidere mister insentiv fordi transaksjonsgebyrer vil reduseres: Siden blokkstørrelsene vil øke, vil transaksjoner enkelt settes inn, noe som vil redusere transaksjonsgebyrene betydelig. Det er frykt for at dette kan deincentivisere gruvearbeiderne, og de kan gå videre til grønnere beiter. Hvis antall gruvearbeidere reduseres, vil dette redusere den totale hashraten av bitcoin.
  • Bitcoins bør ikke brukes til hverdagsformål: Noen medlemmer av samfunnet vil ikke at bitcoin skal brukes til vanlige hverdagstransaksjoner. Disse menneskene føler at bitcoins har et høyere formål enn bare å være vanlig daglig valuta.
  • Det vil splitte samfunnet: En økning i blokkstørrelse vil uunngåelig føre til en gaffel i systemet som vil lage to parallelle bitcoins og dermed dele fellesskapet i prosessen. Dette kan ødelegge harmonien i samfunnet.
  • Det vil føre til økt sentralisering: Siden nettverksstørrelsen øker, vil mengden prosessorkraft som kreves for å utvinne også øke. Dette vil ta ut alle de små gruvebassengene og gi gruvedrift utelukkende til de store bassengene. Dette vil igjen øke sentraliseringen som strider mot essensen av bitcoins.

Argumentene for blokkstørrelsen øker

  • Økning av blokkstørrelse fungerer faktisk til gruvearbeiderens fordel: Økt blokkstørrelse vil bety økte transaksjoner per blokk, som igjen vil øke mengden transaksjonsgebyrer som en gruvearbeider kan tjene på å bryte en blokk.
  • Bitcoin må vokse mer og være mer tilgjengelig for den “vanlige mannen”. Hvis blokkstørrelsen ikke endres, er det en veldig reell mulighet for at transaksjonsgebyrene vil gå høyere og høyere. Når det skjer, vil den vanlige mannen aldri kunne bruke den, og den vil bare brukes av de rike og store selskapene. Det har aldri vært formålet med bitcoin.
  • Endringene vil ikke skje samtidig, de vil gradvis skje over tid. Den største frykten folk har når det gjelder endring av blokkstørrelsen, er at for mange ting kommer til å bli påvirket samtidig, og det vil føre til store forstyrrelser. Folk som er “problokkstørrelsesøkning” tror imidlertid at det er en ubegrunnet frykt, da de fleste av endringene vil bli håndtert over en periode.
  • Det er mye støtte for økning av blokkstørrelsen allerede, og folk som ikke kommer med tiden kan bli igjen.
  • Segwit er ikke en permanent løsning.

Uansett 21. mai 2017 fant New York-avtalen sted der det ble bestemt at Segwit skal aktiveres og blokkstørrelsene øker til 2 mb.

Skalerbarhet i blockchain: Når, hvor, hvordan?

Bilde med tillatelse: DCG-artikkel i Medium.

Folk som ikke var fornøyd med ideen om Segwit å aktivere forked bort fra hovedkjeden og laget Bitcoin Cash som har en blokkstørrelsesgrense på 8 mb.

En blokkstørrelsesøkning ble også foreslått for etereum, men på grunn av mange grunner er folk ikke veldig opptatt av å gjøre det i Ethereum i skrivende stund:

  • For det første er det viktigste som hindrer Ethereums skalerbarhet, hastigheten på konsensus blant noder. Å øke blokkstørrelsen vil fortsatt ikke løse dette problemet. Når antall transaksjoner per blokk øker, øker faktisk antall beregninger og verifikasjoner per node også.
  • For å imøtekomme flere og flere transaksjoner, må blokkstørrelsene økes med jevne mellomrom. Dette vil sentralisere systemet mer fordi vanlige datamaskiner og brukere ikke kan laste ned og bevare slike store blokkeringer. Dette strider mot den egalitære ånden til en blockchain.
  • Endelig vil økning i blokkstørrelse bare skje via hardfork, som kan dele samfunnet. Sist gang en stor hardfork skjedde i ethereum, ble hele samfunnet delt og to separate valutaer oppsto. Folk vil egentlig ikke at dette skal skje igjen.

Bevis for stav

Overgangen fra bevis på arbeid til bevis på innsats

En av de største tingene som skjer akkurat nå er Ethereums skifte fra bevis på arbeid til bevis på stav.

  • Bevis på arbeid: Dette er protokollen som de fleste kryptovalutaer som ethereum og Bitcoin har fulgt så langt. Dette betyr at gruvearbeidere “mine” kryptovalutaer ved å løse kryptopuslespill ved hjelp av dedikert maskinvare.
  • Bevis for innsats: Denne protokollen vil gjøre hele gruveprosessen virtuell. I dette systemet har vi validatorer i stedet for gruvearbeidere. Måten det fungerer på er at du som validator først må låse noe av eteren din som innsats. Når du har gjort det, begynner du å validere blokker, noe som i utgangspunktet betyr at hvis du ser noen blokker som du tror kan legges til blockchain, kan du validere det ved å satse på det. Når og hvis blokken blir lagt til, vil du få en belønning proporsjonal med innsatsen du har investert. Hvis du imidlertid satser på feil eller ondsinnet blokk, vil innsatsen du har investert bli tatt fra deg.

For å implementere “proof of stake” vil eterum bruke Casper konsensusalgoritmen. I begynnelsen kommer det til å være et hybridstilsystem hvor flertallet av transaksjonene fremdeles vil bli gjort bevis på arbeidsstil mens hver 100. transaksjon kommer til å være bevis på innsatsen. Hva dette vil gjøre er at det vil gi en virkelig verdensprøve for bevis på innsatsen på Ethereums plattform. Men hva betyr det for etereum, og hva er fordelene med denne protokollen? La oss ta en titt.

Fordeler med bevis på innsatsen

  • Senker de totale energi- og monetære kostnadene: Verdens bitcoin-gruvearbeidere bruker rundt $ 50 000 per time på strøm. Det er $ 1,2 millioner per dag, $ 36 millioner per måned og ~ $ 450 millioner per år! Bare legg hodet rundt tallene og mengden strøm som blir kastet bort. Ved å bruke “Proof-of-stake” gjør du hele prosessen fullstendig virtuell og kutter ned alle disse kostnadene.
  • Ingen ASIC-fordel: Siden hele prosessen vil være virtuell, vil det ikke avhenge av hvem som har bedre utstyr eller ASIC (applikasjonsspesifikk integrert krets).
  • Gjør 51% angrep hardere: 51% angrep skjer når en gruppe gruvearbeidere får mer enn 50% av verdens hashkraft. Bruk av bevis på stav negerer dette angrepet.
  • Ondsinnsfrie validatorer: Enhver validator som har midlene låst i blockchain, vil sørge for at de ikke legger til noen gale eller ondsinnede blokker i kjeden, fordi det vil bety at hele deres investerte innsats vil bli tatt fra dem.
  • Blokkering: Gjør opprettelsen av nyere blokker og hele prosessen raskere. (Mer om dette i neste avsnitt).
  • Skalerbarhet: Gjør blockchain skalerbar ved å introdusere begrepet “sharding” (Mer om dette senere.)

Hvordan hjelper dette med Blockchain-skalerbarhet?

Å introdusere proof-of-stake kommer til å gjøre blockchain mye raskere fordi det er mye enklere å sjekke hvem som har størst andel for å se hvem som har mest hashing-kraft. Dette gjør det enklere å komme til enighet. I tillegg er implementering av et “proof of stake blockchain” en integrert del av Serenity, den fjerde og siste formen for etereum (mer om dette litt.)

Samtidig gjør proof-of-stake implementeringen av sharding enklere. I et proof of work-system vil det være lettere for en angriper å angripe individuelle skjær som kanskje ikke har høyt hashrat.

I POS vil ikke gruvearbeidere få blokkeringsgebyr, og de kan bare tjene via transaksjonsgebyrer. Dette stimulerer dem til å øke blokkstørrelsen for å få flere transaksjoner (via gassadministrasjon).

Hva er fremtiden for bevis på innsatsen?

Fra og med nå skal Casper trinn 1 implementeres på blockchain, hvor hver 100. blokk vil bli kontrollert via bevis på innsatsen. Yoichi Hirai fra ethereum-stiftelser har kjørt casper-skript gjennom matematiske feildetektorer for å sikre at det er helt feilfritt.

Til slutt er planen å flytte flertallet av blokkopprettingen gjennom bevis på innsatsen, og måten de planlegger å gjøre er å … ved å gå inn i istiden. “Istid” er en vanskelig tidsbombe som kommer til å gjøre gruvedrift eksponentielt vanskeligere. Å ha en umulig høy vanskelighetsgrad vil redusere hashhastigheten, noe som igjen vil redusere hastigheten på hele blockchain og DAPPS som kjører på den. Dette vil tvinge alle involverte i eterum til å gå videre til bevis på innsatsen.

Imidlertid er ikke hele denne overgangen uten hindringer. En av de største fryktene folk har, er at gruvearbeidere kan tvinge hardfork i kjeden på et tidspunkt før istiden begynner og deretter fortsette gruvedrift i den kjeden. Dette kan være potensielt katastrofalt fordi det vil bety at det kan være tre forskjellige kjeder av eterum som kjører samtidig: Ethereum classic, ethereum proof of work og Ethereum proof of stake.

Dette er for tiden all spekulasjon. For nå er faktum at det for en skalerbar modell er avgjørende for etereum å bruke bevis på innsatsen for å få hastigheten og fleksibiliteten det krever.

Sharding

Det største problemet ethereum står overfor er hastigheten på transaksjonsbekreftelsen. Hver eneste fulle node i nettverket må laste ned og lagre hele blockchain. Hva sharding gjør er at det bryter ned en transaksjon i shards og sprer den blant nettverket. Nodene fungerer på individuelle skjær side om side. Dette reduserer igjen den totale tiden det tar.

Tenk deg at eterum er delt inn i tusenvis av øyer. Hver øy kan gjøre sine egne ting. Hver av øya har sine egne unike egenskaper, og alle som tilhører den øya, dvs. kontoene, kan samhandle med hverandre OG de kan hengi seg fritt til alle funksjonene. Hvis de ønsker å komme i kontakt med andre øyer, må de bruke en slags protokoll.

Så spørsmålet er hvordan det kommer til å endre blockchain?

Skalerbarhet i blockchain: Når, hvor, hvordan?

Hvordan ser en normal blokk i bitcoin eller ethereum (pre-sharding) ut?

Så det er en blokkoverskrift og kroppen som inneholder alle transaksjonene i blokken. Merkle-roten til alle transaksjonene vil være i blokkoverskriften.

Nå, tenk på dette.

  • Trengte bitcoin virkelig blokker?
  • Trengte det virkelig en blokkjede??
  • Satoshi kunne rett og slett ha laget en kjede av transaksjoner ved å inkludere hashen til den forrige transaksjonen i den nyere transaksjonen, og lage en “transaksjonskjede” så å si.

Årsaken til at de ordner disse transaksjonene i en blokk er å skape ett nivå av interaksjon og gjøre hele prosessen mer skalerbar. Det eterum antyder, er at de endrer dette til to nivåer av interaksjon.

Det første nivået

Første nivå er transaksjonsgruppen. Hver skjær har sin egen gruppe med transaksjoner.

Skalerbarhet i blockchain: Når, hvor, hvordan?

Bilde med tillatelse: Hackernoon

Transaksjonsgruppen er delt inn i overskriftsgruppens overskrift og transaksjonsgruppens kropp.

Overskrift på transaksjonsgruppe

  • Overskriften er delt inn i forskjellige venstre og høyre deler.

Den venstre delen:

  • Shard ID: IDen til sharden som transaksjonsgruppen tilhører.
  • Pre state root: Dette er tilstanden til roten til skjær 43 før transaksjonene ble påført.
  • Post state root: Dette er tilstanden til roten til skjær 43 etter at transaksjonene er påført.
  • Mottaksrot: Mottaksroten etter alle transaksjonene i skjær 43 blir brukt.

Den rette delen:

  • Den rette delen er full av tilfeldige validatorer som trenger å verifisere transaksjonene i selve skjæringen. De er alle tilfeldig valgt.

Transaksjonsgruppe organ

  • Den har alle transaksjons-ID-ene i selve skjæret.

Egenskapene til nivå 1

  • Hver transaksjon spesifiserer ID-en for skjær den tilhører.
  • En transaksjon som tilhører et bestemt skjær viser at det har skjedd mellom to kontoer som er hjemmehørende i det aktuelle skjæret.
  • Transaksjonsgruppen har transaksjoner som bare tilhører den skjerv-ID-en og er unike for den.
  • Spesifiserer roten før og etter tilstand.

La oss nå se på det øverste nivået, det andre nivået.

Det andre nivået

Skalerbarhet i blockchain: Når, hvor, hvordan?

Bilde med tillatelse: Hackernoon.

Nei, ikke vær redd! Det er lettere å forstå enn det ser ut.

Det er den vanlige blokkjeden, men nå inneholder den to primære røtter:

  • Statens rot
  • Transaksjonsgruppen rot

Delstatsrot representerer hele staten, og som vi har sett før, deles staten opp i skjær som inneholder sine egne substater.

Transaksjonsgrupperoten inneholder alle transaksjonsgruppene i den aktuelle blokken.

Egenskaper på nivå to

  • Nivå to er som en enkel blockchain, som godtar transaksjonsgrupper i stedet for transaksjoner.
  • Transaksjonsgruppen er bare gyldig hvis: a) Pre state root samsvarer med shard-roten i den globale staten.

    b) Signaturene i transaksjonsgruppen er alle validert.

  • Hvis transaksjonsgruppen kommer inn, blir den globale statsrot roten til tilstanden til den spesielle skjær-ID-en.

Så hvordan skjer cross-shard kommunikasjon?

Husk øy-analogien vår?

Skjærene er i utgangspunktet som øyer. Så hvordan kommuniserer disse øyene med hverandre? Husk at formålet med skjær er å få mange parallelle transaksjoner til å skje samtidig for å øke ytelsen. Hvis eterum tillater tilfeldig kryssdelskommunikasjon, beseirer det hele formålet med skjæring.

Så hvilken protokoll som må følges for kommunikasjon på tvers av skjær?

ethereum valgte å følge kvitteringsparadigmet for kryss-shard-kommunikasjon. Sjekk ut dette:

Skalerbarhet i blockchain: Når, hvor, hvordan?

Bilde med tillatelse: hackernoon

Som du kan se her, kan du enkelt få tilgang til hver enkelt mottakelse av en hvilken som helst transaksjon via flere Merkle-trær fra transaksjonsgruppen Merkle root. Hver transaksjon i en skjær vil gjøre to ting:

  • Endre tilstanden til skjæret den tilhører
  • Generer kvittering

Her er en annen interessant informasjon. Kvitteringene lagres i et distribuert delt minne, som kan sees av andre skjær, men ikke endres. Derfor kan kryss-shard-kommunikasjonen skje via kvitteringene slik:

Skalerbarhet i blockchain: Når, hvor, hvordan?

Bilde med tillatelse: Hackernoon

Hva er utfordringene med å implementere skjæring?

  • Det må være en mekanisme for å vite hvilken node som implementerer hvilken skjær. Dette må gjøres på en sikker og effektiv måte for å sikre parallellisering og sikkerhet.
  • Bevis for stav må implementeres først for å gjøre skjæring lettere ifølge Vlad Zamfir. I et proof-of-work-system vil det være lettere å angripe skjær med mindre hashrate.
  • Nodene fungerer på et tillitsløst system, noe som betyr at node A ikke stoler på node B, og de bør begge komme til enighet uavhengig av den tilliten. Så hvis en bestemt transaksjon blir brutt opp i skjær og distribuert til node A og node B, må node A komme med en slags bevismekanisme for at de er ferdige med arbeidet fra deres del av skjæret.

Off-Chain State Channels

Hva er en statskanal?

EN statskanal er en toveiskommunikasjonskanal mellom deltakere som gjør det mulig for dem å gjennomføre interaksjoner, som normalt vil forekomme på blockchain, utenfor blockchain. Hva dette vil gjøre er at det vil redusere transaksjonstiden eksponentielt siden du ikke lenger er avhengig av en tredjepart som en gruvearbeider for å validere transaksjonen.

Så hva er kravene for å gjøre en off-chain tilstandskanal?

  • Et segment av blockchain-tilstanden er låst via multisignatur eller en slags smart kontrakt, som er avtalt av et sett med deltakere.
  • Deltakerne samhandler med hverandre ved å signere transaksjoner mellom hverandre uten å la sende noe til gruvearbeiderne.
  • Hele transaksjonssettet blir deretter lagt til blockchain.

Statskanalene kan lukkes på et punkt som er forutbestemt av deltakerne ifølge Slock.it-grunnlegger Stephan Thual. Det kan enten være:

  • Tiden har gått, f.eks. deltakerne kan bli enige om å åpne en statskanal og lukke den etter 2 timer.
  • Det kan være basert på den totale mengden transaksjoner som er gjort f.eks. lukk kjeden etter at transaksjoner i $ 100 har funnet sted.

offchain statlige kanaler

Bilde med tillatelse: Stephan Tual Medium Article

Så på bildet ovenfor. Vi har en bil som direkte samhandler med laderen og gjør totalt $ 39,19 i transaksjoner. Til slutt, etter en rekke interaksjoner, legges hele transaksjonsbiten til blockchain. Tenk deg hvor lang tid det ville tatt hvis de måtte kjøre hver eneste transaksjon gjennom blockchain!

Off-chain statskanalen som bitcoin ønsker å implementere er lynnettverket.

Hva er lynnettverket?

De lyn nettverk er et mikropayment-system uten ketting som er designet for å få transaksjoner til å fungere raskere i blockchain. Den ble konseptualisert av Joseph Poon og Tadge Dryja i sin whitepaper som hadde som mål å løse blokkstørrelsesgrensen og transaksjonsforsinkelsesproblemene. Den opererer på toppen av Bitcoin og blir ofte referert til som “Layer 2”. Som Jimmy Song bemerker i sin middels artikkel:

“The Lightning Network fungerer ved å lage en dobbeltsignert transaksjon. Det vil si at vi har en ny sjekk som krever at begge parter signerer for at den skal være gyldig. Sjekken spesifiserer hvor mye som sendes fra en part til en annen. Ettersom nye mikrobetalinger gjøres fra den ene parten til den andre, endres beløpet på sjekken, og begge parter signerer resultatet. ”

Nettverket vil gjøre det mulig for Alice og Bob å handle med hverandre uten å bli holdt fanget av en tredje del, alias gruvearbeideren. For å aktivere dette, må transaksjonen signeres av både Alice og Bob før den sendes til nettverket. Denne dobbeltsigneringen er avgjørende for at transaksjonen skal gjennomføres.

Imidlertid er det her vi står overfor et annet problem.

Siden dobbeltsjekken er sterkt avhengig av transaksjonsidentifikatoren, vil identifikatoren av en eller annen grunn endres, føre til en feil i systemet, og Lightning Network vil ikke aktiveres. I tilfelle du lurer på hva transaksjonsidentifikatoren er, er det transaksjonsnavnet aka hash av inngangs- og utgangstransaksjoner.

Dette er transaksjonsidentifikatoren.

En feil kalt “Transaction Malleability” kan føre til at transaksjonsidentifikatoren endres. Dette vil imidlertid ikke være et problem lenger, fordi Segwit-aktivering fjerner denne feilen.

ethereum planlegger også å aktivere noe som lynnettverket som kalles “Raiden”.

Plasma

Plasma sammen med lynnettverk / Raiden vil introdusere et helt nytt lag i eterumarkitekturen:

fremtidige blockchain-lag

Bilde med tillatelse: Medium.

Plasma er en serie kontrakter som kjører på toppen av rotkjeden (den viktigste Ethereum blockchain). Hvis man skulle se for seg arkitekturen og strukturen, så tenk på hovedblokkjeden og plasmablokkjedene som et tre. Hovedblokkjeden er roten mens plasmakjeden aka barneblokkjeder er grenene.

Skalerbarhet i blockchain: Når, hvor, hvordan?

Dette reduserer belastningen på hovedkjeden kraftig. Med jevne mellomrom sender grenene rapporter til hovedkjeden. Faktisk kan du se på Root Chain som høyesterett og alle grenene som underordnede domstoler som henter sine fullmakter fra hovedretten.

Alle grenkjedene kan utstede sine egne unike tokens som kan stimulere kjedevalidatorer til å ta seg av kjedene og for å sikre at de er feilfrie. Hver gren har sine egne uavhengige data, og når den trenger å sende inn noen data til hovedkjeden, dumper den ikke alt innholdet, den sender bare blogghodehash til hovedkjeden.

Ikke bare sparer plasma mye plass i hovedkjeden, det øker også transaksjonsprosesshastigheten eksponentielt. Hvis det implementeres riktig, kan dette være en av de mest revolusjonerende endringene som har blitt gjort i ethereum og kryptovaluta generelt.

Ser fremover – Blockchain-skalerbarhet

Kryptovaluta, og spesielt bitcoin og ethereum blir mer og mer mainstream. For å holde tritt med den økte bruken, må de alvorlig øke det når det gjelder skalerbarhet. Heldigvis er det noen fascinerende løsninger som kan gi dem noen veldig interessante resultater. Kan de virkelig løse skalerbarhetsproblemet? Det gjenstår å se.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me