1

Can private keys change once the public key (address) is created?

Paul Razvan Berg
  • 17,902
  • 6
  • 73
  • 143
Matt Hess
  • 35
  • 1
  • 3
  • Maybe it already answered on https://ethereum.stackexchange.com/questions/52513/how-to-generate-multiple-eth-addresses-from-one-private-key – Eduardo Pereira Aug 06 '18 at 21:24

2 Answers2

4

Short Answer

No, you cannot. Once a public key is created, there's no way to change its private key. However, you can create a new account for the funds you own.

Long Answer

Ethereum, like Bitcoin, uses elliptic curves(ECs) to generate private/ public keys pairs. This might sound really complex, but, at the core, ECs are just functions which look like this:

Elliptic_Curves

Like the Lululemon logo turned horizontally!

P and Q are arbitrarily chosen points. R is generated by playing "billiard" on the function: you draw a line between P and Q, it hits -R and then you flip the point on the x-axis. You do this many many times in a row and, lo and behold, given only a final point S there's no way to go back to P and Q (at least with the hardware we have today).

Two important properties make this possible:

  1. Points are mirrored on the x-axis
  2. Any line can intercept the function's graph at exactly 3 points*

As different point sets lead to different lines, hence different "bounced" points on the function's graph, there is no way to create more than one private key for a public key.** For a deeper understanding of the concept, I'd strongly recommend reading this article.

* Perpendicular lines on the x-axis intercept the function's graph at two points, but there is an extra point O, ubiquitously called "the point at infinity"

** Note that this is an area of research though, and collisions are being discovered all the time, as mathematical research continues indefinitely.

Paul Razvan Berg
  • 17,902
  • 6
  • 73
  • 143
2

The short answer is no, once the private key is created it always be the same. If you accidentally shared your private key somewhere you should create another account and transfer any value to the new account created (fast as possible)

Eduardo Pereira
  • 272
  • 1
  • 6