Bitcoin Forum
November 18, 2024, 04:39:10 PM *
News: Check out the artwork 1Dq created to commemorate this forum's 15th anniversary
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 4 5 »  All
  Print  
Author Topic: Vanity bitcoin addresses: a new way to keep your CPU busy  (Read 29847 times)
Gavin Andresen (OP)
Legendary
*
qt
Offline Offline

Activity: 1652
Merit: 2301


Chief Scientist


View Profile WWW
October 07, 2010, 02:05:47 AM
Last edit: October 07, 2010, 10:59:10 PM by gavinandresen
Merited by OgNasty (50), ABCbits (2)
 #1

Attached is a little patch that expands the getnewaddress RPC command so it can try to generate a "vanity" bitcoin address.
E.g. I told it to generate an address with "gavin" in it, and it chugged away for an hour or two and came up with:
  12kUimDnb1a6oAPifgavinAaxMmLe43UR6

This is recommended for fun and experimentation only; it takes a long time, and while it is trying to find an address with the right string in it no other RPC commands are accepted.  Including 'stop'.

It'd be kinda cool (and would speed it up a lot) to make it case-insensitive.  Or to match to an arbitrary regular expression.  Or to make it spin off a separate thread and just return "working...."  (and have the thread add the address to the wallet when it is finally found, labeled with the vanity string).

Maybe we should have a Best Bitcoin Address contest  Cool

How often do you get the chance to work on a potentially world-changing project?
Anonymous
Guest

October 07, 2010, 03:18:49 AM
 #2

lol you just invented bitcoin customised number plates!
HostFat
Staff
Legendary
*
Offline Offline

Activity: 4270
Merit: 1209


I support freedom of choice


View Profile WWW
October 07, 2010, 04:55:38 AM
 #3

Question:
does bitcoin own generated addresses? Yes?
So you are owning 2 hours of generated addresses that you won't use anytime, I'm correct?
Are them a waste of addresses?

NON DO ASSISTENZA PRIVATA - https://t.me/hostfatmind/
BioMike
Legendary
*
Offline Offline

Activity: 1658
Merit: 1001


View Profile
October 07, 2010, 05:41:04 AM
 #4

Can I use this to generate an address like "12kUimDnb1a6oAPifgavinAaxMmLe43UR6"? Wink (I know it will take ages to do.)
Or are there limitations to the address?

Nice addresses that contain:
"SendBitcoinsToBioMike"
"ILoveBitcoins"
FreeMoney
Legendary
*
Offline Offline

Activity: 1246
Merit: 1016


Strength in numbers


View Profile WWW
October 07, 2010, 06:28:12 AM
 #5

It would be cool to add an estimator of the time it will take. It would be cool to see a graph of average time vs number of specified chars. How long did gavin take?

Play Bitcoin Poker at sealswithclubs.eu. We're active and open to everyone.
caveden
Legendary
*
Offline Offline

Activity: 1106
Merit: 1004



View Profile
October 07, 2010, 07:46:24 AM
Merited by ABCbits (1)
 #6

Question:
does bitcoin own generated addresses? Yes?
So you are owning 2 hours of generated addresses that you won't use anytime, I'm correct?
Are them a waste of addresses?

As far as I understand, there is no "waste" of addresses. Anyone can by chance generate one of the addresses that he discarded during the process.
If in the process he was saving each attempt, then there would be two owners of a same address.

The chance of this happening is so remote, that there is no reason to worry. (I guess)
BioMike
Legendary
*
Offline Offline

Activity: 1658
Merit: 1001


View Profile
October 07, 2010, 07:57:08 AM
 #7

Or are there limitations to the address?

From the source:
If [vanity] is specified, is less than 10 characters, and is all valid base58 characters, then an address containing that string is generated.
jgarzik
Legendary
*
qt
Offline Offline

Activity: 1596
Merit: 1100


View Profile
October 07, 2010, 08:09:37 AM
Merited by ABCbits (1)
 #8

