The Segwit Wallet Development Guide has a small section on fee estimation:
Transaction Fee Estimation
- Instead of transaction size, a new metric is defined, called “virtual size” (
vsize
)vsize
of a transaction equals to 3 times of the size with original serialization, plus the size with new serialization, divide the result by 4 and round up to the next integer. For example, if a transaction is 200 bytes with new serialization, and becomes 99 bytes withmarker
,flag
, andwitness
removed, thevsize
is (99 * 3 + 200) / 4 = 125 with round up.vsize
of a non-segwit transaction is simply its size- Transaction fee should be estimated by comparing the
vsize
with other transactions, not the size.- Developers should be careful not to make an off-by-4-times mistake in fee estimation.
vsize
therefore is a value that allows easy comparison to the previously used transaction size. What is the reason that it is being recommended as the basis of fee estimation? Wouldn't it make more sense to directly calculate fee estimates on the basis of weight?