took me a while, but found it, what I meant is called a "type 2 deterministic wallet". see this post:
https://bt.irlbtc.com/view/19137.0 ("Deterministic Wallets")
Type-2 is a bit less obvious and understanding it requires you to know about a property of ECC keys, roughly:
A_public_key = A_private_key*point
Which means you can do:
B_public_key = A_public_key+B_secret*point
and have a new key which has a private key:
B_private_key = A_private_key+B_secret
So a type2 wallet stores:
Master_private_key
A large Random_seed S.
and keys are given by
Privatekey(type,n) = Master_private_key + H(n|S|type)
which works just like a type-1, the advantage of the type-2 is that you can separately secure the Master_private_key, but still generate new addresses with
Publickey(type,n) = Master_public_key + H(n|S|type)*point
Thanks... that would work. In case it's not obvious to someone else, this may help:
A_public_key = A_private_key*point, so B_public_key = B_private_key*point
B_private_key = A_private_key + B_secret -> B_public_key = (A_private_key + B_secret)*point
Since A_private_key*point is our A_public_key, this gives us B_public_key = A_public_key + B_secret*point
Like you quoted, as long as you have the first public key you can generate all the public keys in the sequence without providing enough information to reveal the private keys.
Thanks again for digging up that information.