(Denne artikkelen inneholder noe materiale som opprinnelig ble publisert i 2019 i IOV Labs RSK-blogg)
Sikkerheten til Bitcoin er avhengig av de økonomiske insentivene for gruvearbeidere til å forlenge den "tyngste kjeden", som er kjeden med størst akkumulert vanskelighetsgrad (vanligvis den lengste). For øyeblikket er disse insentivene gitt av blokkbelønningen, som består av blokktilskuddet og transaksjonsgebyrene. Men tilskuddet (for tiden 6.25 BTC) er betydelig høyere enn de gjennomsnittlige transaksjonsgebyrene per blokk (for tiden 0.25 BTC). Bitcoin-subsidier halveres hvert 4. år, og uten en omvendt proporsjonal BTC-prisstigning, vil hovedincentivet for gruvedrift skifte fra blokksubsidier til blokktransaksjonsgebyrer. For å opprettholde det nåværende sikkerhetsbudsjettet vil transaksjonskostnadene måtte økes 25 ganger. Det er for tidlig å si om dette noen gang vil bli et problem for Bitcoin. Det er mulig at Bitcoin trenger myk eller hard-fork for å tilpasse seg en ny æra med lav subsidie. I 2014 viste jeg hvordan Bitcoin kunne bli ustabil da jeg presenterte det (hovedsakelig teoretiske) FRONTA angrep. Carlsten et al. (2016) analysert dette problemet i dybden, men de kunne ikke finne en tilfredsstillende løsning. Dette er ikke bare Bitcoins problem, men et hver kryptovaluta hvis pengeutstedelse avtar over tid, må møte.
Men vi trenger ikke bekymre oss for Bitcoin foreløpig. Bitcoin-fellesskapet må kanskje løse dette problemet om 10 eller 20 år, eller kanskje aldri. Nå og da er problemet undersøkt på nytt, med analyser begge deler utheving og minimere problemet. Men når vi analyserer Bitcoin-sidekjeder, slik som RSK, er problemet ganske reelt.
I 2019 nevnte Blockstreams administrerende direktør Adam Back glatting når vi diskuterer Bitcoins langsiktige sikkerhetsbudsjett: "Andre ideer fra langsiktig lavsubsidietid inkluderer avgiftsgjennomsnitt over blokkintervaller for å jevne ut gebyrinntekter."
https://twitter.com/adam3us/status/1097031151921713152
RSK implementerer akkurat den ideen, utjevningen av gebyrinntekter, siden 2016. Men før vi forklarer hvordan RSK håndterer transaksjoner med høye gebyrer, vil vi vise mer detaljert de tre store blokkreverseringsangrepene som kan utløses av transaksjonsgebyrer: gebyrsniping , hvaltransaksjoner og gruveforstøvning.
Hvis blokktilskuddet er lavt og transaksjonsgebyrene i den siste gruvede blokken er mye høyere enn avgiftene som kan kreves inn fra transaksjoner i mempoolen, blir kortsiktige rasjonelle gruvearbeidere incentivert til å hente transaksjoner fra den siste gruvede blokken og gruve en konkurrerende blokk, i stedet for å forlenge den. Dette er et avvik fra Nakamoto Consensus, og det kalles det Fee skarpskyting. Per definisjon er et slikt avvik et angrep på protokollen, og gruvearbeideren anses som en ondsinnet part. For å innløse transaksjonsgebyrene, må den ondsinnede gruvearbeideren også utvinne en ekstra bekreftelsesblokk raskere enn den ærlige kjeden, slik at resten av gruvearbeiderne bytter til kjeden hans. Derfor er gebyrskyting ikke alltid lønnsomt, siden den ondsinnede gruvearbeideren risikerer å kaste bort hashratet hvis hans egoistiske gaffel ikke overgår den ærlige kjeden. Sjelden gebyrsniping er kanskje ikke et problem, men hvis gruvearbeidere endrer konsensuskoden for å tjene på potensielle gebyrsnipingmuligheter over alle eksisterende gafler, kan nettverket bli utsatt for farligere angrep.
Når gruvearbeidernoder utfører automatisk gebyrsniping, kan en angriper dra nytte av denne situasjonen til å utføre et dobbeltforbruksangrep. En ondsinnet gruvearbeider kan bruke mynter i den ærlige kjeden og motta en annen ekstern eiendel i bytte, og senere dele den ærlige kjeden i en blokk før den første. I den ondsinnede gaffelen dobbeltbruker angriperen myntene, men introduserer også et særtrekk (dvs. en unik UTXO) som ikke må eksistere i den ærlige gaffelen. Umiddelbart etterpå sender angriperen en "hval" transaksjon som bruker denne funksjonen (dvs. bruker denne UTXO) og tilbyr et uvanlig høyt transaksjonsgebyr som agn (eller bestikkelse) til gruvearbeiderne som kjører snikskytterkoden. Mens begrepet "hvaltransaksjon" kan forstås som en transaksjon som overfører en høy verdi, bruker vi her definisjonen i det refererte papiret, som en transaksjon som betaler høye avgifter, uansett hvor mye verdi som overføres. I Bitcoin vil hvaltransaksjonen og de ondsinnede gaffelblokkene måtte sendes direkte til gruvearbeidernes noder, fordi ikke-beste gafler ikke videresendes av de fullstendige nodene i peer-to-peer-nettverket. På mange smartkontraktplattformer er angrepet imidlertid mye enklere fordi de sender ikke-beste gafler. Også i smartkontraktplattformer er det enklere å opprette en hvaltransaksjon: angriperen kan gjenbruke en nonce som allerede er brukt i den ærlige kjeden, og dermed forhindre at hvaltransaksjonen blir inkludert i den ærlige kjeden. Alternativt kan hvaltransaksjonen utføre en kontrakt som sjekker om forrige blokkhash samsvarer med en blokkhash som bare eksisterer i den egoistiske gaffelen (dvs. ved å bruke BLOCKHASH opcode) og betaler en bestikkelse kun på den egoistiske gaffelen.
Når gruvearbeidere oppdager en hvaltransaksjon, kan de vurdere å forlenge den ondsinnede gaffelen, selv om de ligger etter, hvis bestikkelsen er høy nok, og satser på at den vil overgå den lengre ærlige kjeden. Uten smarte kontrakter er den beste angrepsstrategien å kringkaste en serie hvaltransaksjoner samtidig som bestikker følgende gruvearbeidere slik at de fortsetter å utvide den ondsinnede gaffelen. I Bitcoin kan transaksjoner lenkes med CHECKLOCKLOCKVERIFY or KONTROLLSEKVENSVERIFIS. I smartkontraktsplattformer kan dette gjøres ved enten å gjenbruke nonces eller ved kontraktanrop. Selv om den ikke er automatisert, kan angriperen fortsette å generere hvaltransaksjoner på den ondsinnede gaffelen, til den overtar den ærlige kjeden.
I Whale Transaction-angrepet vurderte vi at gruvearbeidere må bytte dynamisk til en kompleks gruvestrategi for å akseptere bestikkelser basert på gaffelvinnesannsynligheter. Vi kan mer realistisk vurdere at gruvearbeiderne kjører en enklere strategi som ikke vurderer fremtidige bestikkelser, men kun egoistisk snikskyting. Hvis dette er strategien vedtatt av flertallet av gruvearbeidere, er et nytt angrep mulig. Miner Atomization-angrepet er et nettverksomfattende tjenestenektangrep som prøver å lokke alle gruvearbeidere til å jobbe på egoistiske gafler samtidig, og dermed redusere hastigheten og konvergensen til den ærlige kjeden. Angrepet begynner med kringkasting av en transaksjon med svært høye avgifter, som ligner på gebyrsnipping eller hvaltransaksjonsangrepet. Denne transaksjonen er ikke ment å hjelpe til med dobbeltforbruk, men det er et agn som tar sikte på å atomisere gruvenettverket. Vi viser angrepet med et eksempel. Anta at en transaksjon T i en blokk i høyden N betaler 100 mynter i gebyr, men den gjennomsnittlige blokkbelønningen er bare 10 mynter. Vi antar at alle gruvearbeidernes noder er programmert til å følge denne rasjonelle strategien:
- Hvis T er inkludert i noen av de siste K-blokkene i den ærlige kjeden, ta tak i transaksjonen T og prøv å gruve en konkurrerende blokk i høyden N, og fortsett å utvinne barneblokker av denne egoistiske gaffelen til den overgår den ærlige kjeden.
- Hvis den ærlige kjeden overgår den egoistiske gaffelen med mer enn K-blokker, gi opp.
Den ondsinnede transaksjonen med høye avgifter forstøver gruvedrift til fordel for det større gruvebassenget, som har de høyeste sjansene for å utvinne transaksjonen T pluss nok ekstra egoistiske bekreftelsesblokker slik at de gjenværende gruvearbeiderne vil gi opp. Merkelig nok, jo mer desentralisert gruvenettverket er, desto verre er forstyrrelsen forårsaket av transaksjon T. For eksempel, for en blokkjede som har et gjennomsnittlig blokkeringsintervall på 10 minutter, hvis det var 100 gruvearbeidere som hver hadde 1 % av den totale hashraten, ville nettverket lide av en 100x nedgang i flere blokker til det endelig konvergerer. Nettverket vil være ubrukelig i 2 dager!
RSK er en ren Bitcoin-sidekjede, så det måtte møte utfordringen med å sikre blokkjeden med et sikkerhetsbudsjett som kun består av transaksjonsgebyrer siden starten. Derfor måtte RSK være forberedt på unormalt høye eller lave gebyrer. RSK var den første produksjonsklare sidekjeden, og den bruker merge-mining for konsensus. For tiden er mer enn 40 % av Bitcoin-gruvearbeiderne fusjonsgruve RSK.
RSK-gruvearbeidere forventer økonomisk kompensasjon for å kjøre RSK fulle noder. De fleste blokkjeder utsteder nye mynter for denne kompensasjonen. Noen andre distribuerte hovedbøker, for eksempel Ripple, utsteder ikke mynter for å betale blokkprodusenter, men blokkprodusenter kan subsidieres eksternt. Ripple Labs, som pre-minerte XRP, har så mange av dem at de kan gi kompensasjon i XRP for tredjeparter for å bli blokkprodusenter. RSK, på den annen side, står overfor de tøffeste forholdene: den har ikke myntutstedelse (som Bitcoin) og den har ikke en myntpremine (som XRP). RSK representerer et vellykket eksempel på en Bitcoin-sidekjede, et glimt av fremtiden for konsensus i deflasjonære blokkjeder, og hvordan en blokkjede uten subsidie kan være bærekraftig. Men å ha ingen subsidie betyr at sidekjeden må være nøye utformet mot angrepene som presenteres her. RSK implementerer flere unike funksjoner for å være sikrere mot blokkjede-omorganiseringer basert på transaksjoner med høye gebyrer:
- Blokkbelønningsutjevning (også kalt gebyrutjevning).
- Blokker belønningsdeling
- Fork-aware fusjonsgruvedrift
I de følgende avsnittene presenterer vi kort hver teknikk.
Gebyrutjevning er en konsensusregel som fordeler transaksjonsgebyrer mellom gruvearbeidere på en mer egalitær måte. Det betaler hver gruvearbeider en funksjon av tidligere blokkbelønninger. Funksjonen kan være lineær eller ikke-lineær, basert på et lite antall tidligere blokkbelønninger, eller basert på en tilstand som avhenger av alle tidligere blokker. Det enkleste designet er å bruke et slags lavpassfilter på de akkumulerte avgiftene. RSK bruker en utjevningsfunksjon som er veldig enkel, en IIR med α = 0.1. Hvis en RSK-gruvearbeider løser en blokk i høyden N, vil gruvearbeideren bli kompensert med 10 % av blokk N-transaksjonsgebyrene og 10 % av alle ubetalte gruvearbeideravgifter som tidligere er akkumulert. Med andre ord eksisterer det en "delt" gruvearbeiderkonto, hvor den vinnende gruvearbeideren ved hver blokk legger inn transaksjonsgebyrene og tar ut 10% for seg selv.
Belønningsutjevning øker insentivet til å utvide blokkjeden mot insentivet til å utvinne en tidligere blokk for å hente betalte avgifter, fordi gruvearbeideren bare kan hente 10 % av hvaltransaksjonsgebyrene. Vi tar opp det forrige eksemplet. Vi antar at den gjennomsnittlige blokkbelønningen er 10 mynter og en blokk inneholder en 100-mynts bestikkelse i høyden N. I RSK vil blokken i høyden N betale en belønning på 19 mynter, mens den påfølgende blokken vil betale 18.1 mynter. Den egoistiske gruvearbeideren trenger nå 10 ganger mer hashkraft enn noen annen gruvearbeider for at angrepet skal være lønnsomt.
Vi viser nå andre komplementære beskyttelsestiltak.
RSK implementerer en konsensusprotokoll for belønningsdeling kalt DECOR. DECOR deler blokkbelønninger jevnt mellom søskenblokker, så lenge blokkoverskriftene refereres til av den ærlige kjeden. DECOR reduserer insentivet for et atomiseringsangrep fordi vinneren av transaksjonen med høy avgift må dele belønningen med så mange som ytterligere 10 gruvearbeidere som produserte søskenblokker. Dette er fordi en blokkjedeblokk kan ha opptil 10 søskenreferanser, og DECOR-protokollen deler blokkbelønningen mellom dem alle. For å unngå deling, må gruvearbeideren utvinne ytterligere 10 egoistiske blokker, noe som hindrer onkelreferanser, noe som reduserer sjansene hans for suksess betraktelig. Vurderer belønningsdeling sammen med gebyrutjevning, for at et forsøk på å forstyrre RSK-nettverket skal lykkes, må bestikkelsen være minst 110 ganger høyere enn gjennomsnittlig blokkbelønning.
Fork-aware fusjonert gruvedrift er en variant av sammenslått gruvedrift som lar brukere overvåke hovedkjedenettverket (f.eks. Bitcoin) for ondsinnede gafler i sidekjedenettverket (f.eks. RSK). For å tjene på et hvaltransaksjonsangrep, må angriperen finne et offer for å dobbeltbruke. Det offeret ville sannsynligvis være en online kryptobørs. Krypto-utvekslinger venter på flere hundre blokkbekreftelser før de godtar et innskudd, noe som er nok tid for RSK Armadillo system for å oppdage den ondsinnede gaffelen på forhånd og varsle børsen. I tilfelle av gebyr-snikskyting og gruveforstøvningsangrep er de ondsinnede gaflene korte, og derfor kan Armadillo bare brukes som et verktøy for å diagnostisere situasjonen og identifisere bassengene som avviker fra den ærlige protokollen, men den kan ikke forhindre angrepet.
Et annet komplementært beskyttelsestiltak, som RSK foreløpig ikke implementerer, er å begrense transaksjonsgassprisen til et multiplum av minstegassprisen (dvs. en 10x spredning). Jeg foreslo et sammenlignbart mål for Bitcoin i 2013. RSK kan enkelt implementere dette, ettersom hver blokk annonserer den minste aksepterte transaksjonsgassprisen. Men å sette en maksimal gasspris løser ikke helt problemet hvis nettverket er i en tilstand der blokker ikke bruker all gassgrensen som er tilgjengelig i en blokk. Det høye transaksjonsgebyret i T kan være et resultat av en høyere mengde gass forbrukt i stedet for en høyere gasspris (det betalte gebyret er produktet av disse to beløpene).
Belønningsutjevning er ikke den ultimate løsningen, slik angripere kan bruke en smartkontraktsplattform til bestikkelse gruvearbeidere til å gjøre omtrent hva som helst. Jeg presenterte det teoretiske «Eternal Choice for the Dark Side Attack» (eller ECDSA :) ) i 2014, som en måte å vise hvordan gruvearbeidere kan bestikkes for å avvike fra ærlig oppførsel. McCorry el kl. (2018) presenterte et bredt spekter av teoretiske bestikkelsesangrep. Men nivået av forståelse og forberedelse som kreves for å akseptere smartkontraktbaserte bestikkelser er betydelig. Dette gjør smartkontraktbaserte bestikkelsesangrep mye vanskeligere å utføre. En gruvearbeider må være klar over bestikkelseskontrakten og forstå hvordan han skal samhandle med den. Denne typen angrep er imidlertid uunngåelig: hvis plattformen kan utføre en betaling til gjeldende blokkgruvearbeider, kan den også utføre en smart kontrakt som betaler samme gruvearbeider. Dette er fordi programmeringsspråket som beskriver protokollkonsensus og det som brukes av smarte kontrakter begge er "Turing-komplett". Dette er en interessant teoretisk problemstilling.
Man kan tenke seg smarte triks for å gjøre bestikkelsesbetalinger vanskeligere, for eksempel å tvinge gruvearbeideradresser til å være spesielle (dvs. kun engangsbruk), slik at en bestikkelseskontrakt ikke kan betale seg til gruvearbeideren. En Turing komplett smart-kontrakt-plattform kan imidlertid ikke forhindre en betaling fra en part som er villig til å betale til en annen part som er villig til å bli betalt. Vi konstruerer alltid en vellykket bestikkelsessmartkontrakt som unngår forsvar. For eksempel kan den ondsinnede gruvearbeideren opprette et null kunnskapsbevis som beviser kontroll over en spesifikk gruvearbeideradresse til kontrakten, uten å avsløre den private nøkkelen. Gruvearbeideren ville sende dette beviset til bestikkelseskontrakten, sammen med en alternativ mottaksadresse for å motta bestikkelsen.
Det er ikke nok å begrense funksjonene for smart kontraktspråk til blokkjeden hvis gruvearbeidere skal bestikkes, siden enhver annen Turing-komplett smartkontraktplattform kan brukes til å betale bestikkelser til gruvearbeidere. Plattformen trenger bare å kjøre et blokkhoderelé (dvs. btcrelay). For eksempel kan RSK og Ethereum brukes til å betale bestikkelser til Bitcoin-gruvearbeidere. Det er imidlertid vanskeligere å koordinere et angrep på en brokoblet blokkjede.
Et potensielt forsvar mot bestikkelsesangrep er å bruke en variant av PoS-konsensusprotokollen som krever at flertallet av blokkprodusenter signerer blokker, og krever også at de har et depositum (innsats) av mynter i en periode på måneder. Innsatsen til gruvearbeidere som er tvetydige (produserer to motstridende blokker eller forlengelser av motstridende gafler) ville bli konfiskert av en samfunn lansert hard gaffel. Selv om denne beskyttelsen ikke eliminerer sårbarheten, kan den øke angrepskostnadene, ettersom bestikkelsen må være høyere enn innsatsen som er tapt. Aktivering av gruvearbeider er for øyeblikket ikke mulig på Bitcoin. Mens RSK kan vedta en PoS-konsensus, er det ikke noe forslag om å bytte til PoS eller blande PoW med PoS i RSK.
Vi presenterte flere kjente angrep for Nakamoto-konsensus basert på ondsinnede transaksjoner som utbetalte unormalt høye gebyrer. Noen angrep tillater dobbeltforbruk og andre forårsaker nettverksustabilitet. Disse angrepene er spesielt relevante for alle Bitcoin-sidekjeder inkludert RSK. RSK implementerer blokkbelønningsutjevning, blokkbelønningsdeling og gaffelbevisst sammenslått gruvedrift som avskrekkende midler. Mens belønningsutjevning fungerer for eksplisitte gebyrer, kan det generelle tilfellet med bestikkelser betalt ved hjelp av smarte kontrakter ikke unngås. Forsvar mot disse angrepene krever aktiv nettverksovervåking. Til slutt er ytterligere forskning på potensielle løsninger for disse angrepene nødvendig.
- 100
- 2016
- 2019
- Logg inn
- aktiv
- Adam Tilbake
- Ytterligere
- Fordel
- Alle
- Artikkel
- eiendel
- Automatisert
- BEST
- Betting
- til
- Bitcoin
- blockchain
- BTC
- btc-pris
- Kontanter
- Årsak
- forårsaket
- konsernsjef
- utfordre
- sjansene
- endring
- Sjekker
- barn
- kode
- Coin
- Mynter
- samfunnet
- Kompensasjon
- Konsensus
- forbruke
- fortsette
- kontrakt
- kontrakter
- Opprette
- krypto
- krypto utveksling
- Krypto-utvekslinger
- cryptocurrency
- Gjeldende
- desentralisert
- Forsvar
- Denial of Service
- utforming
- detalj
- Avbryte
- Avbrudd
- distribuerte hovedbøker
- Tidlig
- økonomisk
- ethereum
- utveksling
- Børser
- utvidelser
- Face
- ansikter
- Trekk
- Egenskaper
- avgifter
- Endelig
- Først
- følge
- gaffel
- fullt
- funksjon
- framtid
- GAS
- ge
- general
- GM
- GP
- grip
- GV
- vanskelig gaffel
- hash
- hashing
- Hashrate
- her.
- Høy
- Hvordan
- Hvordan
- HTTPS
- Tanken
- identifisere
- Inkludert
- Øke
- IP
- IT
- nøkkel
- kunnskap
- Labs
- Språk
- Nivå
- Lang
- større
- Flertall
- måle
- medium
- Mempool
- Miners
- Gruvedrift
- penger
- overvåking
- måneder
- nettverk
- noder
- Tilbud
- på nett
- Annen
- Papir
- Betale
- betaling
- betalinger
- Likemann til likemann
- plattform
- Plattformer
- basseng
- pools
- PoS
- PoW
- makt
- presentere
- hindre
- pris
- privat
- private Key
- produsert
- Produsentene
- Produkt
- Profit
- Programmering
- bevis
- forslag
- beskyttelse
- Beskyttende
- forskning
- REST
- inntekter
- Belønninger
- Ripple
- krusningslaboratorier
- Kjør
- rennende
- sikkerhet
- Serien
- innstilling
- Del
- Aksjer
- skift
- Kort
- kjeden
- Enkelt
- liten
- Smart
- smart kontrakt
- Smarte kontrakter
- So
- Solutions
- LØSE
- bruke
- spre
- stake
- staking
- Tilstand
- Strategi
- subsidie
- suksess
- vellykket
- bærekraftig
- Bytte om
- tredjeparter
- tid
- Transaksjonen
- Transaksjoner
- Turing
- Brukere
- verdi
- sårbarhet
- vente
- Wikipedia
- ord
- Arbeid
- virker
- XRP
- år
- null