Nxt Forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

Latest Nxt Client 1.11.8 - NEW RELEASE: Ardor 2.0.3e TestNet IS LAUNCHED!

Pages: [1]

Author Topic: [ANN] NxtMin - A vanitygen application that searches for small Nxt addresses.  (Read 3613 times)

rlh

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 404
    • View Profile
  • Karma: +31/-7

A a few months ago I wrote an app in C# that I used to find my small Nxt address.  Granted, my address isn't 7 characters in length, but using a 2.3Ghz Core i7, I can usually find 1-2 10 digit addresses a day, hashing at a rate of about 31k addresses/sec.

The files are listed below.  The zip file contains 2 binaries.  One compiled for 32-bit systems, and one for 64.  The 64-bit file was marginally faster.

The code is VERY simple.  Once you download and compile it in Visual Studio, you should find it really easy to modify for other forms of pattern searches (i.e. large addresses, repeated numbers, sequences, etc.)

HOW IT WORKS

This is a very simple search process.  The application will generate a 50 character, random string.  It will then sequentially append digits to the end of the key and check the address.  The application will search for a new, minimal account value.  When a new minimum is found, the address and privkey are written to nxt.txt and the application will continue looking for an even smaller address.

The longer the application runs, the smaller the addresses will become.

HOW TO USE

From the command prompt, enter:

Code: [Select]
C:> nxtmin_xx.exe
You will be prompted to enter a minimum address value.  If you want, you can enter a 0 and NxtMin will start with the maximum value of a unsigned 64-bit number.

Alternatively, you can pass the application a few basic parameters.  Pass the application a '--help' parameter for more information.

SOURCE & DOWNLOADS

Github: https://github.com/rhartness/NxtMin
Binaries: Both 32-bit and 64-bit files.(*)

* I'm not shisting anyone but always be cautious when downloading binary files that generate private key information.  I recommend downloading and compiling the details from source. 

I guarantee that these files are clean.  However, in good conscience I must highly recommend you use these tools strictly for fun and NOT for storing significant amounts of Nxt if you are downloading the binary files and not the source code.

NOTES

This can also work with Mono.  I built this project using VS 2013 on Windows 7, in a Parallels VM.  Running this in Mono from OS X yielded results that were near 50% slower?!  So, if you have a Windows VM, this application will probably work better in that environment, but in either case, the application should still run.

DONATIONS

If you find this application to be of use, please considering a small, token donation.  Donation addresses are:

 * Nxt:  1102622531
 * BTC:  1Mhk5aKnE6jN7yafQXCdDDm8T9Qoy2sTqS
 * LTC:  LKTF6AjzFj2CG81rQravs164VsoJJnEPmm
 * DOGE: DGea4Qev7eJGmohWq2iKSeDkrTsPeYXQAC



EDIT

-  Oops, sorry.  If anyone downloaded the binary file from within the first 5 minutes of this post, I accidentally linked just the 32 bit file.  The binaries link now contains a zip of both files.
« Last Edit: April 28, 2014, 06:19:54 pm by rlh »
C# Nxt Small Address VanityGen - http://bit.ly/nxtminvanity
C# Nxt RS Address VanityGen - http://bit.ly/nxtrsvanity
Send Donations to my offline Nxt account: NXT-FRS2-MQR5-758P-ANNEX

rlh

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 404
    • View Profile
  • Karma: +31/-7

I noticed that a few people checked out this page in a matter of minutes.  If you downloaded the binary files, please see the EDIT section at the end of the OP.
C# Nxt Small Address VanityGen - http://bit.ly/nxtminvanity
C# Nxt RS Address VanityGen - http://bit.ly/nxtrsvanity
Send Donations to my offline Nxt account: NXT-FRS2-MQR5-758P-ANNEX

forkedchain

  • Administrator
  • Hero Member
  • *****
  • Offline Offline
  • Posts: 1133
  • bite me
    • View Profile
  • Karma: +68/-10

31k/sec?  wow thats really quick, much faster than what I came up with by modifying JLP's java vanity generator to only search for short accounts.

