<oembed><type>rich</type><version>1.0</version><author_name>npub1f2nvlx49er5c7sqa43src6ssyp6snd4qwvtkwm5avc2l84cs84esecrwet</author_name><author_url>https://nostr.ae/npub1f2nvlx49er5c7sqa43src6ssyp6snd4qwvtkwm5avc2l84cs84esecrwet</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2015-03-13&#xA;📝 Original message:This seems overly complicated to me, unless I&#39;m missing something.&#xA;&#xA;Instead, I think you should just give the server the master pubkey P&#xA;only without the chaincode.&#xA;&#xA;&#xA;Then when you transact you generate the address in whatever manner you&#xA;like and tell the server the scalar value iL which the user computes&#xA;as&#xA;&#xA;iL = HMAC-SHA512(Key = cpar, Data = serP(Kpar) || ser32(i))[first 32&#xA;byes],  (per BIP 32).&#xA;&#xA;and the server computes P + iL*G  and checks agreement with the address.&#xA;&#xA;It would be inaccurate to call this private, as the server still&#xA;learns this particular relation. (and really users should _not_ be&#xA;using the same chaincode with different parties... as it exacerbates&#xA;the private key leak risk), but its certainly more private than giving&#xA;people the chain code.&#xA;&#xA;The approach I suggest is also not gratuitously incompatible with&#xA;hardened derivation, which is what parties should be doing when they&#xA;don&#39;t actually need a third party to generate future addresses for&#xA;them without their cooperation (as appears to be the case here).&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;On Fri, Mar 13, 2015 at 3:48 AM, Matias Alejo Garcia &lt;matias at bitpay.com&gt; wrote:&#xA;&gt;&#xA;&gt; Hello everyone,&#xA;&gt;&#xA;&gt; We are working on bitcore-wallet-server (BWS), a HD multisig wallet&#xA;&gt; &#39;facilitator&#39;. We have a couple of questions regarding BIP32 path usage, and&#xA;&gt; we would love to have feedback from you before moving forward.&#xA;&gt;&#xA;&gt; Currently the BWS instances hold the set of extended public keys of the&#xA;&gt; wallet&#39;s peers to be able to derive  addresses.&#xA;&gt;&#xA;&gt; Since this is a problem from the privacy point of view, we thought using&#xA;&gt; pseudo-random  BIP32 paths, with a seed only known be the peers, so the&#xA;&gt; server will be able to verify that addresses  submitted by peers belong to&#xA;&gt; the wallet, but will not be able to derive future wallet addresses.&#xA;&gt;&#xA;&gt; The workflow would be something like:&#xA;&gt;&#xA;&gt; ```&#xA;&gt; Peer &gt;   getCurrentIndex&#xA;&gt;&#xA;&gt; &lt; Server [index]&#xA;&gt;&#xA;&gt; Peer:&#xA;&gt;   pathSeed = PRNG(seed, index);&#xA;&gt;&#xA;&gt; Peer &gt; createAddress(index, pathSeed);&#xA;&gt;&#xA;&gt; Server:&#xA;&gt;   derives the address and add it to the wallet.&#xA;&gt;&#xA;&gt; &lt; Server  new address&#xA;&gt;&#xA;&gt; Peer: Verifies the address and inform it the user.&#xA;&gt; ```&#xA;&gt;&#xA;&gt; This way, accessing server data won&#39;t reveal future wallet addresses. The&#xA;&gt; seed (only known by the peers) could&#xA;&gt; be derived from hashes of their xprivs, so wallet funds can still be recover&#xA;&gt; with:&#xA;&gt;   1) The complete set of xprivs&#xA;&gt;   2) The quorum of xprivs + the complete set of xpubs + the address seed.&#xA;&gt;&#xA;&gt; Thanks a lot in advance for any comment on this schema.&#xA;&gt;&#xA;&gt; matías&#xA;&gt;&#xA;&gt; --&#xA;&gt; BitPay.com&#xA;&gt;&#xA;&gt; ------------------------------------------------------------------------------&#xA;&gt; Dive into the World of Parallel Programming The Go Parallel Website,&#xA;&gt; sponsored&#xA;&gt; by Intel and developed in partnership with Slashdot Media, is your hub for&#xA;&gt; all&#xA;&gt; things parallel software development, from weekly thought leadership blogs&#xA;&gt; to&#xA;&gt; news, videos, case studies, tutorials and more. Take a look and join the&#xA;&gt; conversation now. http://goparallel.sourceforge.net/&#xA;&gt; _______________________________________________&#xA;&gt; Bitcoin-development mailing list&#xA;&gt; Bitcoin-development at lists.sourceforge.net&#xA;&gt; https://lists.sourceforge.net/lists/listinfo/bitcoin-development&#xA;&gt;</html></oembed>