Bitcoin Forum
May 05, 2024, 09:01:23 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 »
  Print  
Author Topic: VanitySearch (Yet another address prefix finder)  (Read 31263 times)
Jean_Luc (OP)
Sr. Member
****
Offline Offline

Activity: 462
Merit: 696


View Profile
March 28, 2019, 05:21:36 PM
 #221

Is there a theoretical model that would allow to calculate the maximum performance for a given hardware?

This would give an idea on how much more optimization you can achieve.

It is difficult to say.
Concerning VanitySearch I think we are near to the maximum if we keep present algorithms.
There is still few things to do but to get a significant performance increase it would need new algorithms such as 'partial' SHA or RIPE reversing in order to stop some calculation before getting the complete result or other thing like that...

The forum was founded in 2009 by Satoshi and Sirius. It replaced a SourceForge forum.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
Jean_Luc (OP)
Sr. Member
****
Offline Offline

Activity: 462
Merit: 696


View Profile
March 29, 2019, 08:27:00 PM
Last edit: March 29, 2019, 09:25:40 PM by Jean_Luc
 #222

Hi,

I compiled VanitySearch for Windows with CUDA8 (Only for 2.0 compute cap).
Unfortunately, VS2015 performs wrong optimizations Sad so I had to disable optimization for CPU code.
But the GPU code seems to work as expected with the normal speed.
I will see if I can find where the compiler fails and if I can find a work around.
Thanks to test it.

http://zelda38.free.fr/VanitySearch/
Lolo54
Member
**
Offline Offline

Activity: 117
Merit: 32


View Profile
March 30, 2019, 01:00:41 AM
Merited by Jean_Luc (2)
 #223

good evening Jean_Luc thank you for the great work here is the result of my tests on my configuration NVIDIA GeForce GT520M Intel core I5-2430M

Code:
VanitySearchCUDA8.exe -check
VanitySearch v1.10
GetBase10() Results OK
Add() Results OK : 61.690 MegaAdd/sec
Mult() Results OK : 6.542 MegaMult/sec
Div() Results OK : 834.376 KiloDiv/sec
ModInv()/ModExp() Results OK
ModInv() Results OK : 103.923 KiloInv/sec
IntGroup.ModInv() Results OK : 1.565 MegaInv/sec
ModMulK1() Results OK : 1.939 MegaMult/sec
ModSquareK1() Results OK : 1.922 MegaMult/sec
ModMulK1order() Results OK : 1.031 MegaMult/sec
ModSqrt() Results OK !
Check Generator :OK
Check Double :OK
Check Add :OK
Check GenKey :OK
Adress : 15t3Nt1zyMETkHbjJTTshxLnqPzQvAtdCe OK!
Adress : 1BoatSLRHtKNngkdXEeobR76b53LETtpyT OK!
Adress : 1JeanLucgidKHxfY5gkqGmoVjo1yaU4EDt OK(comp)!
Adress : 1Test6BNjSJC5qwYXsjwKVLvz7DpfLehy OK!
Adress : 1BitcoinP7vnLpsUHWbzDALyJKnNo16Qms OK(comp)!
Adress : 16S5PAsGZ8VFM1CRGGLqm37XHrp46f6CTn OK(comp)!
Adress : 1Tst2RwMxZn9cYY5mQhCdJic3JJrK7Fq7 OK(comp)!
Check Calc PubKey (full) 1ViViGLEawN27xRzGrEhhYPQrZiTKvKLo :OK
Check Calc PubKey (even) 1Gp7rQ4GdooysEAEJAS2o4Ktjvf1tZCihp:OK
Check Calc PubKey (odd) 18aPiLmTow7Xgu96msrDYvSSWweCvB9oBA:OK
GPU: GPU #0 GeForce GT 520M (1x48 cores) Grid(8x128)
Seed: 1024278713
7.191 MegaKey/sec
ComputeKeys() found 176 items , CPU check...
GPU/CPU check OK

