(Denne artikel indeholder noget materiale, der oprindeligt blev offentliggjort i 2019 i IOV Labs RSK-blog)
Bitcoins sikkerhed er afhængig af de økonomiske incitamenter for minearbejdere til at forlænge "den tungeste kæde", som er kæden med den mest akkumulerede vanskelighed (normalt den længste). I øjeblikket leveres disse incitamenter af blokbelønningen, som består af bloktilskuddet og transaktionsgebyrerne. Men tilskuddet (i øjeblikket 6.25 BTC) er væsentligt højere end de gennemsnitlige transaktionsgebyrer pr. blok (i øjeblikket 0.25 BTC). Bitcoin-tilskud halveres hvert 4. år, og uden en omvendt proportional BTC-prisstigning vil det vigtigste incitament til minedrift skifte fra bloktilskud til bloktransaktionsgebyrer. For at opretholde det nuværende sikkerhedsbudget skal transaktionsomkostningerne stige 25 gange. Det er for tidligt at sige, om dette nogensinde vil blive et problem for Bitcoin. Det er muligt, at Bitcoin skal soft-fork eller hard-fork for at tilpasse sig en ny æra med lavt tilskud. I 2014 viste jeg, hvordan Bitcoin kunne blive ustabil, da jeg præsenterede det (hovedsageligt teoretiske) FRONT angreb. Carlsten et al. (2016) analyseret dette problem i dybden, men de kunne ikke finde en tilfredsstillende løsning. Dette er ikke kun Bitcoins problem, men et hver kryptovaluta, hvis pengeudstedelse aftager over tid, bliver nødt til at stå over for.
Men vi behøver ikke bekymre os om Bitcoin lige nu. Bitcoin-fællesskabet skal muligvis løse dette problem om 10 eller 20 år, eller måske aldrig. Nu og da er problemet genbehandlet, med analyser begge dele fremhæve , minimering problemet. Men når vi analyserer Bitcoin-sidekæder, såsom RSK, er problemet ret reelt.
I 2019 nævnte Blockstreams administrerende direktør Adam Back udjævning når vi diskuterer Bitcoins langsigtede sikkerhedsbudget: "Andre ideer fra langsigtet lavtilskudsæra inkluderer gebyrgennemsnit på tværs af blokintervaller for at udjævne gebyrindtægter."
https://twitter.com/adam3us/status/1097031151921713152
RSK implementerer præcis den idé, udjævningen af gebyrindtægter, siden 2016. Men før vi forklarer, hvordan RSK håndterer transaktioner med høje gebyrer, viser vi mere detaljeret de tre store bloktilbageførselsangreb, der kan udløses af transaktionsgebyrer: gebyrsniping , hvaltransaktioner og minedriftsforstøvning.
Hvis bloktilskuddet er lavt, og transaktionsgebyrerne i den sidst udvundne blok er meget højere end de gebyrer, der kan opkræves fra transaktioner i mempoolen, tilskyndes kortsigtede rationelle minearbejdere til at gribe transaktioner fra den sidst udgravede blok og mine en konkurrerende blokere i stedet for at forlænge den. Dette er en afvigelse fra Nakamoto Consensus, og det hedder Gebyr snigskytte. Per definition er en sådan afvigelse et angreb på protokollen, og minearbejderen betragtes som en ondsindet part. For at indkassere de grebne transaktionsgebyrer skal den ondsindede minearbejder også mine en ekstra bekræftelsesblok hurtigere end den ærlige kæde, så resten af minearbejderne skifter til hans kæde. Derfor er gebyrsniping ikke altid rentabelt, da den ondsindede minearbejder risikerer at spilde sit hashrate, hvis hans egoistiske gaffel ikke overgår den ærlige kæde. Sjælden gebyrsniping er muligvis ikke et problem, men hvis minearbejdere ændrer deres konsensuskode for at drage fordel af potentielle gebyrsnipingmuligheder over alle eksisterende gafler, så kan netværket blive udsat for farligere angreb.
Når minearbejderknudepunkter udfører automatisk gebyr-sniping, kan en angriber drage fordel af denne situation til at udføre et dobbeltforbrugsangreb. En ondsindet minearbejder kan bruge mønter i den ærlige kæde og modtage et andet eksternt aktiv i bytte, og senere fordele den ærlige kæde i en blok før den første. I den ondsindede gaffel dobbeltbruger angriberen mønterne, men introducerer også et særpræg (dvs. en unik UTXO), som ikke må eksistere i den ærlige gaffel. Umiddelbart derefter udsender angriberen en "hval" transaktion der gør brug af denne funktion (dvs. bruger denne UTXO) og tilbyder et usædvanligt højt transaktionsgebyr som lokkemad (eller bestikkelse) til minearbejdere, der kører gebyr-snipingkoden. Mens udtrykket "hvaltransaktion" kan forstås som en transaktion, der overfører en høj værdi, bruger vi her definitionen i det refererede papir, som en transaktion, der betaler høje gebyrer, uanset størrelsen af den overførte værdi. I Bitcoin skulle hvaltransaktionen og de ondsindede gaffelblokke sendes direkte til minearbejdernes noder, fordi ikke-bedste gafler ikke videresendes af de fulde noder i peer-to-peer-netværket. Men i mange smart-kontrakt platforme er angrebet meget lettere, fordi de udsender ikke-bedste gafler. Også i smart-kontrakt platforme er det nemmere at oprette en hvaltransaktion: angriberen kan genbruge en nonce, der allerede er brugt i den ærlige kæde, og forhindrer derfor, at hvaltransaktionen inkluderes i den ærlige kæde. Alternativt kan hvaltransaktionen udføre en kontrakt, der kontrollerer, om den forrige blokhash matcher en blokhash, der kun eksisterer i den egoistiske fork (dvs. ved at bruge BLOCKHASH opcode) og kun betaler bestikkelse på den egoistiske fork.
Når minearbejdere opdager en hvaltransaktion, kan de overveje at forlænge den ondsindede gaffel, selvom de halter bagud, hvis bestikkelsen er høj nok, og vædde på, at den vil overgå den længere ærlige kæde. Uden smart-kontrakter er den bedste angrebsstrategi samtidig at udsende en række hvaltransaktioner, der bestikker de følgende minearbejdere, så de bliver ved med at udvide den ondsindede gaffel. I Bitcoin kan transaktioner kædes sammen med CHECKLOCKLOCKVERIFY or KONTROLSEKVENSVERIFICER. I smart-kontrakt platforme kan dette gøres ved enten at genbruge nonces eller ved kontraktopkald. Selvom det ikke er automatiseret, kan angriberen fortsætte med at generere hvaltransaktioner på den ondsindede gaffel, indtil den overhaler den ærlige kæde.
I Whale Transaction-angrebet overvejede vi, at minearbejdere skal skifte dynamisk til en kompleks minestrategi for at acceptere bestikkelse baseret på sandsynligheder for gaffelvinding. Vi kan mere realistisk overveje, at minearbejderne kører en mere simpel strategi, der ikke tager hensyn til fremtidige bestikkelser, men kun egoistisk gebyrbeskydning. Hvis dette er den strategi, som flertallet af minearbejdere har vedtaget, er et nyt angreb muligt. Miner Atomization-angrebet er et netværksdækkende lammelsesangreb, der forsøger at lokke alle minearbejdere til at arbejde på egoistiske gafler samtidigt, hvilket reducerer hastigheden og konvergensen af den ærlige kæde. Angrebet begynder med udsendelsen af en transaktion med meget høje gebyrer, svarende til gebyrsnipping-angrebet eller hvaltransaktionsangrebet. Denne transaktion er ikke beregnet til at hjælpe med dobbeltforbrug, men det er en lokkemad, der har til formål at atomisere minenetværket. Vi viser angrebet med et eksempel. Antag, at en transaktion T i en blok i højden N betaler 100 mønter i gebyrer, men den gennemsnitlige blokbelønning er kun 10 mønter. Vi antager, at alle minearbejdernes noder er programmeret til at følge denne rationelle strategi:
- Hvis T er inkluderet i nogen af de sidste K-blokke i den ærlige kæde, så tag transaktionen T og prøv at mine en konkurrerende blok i højden N, og fortsæt derefter med at udvinde underordnede blokke af denne egoistiske gaffel, indtil den overgår den ærlige kæde.
- Hvis den ærlige kæde overgår den egoistiske gaffel med mere end K blokke, så giv op.
Den høje gebyr ondsindede transaktion atomiserer minedrift til fordel for den større minepulje, som har de højeste chancer for at udvinde transaktionen T plus nok yderligere egoistiske bekræftelsesblokke, så de resterende minearbejdere vil give op. Mærkeligt nok, jo mere decentraliseret minenetværket er, jo værre er forstyrrelsen forårsaget af transaktion T. For eksempel, for en blockchain med et gennemsnitligt blokinterval på 10 minutter, hvis der var 100 minearbejdere, der hver havde 1% af den samlede hashrate, ville netværket lide en 100x opbremsning i flere blokke, indtil det endelig konvergerer. Netværket ville være ubrugeligt i 2 dage!
RSK er en ren Bitcoin sidekæde, så det måtte stå over for udfordringen med at sikre blockchainen med et sikkerhedsbudget, der kun består af transaktionsgebyrer siden starten. Derfor skulle RSK være forberedt på unormalt høje eller lave gebyrer. RSK var den første produktionsklare sidekæde, og den bruger merge-mining til konsensus. I øjeblikket er mere end 40% af Bitcoin-minearbejdere fusionsmine RSK.
RSK minearbejdere forventer økonomisk kompensation for at køre RSK fulde noder. De fleste blockchains udsteder nye mønter til denne kompensation. Nogle andre distribuerede hovedbøger, såsom Ripple, udsteder ikke mønter for at betale blokproducenter, men blokproducenter kan få eksternt tilskud. Ripple Labs, som præminerede XRP'er, har så mange af dem, at de kan yde kompensation i XRP til tredjeparter, der bliver blokproducenter. RSK, på den anden side, står over for de hårdeste betingelser: den har ikke møntudstedelse (som Bitcoin), og den har ikke en mønt-premine (som XRP). RSK repræsenterer et vellykket eksempel på en Bitcoin-sidekæde, et glimt af fremtiden for konsensus i deflationære blockchains, og hvordan en blockchain uden tilskud kan være bæredygtig. Men at have ingen tilskud betyder, at sidekæden skal være omhyggeligt designet mod de angreb, der præsenteres her. RSK implementerer flere unikke funktioner for at være mere sikker mod blockchain-reorganiseringer baseret på høje gebyrtransaktioner:
- Bloker belønningsudjævning (også kaldet gebyrudjævning).
- Bloker belønningsdeling
- Fork-aware merge minedrift
I de følgende afsnit præsenterer vi kort hver teknik.
Gebyrudjævning er en konsensusregel, der fordeler transaktionsgebyrer mellem minearbejdere på en mere ligeværdig måde. Det betaler hver minearbejder en funktion af de tidligere blokbelønninger. Funktionen kan være lineær eller ikke-lineær, baseret på et lille antal tidligere blokbelønninger eller baseret på en tilstand, der afhænger af alle tidligere blokke. Det enkleste design er at bruge en form for lavpasfilter på de akkumulerede gebyrer. RSK bruger en udjævningsfunktion, der er meget enkel, en IIR med a = 0.1. Hvis en RSK-minearbejder løser en blok i højden N, vil minearbejderen blive kompenseret med 10 % af blok N-transaktionsgebyrerne og 10 % af alle tidligere akkumulerede ubetalte minearbejdergebyrer. Med andre ord eksisterer der en "delt" minearbejderkonto, hvor den vindende minearbejder ved hver blokering sætter transaktionsgebyrerne ind og udtager 10% til sig selv.
Belønningsudjævning øger incitamentet til at udvide blockchain mod incitamentet til at genmine en tidligere blok for at få fat i dens betalte gebyrer, fordi minearbejderen kun kan få fat i 10% af hvaltransaktionsgebyrerne. Vi bringer det forrige eksempel frem. Vi antager, at den gennemsnitlige blokbelønning er 10 mønter, og en blok indeholder en bestikkelse på 100 mønter i højden N. I RSK ville blokken i højden N betale en belønning på 19 mønter, mens den efterfølgende blok ville betale 18.1 mønter. Den egoistiske minearbejder har nu brug for 10 gange mere hashkraft end nogen anden minearbejder for at angrebet er rentabelt.
Vi viser nu andre supplerende beskyttelsesforanstaltninger.
RSK implementerer en konsensusprotokol for belønningsdeling kaldet DECOR. DECOR deler blokbelønninger ligeligt mellem søskendeblokke, så længe disse blokke-overskrifter refereres af den ærlige kæde. DECOR mindsker incitamentet til et atomiseringsangreb, fordi vinderen af transaktionen med høje gebyrer skal dele belønningen med så mange som yderligere 10 minearbejdere, der producerede søskendeblokke. Dette skyldes, at en blockchain-blok kan have op til 10 bloksøskendereferencer, og DECOR-protokollen deler blokbelønningen mellem dem alle. For at undgå at dele, ville minearbejderen være nødt til at mine yderligere 10 egoistiske blokke, hvilket forhindrer onkel-referencer, hvilket reducerer hans chancer for succes betydeligt. I betragtning af belønningsdeling sammen med gebyrudjævning, for at et forsøg på at forstyrre RSK-netværket skal lykkes, skal bestikkelsen være mindst 110 gange højere end den gennemsnitlige blokbelønning.
Fork-aware fusioneret minedrift er en variant af fusioneret minedrift, der giver brugerne mulighed for at overvåge hovedkædenetværket (f.eks. Bitcoin) for ondsindede gafler i sidekædenetværket (f.eks. RSK). For at drage fordel af et hvaltransaktionsangreb skal angriberen finde et offer, som han kan bruge dobbelt. Det offer ville sandsynligvis være en online kryptobørs. Krypto-udvekslinger venter på flere hundrede blokbekræftelser, før de accepterer et indskud, hvilket er nok tid til RSK Armadillo system at opdage den ondsindede gaffel på forhånd og advare børsen. I tilfælde af gebyr-sniping og minearbejder-atomiseringsangreb er de ondsindede gafler korte, og derfor kan Armadillo kun bruges som et værktøj til at diagnosticere situationen og identificere de pools, der afviger fra den ærlige protokol, men det kan ikke forhindre angrebet.
En anden supplerende beskyttelsesforanstaltning, som RSK ikke i øjeblikket implementerer, er at begrænse transaktionsgasprisen til et multiplum af minimumsgasprisen (dvs. et 10x spread). Jeg foreslog et sammenligneligt mål for Bitcoin i 2013. RSK kunne nemt implementere dette, da hver blok reklamerer for den accepterede minimumspris for transaktionsgas. Fastsættelse af en maksimal gaspris løser dog ikke helt problemet, hvis netværket er i en tilstand, hvor blokke ikke bruger al den gasgrænse, der er tilgængelig i en blok. Det høje transaktionsgebyr i T kan være resultatet af en højere mængde gas forbrugt i stedet for en højere gaspris (det betalte gebyr er produktet af disse to beløb).
Belønningsudjævning er ikke den ultimative løsning, som angribere kan bruge en smart-kontrakt platform til skrot minearbejdere til at lave næsten hvad som helst. Jeg præsenterede det teoretiske "Eternal Choice for the Dark Side Attack" (eller ECDSA :) ) i 2014, som en måde at vise, hvordan minearbejdere kunne bestikkes til at afvige fra ærlig adfærd. McCorry el kl. (2018) præsenterede en bred vifte af teoretiske bestikkelsesangreb. Men niveauet af forståelse og forberedelse, der kræves for at acceptere bestikkelse baseret på smarte kontrakter, er betydeligt. Dette gør bestikkelsesangreb baseret på smarte kontrakter meget sværere at udføre. En minearbejder skal være opmærksom på bestikkelseskontrakten og forstå, hvordan man interagerer med den. Denne type angreb er dog uundgåelig: Hvis platformen kan udføre en betaling til den nuværende blokminer, så kan den også udføre en smart kontrakt, der betaler den samme minearbejder. Dette skyldes, at programmeringssproget, der beskriver protokolkonsensus, og det, der bruges af smarte kontrakter, begge er "Turing-komplet". Dette er et interessant teoretisk problem.
Man kan tænke på smarte tricks til at gøre bestikkelsesbetalinger vanskeligere, såsom at tvinge minearbejderadresser til at være specielle (dvs. kun engangsbrug), så en bestikkelseskontrakt ikke kan betale sig til minearbejderen. En Turing komplet smart-kontrakt platform kan dog ikke forhindre en betaling fra en part, der er villig til at betale, til en anden part, der er villig til at blive betalt. Vi konstruerer altid en vellykket smart-bestikkelseskontrakt, der unddrager sig forsvar. For eksempel kan den ondsindede minearbejder skabe et nul viden bevis, der beviser kontrol af en specifik minearbejder adresse til kontrakten, uden at afsløre den private nøgle. Minearbejderen ville sende dette bevis til bestikkelseskontrakten sammen med en alternativ modtageadresse for at modtage bestikkelsen.
Det er ikke tilstrækkeligt at begrænse de smarte kontraktsprogfunktioner i blockchainen, hvis minearbejdere skal bestikkes, da enhver anden Turing-komplet smart-kontrakt platform kan bruges til at betale bestikkelse til minearbejdere. Platformen behøver kun at køre et blokhovedrelæ (dvs. btcrelay). For eksempel kunne RSK og Ethereum bruges til at betale bestikkelse til Bitcoin-minearbejdere. Det er dog sværere at koordinere et angreb på en brokoblet blockchain.
Et potentielt forsvar mod bestikkelsesangreb er at bruge en variant af PoS-konsensusprotokol, der kræver, at flertallet af blokproducenter underskriver blokke, og også kræver, at de har en sikkerhedsdepositum (indsats) af mønter i en periode på måneder. Den andel af minearbejdere, der er tvetydige (producerer to modstridende blokke eller forlængelser af modstridende gafler) ville blive konfiskeret af en fællesskabslanceret hårdgaffel. Selvom denne beskyttelse ikke eliminerer sårbarheden, kan den øge angrebsomkostningerne, da bestikkelsen skal være højere end den tabte indsats. I øjeblikket er det ikke muligt at aktivere minearbejdere på Bitcoin. Mens RSK kunne vedtage en PoS-konsensus, er der intet forslag om at skifte til PoS eller blande PoW med PoS i RSK.
Vi præsenterede adskillige kendte angreb for Nakamoto-konsensus baseret på ondsindede transaktioner, der udbetalte unormalt høje gebyrer. Nogle angreb tillader dobbeltforbrug, og andre forårsager netværksustabilitet. Disse angreb er især relevante for alle Bitcoin-sidekæder inklusive RSK. RSK implementerer blokbelønningsudjævning, blokbelønningsdeling og fork-aware fusioneret minedrift som afskrækkende midler. Mens belønningsudjævning virker for eksplicitte gebyrer, kan det generelle tilfælde af bestikkelse betalt ved hjælp af smarte kontrakter ikke undgås. Forsvar mod disse angreb kræver aktiv netværksovervågning. Endelig er yderligere forskning i potentielle løsninger på disse angreb nødvendig.
- 100
- 2016
- 2019
- Konto
- aktiv
- Adam tilbage
- Yderligere
- Fordel
- Alle
- artikel
- aktiv
- Automatiseret
- BEDSTE
- Væddemål
- til
- Bitcoin
- blockchain
- BTC
- btc pris
- Kontanter
- Årsag
- forårsagede
- Direktør
- udfordre
- odds
- lave om
- Kontrol
- barn
- kode
- Coin
- Mønter
- samfund
- Compensation (Kompensation)
- Konsensus
- forbruge
- fortsæt
- kontrakt
- kontrakter
- Oprettelse af
- krypto
- krypto udveksling
- Kryptobørser
- cryptocurrency
- Nuværende
- decentral
- Forsvar
- Denial of Service
- Design
- detail
- Afbryde
- Forstyrrelse
- distribuerede hovedbøger
- Tidligt
- Økonomisk
- ethereum
- udveksling
- Udvekslinger
- udvidelser
- Ansigtet
- ansigter
- Feature
- Funktionalitet
- Gebyrer
- Endelig
- Fornavn
- følger
- gaffel
- fuld
- funktion
- fremtiden
- GAS
- ge
- Generelt
- GM
- GP
- grab
- GV
- hård gaffel
- hash
- hashing
- Hashrate
- link.
- Høj
- Hvordan
- How To
- HTTPS
- idé
- identificere
- Herunder
- Forøg
- IP
- IT
- Nøgle
- viden
- Labs
- Sprog
- Niveau
- Lang
- større
- Flertal
- måle
- medium
- Mempool
- minearbejdere
- Mining
- penge
- overvågning
- måned
- netværk
- noder
- Tilbud
- online
- Andet
- Papir
- Betal
- betaling
- betalinger
- peer to peer
- perron
- Platforme
- pool
- Pools
- PoS
- POW
- magt
- præsentere
- forebyggelse
- pris
- private
- private nøgle
- produceret
- Producenter
- Produkt
- Profit
- Programmering
- bevis
- forslag
- beskyttelse
- Beskyttende
- forskning
- REST
- indtægter
- Belønninger
- Ripple
- krusningslaboratorier
- Kør
- kører
- sikkerhed
- Series
- indstilling
- Del
- Aktier
- skifte
- Kort
- sidechain
- Simpelt
- lille
- Smart
- smart kontrakt
- Smarte kontrakter
- So
- Løsninger
- SOLVE
- tilbringe
- spredes
- spil
- Afsætning
- Tilstand
- Strategi
- tilskud
- succes
- vellykket
- bæredygtig
- Kontakt
- tredje partier
- tid
- transaktion
- Transaktioner
- turering
- brugere
- værdi
- sårbarhed
- vente
- Wikipedia
- ord
- Arbejde
- virker
- XRP
- år
- nul