DaveF
Legendary
Offline
Activity: 3598
Merit: 6581
Crypto Swap Exchange


November 25, 2019, 11:02:26 PM 

So I finally went through the thread and updated this post with all the benchmarks: https://bitcointalk.org/index.php?topic=5112311.msg50823897#msg50823897If I missed any please let me know and I will add them. Since Jean_Luc has been offline and not updated in a while I think the only new speed increases will be with new cards not from software updates. Dave




xhomerx10
Legendary
Offline
Activity: 3962
Merit: 8601


November 30, 2019, 02:00:33 PM 

So I finally went through the thread and updated this post with all the benchmarks: https://bitcointalk.org/index.php?topic=5112311.msg50823897#msg50823897If I missed any please let me know and I will add them. Since Jean_Luc has been offline and not updated in a while I think the only new speed increases will be with new cards not from software updates. Dave Just upgraded my video card to something a little more current  an MSI RTX 2070 Windforce 2X 8G v3.0. There are already specs on an RTX 2070 but mine come in a bit slower with stock settings. D:\Users\bitcoiner\Downloads\vanitysearch>vanitysearch gpu gpuId 0 t 0 1satoshi VanitySearch v1.15 Difficulty: 51529903411245 Search: 1satoshi [Compressed] Start Sat Nov 30 07:45:52 2019 Base Key: 1C7246A63CE9472E07254C53619A4F7E60E1EB4FBCD9A5C1BB2BC04E1C85489A Number of CPU thread: 0 GPU: GPU #0 GeForce RTX 2070 (36x64 cores) Grid(288x128) 1273.954 MK/s (GPU 1273.954 MK/s) (2^36.90) [P 0.25%][50.00% in 07:45:03][0]
Loving this new VanitySearch!




bounty0z
Member
Offline
Activity: 142
Merit: 70


December 02, 2019, 09:17:26 PM 

Please any one have cubitcrack_vanity for linux ? I just find the windows one




Jean_Luc (OP)


December 03, 2019, 10:21:07 AM 

Since Jean_Luc has been offline and not updated in a while I think the only new speed increases will be with new cards not from software updates.
Dave
Hi there, I'm still very busy at the moment but I will definitely restart to work on the project soon. I'm working in a particle accelerator and we have rebuilt the storage ring. We have just started the commissioning phase yesterday. When we will get a stable stored beam at nominal settings, I will have more time to work again on personal projects.




Dabs
Legendary
Offline
Activity: 3416
Merit: 1912
The Concierge of Crypto


December 03, 2019, 03:03:23 PM 

Hi there, I'm still very busy at the moment but I will definitely restart to work on the project soon. I'm working in a particle accelerator and we have rebuilt the storage ring. We have just started the commissioning phase yesterday. When we will get a stable stored beam at nominal settings, I will have more time to work again on personal projects.
What kind of storage does a particle accelerator use? That's interesting. Those things are like giant lasers or something and you break atoms and stuff right? I'm guessing this is one of those circular particle accelerators, where the beam goes round and round for some time.




Jean_Luc (OP)


December 03, 2019, 03:38:12 PM 

What kind of storage does a particle accelerator use? That's interesting. Those things are like giant lasers or something and you break atoms and stuff right?
I'm guessing this is one of those circular particle accelerators, where the beam goes round and round for some time.
Yes it is a circular ring, diameter ~270m,energy 6GeV. (ESRF at Grenoble/France). We don't break atoms, we accelerate electron to produce hard Xray. Those xray are used in beamlines all around the ring to explorate matter. A bit like a giant microscope.




DaveF
Legendary
Offline
Activity: 3598
Merit: 6581
Crypto Swap Exchange


December 03, 2019, 04:14:07 PM 

Since Jean_Luc has been offline and not updated in a while I think the only new speed increases will be with new cards not from software updates.
Dave
Hi there, I'm still very busy at the moment but I will definitely restart to work on the project soon. I'm working in a particle accelerator and we have rebuilt the storage ring. We have just started the commissioning phase yesterday. When we will get a stable stored beam at nominal settings, I will have more time to work again on personal projects. We have now seen Jean_Luc's to do list 1) Probe the secrets of the universe. 2) Update VanitySearch No problem with this being #2 on your list. Glad to hear you are doing well, just dropping off and going dark like that makes people worry. Dave




Jean_Luc (OP)


December 03, 2019, 04:50:16 PM 

I was very very busy during the last few months but now the the development is almost ended, we still have to debug few things, I'm starting to breath again




MrFreeDragon


December 06, 2019, 09:32:52 AM 

