Mempool-policy: gebyrer, RBF og CPFP

Hvorfor transaksjonen din venter, og hvordan du bump'er den.

Før en transaksjon kommer inn i en blokk, sitter den i nodenes mempooler. Konsensusregler sier hva som kan gå i en blokk. Policyregler, valgt av hver node, bestemmer hva en node lagrer og videresender. Bitcoin Cores standardvalg former det meste av nettverket.

Viktige policyregler i Bitcoin Core

  • Størrelse: mempoolen er begrenset til 300 MB som standard. Når den er full, kastes transaksjonene med lavest gebyrsats, og minimumsgebyret stiger.
  • Utløp: transaksjoner droppes etter 336 timer (to uker) som standard.
  • Standardhet: bare kjente scripttyper, begrenset transaksjonsstørrelse, og utdata over «dust»-terskelen videresendes.
  • Minimum relay-gebyr: svært lavgebyr-transaksjoner ignoreres.
  • Pakkegrenser: kjeder av sammenhengende ubekreftede transaksjoner er begrenset.

Gebyrsats er konge

Utvinnere vil ha høyest gebyr per vektenhet, så gebyrer oppgis i sat/vB. En 140 vB-transaksjon som betaler 1 400 sats betaler 10 sat/vB. Størrelsen avhenger av inndata og scripttype, ikke av beløpet som sendes.

Å bumpe en sittende transaksjon

RBF (Replace-By-Fee): kringkast en ny versjon som bruker de samme inndataene med høyere gebyr. Erstatningen må betale høyere absolutt gebyr og gebyrsats og dekke egen relay. BIP125 definerte opt-in-signalering via nSequence, og siden Bitcoin Core 28.0 er full RBF standard, så enhver ubekreftet transaksjon kan erstattes.

CPFP (Child Pays For Parent): bruk en utdata fra den sittende transaksjonen med høyt gebyr. Utvinnere vurderer pakken, så barnet trekker forelderen inn.

Pinning og package relay

I delte kontrakter som Lightning kan en motpart «pinne» en transaksjon, for eksempel ved å feste et stort lavgebyr-barn, som gjør erstatning dyr. Bitcoin Core 28.0 la til one-parent-one-child package relay og v3 «TRUC»-transaksjoner med strammere grenser, så en lavgebyr-forelder fortsatt kan videresendes med et høygebyr-barn.

Takeaway

Nullbekreftelses-transaksjoner er ikke endelige. Policy kan endres mellom versjoner, men konsensus-regler kan ikke endres uten en fork.