Bitcoin Forum
June 23, 2024, 03:55:03 PM *
News: Voting for pizza day contest
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1]
1  Bitcoin / Development & Technical Discussion / Re: Vanitygen: Vanity bitcoin address generator/miner [v0.22] on: December 09, 2022, 12:22:37 AM
[...]
I quickly opened up Windows 10 to test it myself. I confirm that I can't spend from the P2SH address neither (from Electrum), but I figured out what's going on. Vanity generates a multi-signature redeemScript that is actually consisted of one signer, and it uses the uncompressed private key of that part, which confuses the whole situation even more. I won't go into the technical details, because I noticed Bitcoin Core recent versions don't allow importing non-standard redeemScript, but I'll help you recover your money.

Here are the steps:
  • Go to bitaddress.org's repository, and download the source code of the most recent release.
  • Grab pointbiz's public key, and verify the signature of changelog. See how to do this here. You might need the Linux terminal for some steps (or some modifications in Windows). If you're wondering why that's necessary, it's to ensure security and authenticity of the files. If you don't think it's needed move on.
  • Open up bitaddress locally, go to "Wallet Details", import the private key that starts with 5 and click on "View Details".
  • Copy the uncompressed public key. (the one that starts with "04")
  • Go to coinbin's repository, and download the source code of the most recent release.
  • Verify the sha1sum (again to ensure security).
  • Open up coinbin locally.
  • "New" -> "Multi-Sig address"
  • Remove all public key fields until you're left with one.
  • Enter the amount of signatures to release the coin equal to 1.
  • Add your uncompressed public key to that one field.
  • Click submit, and you'll be given a redeemScript.
  • Click on "New" again -> "Transaction"
  • Enter your redeemScript.

I believe it's trivial to spend your UTXOs afterwards.


Thank you so much, you are really a Legend. I was able to retrieve the funds with this instructions.
2  Bitcoin / Development & Technical Discussion / Re: Vanitygen: Vanity bitcoin address generator/miner [v0.22] on: December 08, 2022, 12:15:10 AM
Yes the transaction did went successful, you can scan the address on block explorer 393q5VjNes1din4xx5z2kncaCoUuE42mx1.
Okay, I can see you were playing with vanity on mainnet. It isn't recommended to test stuff with real money. That's why testnet exists.

Sorry, No it wasn't a test, I have been using the legacy(1...) wallet address for a while now and I have not had any problem with it. My work needed a wallet address that starts with 3, so I googled about it and found out about the -F script option that gives a wallet address that starts with 3, I tried the command it gave me the wallet address, so I thought it would be as easy as importing private keys to get access to the wallet address which starts with 3, that is why I went ahead to give out the wallet address to my clients for funding.

Quote
Previously you said that $2,000 are stuck. From the transaction I can see that only $236 are stuck.

About this, I said earlier that it wasn't just one wallet, I generated lots of it which amounts over $2000, I only showed you that address to clarify your suggestion about the transaction being manipulated by a trojan.

This is also one of the affected wallets 393BvjN58Y3aUSE9JubAuGNSMXBNvdTVFb

Quote
When I had tried it, it only returned the legacy
I am sorry for bothering you, but when you generated the wallet address, did you add the -F script to the command? Like vanitygen -F script [pattern]?
If not, please try it, you will also get a P2SH(3...) address, with a legacy(1...) address and a single private key.

Something like this
3  Bitcoin / Development & Technical Discussion / Re: Vanitygen: Vanity bitcoin address generator/miner [v0.22] on: December 07, 2022, 07:52:53 PM
I don't quit get this, but I saved the output of the wallet generated, including the private key which starts with 5 then I copied the wallet address P2SHAddress: 34VLvE2FRHwsmQLZ5jVG8shZWSyztpPn5d which was from the vanity output, and sent funds to it.
Are you sure the transaction has taken place? Can you check it on a block explorer? Use Tor if there's privacy concern. Is the destination the same as the vanity P2SH? Seems weird, and a reasonable explanation is that you just didn't send it to the same (e.g., due to trojan).

it shows the address format as BASE58 (P2SH), I don't have any other idea how to confirm if it is P2SH or legacy.
If it starts with 3 and it was generated by vanitygen, it's P2SH.

Yes the transaction did went successful, you can scan the address on block explorer 393q5VjNes1din4xx5z2kncaCoUuE42mx1. And as it stands I did sent the transaction to different wallet addresses I generated same way.

