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
er To: bitcoin-development@lists.sourceforge.net Sent: Monday, May 27, 2013 2:39 PM Subject: Re: [Bitcoin-development] BIP0032 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

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