(Den här artikeln innehåller något material som ursprungligen publicerades 2019 i IOV Labs RSK-blogg)
Säkerheten för Bitcoin är beroende av de ekonomiska incitamenten för gruvarbetare att förlänga den "tyngsta kedjan", vilket är kedjan med den mest ackumulerade svårigheten (vanligtvis den längsta). För närvarande tillhandahålls dessa incitament av blockbelöningen, som består av blocksubventionen och transaktionsavgifterna. Men subventionen (för närvarande 6.25 BTC) är betydligt högre än de genomsnittliga transaktionsavgifterna per block (för närvarande 0.25 BTC). Bitcoinsubventioner halveras vart fjärde år och utan en omvänt proportionell BTC-prisuppskattning kommer det huvudsakliga incitamentet för gruvdrift att flyttas från blocksubvention till blockering av transaktionsavgifter. För att bibehålla den nuvarande säkerhetsbudgeten måste transaktionskostnaderna öka 4 gånger. Det är för tidigt att säga om detta någonsin kommer att bli ett problem för Bitcoin. Det är möjligt att Bitcoin behöver soft-fork eller hard-fork för att anpassa sig till en ny era av lågt subvention. 25 visade jag hur Bitcoin kunde bli instabilt när jag presenterade (huvudsakligen teoretiskt) FRAMATS attack. Carlsten et al. (2016) analyseras detta problem på djupet men de kunde inte hitta en tillfredsställande lösning. Detta är inte bara Bitcoins problem utan varje kryptovaluta vars penningemission minskar med tiden kommer att behöva mötas.
Men vi behöver inte oroa oss för Bitcoin för tillfället. Bitcoinsamhället kan behöva lösa detta problem på 10 eller 20 år, eller kanske aldrig. Då och då är frågan omprövas, med analyser båda belysa och minimerande problemet. Men när vi analyserar Bitcoin sidokedjor, som RSK, är problemet ganska verkligt.
År 2019 nämnde Blockstreams vd Adam Back glättning när vi diskuterar Bitcoins långsiktiga säkerhetsbudget: "Andra långsiktiga idéer med låg subventionstid innefattar avgiftsgenomsnitt för blockintervall för att jämna avgiftsintäkter."
https://twitter.com/adam3us/status/1097031151921713152
RSK implementerar exakt den idén, utjämningen av avgiftsintäkterna, sedan 2016. Men innan vi förklarar hur RSK hanterar transaktioner med höga avgifter, visar vi mer detaljerat de tre stora blockomvändningsattackerna som kan utlösas av transaktionsavgifter: avgiftsskärning , valtransaktioner och gruvförstöring.
Om blockbidraget är lågt och transaktionsavgifterna i det sist utvunna blocket är mycket högre än de avgifter som kan samlas in från transaktioner i mempool, uppmuntras kortsiktiga rationella gruvarbetare att ta transaktioner från det sist utvunna blocket och bryta en konkurrerande blockera istället för att förlänga det. Detta är en avvikelse från Nakamoto Consensus, och det kallas Avgiftsskärning. Per definition är en sådan avvikelse en attack mot protokollet, och gruvarbetaren anses vara en skadlig part. För att ta ut de tagna transaktionsavgifterna måste den skadliga gruvarbetaren också bryta ytterligare ett bekräftelseblock snabbare än den ärliga kedjan, så att resten av gruvarbetarna byter till sin kedja. Därför är avgiftsskärning inte alltid lönsamt, eftersom den skadliga gruvarbetaren riskerar att slösa bort sin hashrate om hans själviska gaffel inte överträffar den ärliga kedjan. Sällsynt avgiftsskärning kanske inte är ett problem, men om gruvarbetare ändrar sin konsensuskod för att dra nytta av potentiella avgiftsskärningsmöjligheter över alla befintliga gafflar, kan nätverket utsättas för farligare attacker.
När gruvarbetarnas noder utför automatiskt avgiftsskärning kan en angripare dra nytta av denna situation för att utföra en dubbelanvändningsattack. En skadlig gruvarbetare kan spendera mynt i den ärliga kedjan och ta emot en annan extern tillgång i utbyte och senare gaffla den ärliga kedjan i ett block före den första. I den skadliga gaffeln spenderar angriparen mynt men introducerar också en särskiljande egenskap (dvs. en unik UTXO) som inte får finnas i den ärliga gaffeln. Omedelbart därefter sänder angriparen a "Val" -transaktion som använder den här funktionen (dvs förbrukar denna UTXO) och erbjuder en ovanligt hög transaktionsavgift som bete (eller bestickning) till gruvarbetarna som kör avgiftskipskoden. Medan termen "valtransaktion" kan förstås som en transaktion som överför ett högt värde, använder vi här definitionen i det refererade papperet, som en transaktion som betalar höga avgifter, oavsett hur mycket värde som överförs. I Bitcoin skulle valtransaktionen och de skadliga gaffelblocken behöva skickas direkt till gruvarbetarnas noder, eftersom icke-bästa gafflar inte vidarebefordras av hela noder i nätverket för kollegor. Men i många plattformar för smarta kontrakt är attacken mycket lättare eftersom de sänder icke-bästa gafflar. Även i smarta kontraktplattformar är det enklare att skapa en valtransaktion: angriparen kan återanvända en nonce som redan används i den ärliga kedjan, vilket förhindrar att valtransaktionen ingår i den ärliga kedjan. Alternativt kan valtransaktionen utföra ett kontrakt som kontrollerar om det föregående block-hashet matchar ett block-hash som bara finns i den själviska gaffeln (dvs med hjälp av BLOCKHASH opcode) och betalar endast mutor på den själviska gaffeln.
När gruvarbetare upptäcker en valtransaktion kan de överväga att förlänga den skadliga gaffeln, även om de släpar efter, om mutan är tillräckligt hög och satsar på att den kommer att överträffa den längre ärliga kedjan. Utan smarta kontrakt är den bästa attackstrategin att samtidigt sända en serie valtransaktioner som mutar följande gruvarbetare så att de fortsätter att utöka den skadliga gaffeln. I Bitcoin kan transaktioner länkas med CHECKLOCKLOCKVERIFY or KONTROLLSÄKERHET. I plattformar för smarta kontrakt kan detta göras genom att antingen återanvända nonces eller genom kontraktssamtal. Även om den inte är automatiserad kan angriparen fortsätta generera valtransaktioner på den skadliga gaffeln tills den överträffar den ärliga kedjan.
I Whale Transaction-attacken ansåg vi att gruvarbetare måste byta dynamiskt till en komplex gruvstrategi för att acceptera mutor baserat på gaffelvinningssannolikheter. Vi kan mer realistiskt överväga att gruvarbetarna kör en enklare strategi som inte tar hänsyn till framtida mutor, utan bara självisk avgiftsskärning. Om detta är den strategi som majoriteten av gruvarbetare har antagit är en ny attack möjlig. Miner Atomization-attacken är ett nätverksövergripande förnekande av tjänsteattack som försöker locka alla gruvarbetare att arbeta på själviska gafflar samtidigt, vilket minskar hastigheten och konvergensen för den ärliga kedjan. Attacken börjar med sändningen av en transaktion med mycket höga avgifter, som liknar attacken för avgiftsavdrag eller valtransaktionsattacken. Denna transaktion är inte avsedd att hjälpa till med dubbla utgifter men det är ett bete som syftar till att finfördela gruvnätverket. Vi visar attacken med ett exempel. Antag att en transaktion T i ett block på höjd N betalar 100 mynt i avgifter, men den genomsnittliga blockbelöningen är bara 10 mynt. Vi antar att alla gruvarbetares noder är programmerade för att följa denna rationella strategi:
- Om T ingår i någon av de sista K-blocken i den ärliga kedjan, ta tag i transaktionen T och försök att bryta ett konkurrerande block på höjden N och håll sedan bryta barnblock av denna själviska gaffel tills den överträffar den ärliga kedjan.
- Om den ärliga kedjan överträffar den själviska gaffeln med mer än K-block, ge upp.
Den höga avgiften skadlig transaktion atomiserar gruvdrift till förmån för den större gruvpoolen, som har de största chanserna att bryta transaktionen T plus tillräckligt med ytterligare själviska bekräftelseblock för att de återstående gruvarbetarna ska ge upp. Märkligt nog är att ju mer decentraliserat gruvnätet är, desto värre är störningen orsakad av transaktion T. Till exempel, för en blockchain med ett 10 minuters genomsnittligt blockintervall, om det fanns 100 gruvarbetare som var och en hade 1% av den totala hashraten, skulle nätverket drabbas av en 100x avmattning i flera block tills det slutligen konvergerar. Nätverket skulle vara oanvändbart i två dagar!
RSK är en ren Bitcoin sidokedja, så det var tvungen att möta utmaningen att säkra blockchain med en säkerhetsbudget som endast består av transaktionsavgifter sedan starten. Därför var RSK tvungen att vara beredd på onormalt höga eller låga avgifter. RSK var den första produktionsklara sidokedjan, och den använder merge-mining för konsensus. För närvarande mer än 40% av Bitcoin gruvarbetare sammanslagningsgrupp RSK.
RSK-gruvarbetare förväntar sig ekonomisk kompensation för att köra hela RSK-noder. De flesta blockkedjor ger ut nya mynt för denna kompensation. Vissa andra distribuerade huvudböcker, som Ripple, ger inte ut mynt för att betala blockproducenter men blockproducenter kan subventioneras externt. Ripple Labs, som förbrukade XRP, har så många av dem att de kan ge kompensation i XRP för att tredje part ska bli blockproducenter. RSK, å andra sidan, står inför de tuffaste förhållandena: det har inte myntemission (som Bitcoin) och det har ingen myntpremie (som XRP). RSK representerar ett framgångsrikt exempel på en Bitcoin-sidokedja, en glimt av framtiden för konsensus i deflationsblockkedjor och hur en blockchain utan subvention kan vara hållbar. Att inte ha någon subvention innebär dock att sidokedjan måste utformas noggrant mot de attacker som presenteras här. RSK implementerar flera unika funktioner för att vara säkrare mot blockchain-omorganisationer baserat på transaktioner med höga avgifter:
- Blockera utjämning av belöningar (även kallad avgiftsutjämning).
- Blockera delning av belöningar
- Gaffelmedveten sammanslagning av gruvdrift
I följande avsnitt presenterar vi kort varje teknik.
Avgiftsutjämning är en konsensusregel som fördelar transaktionsavgifter mellan gruvarbetare på ett mer jämlikt sätt. Det betalar varje gruvarbetare en funktion av tidigare blockbelöningar. Funktionen kan vara linjär eller ickelinjär, baserat på ett litet antal tidigare blockbelöningar, eller baserat på ett tillstånd som beror på alla tidigare block. Den enklaste designen är att använda något slags lågpassfilter på de ackumulerade avgifterna. RSK använder en utjämningsfunktion som är väldigt enkel, och IIR med a = 0.1. Om en RSK-gruvarbetare löser ett block på höjd N, kommer gruvarbetaren att kompenseras med 10% av block N-transaktionsavgifterna och 10% av alla tidigare obetalda mineralkostnader. Med andra ord finns det ett "delat" gruvarbetarkonto, där vid varje block den vinnande gruvarbetaren lägger in transaktionsavgifterna och tar ut 10% för sig själv.
Belöningsutjämning ökar incitamentet att förlänga blockkedjan mot incitamentet att omgruva ett tidigare block för att ta tag i sina betalda avgifter, eftersom gruvarbetaren bara kan ta 10% av valtransaktionsavgifterna. Vi tar upp föregående exempel. Vi antar att den genomsnittliga blockbelöningen är 10 mynt och ett block innehåller en 100-mynt bestickning på höjden N. I RSK skulle blocket på höjden N betala en belöning på 19 mynt, medan följande block skulle betala 18.1 mynt. Den själviska gruvarbetaren behöver nu tio gånger mer hashkraft än någon annan gruvarbetare för att attacken ska vara lönsam.
Vi visar nu andra kompletterande skyddsåtgärder.
RSK implementerar ett belöningsdelnings-konsensusprotokoll som heter DECOR. DECOR delar upp belöningar jämnt mellan syskonblocken, så länge som dessa rubriker refereras till av den ärliga kedjan. DECOR minskar incitamentet för en atomiseringsattack eftersom vinnaren av transaktionen med hög avgift måste dela belöningen med så många som ytterligare 10 gruvarbetare som producerade syskonblock. Detta beror på att ett blockchain-block kan ha upp till 10 block-syskonreferenser, och DECOR-protokollet delar blockbelöningen mellan dem alla. För att undvika delning skulle gruvarbetaren behöva bryta ytterligare 10 själviska block, förhindra farbrorreferenser, vilket avsevärt minskar hans chanser att lyckas. Med tanke på delning av belöning tillsammans med avgiftsutjämning, för att ett försök att störa RSK-nätverket ska lyckas måste mutan vara minst 110 gånger högre än den genomsnittliga blockbelöningen.
Gaffelmedveten sammanslagen gruvdrift är en variant av sammanslagen gruvdrift som tillåter användare att övervaka huvudkedjan (t.ex. Bitcoin) för skadliga gafflar i sidokedjanätverket (t.ex. RSK). För att dra nytta av en valtransaktionsattack måste angriparen hitta ett offer för att dubbelt spendera. Det offret skulle förmodligen vara ett online-kryptoutbyte. Kryptobörser väntar på flera hundra blockbekräftelser innan de accepterar en insättning, vilket är tillräckligt med tid för RSK Armadillo-system för att upptäcka den skadliga gaffeln i förväg och varna utbytet. När det gäller avgiftsskärning och mineraltomiseringsattacker är de skadliga gafflarna korta, och därför kan Armadillo endast användas som ett verktyg för att diagnostisera situationen och identifiera poolerna som avviker från det ärliga protokollet, men det kan inte förhindra attacken.
En annan kompletterande skyddsåtgärd, som RSK för närvarande inte implementerar, är att begränsa transaktionsgaspriset till en multipel av lägsta gaspris (dvs. en 10x-spridning). Jag föreslog en jämförbar åtgärd för Bitcoin i 2013. RSK kan enkelt implementera detta, eftersom varje block annonserar det lägsta accepterade gaspriset. Att ställa in ett maximalt gaspris löser dock inte problemet helt om nätverket är i ett tillstånd där block inte förbrukar alla tillgängliga gasgränser i ett block. Den höga transaktionsavgiften i T kan vara resultatet av en högre mängd gas som konsumeras istället för ett högre gaspris (den betalade avgiften är produkten av dessa två belopp).
Belöningsutjämning är inte den ultimata lösningen, eftersom angripare kan använda en plattform för smarta kontrakt för att muta gruvarbetare att göra precis vad som helst. Jag presenterade det teoretiska "Eternal Choice for the Dark Side Attack" (eller ECDSA :) ) i 2014, som ett sätt att visa hur gruvarbetare kan mutas för att avvika från ärligt beteende. McCorry el på. (2018) presenterade ett brett spektrum av teoretiska mutorattacker. Den förståelse och förberedelse som krävs för att acceptera smarta kontraktsbaserade mutor är dock betydande. Detta gör smarta kontraktsbaserade mutorattacker mycket svårare att utföra. En gruvarbetare måste vara medveten om mutningsavtalet och förstå hur man interagerar med det. Denna typ av attack är dock oundviklig: om plattformen kan utföra en betalning till den aktuella blockmineraren, kan den också utföra ett smart kontrakt som betalar samma gruvarbetare. Detta beror på att programmeringsspråket som beskriver protokollkonsensus och det som används av smarta kontrakt båda är "Turing-complete". Detta är ett intressant teoretiskt problem.
Man kan tänka sig smarta knep för att göra mutautbetalningar svårare, som att tvinga gruvarbetaradresser att vara speciella (dvs. endast engångsanvändning), så att ett mutningskontrakt inte kan betalas till gruvarbetaren. En Turing-komplett plattform för smarta kontrakt kan dock inte förhindra en betalning från en part som är villig att betala till en annan part som är villig att få betalt. Vi konstruerar alltid ett framgångsrikt bestickande smart-kontrakt som undviker försvar. Till exempel kan den skadliga gruvarbetaren skapa ett noll kunskapssäker bevis för kontroll av en specifik gruvarbetare till kontraktet utan att avslöja den privata nyckeln. Gruvarbetaren skulle skicka detta bevis till bestickningsavtalet, tillsammans med en alternativ mottagningsadress för att ta emot mutan.
Det räcker inte med att begränsa de smarta kontraktsspråkfunktionerna för blockchain vars gruvarbetare ska mutas, eftersom alla andra Turing-kompletta plattformar för smarta kontrakt kan användas för att betala mutor till gruvarbetare. Plattformen behöver bara köra ett blockrubrikrelä (dvs. btcrelay). Till exempel kan RSK och Ethereum användas för att betala mutor till Bitcoin-gruvarbetare. Det är dock svårare att samordna en attack mot en överbryggad blockchain.
Ett potentiellt försvar mot mutor attacker är att använda en variant av PoS konsensusprotokoll som kräver att majoriteten av blockproducenter undertecknar block, och kräver också att de har en deposition (stake) på mynt under en period av månader. Minerns insats (som producerar två motstridiga block eller förlängningar av motsägande gafflar) skulle konfiskeras av en gemenskapslanserad hårdgaffel. Även om detta skydd inte eliminerar sårbarheten, kan det öka attackkostnaden, eftersom mutan måste vara högre än den förlorade insatsen. För närvarande är det inte möjligt att aktivera gruvdrift på Bitcoin. Medan RSK kunde anta ett PoS-konsensus finns det inget förslag att byta till PoS eller blanda PoW med PoS i RSK.
Vi presenterade flera kända attacker till Nakamoto-konsensus baserat på skadliga transaktioner som betalar ut onormalt höga avgifter. Vissa attacker tillåter dubbla utgifter och andra orsakar instabilitet i nätverket. Dessa attacker är särskilt relevanta för alla Bitcoin-sidokedjor inklusive RSK. RSK implementerar blockutjämning, blockerar belöningsdelning och gaffelmedveten sammanslagen gruvdrift som avskräckande. Medan utjämning av belöningar fungerar för uttryckliga avgifter kan det allmänna fallet med mutor som betalas med smarta kontrakt inte undvikas. Att försvara från dessa attacker kräver aktiv nätverksövervakning. Slutligen är ytterligare forskning om potentiella lösningar för dessa attacker nödvändig.
- 100
- 2016
- 2019
- Konto
- aktiv
- Adam tillbaka
- Annat
- Fördel
- Alla
- Artikeln
- tillgång
- Automatiserad
- BÄST
- Betting
- till
- Bitcoin
- blockchain
- BTC
- btc-pris
- Kontanter
- Orsak
- orsakas
- VD
- utmanar
- chanser
- byta
- Kontroller
- barn
- koda
- Coin
- Mynt
- samfundet
- Ersättning
- Konsensus
- konsumera
- fortsätta
- kontrakt
- kontrakt
- Skapa
- crypto
- krypto utbyte
- Crypto-utbyten
- kryptovaluta
- Aktuella
- decentraliserad
- Försvar
- Denial of Service
- Designa
- detalj
- Störa
- Störningar
- distribuerade bokar
- Tidig
- Ekonomisk
- ethereum
- utbyta
- Utbyten
- förlängningar
- Ansikte
- ytorna
- Leverans
- Funktioner
- avgifter
- Slutligen
- Förnamn
- följer
- gaffel
- full
- fungera
- framtida
- GAS
- ge
- Allmänt
- GM
- GP
- ta
- GV
- hårt gaffel
- hash
- hasch
- Hashrate
- här.
- Hög
- Hur ser din drömresa ut
- How To
- HTTPS
- Tanken
- identifiera
- Inklusive
- Öka
- IP
- IT
- Nyckel
- kunskap
- Labs
- språk
- Nivå
- Lång
- större
- Majoritet
- mäta
- Medium
- Mempool
- gruvarbetare
- Gruvdrift
- pengar
- övervakning
- månader
- nät
- noder
- Erbjudanden
- nätet
- Övriga
- Papper
- Betala
- betalning
- betalningar
- peer-to-peer
- plattform
- Plattformar
- poolen
- Pools
- PoS
- PoW
- kraft
- presentera
- förebyggande
- pris
- privat
- privat nyckel
- producerad
- producenter
- Produkt
- Vinst
- Programmering
- bevis
- förslag
- skydd
- Skyddande
- forskning
- REST
- intäkter
- Belöningar
- Ripple
- krusningslaboratorier
- Körning
- rinnande
- säkerhet
- Serier
- inställning
- Dela
- aktier
- skifta
- Kort
- sidokedja
- Enkelt
- Small
- smarta
- smart kontrakt
- Smarta kontrakt
- So
- Lösningar
- LÖSA
- spendera
- spridning
- spel
- utsättning
- Ange
- Strategi
- bidrag
- framgång
- framgångsrik
- hållbart
- Växla
- utomstående
- tid
- transaktion
- Transaktioner
- turing
- användare
- värde
- sårbarhet
- vänta
- wikipedia
- ord
- Arbete
- fungerar
- XRP
- år
- noll-