The issue here is that, the private key vanity provided for P2SH and Legacy address generated with the command
Code:
vanitygen64.exe -F script [pattern]
only displays the legacy wallet address but I sent funds to the P2SH address.

Please, try to generate a new wallet with the script option.
Code:
vanitygen64.exe -F script [pattern]
, it will give you 2 wallet addresses (P2SH and Legacy), then import the private key in Electrum, you will understand better what I am talking about.

I just want a way to send out the fund in the P2SH address, using the private key generated with it. Or where I can import the private key and it will show the P2SH address and balance instead of the Legacy address.

Perhaps, I need more clarity from
Vanitygen is a command-line vanity bitcoin address generator.
on how the -F script works and how to import it.
4  Bitcoin / Development & Technical Discussion / Re: Vanitygen: Vanity bitcoin address generator/miner [v0.22] on: December 07, 2022, 06:21:34 PM
I went back to electrum and import the compress private key with p2wpkh-p2sh:L3hKt6aicGfhpdgb1WqfnFsoNKwHzk89MWXFeS69DKYk2xLyGaVi and it gave me 0 balance too with a different P2SH address 35rgCLBLcXgHxb16KSVRMSUZ4bYc9Y42uS instead of the expected P2SH address vanitygen generated.
Makes sense. If it gave you an address with an uncompressed private key, then it shouldn't expecting you to convert it to compressed.

I thought as much, but I had to give the compressed private key a trial.

Quote
I believe that these private keys and addresses you've posted are merely to give an example. As for the real ones, have you saved this vanity output from above? You might have done a mistake yourself.

Yes, the private keys and addresses are example and I have the vanity output of the one I sent funds to, saved.

Quote
Or did you just send money to an address you're locked out currently?

I don't quit get this, but I saved the output of the wallet generated, including the private key which starts with 5 then I copied the wallet address P2SHAddress: 34VLvE2FRHwsmQLZ5jVG8shZWSyztpPn5d which was from the vanity output, and sent funds to it.

Quote
Also, a question that should already be asked: what was the receiving address' type? Was it P2SH or legacy?

When I scan the wallet address on https://www.blockchain.com/btc/address/34VLvE2FRHwsmQLZ5jVG8shZWSyztpPn5d, it shows the address format as BASE58 (P2SH), I don't have any other idea how to confirm if it is P2SH or legacy.
5  Bitcoin / Development & Technical Discussion / Re: Vanitygen: Vanity bitcoin address generator/miner [v0.22] on: December 07, 2022, 05:38:17 PM
Now after sending funds to the P2SHAddress, I tried to import the private key in Eletrum and it was showing 0 balance with the wallet address that starts with 14h

Now as for Electrum, how did you import it? A private key that starts with 5 will give you an uncompressed legacy address. It will not give you neither P2SH nor Segwit Native / Nested, unless you import a compressed private key (it starts with 'K' or 'L').

I used https://www.bitaddress.org to get the compressed Privkey that starts with L L3hKt6aicGfhpdgb1WqfnFsoNKwHzk89MWXFeS69DKYk2xLyGaVi. I went back to electrum and import the compress private key with p2wpkh-p2sh:L3hKt6aicGfhpdgb1WqfnFsoNKwHzk89MWXFeS69DKYk2xLyGaVi and it gave me 0 balance too with a different P2SH address 35rgCLBLcXgHxb16KSVRMSUZ4bYc9Y42uS instead of the expected P2SH address vanitygen generated.
6  Bitcoin / Development & Technical Discussion / Re: Vanitygen: Vanity bitcoin address generator/miner [v0.22] on: December 07, 2022, 04:40:25 PM
Vanitygen is a command-line vanity bitcoin address generator.

If you're tired of the random, cryptic addresses generated by regular bitcoin clients, you can use vanitygen to create a more personalized address.  Add unique flair when you tell people to send bitcoins to 1stDownqyMHHqnDPRSfiZ5GXJ8Gk9dbjL.  Alternatively, vanitygen can be used to generate random addresses offline.

Vanitygen accepts as input a pattern, or list of patterns to search for, and produces a list of addresses and private keys.  Vanitygen's search is probabilistic, and the amount of time required to find a given pattern depends on how complex the pattern is, the speed of your computer, and whether you get lucky.

