(Dit artikel bevat materiaal dat oorspronkelijk in 2019 is gepubliceerd in de IOV Labs RSK-blog)
De veiligheid van Bitcoin is afhankelijk van de economische prikkels voor miners om de "zwaarste keten" uit te breiden, de keten met de meeste geaccumuleerde moeilijkheidsgraad (meestal de langste). Momenteel worden die prikkels geleverd door de blokbeloning, die bestaat uit de bloksubsidie โโen de transactiekosten. Maar de subsidie โโ(momenteel 6.25 BTC) is aanzienlijk hoger dan de gemiddelde transactiekosten per blok (momenteel 0.25 BTC). Bitcoin-subsidie โโhalveert elke 4 jaar, en zonder een omgekeerd evenredige prijsstijging van BTC, zal de belangrijkste stimulans voor mijnbouw verschuiven van bloksubsidie โโnaar bloktransactiekosten. Om het huidige beveiligingsbudget te behouden, zouden de transactiekosten met een factor 25 moeten worden verhoogd. Het is te vroeg om te zeggen of dit ooit een probleem zal worden voor Bitcoin. Het is mogelijk dat Bitcoin soft-fork of hard-fork nodig heeft om zich aan te passen aan een nieuw tijdperk van lage subsidie. In 2014 liet ik zien hoe Bitcoin instabiel kan worden toen ik de (voornamelijk theoretische) VOORAANVAL. Carlsten et al. (2016) geanalyseerd dit probleem diepgaand, maar ze konden geen bevredigende oplossing vinden. Dit is niet alleen het probleem van Bitcoin, maar elke cryptocurrency waarvan de gelduitgifte in de loop van de tijd afneemt, zal het hoofd moeten bieden.
Maar we hoeven ons voorlopig geen zorgen te maken over Bitcoin. De bitcoin-gemeenschap moet dit probleem mogelijk over 10 of 20 jaar oplossen, of misschien nooit. Zo nu en dan is het probleem opnieuw onderzocht, met analyses beide markeren en minimaliseren het probleem. Maar wanneer we Bitcoin-zijketens analyseren, zoals RSK, is het probleem vrij reรซel.
In 2019 noemde Blockstream's CEO Adam Back: smoothing bij de bespreking van het langetermijnbeveiligingsbudget van Bitcoin: "Andere ideeรซn voor een laag subsidietijdperk op langere termijn omvatten het gemiddelde van de vergoedingen over blokintervallen om de inkomsten uit vergoedingen soepel te laten verlopen."
https://twitter.com/adam3us/status/1097031151921713152
RSK implementeert sinds 2016 precies dat idee, het gladstrijken van de inkomsten uit vergoedingen. Maar voordat we uitleggen hoe RSK omgaat met transacties met hoge kosten, zullen we in meer detail de drie belangrijkste blokomkeringsaanvallen laten zien die kunnen worden geactiveerd door transactiekosten: fee sniping , walvistransacties en mijnverneveling.
Als de bloksubsidie โโlaag is en de transactiekosten in het laatst gedolven blok veel hoger zijn dan de vergoedingen die kunnen worden geรฏnd uit transacties in de mempool, worden rationele mijnwerkers op korte termijn gestimuleerd om transacties uit het laatst gedolven blok te pakken en een concurrerend blok, in plaats van het uit te breiden. Dit is een afwijking van Nakamoto Consensus, en het heet Fee snipen. Zo'n afwijking is per definitie een aanval op het protocol en de miner wordt beschouwd als een kwaadwillende partij. Om de gegrepen transactiekosten te verzilveren, moet de kwaadwillende miner ook sneller een extra bevestigingsblok minen dan de eerlijke keten, zodat de rest van de mijnwerkers naar zijn keten overschakelen. Daarom is fee sniping niet altijd winstgevend, omdat de kwaadwillende miner het risico loopt zijn hashrate te verspillen als zijn egoรฏstische fork de eerlijke keten niet overtreft. Infrequente fee sniping is misschien geen probleem, maar als miners hun consensuscode wijzigen om te profiteren van potentiรซle fee sniping-mogelijkheden over alle bestaande forks, dan kan het netwerk worden blootgesteld aan gevaarlijkere aanvallen.
Zodra miners nodes automatische fee sniping uitvoeren, kan een aanvaller profiteren van deze situatie om een โโdouble-spend aanval uit te voeren. Een kwaadwillende mijnwerker kan munten uitgeven in de eerlijke keten en in ruil daarvoor een ander extern bezit ontvangen, en later de eerlijke keten op een blok voor de eerste splitsen. In de kwaadaardige fork besteedt de aanvaller de munten dubbel, maar introduceert hij ook een onderscheidend kenmerk (dwz een unieke UTXO) die niet mag bestaan โโin de eerlijke fork. Onmiddellijk daarna zendt de aanvaller een "walvis" transactie die gebruik maakt van deze functie (dwz deze UTXO verbruikt) en een ongewoon hoge transactiekost aanbiedt als lokaas (of omkoping) aan de miners die de fee sniping-code gebruiken. Hoewel de term "walvistransactie" kan worden opgevat als een transactie die een hoge waarde overdraagt, gebruiken we hier de definitie in het document waarnaar wordt verwezen, als een transactie waarvoor hoge kosten worden betaald, ongeacht de hoeveelheid overgedragen waarde. In Bitcoin zouden de walvistransactie en de kwaadaardige vorkblokken rechtstreeks naar de knooppunten van mijnwerkers moeten worden verzonden, omdat niet-beste vorken niet worden doorgestuurd door de volledige knooppunten in het peer-to-peer-netwerk. In veel smart-contractplatforms is de aanval echter veel gemakkelijker omdat ze niet-beste forks uitzenden. Ook in smart-contractplatforms is het creรซren van een walvistransactie eenvoudiger: de aanvaller kan een reeds in de eerlijke keten gebruikte nonce hergebruiken en zo voorkomen dat de walvistransactie in de eerlijke keten wordt opgenomen. Als alternatief kan de walvistransactie een contract uitvoeren dat controleert of de vorige block-hash overeenkomt met een block-hash die alleen in de egoรฏstische fork bestaat (dwz met BLOCKHASH-opcode) en alleen steekpenningen betaalt op de egoรฏstische fork.
Zodra mijnwerkers een walvistransactie detecteren, kunnen ze overwegen de kwaadaardige vork uit te breiden, zelfs als ze achterblijven, als de steekpenningen hoog genoeg zijn, in de gok dat het de langere eerlijke keten zal overtreffen. Zonder slimme contracten is de beste aanvalsstrategie om gelijktijdig een reeks walvistransacties uit te zenden waarbij de volgende mijnwerkers worden omgekocht, zodat ze de kwaadaardige vork blijven uitbreiden. In Bitcoin kunnen transacties worden geketend met CHECKLOCKLOCKVERIFICEREN or CONTROLEVOLGORDE. In smart-contractplatforms kan dit worden gedaan door nonces te hergebruiken of door contractoproepen. Zelfs als het niet geautomatiseerd is, kan de aanvaller doorgaan met het genereren van walvistransacties op de kwaadaardige fork, totdat het de eerlijke keten inhaalt.
Bij de Whale Transaction-aanval waren we van mening dat miners dynamisch moeten overschakelen naar een complexe mijnstrategie om steekpenningen te accepteren op basis van fork winnende kansen. We kunnen realistischer bedenken dat de mijnwerkers een eenvoudigere strategie hebben die geen rekening houdt met toekomstige steekpenningen, maar alleen met egoรฏstische fee sniping. Als dit de strategie is die door de meerderheid van de miners wordt gevolgd, is een nieuwe aanval mogelijk. De Miner Atomization-aanval is een netwerkbrede denial-of-service-aanval die alle miners probeert te verleiden om tegelijkertijd aan egoรฏstische forks te werken, waardoor de snelheid en convergentie van de eerlijke keten wordt verminderd. De aanval begint met het uitzenden van een transactie met zeer hoge kosten, vergelijkbaar met de fee snipping-aanval of de walvistransactie-aanval. Deze transactie is niet bedoeld om te helpen dubbele uitgaven te doen, maar het is een lokaas dat tot doel heeft het mijnnetwerk te verstuiven. We laten de aanval zien met een voorbeeld. Stel dat een transactie T in een blok op hoogte N 100 munten aan vergoedingen betaalt, maar de gemiddelde blokbeloning is slechts 10 munten. We nemen aan dat alle mijnwerkersknooppunten zijn geprogrammeerd om deze rationele strategie te volgen:
- Als T is opgenomen in een van de laatste K-blokken van de eerlijke keten, pak dan de transactie T en probeer een concurrerend blok op hoogte N te delven, en blijf dan kindblokken van deze egoรฏstische vork minen totdat het de eerlijke keten overtreft.
- Als de eerlijke ketting de egoรฏstische vork met meer dan K-blokken overtreft, geef dan op.
De kwaadaardige transactie met hoge kosten verstoort de mijnbouw ten gunste van de grotere mijnbouwpool, die de grootste kans heeft om de transactie T te minen plus voldoende extra egoรฏstische bevestigingsblokken zodat de resterende mijnwerkers het opgeven. Vreemd genoeg, hoe meer gedecentraliseerd het mijnnetwerk is, hoe erger de verstoring veroorzaakt door transactie T is. Bijvoorbeeld, voor een blockchain met een gemiddeld blokinterval van 10 minuten, als er 100 miners zijn die elk 1% van de totale hashrate hebben, zou het netwerk gedurende meerdere blokken 100x langzamer worden totdat het uiteindelijk convergeert. Het netwerk zou 2 dagen onbruikbaar zijn!
RSK is een pure Bitcoin-zijketen, dus het moest de uitdaging aangaan om de blockchain te beveiligen met een beveiligingsbudget dat sinds de oprichting alleen uit transactiekosten bestaat. Daarom moest RSK voorbereid zijn op abnormaal hoge of lage tarieven. RSK was de eerste productieklare zijketen en maakt gebruik van merge-mining voor consensus. Momenteel meer dan 40% van de Bitcoin-mijnwerkers samenvoegen-mijn RSK.
RSK-mijnwerkers verwachten een economische compensatie voor het runnen van volledige RSK-knooppunten. De meeste blockchains geven voor deze vergoeding nieuwe munten uit. Sommige andere gedistribueerde grootboeken, zoals Ripple, geven geen munten uit om blokproducenten te betalen, maar blokproducenten kunnen extern worden gesubsidieerd. Ripple Labs, dat XRP's pre-mined, heeft er zoveel dat ze compensatie in XRP kunnen bieden aan derden om blokproducenten te worden. RSK, aan de andere kant, wordt geconfronteerd met de zwaarste omstandigheden: het heeft geen muntuitgifte (zoals Bitcoin) en het heeft geen muntvoordeel (zoals XRP). RSK vertegenwoordigt een succesvol voorbeeld van een Bitcoin-zijketen, een glimp van de toekomst van consensus in deflatoire blockchains en hoe een blockchain zonder subsidie โโduurzaam kan zijn. Het ontbreken van subsidie โโbetekent echter dat de zijketen zorgvuldig moet worden ontworpen tegen de hier gepresenteerde aanvallen. RSK implementeert verschillende unieke functies om beter beveiligd te zijn tegen blockchain-reorganisaties op basis van transacties met hoge kosten:
- Beloningsafvlakking blokkeren (ook wel vergoedingafvlakking genoemd).
- Het delen van beloningen blokkeren
- Fork-bewuste merge mining
In de volgende paragrafen stellen we elke techniek kort voor.
Fee smoothing is een consensusregel die transactiekosten tussen miners op een meer egalitaire manier verdeelt. Het betaalt elke mijnwerker een functie van de eerdere blokbeloningen. De functie kan lineair of niet-lineair zijn, gebaseerd op een klein aantal eerdere blokbeloningen, of gebaseerd op een status die afhankelijk is van alle voorgaande blokken. Het eenvoudigste ontwerp is om een โโsoort laagdoorlaatfilter te gebruiken op de verzamelde vergoedingen. RSK gebruikt een afvlakkingsfunctie die heel eenvoudig is, en IIR Met ฮฑ = 0.1. Als een RSK-mijnwerker een blok op hoogte N oplost, wordt de mijnwerker gecompenseerd met 10% van de transactiekosten van blok N en 10% van alle onbetaalde eerder opgebouwde minervergoedingen. Met andere woorden, er bestaat een "gedeelde" mijnwerkersrekening, waar bij elk blok de winnende mijnwerker de transactiekosten inlegt en 10% voor zichzelf opneemt.
Reward smoothing verhoogt de prikkel om de blockchain uit te breiden tegen de prikkel om een โโvorig blok opnieuw te minen om zijn betaalde vergoedingen te pakken, omdat de miner slechts 10% van de transactiekosten voor walvissen kan pakken. We halen het vorige voorbeeld naar voren. We nemen aan dat de gemiddelde blokbeloning 10 munten is en dat een blok 100 munten omkoping bevat op hoogte N. In RSK zou het blok op hoogte N een beloning van 19 munten betalen, terwijl het volgende blok 18.1 munten zou betalen. De egoรฏstische miner heeft nu 10 keer meer hashkracht nodig dan elke andere miner om de aanval winstgevend te maken.
We laten nu andere aanvullende beschermende maatregelen zien.
RSK implementeert een consensusprotocol voor het delen van beloningen genaamd DECOR. DECOR verdeelt blokbeloningen gelijkmatig tussen broers en zussen, zolang naar die blokkenkoppen wordt verwezen door de eerlijke keten. DECOR vermindert de prikkel voor een atomiseringsaanval omdat de winnaar van de transactie met hoge vergoedingen de beloning moet delen met maar liefst 10 andere miners die broers en zussen hebben geproduceerd. Dit komt omdat een blockchain-blok maximaal 10 block-broer-zus-referenties kan hebben, en het DECOR-protocol deelt de blokbeloning tussen hen allemaal. Om delen te voorkomen, zou de mijnwerker nog eens 10 egoรฏstische blokken moeten minen, waardoor oomreferenties worden voorkomen, waardoor zijn kansen op succes aanzienlijk worden verkleind. Rekening houdend met het delen van beloningen en het afvlakken van de vergoedingen, moet een poging om het RSK-netwerk te verstoren om succesvol te zijn, de steekpenningen minstens 110 keer hoger zijn dan de gemiddelde blokbeloning.
Fork-bewuste samengevoegde mijnbouw is een variant van merged mining waarmee gebruikers het mainchain-netwerk (bijv. Bitcoin) kunnen controleren op kwaadaardige forks in het sidechain-netwerk (bijv. RSK). Om te profiteren van een aanval op een walvistransactie, moet de aanvaller een slachtoffer vinden om dubbel uit te geven. Dat slachtoffer zou waarschijnlijk een online crypto-uitwisseling zijn. Crypto-uitwisselingen wachten op enkele honderden blokbevestigingen voordat ze een aanbetaling accepteren, wat voldoende tijd is voor de RSK Armadillo-systeem om de kwaadaardige vork vooraf te detecteren en de uitwisseling te waarschuwen. In het geval van fee sniping en miner atomization-aanvallen, zijn de kwaadaardige forks kort, en daarom kan Armadillo alleen worden gebruikt als een hulpmiddel om de situatie te diagnosticeren en de pools te identificeren die afwijken van het eerlijke protocol, maar het kan de aanval niet voorkomen.
Een andere aanvullende beschermingsmaatregel, die RSK momenteel niet implementeert, is het beperken van de transactiegasprijs tot een veelvoud van de minimumgasprijs (dwz een 10x spread). Ik heb een vergelijkbare maatregel voor Bitcoin voorgesteld in 2013. RSK zou dit gemakkelijk kunnen implementeren, aangezien elk blok de minimaal geaccepteerde transactiegasprijs adverteert. Het instellen van een maximale gasprijs lost het probleem echter niet volledig op als het netwerk zich in een staat bevindt waarin blokken niet alle beschikbare gaslimiet in een blok verbruiken. De hoge transactiekosten in T kunnen het gevolg zijn van een grotere hoeveelheid verbruikt gas in plaats van een hogere gasprijs (de betaalde vergoeding is het product van deze twee bedragen).
Het afvlakken van beloningen is niet de ultieme oplossing, omdat aanvallers een smart-contractplatform kunnen gebruiken om steekpenning mijnwerkers om zo ongeveer alles te doen. Ik presenteerde de theoretische "Eternal Choice for the Dark Side Attack" (of ECDSA :) ) in 2014, als een manier om te laten zien hoe mijnwerkers kunnen worden omgekocht om af te wijken van eerlijk gedrag. McCorry el op. (2018) presenteerde een breed scala aan theoretische omkopingsaanvallen. Het niveau van begrip en voorbereiding dat nodig is om steekpenningen op basis van slimme contracten te accepteren, is echter aanzienlijk. Dit maakt op slimme contracten gebaseerde omkopingsaanvallen veel moeilijker uit te voeren. Een mijnwerker moet op de hoogte zijn van het omkoopcontract en begrijpen hoe ermee om te gaan. Dit type aanval is echter onvermijdelijk: als het platform een โโbetaling kan uitvoeren aan de huidige block miner, kan het ook een smart contract uitvoeren dat dezelfde miner betaalt. Dit komt omdat de programmeertaal die de protocolconsensus beschrijft en degene die wordt gebruikt door slimme contracten beide "Turing-compleet" zijn. Dit is een interessant theoretisch probleem.
Men kan slimme trucs bedenken om het betalen van steekpenningen moeilijker te maken, zoals het dwingen van een miner-adres om speciaal te zijn (dus alleen voor eenmalig gebruik), zodat een steekpenningscontract de miner niet kan betalen. Een compleet smart-contract platform van Turing kan echter niet voorkomen dat een partij die bereid is te betalen, betaalt aan een andere partij die bereid is te worden betaald. We bouwen altijd een succesvol omkopend smart-contract dat verdedigingen ontwijkt. De kwaadwillende miner kan bijvoorbeeld een zero-knowledge proof maken om de controle over een specifiek miner-adres voor het contract aan te tonen, zonder de privรฉsleutel te onthullen. De mijnwerker zou dit bewijs naar het omkoopcontract sturen, samen met een alternatief ontvangstadres om de steekpenningen te ontvangen.
Het is niet voldoende om de slimme contracttaalmogelijkheden van de blockchain te beperken waarvan de miners moeten worden omgekocht, aangezien elk ander Turing-compleet smart-contractplatform kan worden gebruikt om steekpenningen aan miners te betalen. Het platform hoeft alleen een block header-relay (bijv. btcrelay) uit te voeren. RSK en Ethereum kunnen bijvoorbeeld worden gebruikt om steekpenningen te betalen aan Bitcoin-mijnwerkers. Het coรถrdineren van een aanval op een overbrugde blockchain is echter moeilijker.
Een mogelijke verdediging tegen omkopingsaanvallen is het gebruik van een variant van het PoS-consensusprotocol dat vereist dat de meeste blokproducenten blokken ondertekenen, en ook dat ze een borg (inzet) van munten moeten hebben voor een periode van maanden. De inzet van mijnwerkers die twijfelen (twee tegenstrijdige blokken of uitbreidingen van tegenstrijdige vorken produceren) zou in beslag worden genomen door een door de gemeenschap gelanceerde harde vork. Hoewel deze bescherming de kwetsbaarheid niet wegneemt, kan het de aanvalskosten verhogen, aangezien de steekpenningen hoger moeten zijn dan de verloren inzet. Momenteel is het inschakelen van miner-staking niet mogelijk op Bitcoin. Hoewel RSK een PoS-consensus zou kunnen aannemen, is er geen voorstel om over te schakelen naar PoS of PoW niet te mengen met PoS in RSK.
We hebben verschillende bekende aanvallen voorgelegd aan de Nakamoto-consensus op basis van kwaadaardige transacties die abnormaal hoge vergoedingen uitbetalen. Sommige aanvallen maken dubbele uitgaven mogelijk en andere veroorzaken netwerkinstabiliteit. Deze aanvallen zijn vooral relevant voor alle Bitcoin-zijketens, inclusief RSK. RSK implementeert block reward smoothing, block reward sharing en fork-aware merged mining als afschrikmiddel. Hoewel beloningsafvlakking werkt voor expliciete vergoedingen, kan het algemene geval van steekpenningen die worden betaald met slimme contracten niet worden vermeden. Verdediging tegen deze aanvallen vereist actieve netwerkbewaking. Tot slot is verder onderzoek naar mogelijke oplossingen voor deze aanvallen noodzakelijk.
- 100
- 2016
- 2019
- Account
- actieve
- Adam Back
- Extra
- Voordeel
- Alles
- dit artikel
- aanwinst
- geautomatiseerde
- BEST
- wedden
- naar
- Bitcoin
- blockchain
- BTC
- btc prijs
- Contant geld
- Veroorzaken
- veroorzaakt
- ceo
- uitdagen
- kansen
- verandering
- Controles
- kind
- code
- Munt
- Munten
- gemeenschap
- Vergoeding
- Overeenstemming
- consumeren
- voortzetten
- contract
- contracten
- Wij creรซren
- crypto
- crypto uitwisseling
- Crypto Exchanges
- cryptogeld
- Actueel
- gedecentraliseerde
- Verdediging
- Denial of Service
- Design
- detail
- ontwrichten
- Ontwrichting
- verdeelde grootboeken
- Vroeg
- Economisch
- ethereum
- uitwisseling
- Exchanges
- extensies
- Gezicht
- gezichten
- Kenmerk
- Voordelen
- vergoedingen
- Tot slot
- Voornaam*
- volgen
- vork
- vol
- functie
- toekomst
- GAS
- ge
- Algemeen
- GM
- GP
- grijpen
- GV
- harde vork
- hachee
- hashing
- Hashrate
- hier
- Hoge
- Hoe
- How To
- HTTPS
- idee
- identificeren
- Inclusief
- Laat uw omzet
- IP
- IT
- sleutel
- kennis
- Labs
- taal
- Niveau
- lang
- groot
- Meerderheid
- maatregel
- Medium
- mempool
- Mijnwerkers
- Mijnbouw
- geld
- Grensverkeer
- maanden
- netwerk
- knooppunten
- Aanbod
- online.
- Overige
- Papier
- Betaal
- betaling
- betalingen
- Bestandenuitwisseling
- platform
- platforms
- zwembad
- Zwembaden
- PoS
- PoW
- energie
- presenteren
- het voorkomen van
- prijs
- privaat
- private Key
- geproduceerd
- Producenten
- Product
- Profit
- Programming
- bewijs
- voorstel
- bescherming
- Beschermend
- onderzoek
- REST
- inkomsten
- Beloningen
- Ripple
- rimpellabs
- lopen
- lopend
- veiligheid
- -Series
- het instellen van
- Delen
- Aandelen
- verschuiving
- Bermuda's
- zijketting
- Eenvoudig
- Klein
- slim
- slim contract
- Slimme contracten
- So
- Oplossingen
- OPLOSSEN
- besteden
- verspreiden
- inzet
- staking
- Land
- Strategie
- subsidie
- succes
- geslaagd
- duurzaam
- Stap over voor slechts
- derden
- niet de tijd of
- transactie
- Transacties
- Turing
- gebruikers
- waarde
- kwetsbaarheid
- wachten
- Wikipedia
- woorden
- Mijn werk
- Bedrijven
- XRP
- jaar
- nul