Code:
VanitySearchCUDA8.exe -l
VanitySearch v1.10
GPU #0 GeForce GT 520M (1x48 cores) (Cap 2.1) (1024.0 MB) (Multiple host threads)

Code:
VanitySearchCUDA8.exe -t 4 -gpu 1Testrrr
VanitySearch v1.10
Difficulty: 51529903411245
Search: 1Testrrr [Compressed]
Start Sat Mar 30 01:58:45 2019
Base Key:EB4A2ED806A60F7C834D62E4CA6C12DFA10C57FDD8075060EADC02E849168E02
Number of CPU thread: 4
GPU: GPU #0 GeForce GT 520M (1x48 cores) Grid(8x128)
7.731 MK/s (GPU 6.929 MK/s) (2^27.07) [P 0.00%][50.00% in 53.4d][0]

Code:
VanitySearchCUDA8.exe -gpu 1Testrrr
VanitySearch v1.10
Difficulty: 51529903411245
Search: 1Testrrr [Compressed]
Start Sat Mar 30 01:45:44 2019
Base Key:497A23E01DE91DCC1958FF3111AC7158E295766E266BEBD85879A53689C3CEF3
Number of CPU thread: 3
GPU: GPU #0 GeForce GT 520M (1x48 cores) Grid(8x128)
7.770 MK/s (GPU 7.058 MK/s) (2^28.94) [P 0.00%][50.00% in 53.1d][0]

only CPU - much slow

Code:
1Testrrr
VanitySearch v1.10
Difficulty: 51529903411245
Search: 1Testrrr [Compressed]
Start Sat Mar 30 02:06:38 2019
Base Key:1CDE92D7AB47587457BFE29138D7F766885CACEF828B2EBF2C27008857B3F019
Number of CPU thread: 4
0.840 MK/s (GPU 0.000 MK/s) (2^24.02) [P 0.00%][50.00% in 1.3y][0]

 Smiley

Jean_Luc (OP)
Sr. Member
****
Offline Offline

Activity: 462
Merit: 696


View Profile
March 30, 2019, 07:11:48 AM
 #224

Thank you very much for testing Smiley
I'm starting to fight with VS2015. It seems that this time the problem comes from sub_borrow Cheesy
Jean_Luc (OP)
Sr. Member
****
Offline Offline

Activity: 462
Merit: 696


View Profile
March 30, 2019, 07:46:02 AM
 #225

I updated the GitHub release and I added the CUDA8 binary.
I managed to work around the compiler issue.
No both CPU and GPU runs at nominal speed.

https://github.com/JeanLucPons/VanitySearch/releases/tag/1.10

Thanks to test Wink
Lolo54
Member
**
Offline Offline

Activity: 117
Merit: 32


View Profile
March 30, 2019, 11:42:24 AM
 #226

Hello, it seems to me faster

works perfectly

Code:
VanitySearchCUDA8..exe -gpu 1Testrrr
VanitySearch v1.10
Difficulty: 51529903411245
Search: 1Testrrr [Compressed]
Start Sat Mar 30 12:38:01 2019
Base Key:57AA37BF4DB32E5668B51B6599428CF30FB675996C0A10FDA84761AE0B3C3BE9
Number of CPU thread: 3
GPU: GPU #0 GeForce GT 520M (1x48 cores) Grid(8x128)
10.233 MK/s (GPU 7.026 MK/s) (2^27.89) [P 0.00%][50.00% in 40.4d][0]
Chris!
Legendary
*
Offline Offline

Activity: 1382
Merit: 1122



View Profile
March 30, 2019, 08:18:26 PM
 #227

Very cool. I'm glad to see a compressed key option, but of course would love native segwit/P2SH as well (as I see has already been brought up).

I'll test it out when I have a chance! Thanks Jean_Luc for taking this on!
arulbero
Legendary
*
Offline Offline

Activity: 1915
Merit: 2074


View Profile
March 31, 2019, 08:58:43 AM
 #228

