[Bitcoin-development] RFC: c32d encoding

Luke-Jr luke at dashjr.org
Wed May 15 06:33:28 UTC 2013


This encoding is designed so that it could replace Base58Check in new data, 
with the following goals in mind:
- Impossible(?) to manipulate without completely changing it
- Clearly identifiable prefix, regardless of data size
- Cheaper to process (simpler and faster code; it's a power-of-two radix)
- Fixed length string for fixed length data
- More unambiguous (removal of chars 'isuvzSVZ')
- Compatible with using seven-segment displays
- Altcoin friendly (16 bit namespace, which can be read without decoding)

Since there are fewer digits and more identifying/signature characters, 
addresses are longer. This should be less of a problem since ordinary users 
will hopefully be using addresses less common as the payment protocol becomes 
more popular.

Example Python code (including tests) is attached.
I can write up a formal BIP if this seems useful.

For example:

160 bits of data, such as current addresses:
An ordinary P2SH destination, incorporating Greg's "require the hash mid-image 
to be relayed" concept (256 bits of data):
The same key in Namecoin:
The example "puzzle" script from the wiki (arbitrary scripting):
An alternative for BIP32 extended public keys (560 bits):
An alternative for BIP32 extended private keys (552 bits):
-------------- next part --------------
A non-text attachment was scrubbed...
Name: c32.py
Type: text/x-python
Size: 1597 bytes
Desc: not available
URL: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20130515/a0507aa4/attachment.py>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: c32d.py
Type: text/x-python
Size: 5012 bytes
Desc: not available
URL: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20130515/a0507aa4/attachment-0001.py>

More information about the bitcoin-dev mailing list