The example below illustrates a session of vanitygen.  It is typical, and took about 10 sec to finish, using my Core 2 Duo E6600 CPU on x86-64 Linux:

Code:
$ ./vanitygen 1Boat
Difficulty: 4476342
Pattern: 1Boat                                                                
Address: 1BoatSLRHtKNngkdXEeobR76b53LETtpyT
Privkey: 5J4XJRyLVgzbXEgh8VNi4qovLzxRftzMd8a18KkdXv4EqAwX3tS

Vanitygen includes components to perform address searching on your CPU (vanitygen) and your OpenCL-compatible GPU (oclvanitygen).  Both can be built from source, and both are included in the Windows binary package.  Also included is oclvanityminer, the vanity address mining client.  Oclvanityminer can be used to automatically claim bounties on sites such as ThePiachu's vanity pool.

Current version: 0.22

Windows x86+x64 binaries here.  PGP signature here

Get the source from GitHub.  Includes Makefiles for Linux and Mac OS X.

FAQ

What types of patterns can vanitygen search for?

Vanitygen can search for simple prefixes or regular expression matches.

Prefixes are exact strings that must appear at the beginning of the address.  When searching for prefixes, vanitygen will ensure that the prefix is possible, and will provide a difficulty estimate.  Exact prefixes are case-sensitive by default, but may be searched case-insensitively using the -i option.

Prefixes are also very fast to search, and a list of thousands of prefixes may be specified with little or no reduction in key search rate.

Regular expressions are programmable pattern filters.  They are very powerful, and can be used to match prefixes, suffixes, varying-length sequences, etc..  For a quick tutorial, see http://www.regular-expressions.info/quickstart.html.  To enable regular expressions, use the -r command line option.  Unfortunately, regular expressions are very slow, and will have a significant impact on key search rate.  Because of this, regular expressions should only be used if their expressive power is needed.

Oclvanitygen is only effective at searching for prefixes.  Regular expressions will not work effectively with oclvanitygen, as oclvanitygen is currently unable to execute the regular expression on the GPU.

How do I specify a list of patterns?

Vanitygen can accept a list of patterns to search for, either on the command line, or from a file or stdin using the -f option.  File sources should have one pattern per line.

Upon finding a match for a given pattern, vanitygen will stop searching for additional matches for that pattern.  To search for multiple matches for each pattern, use the -k option.

How do I import the private key into bitcoin?

If you wish to spend coins received on a vanity address created by vanitygen, you must import the private key into a bitcoin client.  There are two popular methods of doing this with the standard Satoshi bitcoin client:

  • Use the importprivkey command.  To do this, select Help -> Debug Window, and in the window, on the bottom line, enter importprivkey <privatekey>, e.g.
Code:
importprivkey 5J4XJRyLVgzbXEgh8VNi4qovLzxRftzMd8a18KkdXv4EqAwX3tS
  • Jackjack's pywallet script is an all-in-one tool that directly modifies the wallet.dat file.  This works with a normal, unpatched bitcoin client, but does require Python with the bsddb package.

If I stop vanitygen when it reports 60% complete, how do I have it restart where it left off?

You don't need to.  The percentage displayed just shows how probable it is that a match would be found in the session so far.  If it finds your address with 5% on the display, you are extremely lucky.  If it finds your address with 92% on the display, you are unlucky.  If you stop vanitygen with 90% on the display, restart it, and it finds your address with 2% on the display, your first session was unlucky, but your second session was lucky.

When I double-click on vanitygen, a black window appears for a split-second and disappears, what do I do?

Currently, vanitygen only runs on the command line, and does not have a graphical user interface.  To use vanitygen, you need to open a command line window and change to the directory where you extracted the vanitygen program.  An easy way to do this in Windows 7, hold down the shift key, right-click on the folder where you unzipped vanitygen, and select "Open command window here."  Then, you can type the vanitygen command at the prompt.

Can I use vanitygen to find someone else's private key from their bitcoin address?

Yes.  Vanitygen is a cryptographic brute-forcing application, and can be used to search for a complete address.  However, you will be unhappy with the amount of time required for it to find a match.

How do I report a bug?  What do I do if it crashes?

Post to this thread, send me a PM, or send me an email!  Please run vanitygen with the -v flag for verbose output, and please include the console output in your report.

How do I build vanitygen from source?

Please refer to the file INSTALL in the source distribution.

What key search rate can I expect from hardware X?

