<p>there is a client secret key on the jade, and the client secret + the PIN are used in the key exchange. if the key exchange authentication phase fails too many times (wrong PIN) then the server secret is wiped (and the client secret on the jade).  so the protocol provides blind oracle server-enforced wiping of the seed.</p>
<p>you can not test if the PIN is correct except via engaging in this client-server protocol with the oracle server.</p>
<p>on successful completion of the DH exchange, the resulting decryption key is used to decrypt encrypted seed stored on the jade.</p>

CC BY-SA 4.0
2024-10-12T14:29:23.793Z
2024-10-12T14:29:23.793Z
Adam Back
<p>I think I understand the purpose of a blind oracle: to not have our encryption key stored in Jade so that an attacker can't perform a physical key extraction by manipulating the hardware.</p>
<p>The oracle serves as a form of &quot;secure element&quot; and helps keep Jade fully open-source by being in an external server.</p>
<p>We can get the secret key to unlock the wallet using an Elliptic Curve Diffie-Hellman (ECDH) key exchange, which is only available after we set the PIN correctly.</p>
<p>However, I don't understand how is the PIN itself secured.</p>
<p><strong>Question:</strong>
Wouldn't the PIN be subject to the type of key extraction the oracle is supposed to protect us from, since it is not stored in a secure element?</p>
<p>If yes, sounds like getting the PIN would be just an additional step, but once the attacker has it, he is capable of obtaining the secret key by performing the ECDH himself, which doesn't sound much safer.</p>
<p>Can someone explain to me what I'm getting wrong here?</p>
<p>Thanks!</p>

<wallet><wallet-security><blockstream><jade>
How is Blockstream Jade's PIN secure?
Caio Costa
# How is Blockstream Jade's PIN secure?

(Asked by: username_0 on 2024-10-11)

I think I understand the purpose of a blind oracle: to not have our encryption key stored in Jade so that an attacker can't perform a physical key extraction by manipulating the hardware.

The oracle serves as a form of "secure element" and helps keep Jade fully open-source by being in an external server.

We can get the secret key to unlock the wallet using an Elliptic Curve Diffie-Hellman (ECDH) key exchange, which is only available after we set the PIN correctly.

However, I don't understand how is the PIN itself secured.

**Question:**
Wouldn't the PIN be subject to the type of key extraction the oracle is supposed to protect us from, since it is not stored in a secure element?

If yes, sounds like getting the PIN would be just an additional step, but once the attacker has it, he is capable of obtaining the secret key by performing the ECDH himself, which doesn't sound much safer.

Can someone explain to me what I'm getting wrong here?

Thanks!

**Tags:** wallet, wallet-security, blockstream, jade


---

## 1 answers

### Answer by username_1 on 2024-10-12. Score: 5 | Accepted answer

there is a client secret key on the jade, and the client secret + the PIN are used in the key exchange. if the key exchange authentication phase fails too many times (wrong PIN) then the server secret is wiped (and the client secret on the jade). so the protocol provides blind oracle server-enforced wiping of the seed.

you can not test if the PIN is correct except via engaging in this client-server protocol with the oracle server.

on successful completion of the DH exchange, the resulting decryption key is used to decrypt encrypted seed stored on the jade.


---

