sipa / bech32

Code snippets and analysis of the Bech32 format
192 stars 106 forks source link

Suggestion to start address with "btc" instead of "bc" #16

Closed coblee closed 7 years ago

coblee commented 7 years ago

1 extra character is a worthwhile tradeoff to make things a lot more clear. People are already used to the symbols "btc", so it's much easier for people to understand that addresses starting with "btc1" are Bitcoin addresses.

We plan to use "ltc1" and "tltc1" for Litecoin and I'm sure other coins will do something similar.

FaysalM commented 7 years ago

+1

losh11 commented 7 years ago

+1 marketing is important for newcomers, and I see this as a much necessary change.

sipa commented 7 years ago

I understand the concerns, but consider this:

However, the encoding as specified does allow for variable-length human-readable parts, so Litecoin can use 'ltc' even if Bitcoin doesn't use 'btc'.

CodeShark commented 7 years ago

Nobody associates "bc" with the chain itself (I don't think the chain itself is branded separately from the currency) - and for the sake of branding, consistency is extremely helpful. BTC is a very well-recognized symbol at this point. Yes, it might be overloaded - but I think the context makes it clear what its intended meaning should be.

@sipa, I know that from a purely information theoretic encoding perspective, this seems totally uninteresting and silly to you. But people are going to have to learn to make this association...and the easier we make it for them, the more it will promote adoption.

Also, "btc" just looks more attractive - people will want to use the new addresses just because they look cool. Yes, I know this seems totally absurd - but it's this sort of superficial crap that most users pay a lot of attention to.

+1 to @coblee's suggestion.

sipa commented 7 years ago

Nobody associates "bc" with the chain itself

I'm not claiming it does. I'm claiming that "btc" is associated with the wrong thing.

CodeShark commented 7 years ago

BTC is associated with the currency, with the network, and with the chain. I don't think associations in language are inherently right or wrong...terms are defined by usage. And people are capable of dealing with overloaded terms and disambiguation through context.

CodeShark commented 7 years ago

If the Bitcoin blockchain supported multiple currencies, having separate symbols could become important. But right now that's not really the case.

CodeShark commented 7 years ago

Lastly, using "btc" is likely to lead to much less bikeshedding in the specification or pushback from implementors. :)

sipa commented 7 years ago

If the Bitcoin blockchain supported multiple currencies, having separate symbols could become important. But right now that's not really the case.

The Bitcoin blockchain does not support multiple currencies, but there are multiple technologies that support transferring bitcoin the currency.

btc is a fine identifier, but I don't see why it is so preferable to something shorter. There is no need why an address needs to ostensibly advertise something. That's what the URI prefix is for. All we need from the HRP is distinctness to avoid people sending to the wrong chain.

Lastly, using "btc" is likely to lead to much less bikeshedding in the specification or pushback from implementors. :)

This is as far as I know the first time it's been brought up, since the discussion in Rusty's blogpost, and there have been plenty of other implementations already.

coblee commented 7 years ago

To avoid accidentally sending a coin to an address for a different chain, it's important to be able to identify that the address belongs to the chain you want. I think it's just easier cognitively for people to associate btc with Bitcoin because they are already use to it. It will cause a lot less confusion.

Reducing 3 letter codes for a coin to 2 will also create a lot of conflicts. I think the extra chracter in "btc" will save a lot of headache and confusion in the future.

We are pretty set on using "ltc" for Litecoin. I think it makes the most sense. Maybe you can see how well that works on Litecoin before deciding? 😄

sipa commented 7 years ago

Reducing 3 letter codes for a coin to 2 will also create a lot of conflicts.

Not if everyone else chooses 3 letters, like you seem to be planning to :smile:

coblee commented 7 years ago

True, but then Bitcoin will be the odd one out and be confused with Bytecoin, Bitcrystals, and Bitconnect. 😛

clarkmoody commented 7 years ago

Lastly, using "btc" is likely to lead to much less bikeshedding in the specification or pushback from implementors. :)

Indeed :-) Sweet, sweet bikeshedding.

The prefix is not intended to replace the 'bitcoin:' URI scheme. I think that bitcoin:btc1qw508d6qejxtdg4y5r3zarvary0c5xw7ktuu6f4 is unnecessary duplication

Personally, I see a lot of addresses that are not part of a URI, so the identifier will be visible to users like me. I know you've mentioned that we don't want users handling cryptographic material directly in the future, but for the time being, people continue to see lots of addresses and copy-paste them around.

If we go with btc and tbt (or whatever for testnet), I can have the Rust implementation updated quickly.

sipa commented 7 years ago

Personally, I see a lot of addresses that are not part of a URI, so the identifier will be visible to users like me.

Of course, that's intentional. it's called the human readable part for a reason. But addresses get used in places where people expect to see an address, so all that it is required to convey is distinction from other currencies and technologies. It doesn't need to convey the full "This is a Bitcoin address!" to set it apart from any other text - that's what a URI is for.

dcousens commented 7 years ago

so all that it is required to convey is distinction from other currencies and technologies

I think what @coblee is saying, is bc1 isn't unambiguously achieving that goal due to what will likely happen in the broader community (assuming a 3-letter HRP is the consensus).

Of course the HRP could probably be dropped if a URI was always used - so the URI is irrelevant.

sipa commented 7 years ago

@dcousens Unless you go specify what the HRP will be for every possible future use of Bech32 (including every altcoin and address type conceivable), nothing is unambiguous. People can choose to reuse bc for something else just as they can reuse btc. If people make sane choices, however, there is no problem, I believe.

gmaxwell commented 7 years ago

There have been several other things calling themselves BTC, there is no magical solution to confusion as Pieter says.

(Now I kinda regret removing the charset restriction in the HR part that would have left "L" unavailable. :) )

Keep in mind the prior addresses only used 1 character in a complex scheme that made it impossible for it to be consistent. People got along fine. Making our addresses 2.7% longer just to achieve some vague consistency with some altcoin would not be an attractive trade-off. Other users can have HRPs as long as they like, and shorter ones are unambiguous with longer ones.

FWIW, the prefix is "bc1" not bc-- the separator must always be there.

junderw commented 7 years ago

To avoid accidentally sending a coin to an address for a different chain, it's important to be able to identify that the address belongs to the chain you want. I think it's just easier cognitively for people to associate btc with Bitcoin because they are already use to it. It will cause a lot less confusion.

The wallet software bears the burden of making sure it doesn't send to a pubkey that was shown with conventions of other chains. Bitcoin could be qz or fuidgysudfh, and it wouldn't matter as long as 1. Wallet software was aware of the constant value. 2. It is not the same with other chains (similar to LTC and BTC P2SH addresses being the same)

Having it be btc won't make a difference unless someone is crafting transactions with a library / app that doesn't perform simple sanity checks.

That being said, for solely aesthetic purposes, +1 this idea. btc > bc imo.

Making our addresses 2.7% longer just to achieve some vague consistency.

I think the aesthetic gains are worth the small 2.7% increase in byte size, but that's really just an opinion.

It seems contradictory to what my brain said before, but such is humanity. btc would make me feel slightly fuzzier inside when copy/pasting and/or looking at or dealing with the addresses.

luke-jr commented 7 years ago

BTC is the unit of 1e-8 satoshis. The system itself has always used the abbreviation "bc".

prusnak commented 7 years ago

(Somewhat) relevant for this discussion: https://github.com/satoshilabs/slips/blob/master/slip-0173.md

sipa commented 7 years ago

Sorry, I'm going to close this. The proposal has been submitted as BIP173, and I don't think this concern warrants changing it.