Konspirasjon mot “øyeblikkelige” Bitcoin-transaksjoner: RBF, CPFP og Scorched Earth
Alle antar at Bitcoin-transaksjoner er øyeblikkelige, og for det meste av Bitcoins historie var dette praktisk talt sant – du kan anta dette uten mye risiko. Men hvis vi ser litt dypere, ser vi at dette ikke kan være virkeligheten lenge.
Contents
Hva er dobbeltbruk?
Det “doble forbruket” er den store tekniske utfordringen som Bitcoin løste for desentraliserte systemer. Som med alle digitale filer er det praktisk talt umulig å gi den verdi, som kan byttes ut siden datamaskiner kan kopiere og lime inn så lett.
Hvis vi forestiller oss Bitcoin-transaksjoner som en sjekk, som spesifiserer hvor pengene kommer fra og hvor de skal (sammen med en kryptografisk signatur), kan vi alle enkelt bekrefte denne informasjonen – det er inkluderingen i Bitcoin blockchain som gjør denne sjekken faktisk gyldig.
Siden man kan signere tusenvis av disse sjekkene, alle med de samme pengene, alle sjekkene vil sprette bortsett fra den som er inkludert i blockchain. Dette er overgangen fra en null-bekreftelse-transaksjon til en bekreftet transaksjon. På den andre siden kalles motstridende transaksjoner som bruker de samme myntene mer enn en gang, dobbeltbruk.
For øyeblikket, og i henhold til Bitcoin-nettverkets nåværende oppførsel, vil den første transaksjonen som blir sett være den som skal inkluderes i blockchain. Dette er enkelt og behagelig. Gruvearbeidere vil kaste motstridende transaksjoner, så i det øyeblikket du ser en gyldig transaksjon i nettverket (som er øyeblikkelig), kan du anta at den ikke vil brukes dobbelt og til slutt inkluderes i blockchain (ikke øyeblikkelig).
Er det anbefalt å stole på dette?
Jeg har anbefalt å stole på null-bekreftelsestransaksjoner, men bare for små transaksjoner. Av hensyn til små transaksjoner, vil en angriper som planlegger å begå bedrageri på en null-bekreftelsetransaksjon måtte organisere et komplekst angrep, sannsynligvis krever noe element av manipulasjon eller bestikkelse, og dette er ekstremt lite sannsynlig når små transaksjoner står på spill. som å kjøpe kaffe eller en bærbar datamaskin.
Imidlertid er realiteten at nullbekreftelsetransaksjoner ikke er “velsignet” av blockchain og derfor ikke får alle løftene som Bitcoin tilbyr, siden de potensielt er “reversible” (før de får bekreftelser).
Så betyr dette at Bitcoin-transaksjoner ikke kan være både irreversible og øyeblikkelige? Det korte svaret er “sant”: Standard Bitcoin-transaksjoner nyter ikke begge disse egenskapene samtidig. Det lengre svaret er åpenbart mer komplisert.
Child-Pays-For-Parent (CPFP) vs. Replace-By-Fee (RBF)
Som vi vet er gruvearbeidere ansvarlige for å inkludere transaksjoner i blockchain, og til gjengjeld mottar de transaksjonsgebyrene, i tillegg til å motta blokkbelønningen for mined blokker (preging av nye mynter) gitt rett fra protokollen.
Hvis vi antar at gruvearbeidere vil prioritere fortjeneste, kan vi anta at en smart gruvearbeider vil inkludere ikke-lønnsomme transaksjoner (gebyrfrie transaksjoner) hvis de er knyttet til transaksjoner med nok gebyrer til å dekke fortjeneste for begge transaksjonene.
Hvis jeg for eksempel betaler en bedrift og de vet at avgiften er for liten, kan de ta disse myntene og sende dem til en annen adresse med en ny transaksjon som har dobbelt avgift. Dette betyr at gruvearbeideren vil forstå at han eller hun bare kan få dobbeltavgiften hvis han eller hun inkluderer den første transaksjonen i prosessen.
Denne metoden for å gi gruvearbeidere et overskuddsmotiv for å akseptere transaksjoner kalles “Child Pays For Parent” (CPFP), og vi kan anta at gruvearbeidere på et eller annet tidspunkt vil oppføre seg slik pålitelig. Dette gjør det mulig å løse visse gebyrproblemer, for eksempel å la mottakers betalingsbetalinger betale for transaksjonsgebyret, og generelt sikre at visse transaksjoner blir inkludert i blockchain.
Dette gjør det mulig for mottakersiden å motivere gruvearbeidere til å bekrefte en bestemt transaksjon. Avsenderen kan imidlertid også motivere gruvearbeidere til å bekrefte en bestemt transaksjon ved å bruke et dobbeltforbruk som har en høyere avgift. Tross alt er det like rimelig å anta at gruvearbeidere vil velge dobbeltbruk for høyere avgift. Dette kalles “Erstatt med gebyr” (RBF), som er gyldig og legitim i henhold til protokollen, og er i strid med anbefalingen om å stole på null-bekreftelsestransaksjoner. Dette gjør det også mulig å løse visse gebyrproblemer, for eksempel å la avsenderen kansellere eller fikse transaksjoner (så lenge de fremdeles er ubekreftet i blockchain).
Per nå oppfører gruvearbeidere seg ikke slik, og du kan likevel anta at de fleste små nullbekreftelsetransaksjoner er trygge. Det er imidlertid ingen måte å love at dette vil forbli tilfelle over tid.
Vent … Hvis både avsender og mottaker kan uavhengig motivere gruvearbeidere til å bekrefte spesifikke transaksjoner, hvem vinner? Dobbeltforbruket eller den opprinnelige transaksjonen?
Svidd jord
Hvis vi kombinerer begge disse konseptene, som både er legitime og kanskje til og med forventet, kommer vi til en litt rar konklusjon: verken avsenderen eller mottakeren vinner. Det er bare gruvearbeiderne som gjør det. Som nevnt gjøres alle disse profittmotivene ved å øke avgiften som gruvearbeideren forventer å motta fra en bestemt transaksjon, og derfor hver gang avsenderen eller mottakeren prøver å motivere gruvearbeideren, stiger avgiften og gruvearbeideren fortjener.
La oss prøve et eksempel.
La oss anta at Bob vil kansellere en transaksjon på en mBTC han sendte til Alice, men Alice vil sikre at transaksjonen går gjennom. Opprinnelig la ikke Bob til en gang et gebyr, og Alice’s lommebok innså dette, slik at den automatisk bruker CPFP og legger til dobbelt avgift (0,2 mBTC-avgift, forutsatt at standardavgiften er 0,1 mBTC).
Når gruvearbeiderne ser denne andre transaksjonen, vil de inkludere den opprinnelige transaksjonen fordi det er den eneste måten å få dobbeltavgiften. Bob vil avbryte dette, så han bruker RBF og oppretter en ny motstridende transaksjon som sender den opprinnelige mBTC tilbake til ham, bortsett fra med et gebyr på 0,3 mBTC. Siden avgifter tas ut av den totale Alice er faktisk villig til å inngå kompromisser og få bare 0,8 mBTC og betale 0,2 mBTC til gruvearbeiderne, mens Bob er villig til å bare få 0,7 mBTC (med 0,3 mBTC brukt som gebyrer).
En gruvearbeider som ser på dette vil se ett sett med transaksjoner som vil netto ham 0,2 mBTC i avgifter, og en annen transaksjon som vil netto ham 0,3 mBTC i avgifter, og vil sannsynligvis ønske å bekrefte Bobs transaksjon. Alice vet dette og oppretter en ny CPFP-transaksjon med et høyere gebyr på 0,4 mBTC. Tross alt er det bedre å få rest 0,6 mBTC enn å få noe. Bob fortsetter og løfter sin RBF til 0,5 mBTC. Som du kan forestille deg vil dette fortsette til Bob tilbyr 0,9 mBTC i avgifter, mens du bare får tilbake 0,1 mBTC. Alice, nå ekstremt rasende, vil tilby en ny transaksjon uten rest og hele mBTC som gebyr for gruvearbeiderne bare for å til tross for Bob.
Hele dette gebyrløpet har ført til at Alice og Bob har brent gjennom alle pengene og brukt dem som gebyrer til ingen endring var igjen. Alle handlet rasjonelt og forventet. Hvem vinner? Gruvearbeideren, som fikk hele transaksjonen som et gebyr i stedet for det lille standardgebyret. Og her kommer vi til det som har blitt kalt “Scorched Earth” av null-bekreftelsetransaksjoner.
Det er av denne grunn og andre som ubekreftede transaksjoner anses ikke som trygge, spesielt sammenlignet med transaksjoner som har mange bekreftelser. Selv om dette ikke er virkeligheten i dag, er alt dette gyldig og legitimt i henhold til protokollen og krever ikke at noe skal skje, bortsett fra at gruvearbeidere begynner å handle mer “rasjonelt” og prioritere fortjeneste.
Ikke noe som heter “øyeblikkelige” Bitcoin-transaksjoner?
I en verden av tradisjonelle penger kan øyeblikkelige transaksjoner bare skje med kontanter personlig eller med en tredjepart. Bitcoin er designet for å eliminere behovet for tredjeparter, og selv om vi kan forutse Scorched Earth, viser det seg at øyeblikkelige transaksjoner fremdeles er mulig uten tredjeparter, men ikke med standard Bitcoin-transaksjoner.
Betalingskanaler er et annet konsept som teoretisk kan tillate umiddelbare eller høyfrekvente transaksjoner, og som faktisk bruker det faktum at du kan signere transaksjoner uten å nødvendigvis kringkaste dem for å bli inkludert i blockchain umiddelbart.
Disse ideene og andre off-chain-løsninger krever vanligvis “låsning” av midler på forhånd, men de kan tilby billigere avgifter, øyeblikkelige transaksjoner og generelt høyere fleksibilitet, samtidig som de er tillitsløse uten tredjeparter..
Avslutningsvis er ikke vanlige Bitcoin-transaksjoner velsignet å være øyeblikkelig, i det minste ikke av protokollen. Imidlertid kan ikke-vanlige Bitcoin-transaksjoner som betalingskanaler utenfor kjeden være øyeblikkelige, og kanskje tilby enda mer enn vanlige transaksjoner.