can you post the comparable cpp and any header files for use in gcc?
NXT tips: 2319251 or NXT-8SWM-2224-YKWW-22222

rlh

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 404
    • View Profile
  • Karma: +31/-7

31k/sec?  wow thats really quick, much faster than what I came up with by modifying JLP's java vanity generator to only search for short accounts.

can you post the comparable cpp and any header files for use in gcc?

Not really.  I took existing software and plugged it into .Net.  .Net has very simple libraries that makes executing code in parallel extremely easy.

If I were to make this a C++ application, I could, but it would take a bit more effort.  Since I did this with C#, the only "dependency that I had to use was to copy the Curve.cs file from a C# implementation of the curve algorithm that I'd found.
C# Nxt Small Address VanityGen - http://bit.ly/nxtminvanity
C# Nxt RS Address VanityGen - http://bit.ly/nxtrsvanity
Send Donations to my offline Nxt account: NXT-FRS2-MQR5-758P-ANNEX

starik69

  • Full Member
  • ***
  • Offline Offline
  • Posts: 242
    • View Profile
  • Karma: +10/-17

Chrome заблокировал файл NxtMin.zip как вредоносный.  :'(
NXT-R2U6-22MC-LQL2-22222 (648774468) - NXT | All versions of NXT client and more - https://mega.co.nz/#F!J1xmgAyC!cnaqdxHALLMGiS0hTPrhAg

rlh

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 404
    • View Profile
  • Karma: +31/-7

Chrome заблокировал файл NxtMin.zip как вредоносный.  :'(

Try a different browser.  Also, if you have an anti-virus installed, it could be blocking the zip since it includes executables.  You can always compile it from the source.
C# Nxt Small Address VanityGen - http://bit.ly/nxtminvanity
C# Nxt RS Address VanityGen - http://bit.ly/nxtrsvanity
Send Donations to my offline Nxt account: NXT-FRS2-MQR5-758P-ANNEX

CryptKeeper

  • Hero Member
  • *****
  • Offline Offline
  • Posts: 1229
    • View Profile
  • Karma: +77/-5

Wow, 1102622531 that's a short one!

Are there any drawbacks - security related - with such small numbers? Like a higher possibility of collisions? When everybody is searching for the smallest possible number there must be some.  ???
Follow me on twitter for the latest news on bitcoin and altcoins!
Vanity Accounts Sale :-)

rlh

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 404
    • View Profile
  • Karma: +31/-7

Wow, 1102622531 that's a short one!

Are there any drawbacks - security related - with such small numbers? Like a higher possibility of collisions? When everybody is searching for the smallest possible number there must be some.  ???

Not really.  What you don't want cracked is your private key and that should be impossible with a 50+ character passcode.  Also, have one outgoing transaction transaction, after you receive Nxt, you will be fine. 

The reason why this is important is because an address public key isn't recorded until a payment is sent from that specific address.  If another member generates a private, resulting in the same Nxt address, their pubkey will still be different than yours.  If they use the same address as yours, you will receive their fund but they will never be able to withdraw them from your account because they will have a different privkey, which is what the pubkey is derived from.
« Last Edit: April 29, 2014, 11:48:38 am by rlh »
C# Nxt Small Address VanityGen - http://bit.ly/nxtminvanity
C# Nxt RS Address VanityGen - http://bit.ly/nxtrsvanity
Send Donations to my offline Nxt account: NXT-FRS2-MQR5-758P-ANNEX

starik69

  • Full Member
  • ***
  • Offline Offline
  • Posts: 242
    • View Profile
  • Karma: +10/-17

Wow, 1102622531 that's a short one!
Best achievement in shortening NXT address afaik is 7 digits. 8)
My best is only two 9 digits ;D
NXT-R2U6-22MC-LQL2-22222 (648774468) - NXT | All versions of NXT client and more - https://mega.co.nz/#F!J1xmgAyC!cnaqdxHALLMGiS0hTPrhAg

doctorevil

  • Jr. Member
  • **
  • Offline Offline
  • Posts: 42
    • View Profile
  • Karma: +27/-0

Cool program!