This article on base58 includes a list of valid characters:
http://icoloma.blogspot.com/2010/03/create-your-own-bitly-using-base58.html

Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
Gavin Andresen (OP)
Legendary
*
qt
Offline Offline

Activity: 1652
Merit: 2301


Chief Scientist


View Profile WWW
October 07, 2010, 02:02:34 PM
Merited by ABCbits (1)
 #9

RE: "wasting" addresses:

caveden is right, this patch generates and throws away lots and lots of potential bitcoin addresses.

But there are 2^160 possible bitcoin addresses, which is a really, really big number.  The chances of BioMike generating an address that matches my "gavin" address before we're all dead is approximately zero.

And davidonpda:  I haven't tried to figure out how long 10 characters would take-- it is exponential in the number of characters, so 10 characters would probably take years...

How often do you get the chance to work on a potentially world-changing project?
BioMike
Legendary
*
Offline Offline

Activity: 1658
Merit: 1001


View Profile
October 07, 2010, 02:34:07 PM
 #10

And davidonpda:  I haven't tried to figure out how long 10 characters would take-- it is exponential in the number of characters, so 10 characters would probably take years...

That's what I thought... just wanted to make sure before I started. davidonpda is 10 and will probably never get there haha!

Or, you're very, very, very lucky. Wink
Gavin Andresen (OP)
Legendary
*
qt
Offline Offline

Activity: 1652
Merit: 2301


Chief Scientist


View Profile WWW
October 07, 2010, 03:12:22 PM
 #11

That's what I thought... just wanted to make sure before I started. davidonpda is 10 and will probably never get there haha!

But if it supported regular expressions "david.*on.*pda" would probably be found in a reasonable amount of time...

Of course, if you were unlucky it'd find something like  1davidSpoonLApdaDDY13iu8 (not a real bitcoin address)

How often do you get the chance to work on a potentially world-changing project?
ByteCoin
Sr. Member
****
expert
Offline Offline

Activity: 416
Merit: 277


View Profile
October 07, 2010, 05:18:06 PM
Last edit: October 07, 2010, 05:28:14 PM by ByteCoin
Merited by ABCbits (1)
 #12

lol you just invented bitcoin customised number plates!

I believe I was the first. See the following post


I also have the ability to generate useful novelty BitCoin addresses. The best one for me  so far is
1ByteCosnsUNJun4KL3HSt1NfFdXpzoRTy (pesky s)


If there is a demand for it, I might be tempted to start a webservice like the faucet where people can buy vanity addresses for a small bitcoin fee. I have a simple handshake scheme which allows me to generate a new address for you without me finding out your private key. My method sounds like it's faster than Gavin's and mathematically it's non-trivial. It can find addresses containing a short string like "gavin" in a fraction of a second for example.

ByteCoin
FreeMoney
Legendary
*
Offline Offline

Activity: 1246
Merit: 1016


Strength in numbers


View Profile WWW
October 07, 2010, 10:52:57 PM
 #13

lol you just invented bitcoin customised number plates!

I believe I was the first. See the following post


I also have the ability to generate useful novelty BitCoin addresses. The best one for me  so far is
1ByteCosnsUNJun4KL3HSt1NfFdXpzoRTy (pesky s)


If there is a demand for it, I might be tempted to start a webservice like the faucet where people can buy vanity addresses for a small bitcoin fee. I have a simple handshake scheme which allows me to generate a new address for you without me finding out your private key. My method sounds like it's faster than Gavin's and mathematically it's non-trivial. It can find addresses containing a short string like "gavin" in a fraction of a second for example.

ByteCoin

I am surprised, I wouldn't think an improvement that extreme would be possible. Your algorithm must still take exponential time as chars increase right?

Play Bitcoin Poker at sealswithclubs.eu. We're active and open to everyone.
Gavin Andresen (OP)
Legendary
*
qt
Offline Offline

Activity: 1652
Merit: 2301


Chief Scientist


