Ok, but if I try to authenticate myself, let's say login into metamask, whit a 12 words account already created, who checks what private/public key corresponds to those 12 words I wrote?
Your "words" store your key. They're the whole key.
The only difference between creating a wallet and opening a wallet is thst you're using a random number generator to create a wallet.
There is a checksum placed in a lot of nmemonics but these are easy to bruteforce afaik so there's no way the system could know if you've "lied".
What stops you from accessing someone else's wallet is that the chances of doing it are considered so small that it's realistically impossible to do.
I think I expressed myself wrongly (English is not my mother tongue), Let me take you through what I think the process is and correct me if I am wrong:
12 words are your public key before being hashed into a string.
the public key is a hashed version of the 12 words, and thus its strongly associated whit the 12 words, you can get to the public key whit the 12 words, but you can't get to the 12 words whit the public key.
If I generate a new account on metamask:
-
My computer ask metamask for 12 words at random
-
My computer then proceeds to apply some math to the 12 words thus hashing those 12 words into a public key and a private key
-Then
My computer goes to the blockchain and identifies itself whit this public key, it doesn't identify itself whit the private key, because in the blockchain everything is public so it wouldn't make sense to show it in public.
-Next time I log in,
My computer makes the math to the 12 words I feed it, and comes whit the same public key to identify itself in the blockchain
Here is when my problem comes, if the hash of my 12 words is occurring on my private computer, what guarantees have the blockchain that I indeed did the correct math and the public key hasn't been altered previously to being sent to them?, otherwise I could check the blockchain for any "X" public key, and sent it as it was mine, like saying that I make the hash of 12 words and the final result is this X public key. I am not sure if I am explaining myself correctly?, I am not saying that I "decrypt" the public key, I know this is not possible I am saying that I don't need to decrypt anything to start whit, I could just send it as it is.I assume the private key plays a role in all of this, but if it's private how come the blockchain can check its veracity and remain anonymous? Also I know that metamask has nothing to do whit bitcoin blockchain, it's just an example I believe they work very similarly on the crypto key aspect.