Det har vært mye snakk om blockchain-interoperabilitet nylig med lanseringen av Cosmos og den potensielle trusselen mot Ethereum-økosystemet. Dette stykket kommer til å bli en dypdykk på det tekniske ved Cosmos og Polkadot, men vil også gi deg forutsetningskunnskapen du trenger for å forstå disse protokollene på et teknisk nivå (med bilder for å hjelpe deg å forstå).
For det første er det viktig å vite hvorfor interoperabilitet saker. På det eksisterende internett kan vi få tilgang til og endre en rekke datasett gjennom APIer (applikasjonsspesifikke grensesnitt). Men med blokkjeder blir data silet av kjeden de eksisterer på. Så hva betyr det å ha interoperabilitet?
- Overføring uten tillit eiendeler mellom ulike kjeder
- Smarte kontrakter på tvers av kjeder som kan samhandle med hverandre
- Spesialiserte kjeder som kan brukes av andre blokkjeder
Før vi går inn på detaljene i en bestemt interoperabilitetstilnærming, vil jeg bruke litt tid på å skissere noen av grunnleggende om distribuerte systemer for å hjelpe oss å forstå begreper senere. Husk at blokkjeder ganske enkelt er en sett med maskiner over hele verden kommer til enighet om hvordan en datasamling skal se ut.
Distribuerte systemer er, som navnet tilsier, en gruppe datamaskiner arbeide sammen å oppnå en veldig spesifikt mål. Et eksempel på dette målet kan være å levere det samme innholdet rundt om i verden til mange mennesker (som å holde Twitter-nyhetsstrømmen din oppdatert). Når de prøver å oppnå dette målet, må de overvinne følgende problemer:
- timing. Hver datamaskin/system vil utføre den samme oppgaven i sitt eget tempo og tidspunkt.
- bestilling. Å prøve å løse hva som skjedde og når med tiden er fortsatt veldig vanskelig siden klokkene begynner å "drive" etter en viss tid. Dette gjør orden til en komplisert utfordring siden hvert system har sin egen beretning om hva som skjedde og når.
- Failure. Koordinering mellom systemer kan svikte på grunn av et system som krasjer, ikke mottar/sender meldinger til andre systemer på riktig måte eller velger å handle ondsinnet (Byzantine)
I likhet med mennesker er måten å løse de fleste problemer på gjennom god kommunikasjon. Med datamaskiner er dette imidlertid litt mer komplisert siden de kan kommunisere asynkront or synkront.
Hva betyr det?
- Synkron = hvert system har en viss tid tildelt til å kommunisere og de bytter på. Tenk på det i virkelige samtaler for mennesker.
- asynkron = hvert system kan kommunisere når de vil, og det er ingen antagelser om når de vil snakke. Tenk på det som Slack for mennesker.
Alt sagt og gjort, på slutten av dagen burde en blokkjede ha sikkerhet (avtale om samme utgang) og livlighet (kjeden fortsetter å vokse og fungere). Hvis kjeden din har sikkerhet, men ikke livlighet, vil den slutte å produsere blokker. Hvis den har livlighet, men ingen sikkerhet, gjør den det produsere mange gafler og du vil ikke vite hvilken som er den riktige blokkjeden med mindre du har en regel (f.eks. lengste kjede i Bitcoin)!
Praktisk bysantinsk feiltoleranse er en implementering utviklet av Barbara Liskov og Miguel Castro og introdusert i 1999. Proof of Stake-kjeder som Cosmos og Polkadot har elementer i designet inspirert av PBFT, så det er verdt å skissere hva det er og hvordan det fungerer.
- En part vil lytte til en rekke transaksjoner til den kan danne en blokk av disse transaksjonene. Vi vil referere til dette partiet som en tilbud, siden de foreslå en blokk.
- Når en blokk er foreslått, deltar alle i en forhåndsstemme for å bekrefte at de hørte den samme blokken. Det er viktig å merke seg at en blokkering kan være feil/ondsinnet, men fortsatt være gyldig i forhåndsstemmefasen siden alle bare prøver å komme til enighet om at de har mottatt samme data/blokk.
- Når mer enn ⅔ av deltakerne er enige om at de har mottatt den samme blokken, flytter de til forhåndsinngå steg. Det avgis deretter en forhåndsstemme for å avgjøre om dette er en gyldig blokkere og ingenting ondsinnet skjer.
- Hvis mer enn ⅔ av deltakerne stemmer for at blokkeringen faktisk er gyldig og riktig, kan vi lykkes forplikte denne blokken til blokkjeden.
- Høyden på blokkjeden økes og trinn 1–5 gjentas.
Fra det vi har lært ovenfor, kan vi se at de følgende trinnene sikrer at rekkefølge antall blokker er kjent (ved at høyden på blokkjeden øker når en forpliktelse skjer), kan hver datamaskin ta det tid til å komme til sin egen konklusjon og deretter kommunisere hvilket resultat den kom til (timing) og kan håndtere svikt (ondsinnet node som foreslår en blokk eller en node som ikke kan stemme).
Enter Cosmos, grunnlagt i 2016 av Jae Kwon og Ethan Buchman og oppvokst over $ 17M+ i deres ICO for ATOMer. Kosmos Hub er dets egen blockchain som kobles til andre soner (blokkjeder) og derfor tillater kommunikasjon mellom ulike soner. Enhver proof-of-work blokkjede som Bitcoin, Ethereum, ZCash eller en applikasjonsspesifikk blokkjede må kobles til en brosone via Inter Blockchain Communication-rammeverket.
For å komme inn i de arkitektoniske detaljene, bruker Cosmos Hub Tendermint som det er konsensusalgoritme (inspirert av PBFT) opprettet av Jae Kwon i 2014. Hva dette betyr er at hvert stemmetrinn (pre-vote & pre-commit) har en fast tid for alle å stemme før den går videre til neste scene. Etter at en blokk er fullført, er det ingen vei tilbake. Dette betyr at du kan ha umiddelbare mobil- og internettbetalinger siden så snart transaksjonen er i en blokkering, er den fullført. Siden ingen bekreftelser kreves dette kalles å ha "rask finality".
ATOMer som holdes av brukere kan brukes til bli validatorer i systemet eller til delegere ATOM til en validator i stedet. Cosmos blockchain vil ha 100 validatorer til å begynne med og planlegger å øke grensen via en styringsparameter i fremtiden. Kun de med rimelig makt i nettverket vil kunne delta i sikkerheten til nettverket.
For å gjøre alt dette mindre teoretisk, vil jeg skissere et sett med trinn for å muligens konvertere ETH til BTC. – alles favoritteksempel.
- A klarert mellomleddssone vil bli opprettet for Ethereum og det vil være et sett med validatorer som vil være ansvarlige for å videresende meldinger fra Ethereum-brosonen til Cosmos Hub.
- Siden både Ethereum og Bitcoin er probabilistiske (det er en sjanse for at den nåværende kjeden ikke er den riktige), må validatorene vente for et visst antall bekreftelser for å sikre at transaksjonen faktisk gikk gjennom.
- Når validatorene er sikre på at transaksjonen er endelig, vil de starte en transaksjon fra sonen deres til Cosmos Hub at de faktisk mottok Ether. Navet vil da skape en form for Innpakket Cosmos Ether at det holder. Hver annen Cosmos-sone vil nå være klar over at det er ny Wrapped Cosmos Ether i systemet.
- Forutsatt at en valutakurs ble bestemt på forhånd, vil Wrapped Cosmos Ether være det utvekslet for Wrapped Cosmos Bitcoin. Denne Wrapped Cosmos Bitcoin er da sendt til den pålitelige mellomledd Bitcoin-sonen og sendt til den angitte adressen på den faktiske Bitcoin-kjeden.
Det er noen få antagelser/ting å være klar over med denne modellen:
- Cosmos Hub må sørge for at saldoene til de innpakkede Cosmos-eiendelene er korrekt inkrementert og dekrementert. Selv om dette er en potensiell ulempe, har Cosmos-teamet designet systemet på en måte som gjør at alle kan lage sin egen hub. I hovedsak vil Cosmos være et nettverk av huber og soner som drives av forskjellige grupper.
- Hver sone må stole på at de videresender de riktige meldingene om eiendeler som sendes/mottas. Avsendere må også stole på at validatorsettet vil videresende meldingene deres på riktig måte og ikke stjele eiendelene deres.
Polkadot er grunnlagt av Gavin Wood, en medgründer og tidligere CTO for Ethereum og president for Web3 Foundation. Polkadot samlet inn over 145 millioner mot slutten av 2017 ved å selge den opprinnelige valutaen DOT under et folkesalg. Hvis Cosmos ligner et åpent nettverk av knutepunkter og soner, er Polkadot en enkelt "relékjede" som tilbyr mange fordeler til kjeder, kalt "parakjeder" (forkortelse for parallelliserbare kjeder), som blir med.
Et par nøkkelaspekter Polkadot har som mål å innovere er:
- Hver parachain gevinst samlet sikkerhet fra validatorsettet til relékjeden. Når en kjede har koblet seg til Polkadot-nettverket ved å bli en parachain, er den sikret med samme sikkerhetsnivå som hele Polkadot-nettverket. I Cosmos trenger hver nye kjede sitt eget validatorsett og må starte opp sin egen sikkerhet.
- Parachains kan samhandle med andre parachains ved hjelp av trust-fee interchain-kommunikasjon. Brukere som ønsker å kommunisere på tvers av kjeder, trenger ikke å stole på hver kjede de sender meldinger til, men bare den enestående sikkerheten til hele Polkadot-nettverket. Igjen, dette er forskjellig fra hvordan Cosmos fungerer der en bruker må stole på kildekjeden, rutingkjedene og destinasjonskjeden med hvert av sine separate validatorsett.
Polkadots konsensusmekanisme består av to komponenter: BESTEFAR og BABE. GRANDPA er en finality-gadget som trekker på noen ideer bak GHOST-gaffelvalgsregelen (som Ethereums Casper) og BABE er en blokkproduksjonsmekanisme som ligner på Cardanos Ouroboros. Innføringen av en finality-gadget gjør at deler av kjeden kan "sluttes" og beviselig aldri bli tilbakeført. Å skille finality-dingsen fra blokkproduksjonen gjør at den langsommere finality-gadgeten kan fungere i en annen prosess enn genereringen av nye blokker i kjeden. Dette betyr at selve produksjonen av blokker kan skaleres i motsetning til den PBFT-bundne Cosmos Tendermint-algoritmen.
I Polkadot-økosystemet har du følgende partier:
- Kollatorer — Produser blokkene for parachains og send informasjonen til validatorene for å verifisere.
- nominator — Tildeler kapitalen deres til validatorer for å delta i innsatsmekanismen.
- Validator — Krev et høyt bindingskrav fordi de er ansvarlige for å faktisk forsegle de nye blokkene i relékjeden. Deres avgjørende roller inkluderer:
- Forfatter nye blokker.
- Sluttføring av stafettkjeden gjennom deltakelse i GRANDPA.
- Validere parachain-blokker ved å sikre at transaksjonene som skjedde er korrekte og at meldingene på tvers av kjeder er behandlet.
- fiskere — Dusørjegere som «fisker» etter ondsinnede aktører ved å se på de andre nodene i nettverket.
En god måte å tenke på Polkadot er som et sammenkoblet system som vil koble seg til andre kjeder det vil kommunisere med gjennom broer. Alle parakjeder og relékjeden fungerer som ett, enhetlig system. En parachain kan inkludere tilpasset logikk og vil være ansvarlig for å håndtere sine egne tilstandsoverganger mens den mottar og legger ut meldinger til andre kjeder. Parachains vil kunne kommunisere med andre parachains ved å lytte til hverandre, i motsetning til Cosmos hvor alt må rutes gjennom Huben.
Polkadots arkitektur er elegant for kjernedesignforutsetningene den hadde gjort. Dette starter med det faktum at parachain passivt lese informasjon fra brokontrakter, i stedet for å stole på brokontrakter som sender meldinger til andre parakjeder. Hver parakjede blir behandlet ingen forskjell til enhver annen parakjede. Dette betyr at Polkadots interchain-kommunikasjonsrammeverk er virkelig tillitsløst, siden parachains handler i interessen til relékjeden i stedet for noen spesifikk parachain de validerer. Videre er validatorer re-tildelt til en annen parakjede med intervaller og tilfeldig.
La oss ta et eksempel som kan være mer relaterbart, hvordan ville det fungere hvis du ønsket å konvertere valutaer fra en parachain til en annen? La oss ta det populære eksemplet på å konvertere ETH til BTC.
Kollatorer for Ethereum-parakjeden ville sende blokkhoder til validatorer i parakjeden deres. De validatorer vil deretter signere og publisere de relevante transaksjonene i Ethereum-broens smarte kontrakt i et format som kan gjenkjennes og kommuniseres med fallskjerm sone. Enhver ETH som sendes vil bli holdt av et Polkadot-valideringssett, som også vil gi DOT-er som sikkerhet for ugyldige transaksjoner. Ethereum-parakjeden vil i sin tur kommunisere med Bitcoin-parakjeden, som vil frigi BTC til den spesifiserte adressen gjennom validatorsettet som styrer den aktuelle parakjeden. Designbeslutninger blir fortsatt ferdigstilt, men ideen rundt deres tverrkjedekommunikasjon er at den vil være tillitsløs.
En ting å være klar over er at Polkadots parachain-mekanisme vil tildele parachain-spor via tillatelsesfrie kjedeauksjoner. Disse auksjonene ville innebære å låse opp DOT-er i en viss tid for å holde parakjeden koblet til Polkadot-nettverket. Styret vil være i stand til å gå inn og fikse situasjonen i tilfelle akutte situasjoner der parachains inneholder en kritisk feil eller tjener et ondsinnet formål. Polkadot vil bli styrt av en kjedestyringsmekanisme da den mener det er den beste måten å styre kryptonettverk på.
Som Gavin Wood uttalte for denne artikkelen, "Jeg tror at alle blokkjeder som ikke introduserer styring på kjeden, inkludert å tilby en levedyktig mekanisme for å utstede oppgraderinger, til slutt vil forgifte seg selv gjennom giftig populisme. Jeg tror ikke "prosesser utenfor kjeden", "on-chain-signalering" og "grov konsensus" gir et tilstrekkelig middel til å la de virkelige interessentene i kjedens økosystem effektivt styre og drive en kjede til langsiktig suksess. Jeg tror også at det i hovedsak er umulig å ettermontere styring."
Mange av kjerneproblemene for interoperabilitet ser ut til å være løst på et høyt nivå, men utførelsen er fortsatt langt bak. Cosmos ble lansert i mars 2019, men har bare fått Cosmos Hub i gang. Deres neste skritt er å sluttføre hvordan Inter-Blockchain-kommunikasjon rammeverket vil fungere. Polkadot skal lanseres slutten av 2019 bare relékjeden er aktiv.
Totalt sett er jeg ekstremt spent på at både Cosmos og Polkadot skal lanseres. Det som vil være interessant å se er utvikleradopsjonen og de politiske kampene til hver kjede og hvordan de utspiller seg. Applikasjonsspesifikke kjeder er en drøm på dette tidspunktet siden ikke bare er den grunnleggende infrastrukturen langt fra ferdigstilt, men utviklere vil måtte tenke på ressurser og mennesker de trenger bak seg for å være tilkoblet og ha tilstrekkelig sikkerhet.
Vil det i det hele tatt være en relevant avveining? Det er vanskelig å si. Kan være Ethereums styring utenfor kjeden er selve tingen som lar den trives til tross for den langsommere kjøringen av veikart siden den tillater ekte tillatelsesløs innovasjon med garantiene til en svært sikret kjede.
Baksiden av dette argumentet er at alle kryptonettverk vil starte opp sikkerheten sin på en annen kjede, for eksempel Ethereum, og deretter oppgradere til sin egen kjede når de kan garantere sikkerheten til den gjennom det eksisterende fellesskapet. Et godt eksempel ville være MakerDAO, ville de ha nok ressurser til å skape sin egen kjede og få nok politisk støtte til å være en del av Polkadots para-kjede. Hvis den av en eller annen grunn ikke kan få nok støtte til å være en del av para-kjeden, kan den etablere en brosone på Kosmos og starte opp sin egen sikkerhet. Polkadot planlegger å gi brospor for kjeder som ikke er i stand til å gi samlet sikkerhet, men som likevel gir meldinger som går langs linjen.
Jeg tror dette er den typen nyanserte spørsmål vi som samfunn må stille i stedet for å se på kjeder som et nullsumspill. Jeg er personlig spent på hvor alt dette fører oss til og er mottakelig for tilbakemeldingene dine på dette stykket. Ta kontakt med meg på Twitter @kermankohli.
Spesiell takk til Gavin Wood (Web3 Foundation), Logan Saether (Web3 Foundation), Billy Rennekamp (Cosmos), Chjango Unchained (Cosmos) for deres bidrag med å sikre den tekniske nøyaktigheten til artikkelen.
- 2016
- 2019
- adgang
- Logg inn
- Adopsjon
- Avtale
- algoritme
- Alle
- APIer
- Søknad
- arkitektur
- rundt
- Artikkel
- Eiendeler
- BEST
- Bit
- Bitcoin
- blockchain
- BRO
- BTC
- Bug
- hovedstad
- casper
- utfordre
- med-grunnlegger
- kommer
- Kommunikasjon
- samfunnet
- datamaskiner
- Konsensus
- kontrakt
- samtaler
- Kosmos
- Par
- krypto
- CTO
- valuta
- Gjeldende
- dato
- dag
- utforming
- Utvikler
- utviklere
- gJORDE
- ETH
- Eter
- ethereum
- Ethereum økosystem
- EU
- EV
- utveksling
- Fix
- gaffel
- skjema
- format
- Rammeverk
- framtid
- spill
- god
- styresett
- Gruppe
- Økende
- GV
- Håndtering
- Høy
- hold
- Hvordan
- HTTPS
- Mennesker
- ICO
- Tanken
- Inkludert
- Øke
- informasjon
- Infrastruktur
- Innovasjon
- interesse
- Internet
- Interoperabilitet
- IP
- IT
- bli medlem
- holde
- nøkkel
- kunnskap
- lansere
- lært
- Nivå
- linje
- Lang
- Mars
- Saker
- medium
- Mobil
- modell
- flytte
- nettverk
- nettverk
- noder
- Tilbud
- åpen
- rekkefølge
- Annen
- betalinger
- Ansatte
- giften
- Populær
- makt
- president
- Produksjon
- bevis
- Proof-of-arbeid
- publisere
- Ressurser
- Kjør
- rennende
- Sikkerhet
- Skala
- sikkerhet
- sett
- Kort
- slakk
- Smart
- smart kontrakt
- So
- LØSE
- bruke
- Scene
- stake
- staking
- Begynn
- Tilstand
- suksess
- system
- Systemer
- Teknisk
- Kilden
- tid
- toleranse
- Transaksjonen
- Transaksjoner
- Stol
- us
- Brukere
- Stem
- Stemmegivning
- HVEM
- Arbeid
- virker
- verden
- verdt
- Zcash