Bitcoin Forum
July 24, 2021, 05:50:24 AM *
News: Latest Bitcoin Core release: 0.21.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Bravo Charlie One: Branding Bech32  (Read 373 times)
nullius
Copper Member
Hero Member
*****
Offline Offline

Activity: 588
Merit: 2329


There is only one Bitcoin.


View Profile WWW
December 25, 2017, 10:29:23 PM
Merited by DarkStar_ (1), squatter (1), xdrpx (1)
 #1

[The following is based on recent discussions here, and is substantively cross-posted from the dev list so as to reach a wider audience.  I intend to follow up with an appropriately flavoured topic in the general user forum, and edit to add a link up here.]

I here record and expand an idea I had a few days ago on this forum about BIP 173 Bech32 addresses.  TL;DR abstract:

  • The Bitcoin Bech32 address nickname:  “Bravo Charlie Addresses”.
  • The Bitcoin Bech32 motto:  “Bravo Charlie One means money.”
  • Bech32 would also be a superior human-facing format for key fingerprints for PGP, SSH, and even TLS.  There is an urgent general need for a specification which reduces the inherent pain of wetware in handling pseudorandom strings.



To help gain user familiarity with and acceptance of the error-correcting, case-insensitive Bitcoin addresses of the future, I propose a need for what I think marketers call “branding”.  The best branding is that which derives naturally from some intrinsic quality of a thing; wherefore I look to what may perhaps be a bit of serendipity in the specification.

I expect that in practical use, one of the great advantages of Bech32 addresses will be the relative ease of communicating them aloud—especially over the phone.  In similar circumstances, when trying to convey unusual names or pseudorandom strings, I’ve found radio alphabets to work well at their intended purpose.  And when reading Bech32 Bitcoin addresses in the most popular radio alphabet, they will always start with a catchy phrase:  “Bravo Charlie One”.

That’s memorable, $SEARCH-able, and yet also one of those unique, otherwise meaningless phrases which gets marketers excited.  Keeping to a word triplet, I hereby nominate for consideration as the official nickname for Bech32 Bitcoin use:  “Bravo Charlie Addresses”.  These are the Bitcoin addresses with the magic words, suitable for a motto:  “Bravo Charlie One means money.”  Add a logo à la Segwit’s, and raise user awareness of this exciting new technology!

Beyond the branding issue, recommendations for Bitcoin spelling-alphabet use in English and other languages may perhaps be a suitable matter for such standardization as would facilitate coherent user documentation.  I invite discussion.

Of course, this branding only applies directly to Bitcoin Bech32 addresses.  The BIP 173 authors were gracious to make the standard generally adaptable; and it has already seen some uptake amongst altcoins.  I myself am now contemplating how Bech32 would be a superior human-facing format for key fingerprints for PGP, SSH, and even TLS, with HRPs of “pgp”, “ssh”, “tls”, etc. and some appropriate means of embedding the key type just as “bc” embeds the witness version.  There is an urgent general need for a specification which reduces the inherent pain of wetware in handling pseudorandom strings; and I do think that anything which familiarizes users with Bech32 in a specific use will be beneficial to Bech32 adoption generally.

To celebrate, I created for myself a new Bravo Charlie Address which expresses that I am pleased:  Now, I have an error-correcting, case-insensitive address which can receive only genuine Bitcoin cash money.  Because “Bravo Charlie One means money.”

bc1q cash 96s5 jqpp zsp8 hy8s wkgg f7f6 agex 98an 7h
Bravo Charlie One Quebec • Charlie Alpha Sierra Hotel
Nine Six Sierra Five • Juliett Quebec Papa Papa
Zulu Sierra Papa Eight • Hotel Yankee Eight Sierra
Whiskey Kilo Golf Golf • Foxtrot Seven Foxtrot Six
Alpha Golf Echo X-ray • Nine Eight Alpha November • Seven Hotel

Here’s to the Bitcoin address format of the future!

No Gods or Kings. Only Bitcoin
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
DannyHamilton
Legendary
*
Offline Offline

Activity: 2520
Merit: 2110



View Profile
December 26, 2017, 08:54:31 AM
 #2

bc1q cash 96s5 jqpp zsp8 hy8s wkgg f7f6 agex 98an 7h
Bravo Charlie One Quebec • Charlie Alpha Sierra Hotel
Nine Six Sierra Five • Juliett Quebec Papa Papa
Zulu Sierra Papa Eight • Hotel Yankee Eight Sierra
Whiskey Kilo Golf Golf • Foxtrot Seven Foxtrot Six
Alpha Golf Echo X-ray • Nine Eight Alpha November • Seven Hotel

Here’s to the Bitcoin address format of the future!

I'm not sure why, but I find those trailing two (seven hotel) to be annoying.

I haven't looked closely at the bech32 spec yet.  Are bech32 addresses always 42 characters long?  If not, are they generally 42 characters long?