BTW, you can get a 10x speed improvement if you use this library. It does the keygen scalar multiplication on an isomorphic twisted edwards curve (who's structure is amenable to precomputation optimizations) and then maps the result back to the montgomery curve NXT uses. 

If you really wanted to go batshit crazy, you could use this formula along with the vanitygen-style hack of using point addition (instead of scalar multiplication) when generating candidates and doing the projective-to-affine coordinate transformations in batches.  Using these two techniques you could test millions of candidates per second … the only downside being the private key output would be raw (thus couldn't be the hash of a phrase).

If there's any market for this sort of thing, I'd be happy to put it together for a bounty :)
You know, I have one simple request. And that is to have sharks with frickin' laser beams attached to their heads! Now evidently, my cycloptic colleague informs me that that can't be done. Can you remind me what I pay you people for? Honestly, throw me a bone here.

rlh

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 404
    • View Profile
  • Karma: +31/-7

Cool program!

BTW, you can get a 10x speed improvement if you use this library. It does the keygen scalar multiplication on an isomorphic twisted edwards curve (who's structure is amenable to precomputation optimizations) and then maps the result back to the montgomery curve NXT uses. 

If you really wanted to go batshit crazy, you could use this formula along with the vanitygen-style hack of using point addition (instead of scalar multiplication) when generating candidates and doing the projective-to-affine coordinate transformations in batches.  Using these two techniques you could test millions of candidates per second … the only downside being the private key output would be raw (thus couldn't be the hash of a phrase).

If there's any market for this sort of thing, I'd be happy to put it together for a bounty :)

Yes, I'd considered compiling a C implementation of curve into a DLL and linking that into the C# code.  There is no doubt that this could be faster using better tools, but I didn't have a lot of time so I wrote the code using the tools I'm most familiar with and what would straight compile from VS, without needing dependencies and such.

The library that you linked appears to be a straight c implementation without the need for OpenSSL so I might try to compile it to a DLL and see if that works.  Feel free to post a visual studio project wrapping the code and compiling it to a dll and I'll throw some NXt your way as a thank you.
C# Nxt Small Address VanityGen - http://bit.ly/nxtminvanity
C# Nxt RS Address VanityGen - http://bit.ly/nxtrsvanity
Send Donations to my offline Nxt account: NXT-FRS2-MQR5-758P-ANNEX

Brangdon

  • Hero Member
  • *****
  • Offline Offline
  • Posts: 1270
  • Quality is addictive.
    • View Profile
  • Karma: +213/-25

I would like to think the community will move away from numeric addresses to the Reed-Solomon format, one day. That would allow vanity addresses with letters in, which should be cooler.
NXT-RTYD-LJXQ-EPNJ-H7AQ5. Sponsoring 1 public node at brangdon.duckdns.org.

EmoneyRu

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 429
  • techDevComm
    • View Profile
    • Nxt Kit
  • Karma: +30/-2

I would like to think the community will move away from numeric addresses to the Reed-Solomon format, one day. That would allow vanity addresses with letters in, which should be cooler.

Still no vanity gen for that?

rlh

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 404
    • View Profile
  • Karma: +31/-7

I would like to think the community will move away from numeric addresses to the Reed-Solomon format, one day. That would allow vanity addresses with letters in, which should be cooler.

Still no vanity gen for that?

I'm thinking about it.  I just need to find the time.  Someone else is welcome to mod my code and use it as the basis for another vanity gen.
C# Nxt Small Address VanityGen - http://bit.ly/nxtminvanity
C# Nxt RS Address VanityGen - http://bit.ly/nxtrsvanity
Send Donations to my offline Nxt account: NXT-FRS2-MQR5-758P-ANNEX

rlh

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 404
    • View Profile
  • Karma: +31/-7

For those following this thread, I finally created an RS pattern-matching vanitygen.

See my [ANN] here.
C# Nxt Small Address VanityGen - http://bit.ly/nxtminvanity
C# Nxt RS Address VanityGen - http://bit.ly/nxtrsvanity
Send Donations to my offline Nxt account: NXT-FRS2-MQR5-758P-ANNEX
Pages: [1]