In Bitcoin Core, fees are represented by a fictitious unit (kvB). #26729

issue ghost opened this issue on December 20, 2022
  1. ghost commented at 7:24 AM on December 20, 2022: none

    I've noticed that the fictional unit 'kvB' is used in Bitcoin Core. I looked into this for a few months and couldn't find a single standard or even mention of a unit called 'kvB' anywhere online. Even the old kB notation used in Bitcoin is incorrect.

    Pretty much everyone agrees on that Bitcoin is referring to the unit size of bit.

    1024 bits ((2<sup>10</sup> bits) bits) is equal to 1 kibibit, and is represented by the symbol Ki.

    GNU/Linux users are well acquainted with the symbols KiB and MiB, which stand for Kibibyte and Mebibyte, respectively.

    Some of the recent pulls that introduced this issue in Bitcoin: @MarcoFalke https://github.com/bitcoin/bitcoin/commit/6da3afbaee5809ebf6d88efaa3958c505c2d71c7 @jonatack https://github.com/bitcoin/bitcoin/commit/94f83534e4b771944af7d9ed0f40746f392eb75e

    While I am not a member of the Bitcoin organization on GitHub, I request that this issue be assigned to me because I would like to contribute to Bitcoin Core by resolving this issue.

  2. kouloumos commented at 8:27 AM on December 20, 2022: member

    In 'kvB', 'v' stands for virtual. This notation was introduced with SegWit, where the block size limit was replaced with a four million weight unit limit, which introduced a new way to “count” transaction data; instead of transaction size, a new metric was defined, called “virtual size” (in this case virtual bytes). You can find a reference to virtual size in BIP141 and there is a great explanation on stackexchange for how block weight works.

    You can find a lot of references in the repository for vbytes as well as BTC/kvB and sats/vB. With a quick search it seems that it might be true that there is no easy to find explanation on what virtual bytes are.

  3. ghost commented at 8:49 AM on December 20, 2022: none

    I have read all that and I strongly oppose anything similar in Bitcoin.

    In fact, the antonyms (opposites) of the word "virtual" are real, true, and actual.

    Given the significance of Bitcoin, fictitious units should not be used to represent binary units. As I previously stated, Bitcoin is named after the bit unit.

    Of course, you can fork Bitcoin and create your own fantasy virtualUnitsofPooCoin in which you can use fictitious binary units.

  4. willcl-ark commented at 10:14 AM on December 20, 2022: member

    @redarmyfaction in addition to what @kouloumos kindly explained to you, if you want to tackle an issue then you don't need to wait for it to be assigned to you, simply go ahead and open a pull request. If your changes are worthwhile they will attract the reviews needed from other contributors.

    In my personal opinion it seems unlikely that changing Kilo to Kibi would be desirable. Removing vbytes also seems undesirable because -- as explained in the SE answer -- this unit exists for backwards compatibile comparisons with non-segwit transactions where pre-segwit transaction "sizes" in bytes are comparable with segwit transaction vbyte sizes.

  5. ghost commented at 10:59 AM on December 20, 2022: none

    I'm not interested in segwit; you both keep repeating obvious nonsense, and I'd go so far as to say you're openly hostile to internationally recognized standards like binary units.

    I am seriously considering removing all segwit-related code from the Bitcoin source code because I find it completely absurd that I now have to watch fictitious units that are clearly invented not only in Bitcoin but also in Namecoin (Bitcoin's very first fork).

    I want people who aren't affiliated with for-profit corporations like Blockstream Inc to develop Bitcoin professionally without inventing new binary units that serve no purpose and make no sense.

    Either the self-proclaimed Bitcoin developers follow internationally recognized standards, such as the critical binary units, or they should consider becoming a con artist instead of imposing non-standard fictitious units on Bitcoin (and Namecoin) users.

    I'm curious how someone can become a developer without understanding binary units.

  6. fanquake commented at 11:02 AM on December 20, 2022: member

    Feel free to open a Pull Request if you have something meaningful to contribute, and it will be reviewed like any other. However it's becoming clear that nothing worthwhile is going to be accomplished in this thread, so I'm going to close it.

  7. fanquake closed this on Dec 20, 2022

  8. ghost commented at 11:07 AM on December 20, 2022: none

    I opened the issue to discuss it before sending any pull requests. Please reopen the matter because it is extremely serious.

    In any case, fictitious binary units should not be permitted in Bitcoin!

  9. MarcoFalke locked this on Dec 21, 2022

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-17 15:13 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me