If the answer to either of those questions is "yes", then I propose dividing on a factor of 42.  How about 6?

bc1qca sh96s5 jqppzs p8hy8s wkggf7 f6agex 98an7h
Bravo Charlie One Quebec Charlie Alpha  •
Sierra Hotel Nine Six Sierra Five •
Juliett Quebec Papa Papa Zulu Sierra •
Papa Eight Hotel Yankee Eight Sierra •
Whiskey Kilo Golf Golf Foxtrot Seven •
Foxtrot Six Alpha Golf Echo X-ray •
Nine Eight Alpha November Seven Hotel

Of course that might require you to find a new vanity address that places the word "cash" somewhere that it won't get split up, or perhaps to replace it with an address that starts with something like:

bc1getwealth

Which would split up on:
bc1get • wealth •

When reading, the cadence of:

3 characters, slight pause, 3 characters, wait for acknowledgement from recipient

Flows well, sounds nice, and is easy to maintain regardless of whether you are using radio alphabet or simply reading the character names.  Additionally, it is "Keeping to word triplets" throughout.
LoyceV
Legendary
*
Offline Offline

Activity: 2282
Merit: 8485


Thick-Skinned Gang Leader


View Profile WWW
December 26, 2017, 10:09:46 AM
Last edit: December 27, 2017, 03:45:23 PM by LoyceV
 #3

Let me start by saying I'm terrible with names. I can't possible remember something like "P2SH-P2WPKH", I already have a hard time remembering "Bech32".
"Bravo Charlie", on the other hand, I can remember.

I expect that in practical use, one of the great advantages of Bech32 addresses will be the relative ease of communicating them aloud—especially over the phone.
I don't expect this to work. Maybe if an experience phone operator is reading the address, as they're used to it, but I don't know many people who can use the International phonetic alphabet. People understand it, but can't reproduce it.
And accuracy is a problem: the person reading it can make a mistake, and the person typing it can make a mistake. When I read and type a Bitcoin address or private key, I make at least one mistake in every 3 keys I enter. On the phone, that would mean you have to read back the entire address again.
I would go back to the conventional option: please text me your address.

If you want to be able to share a Bitcoin address over the phone, it would be so much easier if the address can somehow be read as 12 words.
At the moment it's much easier to share your (secret!! don't do this!!) 12 word seed phrase over the phone, than sharing a Bitcoin address. And that brings me to the feature Byteball recently introduced: you first send funds to a "text coin" that only requires a 12 word seed to be used, then send the 12 words to whoever you want. It's insecure in the sense that anybody who hears the 12 words can take the funds, and you have no proof that you sent it to the right person, but it's meant to be used for small payments only. Example: Here is your link to receive 0.001 GB: https://byteball.org/openapp.html#textcoin?oven-typical-deputy-area-call-frequent-life-figure-actual-awful-loop-head (update: someone took the funds after 13 hours)
(I admit: I've been waiting for an opportunity to use this outside the Byteball thread, and this seems like a good moment to do so. It's a working link, first one to claim it gets about $0.71 worth of Bytes)
If this would be implemented in Bitcoin, the big downside is of course that it requires fees twice. The big upside is that it's very easy to read 12 words on the phone, especially if the receiving party has an app that checks the words (just like my phone wallet does).

To help gain user familiarity with and acceptance of the error-correcting, case-insensitive Bitcoin addresses of the future, I propose a need for what I think marketers call “branding”.
I would like this though! Months after SegWit activated, I still have no idea how to actually use it, and I think the majority of Bitcoin users has the same problem.

DannyHamilton
Legendary
*
Offline Offline

Activity: 2520
Merit: 2110



View Profile
December 26, 2017, 10:32:24 AM
 #4

I expect that in practical use, one of the great advantages of Bech32 addresses will be the relative ease of communicating them aloud—especially over the phone.
I don't expect this to work. Maybe if an experience phone operator is reading the address, as they're used to it, but I don't know many people who can use the International phonetic alphabet. People understand it, but can't reproduce it.

The beauty of a Bravo Charlie address is that (as compared to a traditional Bitcoin address) it is much less error prone, easier to find and fix mistakes, and is easier and faster to communicate aloud even when NOT using a phoenetic "radio alphabet".

And accuracy is a problem: the person reading it can make a mistake, and the person typing it can make a mistake.

Thankfully, a Bravo Charlie address will make it easier to find the mistake and easier to correct it.

When I read and type a Bitcoin address or private key, I make at least one mistake in every 3 keys I enter.

Yes, traditional Bitcoin addresses are quite error prone and difficult to communicate.

On the phone, that would mean you have to read back the entire address again.

Perhaps.  But if you confirm after every 4 or 6 characters, then you'll find and fix your errors before you ever get to the end of the address.  Then if there is still an error that was overlooked, the error correction native to a Bravo Charlie address will make it even easier to find and fix.

