From c9ce6480d427ed58effd69437f596a0c85885b48 Mon Sep 17 00:00:00 2001 From: undeath Date: Sat, 3 Nov 2018 21:38:30 +0100 Subject: [PATCH] add wallet changes info to release notes --- docs/release-notes/release-notes-0.4.0.md | 29 ++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/docs/release-notes/release-notes-0.4.0.md b/docs/release-notes/release-notes-0.4.0.md index 2ed81cc..a61e206 100644 --- a/docs/release-notes/release-notes-0.4.0.md +++ b/docs/release-notes/release-notes-0.4.0.md @@ -42,7 +42,34 @@ Notable changes ### Upgrade of wallet code and wallet file format -INSERT SUMMARY OF FUNCTIONAL CHANGES AND REASONING HERE +The wallet file has changed from a partially encrypted JSON format to a +fully encrypted binary format (dubbed JMDAT). This hides some metadata +previously accessable to anyone having access to the file itself, like +the number and mixdepths of imported keys, how heavily a wallet has been +used, or if it is a testnet or mainnet wallet. + +Additionally the password hashing algorithm has been upgraded from a +weak double-iterated SHA-256 hash to Argon2, an algorithm specifically +developed for hashing passwords. This change makes it much more costly +to attack a wallet file with an unknown password. + +The encryption algorithm itself remains unchanged. It is still +AES-256-CBC. + +Under the hood, the code for storing data on disk has been separated +from the code working on the data. This abstraction reduces the code +complexity and allows easier code review/verification. + +Other than that, the wallet code has been completely rewitten, with the +intention of making it more robust, well-structured and universal. With +the new code it will be much easier to abstract the joinmarket codebase +away from specific bitcoin address versions (adding segwit support +required a vast amount of code changes all over the place, in some cases +causing problems with keeping it compatible with the previously used +P2PKH addresses) and possibly even from bitcoin itself (however, there +are no plans to support any other cryptocurrencies than bitcoin). This +will especially be relevant when eventually adding support for native +segwit coinjoins (bech32 addresses) in the future. a0c1d5a add upgrade notes