(Ta članek vsebuje nekaj gradiva, prvotno objavljenega leta 2019 v Blog IOV Labs RSK)
Varnost Bitcoina je odvisna od ekonomskih spodbud za rudarje, da razširijo "najtežjo verigo", ki je veriga z največ nakopičenimi težavami (običajno najdaljša). Trenutno so te spodbude zagotovljene z nagrado za blok, ki je sestavljena iz subvencije za blok in transakcijskih provizij. Vendar je subvencija (trenutno 6.25 BTC) bistveno višja od povprečnih transakcijskih provizij na blok (trenutno 0.25 BTC). Subvencija za bitcoine se vsaka 4 leta prepolovi in brez obratno sorazmerne rasti cene BTC se bo glavna spodbuda za rudarjenje preusmerila iz subvencij za bloke na provizije za blok transakcije. Za ohranitev trenutnega varnostnega proračuna bi se morali transakcijski stroški povečati za 25-krat. Prezgodaj je reči, ali bo to kdaj postalo problem za Bitcoin. Možno je, da se bo Bitcoin moral soft-fork ali hard-fork prilagoditi novemu obdobju nizkih subvencij. Leta 2014 sem pokazal, kako lahko Bitcoin postane nestabilen, ko sem predstavil (predvsem teoretično) SPREDNJI napad. Carlsten et al. (2016) analizirati ta problem poglobljeno, vendar niso mogli najti zadovoljive rešitve. To ni le težava Bitcoina, temveč se bo morala soočiti vsaka kriptovaluta, katere izdaja denarja se sčasoma zmanjša.
Toda za zdaj nam ni treba skrbeti za Bitcoin. Skupnost bitcoinov bo morda morala rešiti to težavo čez 10 ali 20 let ali pa morda nikoli. Vsake toliko je vprašanje ponovno pregledali, z analizami obeh poudarjanje in minimiziranje težava. Ko pa analiziramo stranske verige bitcoinov, kot je RSK, je težava povsem resnična.
Leta 2019 je omenil izvršni direktor Blockstreama Adam Back glajenje ko razpravljamo o dolgoročnem varnostnem proračunu Bitcoina: "Druge dolgoročne ideje za obdobje nizkih subvencij vključujejo povprečje provizij v blokovnih intervalih za izravnavo prihodkov od provizij."
https://twitter.com/adam3us/status/1097031151921713152
RSK od leta 2016 izvaja natanko to idejo, izravnavo prihodkov od provizij. Toda preden razložimo, kako RSK obravnava transakcije z visokimi provizijami, bomo podrobneje prikazali tri glavne napade na razveljavitev blokov, ki jih lahko sprožijo provizije za transakcije: fee sniping , kitovske transakcije in atomizacija rudarjenja.
Če je subvencija za blok nizka in so transakcijske provizije v zadnjem izrudarjenem bloku veliko višje od provizij, ki jih je mogoče zbrati iz transakcij v mempoolu, so kratkoročni racionalni rudarji spodbujeni, da zgrabijo transakcije iz zadnjega izrudarjenega bloka in rudarijo konkurenčni blokirati, namesto da bi ga podaljšali. To je odstopanje od Nakamotovega soglasja in se imenuje Ostrostrelstvo za plačilo. Po definiciji je takšno odstopanje napad na protokol, rudar pa velja za zlonamerno stranko. Za unovčenje zgrabljenih transakcijskih provizij mora zlonamerni rudar rudariti tudi en dodatni potrditveni blok hitreje kot poštena veriga, tako da preostali rudarji preklopijo na njegovo verigo. Zato ostrostrelno določanje plačil ni vedno dobičkonosno, saj zlonamerni rudar tvega, da bo zapravil svoj hashrate, če njegov sebični fork ne bo prehitel poštene verige. Redko ostrostrelno določanje nadomestil morda ni problem, toda če rudarji spremenijo svojo soglasno kodo, da bi izkoristili potencialne priložnosti ostrostrelnega nadzora nad vsemi obstoječimi razcepi, je lahko omrežje izpostavljeno nevarnejšim napadom.
Ko rudarska vozlišča izvedejo samodejno ostrostrelno določanje pristojbin, lahko napadalec izkoristi to situacijo in izvede napad z dvojno porabo. Zlonamerni rudar lahko porabi kovance v pošteni verigi in v zameno prejme drugo zunanje sredstvo ter pozneje razcepi pošteno verigo na bloku pred prvim. V zlonamernem forku napadalec podvoji kovance, vendar tudi uvede razlikovalno lastnost (tj. edinstven UTXO), ki ne sme obstajati v poštenem forku. Takoj zatem napadalec odda a »kitovo« transakcijo ki uporablja to funkcijo (tj. porabi ta UTXO) in ponuja nenavadno visoko transakcijsko provizijo kot vabo (ali podkupnino) rudarjem, ki izvajajo kodo za ostrostrelno provizijo. Medtem ko lahko izraz "kitova transakcija" razumemo kot transakcijo, ki prenaša visoko vrednost, tukaj uporabljamo definicijo v referenčnem dokumentu kot transakcijo, ki plača visoke provizije, ne glede na znesek prenesene vrednosti. V Bitcoinu bi bilo treba transakcijo kita in zlonamerne bloke fork poslati neposredno vozliščem rudarjev, ker ne-najboljših forkov ne posredujejo polna vozlišča v omrežju enakovrednih. Vendar pa je v mnogih platformah pametnih pogodb napad veliko lažji, ker oddajajo ne najboljše forke. Tudi v platformah pametnih pogodb je ustvarjanje kitove transakcije preprostejše: napadalec lahko znova uporabi nonce, ki je že uporabljen v pošteni verigi, s čimer prepreči vključitev kitove transakcije v pošteno verigo. Druga možnost je, da transakcija kita izvede pogodbo, ki preveri, ali se predhodna zgoščena vrednost bloka ujema z zgoščeno vrednostjo bloka, ki obstaja samo v sebičnem forku (tj. z uporabo opcode BLOCKHASH), in plača podkupnino samo za sebični fork.
Ko rudarji odkrijejo kitovo transakcijo, lahko razmislijo o razširitvi zlonamerne vilice, tudi če zaostajajo, če je podkupnina dovolj visoka, pri čemer stavijo, da bo prehitela daljšo pošteno verigo. Brez pametnih pogodb je najboljša strategija napada sočasno oddajanje niza transakcij kitov, ki podkupujejo naslednje rudarje, tako da še naprej podaljšujejo zlonamerni fork. V Bitcoinu je mogoče transakcije verižiti z PREVERI, ZAKLJUČI, PREVERI or PREVERI ZAPOREDJE PREVERI. V platformah pametnih pogodb je to mogoče storiti bodisi s ponovno uporabo nonce bodisi s pogodbenimi klici. Tudi če ni avtomatiziran, lahko napadalec nadaljuje z ustvarjanjem kitovih transakcij na zlonamerni fork, dokler ne prehiti poštene verige.
Pri napadu Whale Transaction smo menili, da morajo rudarji dinamično preklopiti na zapleteno rudarsko strategijo, da sprejmejo podkupnine na podlagi verjetnosti zmage fork. Bolj realistično lahko menimo, da rudarji izvajajo enostavnejšo strategijo, ki ne upošteva bodočih podkupnin, temveč le sebično ostrostrelno plačilo. Če je to strategija, ki jo sprejme večina rudarjev, potem je možen nov napad. Napad Miner Atomization je napad z zavrnitvijo storitve v celotnem omrežju, ki poskuša privabiti vse rudarje, da delajo na sebičnih vilicah hkrati, s čimer zmanjša hitrost in konvergenco poštene verige. Napad se začne z oddajanjem transakcije z zelo visokimi provizijami, podobno kot fee snipping napad ali napad kitove transakcije. Ta transakcija ni namenjena pomoči pri dvojni porabi, ampak je vaba, katere namen je atomizirati rudarsko omrežje. Napad bomo prikazali na primeru. Recimo, da transakcija T v bloku na višini N plača 100 kovancev v provizijah, vendar je povprečna nagrada za blok samo 10 kovancev. Predvidevamo, da so vsa vozlišča rudarjev programirana za sledenje tej racionalni strategiji:
- Če je T vključen v katerega koli od zadnjih K blokov poštene verige, zgrabite transakcijo T in poskusite rudariti konkurenčni blok na višini N, nato nadaljujte z rudarjenjem podrejenih blokov te sebične vilice, dokler ne prehiti poštene verige.
- Če poštena veriga prehiti sebične vilice za več kot K blokov, obupajte.
Zlonamerna transakcija z visokimi provizijami atomizira rudarjenje v korist večjega rudarskega združenja, ki ima največje možnosti za rudarjenje transakcije T in dovolj dodatnih sebičnih potrditvenih blokov, da bodo preostali rudarji obupali. Nenavadno je, da bolj ko je rudarsko omrežje decentralizirano, hujše so motnje, ki jih povzroči transakcija T. Na primer, za verigo blokov z 10-minutnim povprečnim blokovnim intervalom, če bi bilo 100 rudarjev, ki bi imeli vsak 1 % celotnega hashratea, bi omrežje utrpelo 100-kratno upočasnitev za več blokov, dokler se končno ne konvergira. Omrežje bi bilo neuporabno 2 dni!
RSK je a čista stranska veriga bitcoinov, zato se je moral soočiti z izzivom zavarovanja verige blokov z varnostnim proračunom, ki je sestavljen samo iz provizij za transakcije od njegove ustanovitve. Zato je moral biti RSK pripravljen na neobičajno visoke ali nizke honorarje. RSK je bila prva stranska veriga, pripravljena za proizvodnjo, in za soglasje uporablja rudarjenje z združitvijo. Trenutno več kot 40% Bitcoin rudarjev merge-mine RSK.
Rudarji RSK pričakujejo ekonomsko nadomestilo za delovanje polnih vozlišč RSK. Večina verig blokov izda nove kovance za to nadomestilo. Nekatere druge porazdeljene knjige, kot je Ripple, ne izdajajo kovancev za plačilo proizvajalcem blokov, vendar so proizvajalci blokov lahko subvencionirani od zunaj. Ripple Labs, ki je vnaprej rudaril XRP-je, jih ima toliko, da lahko v XRP zagotovijo nadomestilo za tretje osebe, da postanejo proizvajalci blokov. RSK se po drugi strani sooča z najtežjimi pogoji: nima izdaje kovancev (kot Bitcoin) in nima premine kovancev (kot XRP). RSK predstavlja uspešen primer stranske verige bitcoinov, vpogled v prihodnost soglasja v deflacijskih verigah blokov in kako je lahko veriga blokov brez subvencij trajnostna. Vendar pa odsotnost subvencije pomeni, da mora biti stranska veriga skrbno zasnovana proti tukaj predstavljenim napadom. RSK izvaja več edinstvenih funkcij za večjo varnost pred reorganizacijami verige blokov na podlagi transakcij z visokimi provizijami:
- Glajenje blokovnih nagrad (imenovano tudi glajenje nadomestil).
- Blokiraj delitev nagrad
- Rudarjenje z združevanjem, ki pozna vilico
V naslednjih razdelkih na kratko predstavljamo vsako tehniko.
Glajenje provizij je soglasno pravilo, ki transakcijske provizije med rudarje porazdeli na bolj enakopraven način. Vsakemu rudarju izplača funkcijo preteklih blokovnih nagrad. Funkcija je lahko linearna ali nelinearna, temelji na majhnem številu predhodnih nagrad blokov ali temelji na stanju, ki je odvisno od vseh prejšnjih blokov. Najenostavnejša zasnova je uporaba nekakšnega nizkopasovnega filtra za zbrane stroške. RSK uporablja funkcijo glajenja, ki je zelo preprosta IIR z α = 0.1. Če rudar RSK reši blok na višini N, bo rudar prejel nadomestilo z 10 % provizij za transakcijo bloka N in 10 % vseh predhodno zbranih neplačanih provizij za rudarje. Z drugimi besedami, obstaja "deljen" račun rudarjev, kjer pri vsakem bloku zmagovalni rudar vloži provizije za transakcije in vzame 10 % zase.
Glajenje nagrajevanja poveča spodbudo za razširitev verige blokov v primerjavi s spodbudo za ponovno rudarjenje prejšnjega bloka, da bi zgrabil plačane provizije, ker lahko rudar zgrabi le 10 % provizij za kitove transakcije. Omenili bomo prejšnji primer. Predvidevamo, da je povprečna nagrada za blok 10 kovancev in blok vsebuje podkupnino 100 kovancev na višini N. V RSK bi blok na višini N plačal nagrado 19 kovancev, medtem ko bi naslednji blok plačal 18.1 kovancev. Sebični rudar zdaj potrebuje 10-krat večjo moč zgoščevanja kot kateri koli drug rudar, da bi bil napad donosen.
Zdaj prikazujemo druge dopolnilne zaščitne ukrepe.
RSK izvaja soglasni protokol za delitev nagrad, imenovan DECOR. DECOR enakomerno razdeli nagrade za bloke med sorodne bloke, če se na glave teh blokov sklicuje poštena veriga. DECOR zmanjša spodbudo za atomizacijski napad, ker mora zmagovalec transakcije z visokimi provizijami deliti nagrado z nadaljnjimi 10 rudarji, ki so izdelali sorodne bloke. To je zato, ker ima lahko blok verige blokov do 10 sorodnih referenc blokov in protokol DECOR deli nagrado za blok med vsemi. Da bi se izognil deljenju, bi moral rudar izrudariti še 10 sebičnih blokov, s čimer bi preprečil sklicevanja na strice, kar bi znatno zmanjšalo njegove možnosti za uspeh. Če upoštevamo delitev nagrad skupaj z izravnavo nadomestil, mora biti podkupnina vsaj 110-krat višja od povprečne nagrade za blok, da bi bil poskus prekinitve omrežja RSK uspešen.
Združeno rudarjenje, ki pozna vilice je različica združenega rudarjenja, ki uporabnikom omogoča spremljanje omrežja glavne verige (npr. Bitcoin) glede zlonamernih forkov v omrežju stranske verige (npr. RSK). Za dobiček od napada kitove transakcije mora napadalec najti žrtev, ki jo podvoji. Ta žrtev bi bila verjetno spletna kriptomenjalnica. Kripto borze čakajo na več sto potrditev bloka, preden sprejmejo depozit, kar je dovolj časa za Sistem RSK Armadillo da vnaprej odkrije zlonamerno razcepitev in opozori izmenjavo. V primeru napadov fee sniping in atomizacije rudarjev so zlonamerni forki kratki, zato se Armadillo lahko uporablja le kot orodje za diagnosticiranje situacije in prepoznavanje bazenov, ki odstopajo od poštenega protokola, vendar napada ne more preprečiti.
Drug dopolnilni zaščitni ukrep, ki ga RSK trenutno ne izvaja, je omejitev transakcijske cene plina na večkratnik najnižje cene plina (tj. 10-kratni razpon). Predlagal sem primerljiv ukrep za Bitcoin v 2013. RSK bi lahko to enostavno izvedel, saj vsak blok oglašuje najnižjo sprejemljivo transakcijsko ceno plina. Vendar nastavitev najvišje cene plina ne reši v celoti težave, če je omrežje v stanju, ko bloki ne porabijo vse omejitve plina, ki je na voljo v bloku. Visoka transakcijska provizija v T je lahko posledica višje količine porabljenega plina namesto višje cene plina (plačana provizija je produkt teh dveh zneskov).
Glajenje nagrajevanja ni najboljša rešitev, saj lahko napadalci za to uporabijo platformo pametnih pogodb podkupnine rudarji delati karkoli. Predstavil sem teoretično "Večno izbiro za napad temne strani" (ali ECDSA :) ) v 2014, kot način za prikaz, kako bi lahko rudarje podkupili, da bi odstopili od poštenega vedenja. McCorry el at. (2018) je predstavil široko paleto teoretičnih podkupovalnih napadov. Vendar je stopnja razumevanja in pripravljenosti, ki je potrebna za sprejemanje podkupnin na podlagi pametnih pogodb, precejšnja. Zaradi tega je napade s podkupovanjem, ki temeljijo na pametnih pogodbah, veliko težje izvesti. Rudar se mora zavedati podkupovalne pogodbe in razumeti, kako z njo ravnati. Vendar je ta vrsta napada neizogibna: če lahko platforma izvede plačilo trenutnemu rudarju blokov, potem lahko izvede tudi pametno pogodbo, ki plača istemu rudarju. To je zato, ker sta programski jezik, ki opisuje konsenz protokola, in tisti, ki ga uporabljajo pametne pogodbe, oba »popolna po Turingu«. To je zanimiv teoretični problem.
Lahko si omislite pametne trike, da bi otežili podkupnine, kot je prisila, da so naslovi rudarjev posebni (tj. samo za enkratno uporabo), tako da podkupovalna pogodba ne more plačati rudarju. Vendar Turingova popolna pametna pogodbena platforma ne more preprečiti plačila stranke, ki je pripravljena plačati, drugi stranki, ki je pripravljena prejeti plačilo. Vedno sestavimo uspešno podkupovalno pametno pogodbo, ki se izmika obrambi. Na primer, zlonamerni rudar lahko ustvari dokazilo brez znanja, ki dokazuje nadzor nad določenim naslovom rudarja v pogodbi, ne da bi razkril zasebni ključ. Rudar bi to dokazilo poslal v pogodbo o podkupovanju, skupaj z alternativnim prejemnim naslovom za prejem podkupnine.
Ne zadošča omejitev jezikovnih zmožnosti pametnih pogodb blokovne verige, katere rudarji naj bi bili podkupljeni, saj se lahko za plačilo podkupnin rudarjem uporabi katera koli druga platforma pametnih pogodb, ki je popolna s Turingom. Platforma mora zagnati samo rele glave bloka (tj. btcrelay). Na primer, RSK in Ethereum bi lahko uporabili za plačilo podkupnin rudarjem bitcoinov. Vendar pa je usklajevanje napada na premoščeno verigo blokov težje.
Ena možna obramba pred podkupovalnimi napadi je uporaba različice protokola soglasja PoS, ki zahteva, da večina proizvajalcev blokov podpiše bloke, poleg tega pa zahteva, da imajo varnostni depozit (delež) kovancev za obdobje več mesecev. Delež rudarjev, ki dvoumijo (proizvedejo dva nasprotujoča si bloka ali podaljška nasprotujočih si forkov), bi bil zaplenjen s trdim forkom, ki ga sproži skupnost. Čeprav ta zaščita ne odpravi ranljivosti, lahko poveča stroške napada, saj mora biti podkupnina višja od izgubljenega vložka. Trenutno omogočanje stakinga rudarjev ni mogoče za Bitcoin. Medtem ko bi RSK lahko sprejel konsenz o PoS, ni nobenega predloga za prehod na PoS ali mešanje PoW s PoS v RSK.
Nakamotovemu soglasju smo predstavili več znanih napadov, ki temeljijo na zlonamernih transakcijah, ki izplačujejo nenormalno visoke provizije. Nekateri napadi omogočajo dvojno porabo, drugi pa povzročajo nestabilnost omrežja. Ti napadi so še posebej pomembni za vse stranske verige bitcoinov, vključno z RSK. RSK kot odvračilne dejavnike izvaja glajenje nagrajevanja blokov, delitev nagrajevanja blokov in združeno rudarjenje, ki upošteva razcepe. Medtem ko glajenje nagrajevanja deluje za eksplicitne honorarje, se splošnemu primeru podkupnin, plačanih s pametnimi pogodbami, ni mogoče izogniti. Zaščita pred temi napadi zahteva aktivno spremljanje omrežja. Nazadnje so potrebne nadaljnje raziskave možnih rešitev za te napade.
- 100
- 2016
- 2019
- Račun
- aktivna
- Adam nazaj
- Dodatne
- Prednost
- vsi
- članek
- sredstvo
- Avtomatizirano
- BEST
- Stave
- za
- Bitcoin
- blockchain
- BTC
- cena btc
- Denar
- Vzrok
- povzročilo
- ceo
- izziv
- kvote
- spremenite
- Pregledi
- otrok
- Koda
- Coin
- Kovanci
- skupnost
- Odškodnina
- Soglasje
- porabijo
- naprej
- Naročilo
- pogodbe
- Ustvarjanje
- kripto
- kripto izmenjava
- Kriptovalute
- cryptocurrency
- Trenutna
- Decentralizirano
- Defense
- Denial of Service
- Oblikovanje
- Podatki
- Moti
- Motnje
- porazdeljene knjige
- Zgodnje
- Gospodarska
- ethereum
- Izmenjava
- Izmenjave
- razširitve
- Obraz
- obrazi
- Feature
- Lastnosti
- pristojbine
- končno
- prva
- sledi
- vilice
- polno
- funkcija
- Prihodnost
- GAS
- ge
- splošno
- GM
- GP
- zgrabi
- GV
- trde vilice
- hash
- mešanje
- Hashrate
- tukaj
- visoka
- Kako
- Kako
- HTTPS
- Ideja
- identificirati
- Vključno
- Povečajte
- IP
- IT
- Ključne
- znanje
- Labs
- jezik
- Stopnja
- Long
- velika
- Večina
- merjenje
- srednje
- Mempool
- Rudarji
- Rudarstvo
- Denar
- spremljanje
- mesecev
- mreža
- vozlišča
- Ponudbe
- na spletu
- Ostalo
- Papir
- Plačajte
- Plačilo
- Plačila
- peer to peer
- platforma
- Platforme
- bazen
- Bazeni
- PoS
- PoW
- moč
- predstaviti
- preprečevanje
- Cena
- zasebna
- zasebni ključ
- Proizvedeno
- Proizvajalci
- Izdelek
- Dobiček
- Programiranje
- dokazilo
- snubitev
- zaščita
- Zaščitna
- Raziskave
- REST
- prihodki
- Nagrade
- Ripple
- valovalni laboratoriji
- Run
- tek
- varnost
- Serija
- nastavitev
- Delite s prijatelji, znanci, družino in partnerji :-)
- Delnice
- premik
- Kratke Hlače
- stransko verigo
- Enostavno
- majhna
- pametna
- pametna pogodba
- Pametne pogodbe
- So
- rešitve
- SOLVE
- preživeti
- namaz
- delež
- Staking
- Država
- Strategija
- subvencije
- uspeh
- uspešno
- trajnostno
- Preklop
- tretje osebe
- čas
- transakcija
- Transakcije
- turing
- Uporabniki
- vrednost
- ranljivost
- Počakaj
- Wikipedia
- besede
- delo
- deluje
- xrp
- let
- nič