Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question: How Proton Mail Get 10 Character Onion V3 Domain? #85

Open
IzumiSenaSora opened this issue Sep 23, 2022 · 11 comments
Open

Question: How Proton Mail Get 10 Character Onion V3 Domain? #85

IzumiSenaSora opened this issue Sep 23, 2022 · 11 comments

Comments

@IzumiSenaSora
Copy link

IzumiSenaSora commented Sep 23, 2022

How Proton Mail Get 10 Character Onion V3 Domain?

https://(protonmail)rmez3lotccipshtkleegetolb73fuirgj7r4o4vfu7ozyd.onion/

Is there any tricks? Is it possible with "mkp224o"? If yes how?
Sorry i am bad at english!.

@zazaulola
Copy link

What's wrong with this domain? What 10 words did you find in it? It seems to be fairly unremarkable.

@IzumiSenaSora IzumiSenaSora changed the title Question: How Proton Mail Get 10 Word Onion V3 Domain? Question: How Proton Mail Get 10 Character Onion V3 Domain? Sep 23, 2022
@IzumiSenaSora
Copy link
Author

What's wrong with this domain? What 10 words did you find in it? It seems to be fairly unremarkable.

Sorry!... i am bad at english!... i though "word" and "character" have same meaning!... 😅

@zazaulola
Copy link

My old computer (2020) can find a domain like this taking anywhere from one hour to 16 hours. But, I tend to search a whole list of 8-11 character words. Within an hour I come across several addresses of 10 characters.

Generation speed ~210M-230M per second.

I haven't optimized anything and I haven't run any separate benchmarks.
From configuration, I think I have --enable-amd64-64-24k and --enable-binsearch enabled

@IzumiSenaSora
Copy link
Author

IzumiSenaSora commented Sep 24, 2022

My old computer (2020) can find a domain like this taking anywhere from one hour to 16 hours. But, I tend to search a whole list of 8-11 character words. Within an hour I come across several addresses of 10 characters.

Generation speed ~210M-230M per second.

I haven't optimized anything and I haven't run any separate benchmarks. From configuration, I think I have --enable-amd64-64-24k and --enable-binsearch enabled

How many thread you use while running?
+ several 10 character with in hour?
Can you share your command which command or the way you filter? I am noob in this. So can you help me bit?

@scribblemaniac
Copy link
Contributor

Searching for vanity addresses is entirely probabilistic. Formulas for estimating the average amount of time to find an n-letter match are discussed in #27.

My old computer (2020) can find a domain like this taking anywhere from one hour to 16 hours. But, I tend to search a whole list of 8-11 character words. Within an hour I come across several addresses of 10 characters.
Generation speed ~210M-230M per second.

This is factually incorrect, or at best highly misleading. Could you find a match having some 10-letter english phrase in that amount of time, sure, probably even faster. But not one specific 10-letter combination. The number of trials on average that you would have to do to find one specific 10-character prefix is 32^10. Divide that number by the number of trials/second you say you have, and you get: 32^10/210e6 = ~62 days.

Is there any tricks? Is it possible with "mkp224o"? If yes how?

This is possible with mkp224o. There is only two things you can do to sped up finding matches:

  1. Increase the number of trials per second. This can be by using faster hardware, or more hardware, or using your existing hardware more efficiently. To my knowledge there are not any implementations that are substantially faster than mkp224o, but it's not impossible and I have not looked for other programs to do this in a long time. More than likely though in this case they just ran a program like this on many computers. With cloud computing, that's just a matter of paying more. For running this program on a personal computer, you may be able to get a little more out of it by changing the algorithm used (there are multiple options available at compile-time) and perhaps by changing your compiler and its options.
  2. Increase the probability of a match. This most obviously is achieved by searching for smaller prefixes. Sometimes you can search for a smaller prefix, such as "proton", generate a bunch of results, and pick the best one. For example, you might find protonsecem, which is not something you would search for, but you could make up some reasoning such as "it stands for Proton SECure Email" and then you have your longer match (see the old "facebookcorewwi" address). However if you don't want to go through the matches, you can instead increase the number of search terms. For example they might search for protonmail, protonemail, protonmessage, mailproton etc. While the speedup of this is not quite linear because you have to compare each key to more prefixes, it is still very beneficial.

@zazaulola
Copy link

zazaulola commented Sep 25, 2022

How many thread you use while running? + several 10 character with in hour? Can you share your command which command or the way you filter? I am noob in this. So can you help me bit?

2x CPU EPYC 7601
RAM 512Gb
1xGPU nvidia 1070ti
1xM.2 4x PCI-E 3.0
other IRQ are free to increase performance of calculations

2x32 cores x2 threads = 128 threads
in fact 64x 3200 Mhz

@cathugger
Copy link
Owner

with EPYC you can probably gain some small perf improvements by increasing --enable-batchnum= configure time option to something like 4096 or more, as iirc that has bigger cpu cache size.

@nns33213
Copy link

My home PC with i7-12700K gets about 80 000 000 calc/sec, which takes less than half a year to exhaust the entire 10 character space. Pretty doable for you, piece of cake for a multi-million dollar corporation.

@scribblemaniac
Copy link
Contributor

My home PC with i7-12700K gets about 80 000 000 calc/sec, which takes less than half a year to exhaust the entire 10 character space.

No. At that rate, it will take a little less than half a year on average to find any one specific 10 character prefix. Each new address this program generates is completely random and independent of previously generated results, so as you continue to run you will get multiple results with the same prefix, and the probability of the next address you generate having the same first 10 characters as a previously generated address goes up the more prefixes you find. To "exhaust the the entire 10 character space", that is to generate at least one of every possible 10 character prefix, that problem falls under what is known as the Coupon collector's problem. According to that, you would need to run on average 32^10*H(32^10) trials where H(n) the the n-th Harmonic number. At your given calculation rate, that would take on average 15.7 years. And that is in the best case scenario which assumes that a) all prefixes are possible and b) all prefixes are uniformly distributed. I do not know that either of these are guaranteed by the underlying cryptographic algorithms, but I don't think they are unreasonable assumptions, especially for only a 10 character prefix.

@ghost
Copy link

ghost commented Jan 4, 2023

Hello, I am looking for a way to specifically generate 11 specific characters, being a private company, I can offer myself a considerable budget so that its realization is possible & fast.

I leave you my email to contact me if you are interested in helping me on my request too & and being paid.

email : [email protected]

@adapt-L
Copy link

adapt-L commented Feb 1, 2023

@Hardy454
You could probably mine an 11-char within a reasonable time-frame (<1 yr) if you have good hardware.

Every char in the tor address corresponds to 5 bits in the public key. This leads to 2^5 = 32-fold increase in difficulty for each new char you want. For example, if it takes 10 seconds to generate a 6-char address, it will take you 320 seconds to generate a 7-char address, and so on. You can benchmark how many seconds it will take on average as (keys per second)/(32^11).

As @nns33213 says, it takes about half a year to mine a 10-char address on a top-of-the-line CPU. So if you just get a new CPU it will take you 16 years on average. If you were mining on eight of those new CPUs at a time, it would take you 1 year on average.

One option would be to rent hardware like AWS or something for mining. This comes with some security considerations (as any service you are renting may have introspection to your private key)

As for having someone securely generate a key for you, look at some of the ideas proposed in #60 . I might be able to provide a mining service for you if that feature gets implemented efficiently, as i'm connected to a guy that has access to a lot of cheap computing power.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants