Skip to content

BIP177: Redefine Bitcoin’s Base Unit #1821

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 16 commits into
base: master
Choose a base branch
from

Conversation

BitcoinErrorLog
Copy link

@BitcoinErrorLog BitcoinErrorLog commented Apr 12, 2025

This BIP proposes redefining the bitcoin unit of account to represent the protocol’s smallest indivisible unit as “1 bitcoin,” eliminating the need for decimal-based UI conventions.

  • Type: Informational
  • No changes to consensus rules or supply
  • Matches Bitcoin’s native integer representation
  • Includes multi-phase rollout recommendations

Authored by: John Carvalho (@BitcoinErrorLog)

Mailing list:

https://groups.google.com/g/bitcoindev/c/YwF-djZi1Bo/m/nIkyuClEAgAJ

add placeholder number to attempt passing auto tests
scrub metadata to attempt to pass test
Copy link
Contributor

@murchandamus murchandamus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the submission. This looks pretty complete already, all the sections are there. I have left a couple formatting suggestions and was wondering whether it might have been an oversight that almost the whole document is structured under the Introduction section.

Copy link
Contributor

@murchandamus murchandamus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, the file currently doesn’t render for me in the GitHub preview.—It did render when you had it as a markdown file, but since it was changed to a a mediawiki file it doesn’t. I’m not sure, yet, why. It might be related to the missing indentation in the preformatted text block.

@luke-jr
Copy link
Member

luke-jr commented Apr 12, 2025

How isn't this still decimal?

@slush0

This comment was marked as off-topic.

@katesalazar

This comment was marked as off-topic.

@RandyMcMillan
Copy link
Contributor

It will actually be easier to support the established convention of ₿ 1.000… in accounting software spreadsheets etc… One simply needs to repurpose metric unit conversion logic to implement Bitcoin accounting idioms. Allowing app developers to repurpose metric unit conversion code will actually ease adoption friction more than this proposal or the “bits” proposal. In the long run - languages/words evolve! - this whole debate seems to arise out of people’s need to control the words other people use more than anything really useful.

Imagine renaming a “penny” to a “dollar” and then trying to force everyone to adopt the new “jargon”. It is as absurd as it sounds!

NAK

BitcoinErrorLog and others added 2 commits April 13, 2025 08:57
Reviewer fixes

Co-authored-by: Mark "Murch" Erhardt <[email protected]>
edit formatting for Bits header
@BitcoinErrorLog
Copy link
Author

Also, the file currently doesn’t render for me in the GitHub preview.—It did render when you had it as a markdown file, but since it was changed to a a mediawiki file it doesn’t. I’m not sure, yet, why. It might be related to the missing indentation in the preformatted text block.

Apologies, I was working in md and assumed I needed to submit as mediawiki, which I am unfamiliar with. Happy to adjust any formatting to be correct... with a little help.

@BitcoinErrorLog
Copy link
Author

How isn't this still decimal?

One of the most prominent and rational feedback to the original version of this proposal was to retain stock ticker denominations. This seems rational to me, where we have BTC and XBT, or the like. Maybe this relegates the "21M" meme and culture to the finance world. I don't know.

But otherwise, I hope to simply specify how people could display Bitcoin units as "bitcoin" and thus avoid bad thinking due to ignorance about how Bitcoin uses integers.

There are a bunch of side benefits to this, but most feedback was otherwise highly subjective or speculative.

@BitcoinErrorLog
Copy link
Author

What a terrible idea of redefining a widely used term by the different meaning.

Thank you for your feedback.

Please consider that I am merely suggesting we call the only units in Bitcoin "bitcoins" - as well as the other rationale in the document.

@BitcoinErrorLog
Copy link
Author

It will actually be easier to support the established convention of ₿ 1.000… in accounting software spreadsheets etc… One simply needs to repurpose metric unit conversion logic to implement Bitcoin accounting idioms. Allowing app developers to repurpose metric unit conversion code will actually ease adoption friction more than this proposal or the “bits” proposal. In the long run - languages/words evolve! - this whole debate seems to arise out of people’s need to control the words other people use more than anything really useful.

Imagine renaming a “penny” to a “dollar” and then trying to force everyone to adopt the new “jargon”. It is as absurd as it sounds!

NAK

Thank you for your misc opinions, but, in the end, I could only consider feedback that maintains the core intent of the proposal.

@katesalazar
Copy link
Contributor

Someone explain to me how we moved from there are multiple ways to increase precision to sat is indivisible in less than 3 years?

Copy link
Contributor

@schildbach schildbach left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How is this proposal different to the already established "sats" denomination?

Also, doesn't the LN already use "fractional satoshis"? If so, the integer-only argument wouldn't be valid.

@BitcoinErrorLog
Copy link
Author

Someone explain to me how we moved from there are multiple ways to increase precision to sat is indivisible in less than 3 years?

In my opinion, the proposals you linked could all be classified as hard forks, and/or, hacks to support a new subordinate UoA, and/or, entirely fictional hugely controversial consensus changes.

This BIP on the other hand is generally harmless.

@BitcoinErrorLog
Copy link
Author

BitcoinErrorLog commented Apr 13, 2025

How is this proposal different to the already established "sats" denomination?

Also, doesn't the LN already use "fractional satoshis"? If so, the integer-only argument wouldn't be valid.

  1. I will re-read the proposal with eye to make sure any "sats" dynamics are clearly addressed. Feel free to contribute!
  2. LN "millisats" do not "exist" exactly, they are just a trusted intra-channel credit feature. Mostly they just confuse people to once again misunderstand how Bitcoin (and Lightning) works. Should I add specs to remove millisats as concept to this BIP too?

@jonatack jonatack changed the title Propose BIP "21Q": Redefinition of Bitcoin’s Base Unit BIP draft: Redefinition of Bitcoin’s Base Unit Apr 13, 2025
@schildbach
Copy link
Contributor

I will re-read the proposal with eye to make sure any "sats" dynamics are clearly addressed. Feel free to contribute!

Frankly, I don't see any difference at the moment – other than the name. That's why I was asking for including this discussion into the "alternatives".

LN "millisats" do not "exist" exactly, they are just a trusted intra-channel credit feature. Mostly they just confuse people to once again misunderstand how Bitcoin (and Lightning) works. Should I add specs to remove millisats as concept to this BIP too?

I take it the definition in this BIP is about Bitcoin the currency (as opposed to Bitcoin the payment system). As such, I think this BIP should consider all existing uses of denominations. There is no point in renaming satoshi to bitcoin just for L1, but not for L2. You would also want it to be used in stock quotes and charts, for example.

@BitcoinErrorLog
Copy link
Author

Frankly, I don't see any difference at the moment – other than the name. That's why I was asking for including this discussion into the "alternatives".

I retained the BTC (XBT, etc) denomination only at the request of the first round of feedback, because I could rationalize stock tickers being a separate system from Bitcoin. I'd be happy to re-remove this concept if the peers here all agree it corrupts the purpose too much.

I take it the definition in this BIP is about Bitcoin the currency (as opposed to Bitcoin the payment system). As such, I think this BIP should consider all existing uses of denominations. There is no point in renaming satoshi to bitcoin just for L1, but not for L2. You would also want it to be used in stock quotes and charts, for example.

I suppose the LN community considers their BLiPs and BOLTs and such to be the place to spec for that protocol, or they could otherwise umbrella under BIPs. This BIP, as all, is just a web page in the end, and anyone is welcome to refer to this BIP to replicate this method.

If everyone likes, I could take the time to specify further how people normally display, abbreviate, and prefix large numbers and denominations of units. I was hoping my example of "2.1M" was enough of a nod...

@murchandamus
Copy link
Contributor

Also, the file currently doesn’t render for me in the GitHub preview.—It did render when you had it as a markdown file, but since it was changed to a a mediawiki file it doesn’t. I’m not sure, yet, why. It might be related to the missing indentation in the preformatted text block.

Apologies, I was working in md and assumed I needed to submit as mediawiki, which I am unfamiliar with. Happy to adjust any formatting to be correct... with a little help.

Either Markdown or Mediawiki are acceptable since #1504 got merged in 2023.

Copy link
Contributor

@murchandamus murchandamus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I see what may cause the rendering issue. The code formatting tags need to be closed:

Copy link
Contributor

@murchandamus murchandamus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems to me that the motivation could be strengthened and that the document should address why presenting user funds denominated in "sats" does not achieve the intended goal. However, speaking as an editor, this proposal appears to be compliant with the formatting requirements at this point.

Assessing the mailing list thread and the comments on this proposal, all commenters so far appear to be skeptical. At this time, I do not perceive this proposal to have sufficient community interest to assign a number. I am happy to revisit this assessment when the proposal picks up more momentum.

@BitcoinErrorLog
Copy link
Author

Could you clarify what the threshold is for getting a number?

@murchandamus
Copy link
Contributor

Could you clarify what the threshold is for getting a number?

I don’t have a specific threshold in mind, but a start would be some replies expressing enthusiasm or any commentary in support of this proposal.

Copy link
Contributor

@murchandamus murchandamus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Assessing the situation further, I have been convinced otherwise.

Let’s call this BIP 177.

@murchandamus murchandamus changed the title BIP draft: Redefinition of Bitcoin’s Base Unit BIP177: Redefine of Bitcoin’s Base Unit Apr 23, 2025
@murchandamus
Copy link
Contributor

murchandamus commented Apr 23, 2025

Checked with John out of band, and he said that "Redefine Bitcoin's Base Unit" works for him, assigned number

@murchandamus murchandamus changed the title BIP177: Redefine of Bitcoin’s Base Unit BIP177: Redefine Bitcoin’s Base Unit Apr 23, 2025
Copy link
Author

@BitcoinErrorLog BitcoinErrorLog left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All formatting cleanup

Adds comments acknowledging and handling sats and satoshis
@BitcoinErrorLog
Copy link
Author

Added some comments addressing "sats" topic

@ikoinu
Copy link

ikoinu commented Apr 24, 2025

John,
I like your idea and see the need to simply the common naming to a unit, not a sum of 8 decimal places as it is currently. So I support this.
My question would be what happens if a BIP is passed in the future for lesser unit denominations that are soft-fork compatible for finer control as the Bitcoin purchasing power rises, such as from 1.00000001 to 1.0000000001?
Would this necessitate another BIP correction?

@BitcoinErrorLog
Copy link
Author

My question would be what happens if a BIP is passed in the future for lesser unit denominations that are soft-fork compatible for finer control as the Bitcoin purchasing power rises, such as from 1.00000001 to 1.0000000001? Would this necessitate another BIP correction?

afaik, there is no meaningful/enforceable way to express decimals in Bitcoin. To truly get more precision, we would need to multiply the units. There are various edge considerations in such a change, like how it affects mining rewards into the future, etc. Any such change would likely be a hard fork, and even if someone designs something reasonable as a soft fork, it would still be controversial and face headwinds. There is no prominent design proposal I know of for any of that.

In the end, I cannot design for all hypothetical Bitcoin futures (or forks), so I focus on the one we have! :)

0ceanSlim

This comment was marked as off-topic.

@murchandamus
Copy link
Contributor

This pull request should be used to help to review and improve the document. Please identify areas that need clarification, suggest improvements, or point out any missing aspects. Merely stating disagreement with the idea itself is not constructive. Thanks.

@0ceanSlim
Copy link

This pull request should be used to help to review and improve the document. Please identify areas that need clarification, suggest improvements, or point out any missing aspects. Merely stating disagreement with the idea itself is not constructive. Thanks.

I'll keep that in mind and keep my comments over on other social channels from now on. 🤙🏻

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants