<p>Per the creator of BIP47 (Justus Ranvier), it's RFC2014 notation:</p>
<p><a href="https://en.wikipedia.org/wiki/Hash-based_message_authentication_code#Definition_.28from_RFC_2104.29" rel="nofollow noreferrer">https://en.wikipedia.org/wiki/Hash-based_message_authentication_code#Definition_.28from_RFC_2104.29</a></p>
<p><a href="https://www.rfc-editor.org/rfc/rfc2104" rel="nofollow noreferrer">https://www.rfc-editor.org/rfc/rfc2104</a></p>

CC BY-SA 3.0
2016-01-06T23:59:30.363Z
2016-01-06T23:59:30.363Z
2021-10-07T07:34:52.683Z
Jimmy Song
<p><a href="https://github.com/bitcoin/bips/blob/master/bip-0047.mediawiki" rel="nofollow">BIP47</a> is a new secret-sharing protocol which succeeds <a href="https://github.com/bitcoin/bips/blob/master/bip-0064.mediawiki" rel="nofollow">BIP64</a> (stealth addresses).</p>

<p>The <a href="https://gist.github.com/SamouraiDev/6aad669604c5930864bd" rel="nofollow">test vectors are here</a>.</p>

<p>I am stuck on part <code>2.iv</code>. We multiply <code>S0 = B0 * a0</code> (<code>024ce8e3b04ea205ff49f529950616c3db615b1e37753858cc60c1ce64d17e2ad8 *  8d6a8ecd8ee5e0042ad0cb56e3a971c760b5145c3917a8e7beaf0ed92d7a520c = 03f5bb84706ee366052471e6139e6a9a969d586e5fe6471a9b96c3d8caefe86fef</code>).</p>

<p>From that we are looking for:</p>

<pre><code>s = HMAC-SHA512(x, o)
"x" is the x value of the secret point
"o" is the outpoint being spent by the first pubkey-exposing input of the transaction.
</code></pre>

<p>What does <code>HMAC-SHA512(x, o)</code> mean, first of all? What is <code>o</code> specifically? And how does this factor in with the test vector values?</p>

CC BY-SA 3.0
2015-12-17T12:50:03.087Z
I've just had a thought: is it as simple as being the notation for `HMAC-SHA512(passphrase, salt)`?
Wizard Of Ozzie
<stealth-address><bip47>
Testing BIP47 test vectors
Wizard Of Ozzie
# Testing BIP47 test vectors

(Asked by: username_0 on 2015-12-17)

[BIP47](https://github.com/bitcoin/bips/blob/master/bip-0047.mediawiki) is a new secret-sharing protocol which succeeds [BIP64](https://github.com/bitcoin/bips/blob/master/bip-0064.mediawiki) (stealth addresses).

The [test vectors are here](https://gist.github.com/SamouraiDev/6aad669604c5930864bd).

I am stuck on part `2.iv`. We multiply `S0 = B0 * a0` (`024ce8e3b04ea205ff49f529950616c3db615b1e37753858cc60c1ce64d17e2ad8 * 8d6a8ecd8ee5e0042ad0cb56e3a971c760b5145c3917a8e7beaf0ed92d7a520c = 03f5bb84706ee366052471e6139e6a9a969d586e5fe6471a9b96c3d8caefe86fef`).

From that we are looking for:

```
s = HMAC-SHA512(x, o)
"x" is the x value of the secret point
"o" is the outpoint being spent by the first pubkey-exposing input of the transaction.

```

What does `HMAC-SHA512(x, o)` mean, first of all? What is `o` specifically? And how does this factor in with the test vector values?

**Tags:** stealth-address, bip47

> **Comments:**
> **username_0**: I've just had a thought: is it as simple as being the notation for `HMAC-SHA512(passphrase, salt)`?  

---

## 1 answers

### Answer by username_1 on 2016-01-06. Score: 1 | Accepted answer

Per the creator of BIP47 (Justus Ranvier), it's RFC2014 notation:

<https://en.wikipedia.org/wiki/Hash-based_message_authentication_code#Definition_.28from_RFC_2104.29>

<https://www.rfc-editor.org/rfc/rfc2104>


---

