Re: [Bitcoin-development] BIP0032

2013-05-27 Thread Tamas Blummer
A JSON-ed version of the test vectors is here: https://github.com/bitsofproof/supernode/blob/master/api/src/test/resources/BIP32.json The Bits of Proof code matching with them is at: https://github.com/bitsofproof/supernode/blob/master/api/src/main/java/com/bitsofproof/supernode/api/ExtendedKey.j

Re: [Bitcoin-development] BIP0032

2013-05-27 Thread Pieter Wuille
On Mon, May 27, 2013 at 03:10:04PM +0200, Michael Gronager wrote: > Commenting on my own mail... > > Rereading the BIP, it occurs to me that the private derivation is > actually intentional. So: > (m/i/j/k)*G = (M/i/j/k), but (m/i'/j/k)*G <> (M/i/j/k) (M/i'/j/k => ERROR) > > But: ((m/i')*G)/j/k =

Re: [Bitcoin-development] BIP0032

2013-05-27 Thread Amir Taaki
Yeah, I tried implementing it based on the document there and the code that is available in sipa's repo on GitHub but it's not enough. I'm waiting until there is an implementation of this concept before moving on it. From: Michael Gronager To: bitcoin-develop

Re: [Bitcoin-development] BIP0032

2013-05-27 Thread Michael Gronager
Which again means that the statement regarding Audits through the Master Public key, M, is wrong - only incoming and outgoing transaction of _publicly_ derived wallets will be part of the audit... Privately derived wallets cannot be obtained, though you could, without loss of security, share also t

Re: [Bitcoin-development] BIP0032

2013-05-27 Thread Michael Gronager
Commenting on my own mail... Rereading the BIP, it occurs to me that the private derivation is actually intentional. So: (m/i/j/k)*G = (M/i/j/k), but (m/i'/j/k)*G <> (M/i/j/k) (M/i'/j/k => ERROR) But: ((m/i')*G)/j/k = (m/i'/j/k)*G So, the motivation for the private derivation is to avoid the kno

[Bitcoin-development] BIP0032

2013-05-27 Thread Michael Gronager
Pieter, I was re-reading BIP0032, and checking some of the equations... It seems to me that there is something wrong (or I have missed something). As I see it there can only be one HMAC function, used for both private and public derivation - I assume that: [1] CKD((k_par, c_par), i) -> (k_i, c_i