Another nice option would be adding the split-key generator, in this way could be solved these works :

https://vanitypool.appspot.com/availableWork
Jean_Luc (OP)
Sr. Member
****
Offline Offline

Activity: 462
Merit: 696


View Profile
March 31, 2019, 09:43:32 AM
 #229

Another nice option would be adding the split-key generator, in this way could be solved these works :

https://vanitypool.appspot.com/availableWork

Yes that could be interesting.
But as we start with an offset (the given public key), can we still apply symmetry and endomorpshim optimization ?
arulbero
Legendary
*
Offline Offline

Activity: 1915
Merit: 2074


View Profile
March 31, 2019, 11:50:00 AM
 #230

Another nice option would be adding the split-key generator, in this way could be solved these works :

https://vanitypool.appspot.com/availableWork

Yes that could be interesting.
But as we start with an offset (the given public key), can we still apply symmetry and endomorpshim optimization ?


Yes.

Let P be the public key (offset). Let be 'secret' the private key of P.

Let 's' be the start random private key you generate from the seed, and s*G = Q the current start point.

Instead of starting from P, you start from Q+P. Let's say Q' = Q + P

Now, you find a public key R' such that --> ripemd160(sha256(R')) = address with a certain prefix.

Your program works exactly like now, it finds only the private key of Q, not of Q'. Simply you get a partial key of Q instead of the final private key of Q'.


Now there are 3 possibilities:

if R' is a standard point (no symmetry / endo), then you have found R' = R + P and you know only the private key k of R (k*G = R), not the private key of R'. Then k is the correct partial private key.
The final user needs to add the k found to the secret private key of P (that he only knows) to get the final private key:

final private key = (k + secret) mod n  (explanation:  (k + secret)*G = k*G + secret*G = R + P = R')


if R' is a simmetric point, then R' = -(R + P). You found the private key k of -R (k*G = -R), nothing more.

The final user needs to build the final private key this way:

final private key = (k - secret) mod n  (explanation:  (k -secret)*G = k*G - secret*G = -R - P = R')



if R' is a endo point, then R' = lambda1*(R + P).  (or lambda2)

You found the private key k of lambda1*R (k*G = lambda1*R), then:

final private key = (  k  + lambda1*secret)) mod n
(explanation:  (k + lambda1*secret)*G = k*G + lambda1*secret*G = lambda1*R + lambda1*P = R')
Jean_Luc (OP)
Sr. Member
****
Offline Offline

Activity: 462
Merit: 696


View Profile
March 31, 2019, 12:23:08 PM
 #231

Ok, that means that the requester must know how to reconstruct the final private key.
Does Vanity pool support the needed methods ?
I just had a quick look on the site and there is not information on how to submit the partial private key (which format to use) and the reconstruction method.
arulbero
Legendary
*
Offline Offline

Activity: 1915
Merit: 2074


View Profile
March 31, 2019, 01:35:09 PM
 #232

Ok, that means that the requester must know how to reconstruct the final private key.
Does Vanity pool support the needed methods ?
I just had a quick look on the site and there is not information on how to submit the partial private key (which format to use) and the reconstruction method.


Unfortunately I think that:

1) only uncompressed keys are considered

2) no other ways to reconstruct the key are considered


it is a old site. Maybe someone could organize a new site that supports the new options (at the end the final user doesn't care about the method to rebuild the private key, if it is sure and it works).
asche
Legendary
*
Offline Offline

Activity: 1484
Merit: 1489


I forgot more than you will ever know.


View Profile
March 31, 2019, 01:58:46 PM
 #233

Ok, that means that the requester must know how to reconstruct the final private key.
Does Vanity pool support the needed methods ?
I just had a quick look on the site and there is not information on how to submit the partial private key (which format to use) and the reconstruction method.


Unfortunately I think that:

1) only uncompressed keys are considered

2) no other ways to reconstruct the key are considered


