Nya block i Bitcoins blockkedja kommer i snitt var tionde minut men eftersom det är slumpen som avgör när någon lyckas skapa ett block så kan variationerna vara stora. Faktum är att det är förväntat i snitt 1 gång per dag att inget block dyker upp på 50 minuter.
Det här gör det förstås väldigt svårt att förutse hur stor avgift som kommer att krävas för att komma med i nästa block. Även om du förväntar dig att nästa block kommer om 10 minuter så kan det mycket väl istället bli en halvtimme och när den tiden gått är det betydligt fler transaktioner på kö som slåss om att komma med i blocket. På mempool.space som är skapad av den svenska utvecklaren @softsimon får du mycket pedagogiskt presenterat vilka transaktionsavgifter som krävts i de senaste blocken, hur mycket som ligger på kö och hur det därför kan tänkas se ut i de kommande blocken. Ordet mempool syftar på de obekräftade transaktioner som en bitcoinnod känner till och alltså har sin memory pool.
Notera att nästa block alltid förväntas komma om 10 minuter. Det spelar ingen roll om det har gått 1 minut eller 30 minuter sedan senaste blocket, den bästa gissningen vi kan göra är ändå att nästa block kommer om just 10 minuter (slumpen har inget minne!). Så vad kan vi utläsa av bilden ovan? Vi kan se att det förra blocket kom för 41 minuter sedan så det har gått ovanligt lång tid. Det blocket inkluderade transaktioner med avgifter mellan 59 och 553 sat/vB (vi återkommer till vad sat/vB betyder längre ner) så det minsta vi kunde ha betalat och ändå kommit med i blocket är alltså 59 sat/vB. Direkt efter att det här blocket kom fanns alltså (förmodligen) inga transaktioner kvar i mempoolen som hade en högre avgift än 59 sat/vB men eftersom det nu gått 41 minuter så har mempoolen fyllts på med massor av nya transaktioner och vi kan därför se att nästa block, om det skulle komma just nu, skulle inkludera transaktioner som har avgifter mellan 101 och 1138 sat/vB. Det är alltså den informationen du ser i det första blocket till vänster om strecket vilket är en gissning på hur nästa block kommer att se ut. Tänk dock på att de siffrorna reflekterar hur blocket skulle se ut om det kom just nu men vi förväntar oss att det kommer om först 10 minuter så skickar du en transaktion med en avgift på 102 sat/vB så är risken stor att du inte kommer med.
Ok, så 102 är för lite om vi vill komma med i nästa block men hur mycket behövs då? Mempool.space föreslår medianvärdet av de avgifter som finns med i nästa uppskattade block, vilket i exemplet ovan är 115 sat/vB, för en transaktion med "hög prioritet". Väljer du den storleken på avgiften så är sannolikheten mycket hög att du kommer med i nästa block.
Spannet 101 - 1138 sat/vB är alltså inte en uppskattning av vilka transaktioner som kommer att komma med i nästa block utan vilka som skulle komma med om blocket kom precis nu. Eftersom den förväntade tiden till blocket är 10 minuter så finns det en skillnad mellan dessa två saker. Notera också att skillnaden blir större ju längre in i framtiden vi tittar. Det block som förväntas komma om 30 minuter innehåller på bilden transaktioner med avgifter mellan 11 och 27 sat/vB men även detta skulle bara bli verklighet om blocket kom just nu (vilket skulle innebära att 3 nya block skulle behöva komma direkt efter varandra).
sat/vB
Transaktionsavgifterna i exemplen mäts som du säkert noterat inte i bitcoin eller satoshis. Det här beror på att olika transaktioner tar olika mycket plats och det som en miner tittar på för att avgöra vilka transaktioner som ska tas med är alltså hur stor avgiften är i förhållande till hur stor plats transaktionen tar i ett block (läs mer om detta i Bitcoins transaktionsavgifter). Storleken mättes från början i bytes (och transaktionsavgifter därmed i satoshis/byte) men när Segwit introducerades komplicerades det hela eftersom viss data då fick en "rabatt" med avseende på den maximala blockstorleken. Det nya sättet att mäta använder därför s.k. weight units, eller virtual bytes (vB) där 1 vB = 4 weight units.
Detaljerna här är ganska krångliga men det som trots allt kan vara bra att veta som användare är att om du använder en plånbok med stöd för Segwit så kommer dina transaktioner att bli mindre, mätt i weight units, och avgiften du behöver betala för en transaktion därmed också mindre. Mempool.space visar information om detta om du klickar dig in på ett block och vidare in på valfri transaktion. Se exemplet nedan för en transaktion som förvisso använder Segwit (iaf för en av sina inputs) och därför sparade lite pengar men inte så mycket som hade varit möjligt eftersom den inte använde det nya adressformat som kom med Segwit, kallat bech32. Kolla därför gärna när du väljer plånbok om den har stöd för bech32 då du i så fall kan spara en del pengar. Du känner igen bech32-adresser på att de börjar med tecknen "bc1".
Ytterligare funktioner på mempool.space
Förutom att vara ett verktyg för att uppskatta transaktionsavgifter så är mempool.space en fullfjädrad block explorer där du kan undersöka vilket block, transaktion eller adress som helst genom att helt enkelt söka fram den med sökrutan uppe till höger. Det finns också en sida som visar grafer bl.a. över vad som just nu finns i mempoolen. I exemplet nedan ser vi hur en mycket stor del av mempoolen utgörs av transaktioner som betalat 1 sat/vB eller mindre (det rosa fältet). Den streckade vita linjen indikerar maxstorleken för ett block så det blir också tydligt att dessa transaktioner i skrivande stund är väldigt långt ifrån att komma med i ett block.
Vill du ha ständig koll där hemma så finns en "TV view" som visar både grafen ovan och raden av block från första bilden i den här artikeln. Det finns dessutom ett enkelt API där du bl.a. kan hämta de rekommenderade avgifterna just nu om du behöver detta till ett eget projekt.
Mempool-projektet är open source och hittas här på GitHub.