I would go back to the conventional option: please text me your address.

There are situations where I don't want to give the recipient (or sender) my cell phone number.
jnano
Member
**
Offline Offline

Activity: 303
Merit: 62


View Profile
December 26, 2017, 10:43:42 AM
 #5

I'm anti branding of this sort. I just find marketing and PR annoying in general. If a nickname is adopted naturally, okay. But "mottos"... yuck.

with HRPs of “pgp”, “ssh”, “tls”, etc.
What's HRP?

I would like this though! Months after SegWit activated, I still have no idea how to actually use it,
I think it's just not available in the majority of software? At least not GUI-exposed.

DannyHamilton
Legendary
*
Offline Offline

Activity: 2520
Merit: 2110



View Profile
December 26, 2017, 10:51:59 AM
 #6

What's HRP?

Human Readable Part?

Also known as "prefix"

(as opposed to the other part, the "data part").
nullius
Copper Member
Hero Member
*****
Offline Offline

Activity: 588
Merit: 2329


There is only one Bitcoin.


View Profile WWW
December 27, 2017, 12:03:45 AM
 #7

I am gratified to see the community interest in Bravo Charlie Addresses!  I’ll reply soon; meanwhile, for fun, here is the embryonic form of an idea which I call PGP Descriptors:

Code:
# Thanks to sipa for segwit_addr.[ch]:
$ make
cc -O2   -c -o segwit_addr.o segwit_addr.c
cc -O2   -c -o bech32.o bech32.c
cc -o bech32 bech32.o segwit_addr.o
# PGP Descriptor for my Ed25519 certification key (preferred):
$ ./bech32 -e -h pgp 0x16092B06010401DA470F01C2E91CD74A4C57A105F6C21B5A00591B2F307E0C
pgp1zcyjkpspqsqa53c0q8pwj8xhffx90gg97mppkksqtydj7vr7pskelgkq
# PGP Descriptor for my RSA/4096 certification key ("legacy"):
$ ./bech32 -e -h pgp 0x03A232750664CC39D61CE5D61536EBB4AB699A10EE
pgp1qw3ryagxvnxrn4suuhtp2dhtkj4knxssacakc6xa

This is off-the-cuff; and I do NOT want to unleash it into the wild unless/until I think it over, and at least draw up a proposed specification.  Those who may be curious about the extra octets I included should see references 0, 1, 2.

Now, let’s sauté some onions with the rich flavour of Bech32’s error-correcting code:

Code:
# A famous .onion:
$ ./bech32 -5 -e -h onion wlupld3ptjvsgwqw
onion1kt50trm0nf4jxkskpcjy74
$ ./bech32 -5 -d onion1kt50trm0nf4jxkskpcjy74
wlupld3ptjvsgwqw.onion
# Let's try another.  Snagged from LoyceV's signature:
$ ./bech32 -5 -e -h onion chipmixerwzxtzbw
onion1z8g0vghy3kehnepksy066l
$ ./bech32 -5 -d onion1z8g0vghy3kehnepksy066l
chipmixerwzxtzbw.onion

Bech32 is awesome.

Andre_Goldman
Sr. Member
****
Offline Offline

Activity: 322
Merit: 251

Property1of1OU


View Profile
December 28, 2017, 08:43:57 AM
 #8

I was reading BIP173 and

Quote
This means that when 5 changed characters occur randomly distributed in the 39 characters of a P2WPKH address, there is a chance of 0.756 per billion that it will go undetected. When those 5 changes occur randomly within a 19-character window, that chance goes down to 0.093 per billion. As the number of errors goes up, the chance converges towards 1 in 230 = 0.931 per billion.

I am not quite sure what exactly "go undetected" means on that context  Undecided ...


I really liked "Bravo Charlie" ; ... it came to my mind "The Matrix Opening Scene, the command prompt .." I change it to BC



Grin

Patent1number: ****-****
jnano
Member
**
Offline Offline

Activity: 303
Merit: 62


View Profile
December 28, 2017, 09:39:04 AM
 #9

I am not quite sure what exactly "go undetected" means on that context  Undecided ...
What do you mean? Undetected means the randomly corrupted address will be accepted. It could lead to a transaction to the wrong address.
Andre_Goldman
Sr. Member
****
Offline Offline

Activity: 322
Merit: 251

Property1of1OU


View Profile
December 28, 2017, 09:56:19 AM
Last edit: December 28, 2017, 01:35:10 PM by Andre_Goldman
 #10

I am not quite sure what exactly "go undetected" means on that context  Undecided ...
What do you mean? Undetected means the randomly corrupted address will be accepted. It could lead to a transaction to the wrong address.


I am sorry I am more "maker" than "coder" was thinking about the "how" the mecanism (circuit) would accept it.

ed; mechanism

Patent1number: ****-****
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!