Nice project, thank you.
I have not read all the replies to this topic, so sorry is my question has been already answered or discussed. I want to know the algorithm how is Vanitysearch finds the prefix address in order to be sure that it is real secure.
The starting seed is used for search (this seed could be generated randomly or defined by a user). How is later Vanitysearch finds the address based on this seed? Can you please describe the processs in simple words, for example: (1) software uses sha256 from the seed, (2) generates address from sha256 number and compare with prefix, (3) if prefix not found, increment number by 1, and so on.
Of course it is not the scheme how vanitysearch works, but cann you please describe it or give the links where it has already been discussed.




imjustagirl
Member
Offline
Activity: 118
Merit: 11


December 06, 2019, 01:07:33 PM 

Looks like a nice project, will give it a try. You have a typo under Usage.  https://github.com/JeanLucPons/VanitySearchVanitySeacrh instead of VanitySearch.

1JPnqMd1Q43L3KbZ7SoTSdRCD2aLj2sikF Tip Me!



Dabs
Legendary
Offline
Activity: 3416
Merit: 1912
The Concierge of Crypto


December 06, 2019, 02:42:34 PM 

This is similar to VanityGen and other vanity generators. They don't need to use a SHA256 from any seed, they just start at some random number in the space and then increment by 1 each time until it finds a match. So it basically generates thousands to millions of addresses per second or minute. After a few thousand or million tries, it randomly switches to another number and does the process again.




MrFreeDragon


December 06, 2019, 04:47:53 PM 

This is similar to VanityGen and other vanity generators. They don't need to use a SHA256 from any seed, they just start at some random number in the space and then increment by 1 each time until it finds a match. So it basically generates thousands to millions of addresses per second or minute. After a few thousand or million tries, it randomly switches to another number and does the process again.
Ok, this is clear. Thank you. By the sha256 I supposed the initial starting base key. If the process just "increment by 1", it is very clear. In the description of Vanitysearch on GitHub the author also pointed that the tool "Use some properties of elliptic curve to generate more keys". What kind of elliptic curve properties are used? I suppose that for every private key number k the tool finds also the address for (order  k) number (as it needs only to change 02 to 03 in public key and vice verca). Any other ECDSA properties are used?




arulbero
Legendary
Offline
Activity: 1915
Merit: 2074

Any other ECDSA properties are used?
Endomorphism. It is a elliptic curve property, not a ECDSA property. If kG = (x,y) then (λ*k)G = (β*x, y) and (λ*λ*k)G = (β*β*x, y) where λ = 5363ad4c c05c30e0 a5261c02 8812645a 122e22ea 20816678 df02967c 1b23bd72 β = 7ae96a2b 657c0710 6e64479e ac3434e9 9cf04975 12f58995 c1396c28 719501ee
λ*k is mod n, β*x is mod p where n = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141 p = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F
In this way, you get 6 points with only 1 "operation" kG: (x,y) (β*x, y) (β*β*x, y) (x,py) (β*x, py) (β*β*x, py)




WhyFhy


December 06, 2019, 09:50:51 PM 

Any other ECDSA properties are used?
Endomorphism. It is a elliptic curve property, not a ECDSA property. If kG = (x,y) then (λ*k)G = (β*x, y) and (λ*λ*k)G = (β*β*x, y) where λ = 5363ad4c c05c30e0 a5261c02 8812645a 122e22ea 20816678 df02967c 1b23bd72 β = 7ae96a2b 657c0710 6e64479e ac3434e9 9cf04975 12f58995 c1396c28 719501ee
λ*k is mod n, β*x is mod p where n = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141 p = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F
In this way, you get 6 points with only 1 "operation" kG: (x,y) (β*x, y) (β*β*x, y) (x,py) (β*x, py) (β*β*x, py) this explains why 1 of 6 will be valid if split gen right?




arulbero
Legendary
Offline
Activity: 1915
Merit: 2074


December 07, 2019, 07:57:07 AM Last edit: December 07, 2019, 11:31:01 AM by arulbero 

this explains why 1 of 6 will be valid if split gen right?
Yes. But this is due only to the way the programs we use to reassemble the pieces for the final private key work. Let s (Q = sG) be the secret private key (the public key). Only one person knows 's'. Then he sends only Q to another person, who run a "split gen" program. Usually "split gen" works like this: it computes only (s+1)G = Q + G, (s+2)G = Q + 2G, …, (s+k)G = Q + kG = P until it gets a public key P with a particular address. The program knows only k (the partial private key). Then you need to compute k' (k' G = P): k' = (s + k) mod n. Now suppose you get P in this way:  (Q + kG) = P then in order to get from the partial private key k the correct final private key k' = (s k) mod n you need to know how k was obtained (exploiting the symmetry). If you get P in this way: λ(Q + kG) = P (exploiting the endomorphism) the correct final private k' will be: λ*(s + k) mod n and so on.




MrFreeDragon


December 08, 2019, 02:56:50 PM Last edit: December 08, 2019, 10:07:13 PM by MrFreeDragon 

