Derive new public keys from a public key? This article says you can generate new public keys from an already generated public key. How is this possible? 

https://bitcoinmagazine.com/articles/deterministic-wallets-advantages-flaw-1385450276

I thought you could only generate new public keys from private keys. What is the mathematical property that guarantees this? Is there a kind of associativity, or better say, an homomorphism between the set of private keys and public keys? Because the article says that you can either sum before or after the public key is generated.
Is there a kind of homomorphism between the set of private keys and public keys?


Yes. You can think of f: G -&gt; H being the function that derives a public key (i.e. something from the set of H) from a private key (something from the set of G).

More to the point, f(a + b modulo n) = f(a) # f(b)

(I'm using the # symbol above to mean 'secp256k1 elliptic curve point addition')


  Because the article says that you can either sum before or after the public key is generated.


That's accurate.