View Profile WWW
October 07, 2010, 11:05:30 PM
 #14

ByteCoin: cool!  Are you finding alternative public keys for a given ECC private key?  (are there multiple public keys for a given private ECC key???  I know very little about elliptic curve cryptography)

And to all:  I couldn't resist, I updated the patch so it can search for a regular expression and so it starts a separate thread and doesn't monopolize the RPC thread.  My machine is busy looking for a bitcoin address that matches '^1Gavin' right now.


How often do you get the chance to work on a potentially world-changing project?
ByteCoin
Sr. Member
****
expert
Offline Offline

Activity: 416
Merit: 277


View Profile
October 07, 2010, 11:39:10 PM
 #15

ByteCoin: cool!  Are you finding alternative public keys for a given ECC private key?  (are there multiple public keys for a given private ECC key???  I know very little about elliptic curve cryptography)

The maths fundamentally does allow this under certain circumstances but a good implementation checks for it and only accepts the "normal" form. I imagine that the library does a good job and, even if it didn't, a patch would rapidly end such tricks.

My method involves laboriously generating  billions of new addresses every second - but how to do that best requires some thought. There's no way of distinguishing between my novelty addresses and just being very lucky when generating a normal address.

I am surprised, I wouldn't think an improvement that extreme would be possible. Your algorithm must still take exponential time as chars increase right?

Sadly yes.

If you guys want a small number of novelty addresses and are prepared to pay handsomely for them then I can generate some "manually". If there's deeper demand then I will look into automating the process but it would take a lot longer to set up. What would people pay for having the first novelty address starting with "1" and followed by the characters of their choice?

ByteCoin
Xunie
Full Member
***
Offline Offline

Activity: 132
Merit: 101



View Profile
October 13, 2010, 02:46:01 PM
 #16

I would love a regular expression functionality, I vote for PCRE and POSIX ERE functionality! in that order.

Ignore this: 734d417914faa443d74e8205f639dfb0f79fdc44988ecae44db31e5636525afe

Caffeinism -- a toxic condition caused by excessive ingestion of coffee and other caffeine-containing beverage.
sandos
Sr. Member
****
Offline Offline

Activity: 440
Merit: 250


#SWGT CERTIK Audited


View Profile
October 20, 2010, 10:30:37 AM
 #17

leet-speak might help with finding things a bit quicker: http://en.wikipedia.org/wiki/Leet

It would basically be a automatically applied transformation from regular text to a regexp which includes the leet-character alternatives. Mostly the numeric ones that are usable I imagine.

FreeMoney
Legendary
*
Offline Offline

Activity: 1246
Merit: 1016


Strength in numbers


View Profile WWW
October 20, 2010, 11:14:00 AM
 #18

leet-speak might help with finding things a bit quicker: http://en.wikipedia.org/wiki/Leet

It would basically be a automatically applied transformation from regular text to a regexp which includes the leet-character alternatives. Mostly the numeric ones that are usable I imagine.

Haha, clever.

Play Bitcoin Poker at sealswithclubs.eu. We're active and open to everyone.
grondilu
Legendary
*
Offline Offline

Activity: 1288
Merit: 1080


View Profile
October 20, 2010, 07:07:44 PM
 #19

IllSend1000BTCtoWhoEvrMakesDisAddr


Good luck

Smiley


More seriously, I think this app is useless, but very much fun.  I'm looking forward to see a stable version.

Gavin Andresen (OP)
Legendary
*
qt
Offline Offline

Activity: 1652
Merit: 2301


Chief Scientist


View Profile WWW
October 20, 2010, 07:22:17 PM
 #20

IllSend1000BTCtoWhoEvrMakesDisAddr

Awww, even replacing the lower-case-l's with 1's it ain't right:
Code:
$ bitcoind validateaddress I11Send1000BTCtoWhoEvrMakesDisAddr
{
    "isvalid" : false
}

How often do you get the chance to work on a potentially world-changing project?
Pages: [1] 2 3 4 5 »  All
  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!