Any other ECDSA properties are used?
Endomorphism. It is a elliptic curve property, not a ECDSA property. If kG = (x,y) then (λ*k)G = (β*x, y) and (λ*λ*k)G = (β*β*x, y) snip Thank you! I have looked at the code and also found just these properties: 1) Endomorphism (for λ and λ*λ)  2 additional addresses for kG 2) Curve symmetry (if (x,y) = k*G, then (x, y) is k*G)  1 additional address So, it is clear why 6 addresses are found: (1+2) * 2 = 6 Are these properties all known elliptic curve properties, or there are some other known properties but not used in vanitysearch? I also made some tests with vanitysearch and it is interesting for me why it is faster than bitcrack. For example, for 1 compressed address on GTX 1080ti bitcrack has 340350MKey/sec, but vanitysearch has 9501000MKey/sec (3 times more). Was it caused by endomorphism used?




Jean_Luc (OP)


December 08, 2019, 07:43:16 PM Last edit: December 09, 2019, 07:42:27 AM by Jean_Luc 

Are these properties all known elliptic curve properties, or there are some other known properties but not used in vanitysearch?
Symmetry (x,y) (x,y) is a common property of all elliptic curve. Secpk1 admit a primitive cubic root of unity so an endomorphism can be constructed using β and λ (β^3 = 1 mod p and λ^3 = 1 mod n) If β^3 = 1 and λ^3 = 1 we have also (β^1)^3 = 1,(λ^1)^3 = 1 so we can construct a second endomorphism using β^1 and λ^1. Note: β^3 = 1 mod p => β^3.(β^1) = 1.(β^1) mod p => β^2 = β^1 mod p (same for λ^3 mod n) β = 7ae96a2b 657c0710 6e64479e ac3434e9 9cf04975 12f58995 c1396c28 719501ee λ = 5363ad4c c05c30e0 a5261c02 8812645a 122e22ea 20816678 df02967c 1b23bd72
To find primitive roots of unity you need to factorize p1 and n1 and find common prime factors. We have always a primitive square root of unity but it is 1 and it does not bring an improvement, speck1 admit only a cubic primitive root of unity which can be exploited. Factorization of p1 and n1, only 3 can be exploited.
p1 = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2E 2 3 7 3481 1DB8260E5E3B460A46A0088FCCF6A3A5936D75D89A776D4C0DA4F338AAFB
n1 = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364140 2^6 3 95 277 17D6CFB8EE30C51 978C6F353C3889A79 10DBFF26EAB8198050172EE03275
I also made some tests with vanitysearch and it is interesting for me why it is faster than bitcrack. For example, for 1 compressed address on GTX 1080ti bitcrack has 340350MKey/sec, but vanitysearch has 9501000MKey/sec (3 times more). Was it caused by endomorphism used?
Symmetry and endomorphisms bring significant speedup. I'm not sure, but it seems to me that bitcrak use 32 bits arithmetic which is slower... Edit: Added factorisation of p1 and n1




MrFreeDragon


December 09, 2019, 09:25:59 AM 

Jean_Luc, thank you for the detailed explanation.
Do you know, are there any other elliptic curve properties exist besides symmetry and endomorphism?
Symmetry and endomorphism were used by you in the code to spead up the process. However may be you know some other properties or features which could be used for additional speedup?




Jean_Luc (OP)

Jean_Luc, thank you for the detailed explanation.
Do you know, are there any other elliptic curve properties exist besides symmetry and endomorphism?
Symmetry and endomorphism were used by you in the code to spead up the process. However may be you know some other properties or features which could be used for additional speedup?
To my knowledge, no other speedup using other ec properties can be added to VanitySearch, but my knowledge is not infinite In any case the time required for ECC calculation is now low compare to hashing (~80% of CPU usage is taken by SHA256 and RIPEMD160). By using symmetry and endomorphism, we are near of ~1 modular multiplication per point. Even if we double the speed of ECC, it will only result in a ~10% speed increase. To my point of view, the only significant speedup can be bring by partial reversing of the hashing function in order to reduce hashing time consumption.




blockblock1
Newbie
Offline
Activity: 4
Merit: 0


December 12, 2019, 01:09:14 PM Last edit: December 12, 2019, 01:19:32 PM by blockblock1 

How to configure VanitySearch to work with bitfury bf1 https://imgur.com/8bwVYG8https://imgur.com/iqpi94chttps://imgur.com/226O3t7GPU: GPU #0 GeForce GTX 770 (8x192 cores) Grid(64x128) Seed: 1576154843 167.716 MegaKey/sec ComputeKeys() found 1494 items , CPU check... GPU/CPU check OK does not see the device bitfury bf1 (( I want to set up a mining farm to work with VanitySearch. USB hub 49 ports.