Detailed list forthcoming.  Some ballpark estimates are listed below.

Dual-core desktop CPUs, 32-bit mode: 100-250 Kkey/s.
Dual-core desktop CPUs, 64-bit mode: 150-450 Kkey/s.
Quad-core desktop CPUs, 32-bit mode: 200-400 Kkey/s.
Quad-core desktop CPUs, 64-bit mode: 300-750 Kkey/s.

As vanitygen performs a lot of large integer arithmetic, running it in 64-bit mode makes a huge difference in key search rate, easily a 50% improvement over 32-bit mode.  If you are using a 64-bit edition of Windows, and not using a GPU, be sure to use vanitygen64.exe.

In custom builds, CPU performance will be less than expected if the OpenSSL library is an older version (<1.0.0d) or is not built with the appropriate optimizations enabled.

General formulas for expected performance on GPUs

NVIDIA GeForce 96xx, 98xx, GT 1xx, GT 2xx, GTX 2xx (G90/GT200):
Key/s = (CUDA Cores) x (Shader MHz) x 17

AMD Radeon 58xx, 59xx, 67xx, 68xx (VLIW5):
Key/s = (Stream Processors) x (Core MHz) x 20.1

AMD Radeon 69xx (VLIW4):
Key/s = (Stream Processors) x (Core MHz) x 13.6

AMD GCN, NVIDIA Fermi/Kepler: Please contribute some numbers!

Unfortunately, AMD VLIW4 does not perform as well as VLIW5 with the same number of cores/clocks.  Oclvanitygen is sensitive to integer multiply throughput, and VLIW5 can multiply concurrently with other operations, whereas multiply consumes all four ALUs in VLIW4.  At similar clocks, a hobbled Radeon 5830 will outperform a Radeon 6970.

I have a lot of compute power, and want to make vanity addresses for others.  How do I do it?

The difficulty with this is convincing your customer that, once you provide them with a vanity address, you do not have a copy of their private key.  Some methods of doing this have been discussed on the forum, and vanitygen currently supports one of them.  To generate an address securely, your customer generates a private key, and provides you with the public key part.  You use this public key as part of the address search, and when you find a match, you provide them with a partial private key.  The customer then adds the partial private key to their private key to get the vanity address.  Because the customer never disclosed their part of the private key, only they have access to the complete private key.

There are many ways to get a key pair, but to do address-for-hire, you need the complete public key in hexadecimal format.  The bitcoin address is not sufficient.  One way to generate one and get this is to use the keyconv utility, keyconv -G, and get the following parts:

Code:
$ ./keyconv -G
Pubkey (hex): 041d2e778ae6d9124736df131cd22d3a2483f336c55156d87a84c4bdc6d89f8518e33de85ae0f907a7128c476281bc8cc7742b43a54ccc2c7824dc4c4a438a7fbc
Privkey (hex): 61E00B1C57E7F0D508C7C3795F90C0ACEC1DCAF6A7B82C951D23F728FD53E4BE
Address: 15wRE5VA5uhxs5o6LayZC6imES2SeZeXd4
Privkey: 5JZPftgcsaG5Unp24cf47zP7JZEZkfnSAZzefezAVNRomKHZE8f

The customer saves the privkey part in a secure location, and provides you with the Pubkey (hex) part.

Then, you run vanitygen or oclvanitygen, and specify the customer's public key:

Code:
$ ./vanitygen -P 041d2e778ae6d9124736df131cd22d3a2483f336c55156d87a84c4bdc6d89f8518e33de85ae0f907a7128c476281bc8cc7742b43a54ccc2c7824dc4c4a438a7fbc 1Boat
Difficulty: 4476342
Pattern: 1Boat                                                                
Address: 1BoatWxEHyVXkjS78d16LMuj8YMdZ1Kce8
PrivkeyPart: 5KCwog8Ndt64ZicNSGoDBRf4vACBptM2GUtSJCmkbqpieC8idcP

Because a public key was specified, vanitygen now provides a PrivkeyPart rather than a Privkey result, which is useful only to your customer.  The customer then takes the partial private key produced by vanitygen and adds it to their private key.  This can be done using ThePiachu's handy website, or using the keyconv utility:

