Address generator for Bitcoin wallet As describe by Maxwell here in HD wallets assuming we have a key pair with private key SK.a and public key of PK.a and a seed s and a generator point G, we can generate a new key pair of (SK.b, PK.b) as follows: 

PK.b = PK.a + sG
SK.b = SK.a + s


The advantage with this method is that a service provider can generate new public keys without knowing the clients private key.
My question is that, why don't we multiply the seed and private key rather than adding them?

PK.b = PK.a * s
SK.b = SK.a * s


Is there any problem with the later method that I suggested?
A previous draft of BIP0032 did this, actually. (Sorry about linking to the bitcoin wiki - that change was made before we switched over to git for BIP tracking.)

According to the changelog, it was done for speed reasons.


  
  [30 Apr 2013] Switched from multiplication by IL to addition of IL (faster, easier implementation)
  


It's much faster when deriving a child private key from a parent private key. The new method requires only a normal addition (mod n) rather than an ECDSA point multiplication.

It's not faster when deriving a child public key from a parent public key. That still requires an ECDSA multiplication followed by an ECDSA addition. (In fact, it's about 2% slower.)

Using addition does not add any security issues. It's possible to get a parent private key from a child private key and an extended public key, but that would also be true if multiplication was used.