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” (
vsizeof 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 with
vsizeis (99 * 3 + 200) / 4 = 125 with round up.
vsizeof a non-segwit transaction is simply its size
- Transaction fee should be estimated by comparing the
vsizewith 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?