Code:
$ ./keyconv -c 5JZPftgcsaG5Unp24cf47zP7JZEZkfnSAZzefezAVNRomKHZE8f 5KCwog8Ndt64ZicNSGoDBRf4vACBptM2GUtSJCmkbqpieC8idcP
Address: 1BoatWxEHyVXkjS78d16LMuj8YMdZ1Kce8
Privkey: 5J1Jieusaa6vegTQZ7PNG3hMcsM2FjgHPK1BkPjbYyQsWb9k5vj

Here, keyconv is able to recreate the final address found by vanitygen, based on the two private key parts.  It is also able to create the final private key.  This is infeasible for someone who does not have both parts of the private key, and provides your customer with real security.

This process is very complicated.  A simpler way to do it is to use a bounty pool such as vanity pool.

How do I participate in vanity pool?

To do this, use the oclvanityminer program.  Oclvanityminer works much like a familiar bitcoin miner.  It connects to a bounty server, downloads a list of bounties, automatically chooses one, searches for a match, and submits the results back to the server when one is found.  Oclvanityminer periodically reconnects to the bounty server to check if bounties have been claimed, or more profitable bounties have been posted.  An example session:

Code:
$ ./oclvanityminer -u https://vanitypool.appspot.com/ -a 1samr7UZxtC6MEAFHqr1h3Kq453xJJbe4
Searching for pattern: "1satoshi" Reward: 0.100000 Value: 0.000007 BTC/MkeyHr
Difficulty: 51529903411245
Searching for pattern: "1Satoshi" Reward: 0.100000 Value: 0.000007 BTC/MkeyHr
Next match difficulty: 25764951705622 (2 prefixes)
[6.14 Mkey/s][total 62914560][Prob 0.0%][50% in 33.6d]

Note that vanitypool and oclvanityminer are currently under development.

How secure are the addresses generated by this program?  Will someone be able to guess the private key and steal my BTC?

Vanitygen uses the OpenSSL random number generator.  This is the same RNG used by bitcoin and a good number of HTTPS servers.  It is regarded as well-scrutinized.  On Linux, the RNG will be seeded from /dev/urandom.  Guessing the private key of an address found by vanitygen will be no easier than guessing a private key created by bitcoin itself.  Nonetheless, if you feel the default RNG is unable to provide numbers that are sufficiently difficult to guess, vanitygen can be directed to seed the RNG from an external file using the -s option.

To speed up address generation, vanitygen uses the RNG to choose a private key, and literally increments the private key in a loop searching for a match.  As long as the starting point is not disclosed, if a match is found, the private key will not be any easier to guess than if every private key tested were taken from the RNG.  Vanitygen will also reload the private key from the RNG after 10,000,000 unsuccessful searches (100M for oclvanitygen), or when a match is found and multiple patterns are being searched for.

What security measures should I take?

  • Secure any systems used to generate addresses.  Don't run web browsers on them.  Keep malware and unauthorized individuals out.
  • Ensure that any private keys reported by vanitygen are stored and transmitted securely.
  • The command line method of importing private keys into bitcoin requires you to enter your private key on the command line.  Bitcoin takes a long time to perform an import, and while it is running, your private key will be visible in the output of "ps," so be careful!  Also, the private key may be leaked to your shell history file.  Kill your shell and shred your shell history file after importing.

What are the other methods of generating vanity addresses?

The original method of generating vanity addresses is a patch to the official bitcoin client created by Gavin Andresen.  Details can be found here.

Forum user Nyhm created an in-browser vanity address generator.

There is a new vanity address generator for Android.


Please help me out here, I am new to this, and I have over $2000 stuck.

I was looking for a way to generate wallet addresses that starts with 3 when I heard about VanityGen. I generated a wallet with the script option,
Code:
vanitygen64.exe -F script 34 
and I was given something like these:
 
P2SHAddress: 34VLvE2FRHwsmQLZ5jVG8shZWSyztpPn5d
Address: 14hT32855e2fqmAA8HgGSXCjpZZWyiqpez
Privkey: 5KHPQMkSHbpHVvAskcm74um8ncZEpXAKfBKBZx5LXtKyRXRfb8S


Now after sending funds to the P2SHAddress, I tried to import the private key in Eletrum and it was showing 0 balance with the wallet address that starts with 14h, I also tried to import the Privkey with the p2wpkh-p2sh script after compressing the Privkey and it showed me a different p2sh wallet address with 0 balance.

Please how can I access the funds I sent to the P2SHAddress?
Pages: [1]
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!