it is a old site. Maybe someone could organize a new site that supports the new options (at the end the final user doesn't care about the method to rebuild the private key, if it is sure and it works).

LoyceV does offer Vanity addys using that method. Maybe he has some insight to offer regarding this.
Chris!
Legendary
*
Offline Offline

Activity: 1382
Merit: 1122



View Profile
March 31, 2019, 06:23:43 PM
 #234

I've got a basic explanation here if it's needed. I'm not sure of the technical differences between compressed and uncompressed addresses though.
Jean_Luc (OP)
Sr. Member
****
Offline Offline

Activity: 462
Merit: 696


View Profile
April 01, 2019, 07:57:08 AM
Merited by Nestade (1)
 #235

Hello,

Lots of interesting features to add Wink
I think I will work first on P2SH (1to1) add (may be) segwit addresses.
DarkStar_
Legendary
*
Offline Offline

Activity: 2758
Merit: 3282


View Profile WWW
April 02, 2019, 01:39:47 AM
 #236

Hello,

Lots of interesting features to add Wink
I think I will work first on P2SH (1to1) add (may be) segwit addresses.


Just curious, why P2SH? AFAIK there's no benefits of P2SH over legacy addresses if it's only 1 on 1, and you pay more fees. P2SH with Segwit would be great though  Cheesy

taking a break - expect delayed responses
RobertPaulig
Newbie
*
Offline Offline

Activity: 7
Merit: 1


View Profile
April 02, 2019, 03:12:32 AM
 #237

2^256/2^160=79228162514264337593543950336
I just can't believe it. Did I count correctly? It is the number of collisions is associated with each address?
Jean_Luc (OP)
Sr. Member
****
Offline Offline

Activity: 462
Merit: 696


View Profile
April 02, 2019, 06:46:24 AM
Last edit: April 02, 2019, 07:01:08 AM by Jean_Luc
Merited by DarkStar_ (1)
 #238

Just curious, why P2SH? AFAIK there's no benefits of P2SH over legacy addresses if it's only 1 on 1, and you pay more fees. P2SH with Segwit would be great though  Cheesy

It is a first attempt, this is just to allow to run VanitySearch like this (for those who want a private address starting with 3).

Code:
C:\C++\VanitySearch\x64\ReleaseSM30>VanitySearch.exe -stop 3Priv
VanitySearch v1.11
Difficulty: 4553521
Search: 3Priv [Compressed]
Start Tue Apr  2 07:43:52 2019
Base Key:B0A317C56CF0CF3C63E118687C153CD1336F2D5DCE33A3ADB3CE5E4EEA401436
Number of CPU thread: 8

Pub Addr: 3PrivG5uq7hwXLyAHbYkFTnFkzx1FEWQdf
Priv (WIF): p2wpkh-p2sh:L2wAVD273GwAxGuEDHvrCqPfuWg5wWLZWy6H3hjsmhCvNVuCERAQ
Priv (HEX): 0xAA83217B3A11FCCFF8142EF0681AD774D7AB6822F574C4BB99CBF9B9DD01E7F2

For 2to2 segwit, I need to implement split private keys then generate a 2to2 address from 2 given public key, this is more complex but I will try to do it. That has no sense that VanitySearch output 2 full private keys in the same file, no ?

One question, 2to2 segwit is possible only with BECH32 format (bc1...) or it is also possible with Base58 (3...) ?



asche
Legendary
*
Offline Offline

Activity: 1484
Merit: 1489


I forgot more than you will ever know.


View Profile
April 02, 2019, 07:47:14 AM
 #239

It is a first attempt, this is just to allow to run VanitySearch like this (for those who want a private address starting with 3).

You mean a public address starting with 3 I guess?

Thank you for implementing tho Smiley
Jean_Luc (OP)
Sr. Member
****
Offline Offline

Activity: 462
Merit: 696


View Profile
April 02, 2019, 07:55:50 AM
 #240

You mean a public address starting with 3 I guess?

Right Wink
Pages: « 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 »
  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!