user86271: I am a newbie and start exploring from the 'Mastering Bitcoin' book. The figure below to me is a little inaccurate, I think the arrow from HMAC-SHA256 should point right to the child public key. Am I right??


user60443: 
I think the arrow from HMAC-SHA256 should point right to the child
  public key. Am I right??

No, there are 3 derivation functions defined in BIP32 - Hierarchical Deterministic Wallets


Private parent key → private child key
Public parent key → public child key
Private parent key → public child key


The diagram above illustrates 
1. Private parent key → private child key
Perhaps you're confusing this for 2. Public parent key → public child key. Another potential confusion is that this is not for a hardened child key but a normal child key, which uses the parent public key point(kpar), combined with the parent chain code cpar and the index i. These are combined and hashed to I as follows:
I = HMAC-SHA512(Key = cpar, Data = serP(point(kpar)) || ser32(i))
I is split as shown in the diagram, where the left 256 bits IL are combined with the parent private key kpar to produce the child private key ki:
ki = parse256(IL) + kpar (mod n)
IR is the new child's chain code at that index i, and the child public key is then calculated like normal using elliptic curve secp256k1 from the child private key itself.

86271: <p>I am a newbie and start exploring from the 'Mastering Bitcoin' book. The figure below to me is a little inaccurate, I think the arrow from HMAC-SHA256 should point right to the child public key. Am I right??
<a href="https://i.stack.imgur.com/pfJPI.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/pfJPI.png" alt="enter image description here"></a></p>
 60443: <blockquote>
  <p>I think the arrow from HMAC-SHA256 should point right to the child
  public key. Am I right??</p>
</blockquote>

<p>No, there are 3 derivation functions defined in <a href="https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#Public_parent_key_rarr_public_child_key" rel="nofollow noreferrer">BIP32 - Hierarchical Deterministic Wallets</a></p>

<blockquote>
  <ol>
  <li>Private parent key → private child key</li>
  <li>Public parent key → public child key</li>
  <li>Private parent key → public child key</li>
  </ol>
</blockquote>

<p>The diagram above illustrates </p>

<p><code>1. Private parent key → private child key</code></p>

<p>Perhaps you're confusing this for <code>2. Public parent key → public child key</code>. Another potential confusion is that this is not for a <em>hardened child key</em> but a <strong><em>normal child key</em></strong>, which uses the parent <strong><em>public</em></strong> key <code>point(kpar)</code>, combined with the parent chain code <code>cpar</code> and the index <code>i</code>. These are combined and hashed to <code>I</code> as follows:</p>

<p><code>I = HMAC-SHA512(Key = cpar, Data = serP(point(kpar)) || ser32(i))</code></p>

<p><code>I</code> is split as shown in the diagram, where the left 256 bits <code>IL</code> are combined with the parent private key <code>kpar</code> to produce the child private key <code>ki</code>:</p>

<p><code>ki = parse256(IL) + kpar (mod n)</code></p>

<p><code>IR</code> is the new child's chain code at that index <code>i</code>, and the child public key is then calculated like normal using <a href="https://en.bitcoin.it/wiki/Secp256k1" rel="nofollow noreferrer">elliptic curve <code>secp256k1</code></a> from the child private key itself.</p>
