<p>Either accidentally or intentionally, the Bitcoin Core chainstate database (which is a LevelDB database directory containing the UTXO set at the current tip) used to occasionally trigger anti-virus software. It would recognize certain byte patterns in it, and automatically quarantine and scan the file, resulting in database corruptions.</p>

<p>This was resolved by making the software use an obfuscation scheme for the non-hashed data in it. The scheme is very simple - a randomly chosen (per database) 64-bit value that gets XORed into all values in the database. This is fast, simple, and so far, effective.</p>

CC BY-SA 3.0
2017-01-21T00:42:57.400Z
2017-01-21T00:42:57.400Z
Pieter Wuille
<p>This message appears in my <code>debug.log</code>:</p>

<pre><code>2017-01-21 00:16:42 Opened LevelDB successfully
2017-01-21 00:16:42 Using obfuscation key for /home/&lt;username&gt;/.bitcoin/blocks/index: 0000000000000000
</code></pre>

<p>As does this:</p>

<pre><code>2017-01-21 00:16:42 Opened LevelDB successfully
2017-01-21 00:16:42 Using obfuscation key for /home/&lt;username&gt;/.bitcoin/chainstate: &lt;removed&gt;
</code></pre>

<p>What is an obfuscation key used for?</p>

CC BY-SA 3.0
2017-01-21T01:06:16.280Z
See also https://github.com/bitcoin/bitcoin/issues/6613
Nick ODell
<bitcoin-core>
What is an obfuscation key?
Nick ODell
# What is an obfuscation key?

(Asked by: username_0 on 2017-01-21)

This message appears in my debug.log:
2017-01-21 00:16:42 Opened LevelDB successfully
2017-01-21 00:16:42 Using obfuscation key for /home//.bitcoin/blocks/index: 0000000000000000

As does this:
2017-01-21 00:16:42 Opened LevelDB successfully
2017-01-21 00:16:42 Using obfuscation key for /home//.bitcoin/chainstate: 

What is an obfuscation key used for?

**Tags:** bitcoin-core

> **Comments:**
> **username_0**: See also https://github.com/bitcoin/bitcoin/issues/6613  

---

## 1 answers

### Answer by username_1 on 2017-01-21. Score: 12 | Accepted answer

Either accidentally or intentionally, the Bitcoin Core chainstate database (which is a LevelDB database directory containing the UTXO set at the current tip) used to occasionally trigger anti-virus software. It would recognize certain byte patterns in it, and automatically quarantine and scan the file, resulting in database corruptions.

This was resolved by making the software use an obfuscation scheme for the non-hashed data in it. The scheme is very simple - a randomly chosen (per database) 64-bit value that gets XORed into all values in the database. This is fast, simple, and so far, effective.


---

