6

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/<username>/.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/<username>/.bitcoin/chainstate: <removed>

What is an obfuscation key used for?

1

1 Answer 1

12

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.