ECDSA signatures inside Zcash transactions now use validation using https://github.com/bitcoin/secp256k1 instead of OpenSSL.
Depending on the platform, this means a significant speedup for raw signature validation speed. The advantage is largest on x86_64, where validation is over five times faster. In practice, this translates to a raw reindexing and new block validation times that are less than half of what it was before.
Libsecp256k1 has undergone very extensive testing and validation upstream.
A side effect of this change is that libconsensus no longer depends on OpenSSL.
Boris Hajduk (1): documentatin z_validateaddress was missing param
Daira Hopwood (8): Delete old protocol version constants and simplify code that used them. fixes #2244 Remove an unneeded version workaround as per @str4d's review comment. Remove unneeded lax ECDSA signature verification. Strict DER signatures are always enforced; remove the flag and code that used it. Repair tests for strict DER signatures. While we're at it, repair a similar test for CLTV, and make the repaired RPC tests run by default. Make transaction test failures print the comments preceding the test JSON. Fix a comment that was made stale before launch by #1016 (commit 542da61). Delete test that is redundant and inapplicable to Zcash.
Jack Grigg (20):
Fix incorrect locking in CCryptoKeyStore
Use AtomicTimer for metrics screen thread count
Revert "Fix secp256k1 test compilation"
Squashed 'src/secp256k1/' changes from 22f60a6..84973d3
Fix potential overflows in ECDSA DER parsers
Rename FALLBACK_DOWNLOAD_PATH to PRIORITY_DOWNLOAD_PATH
Add test for incorrect consensus logic
Correct consensus logic in ContextualCheckInputs
Add comments
Update Debian copyright list
Specify ECDSA constant sizes as constants
Remove redundant = 0
initialisations
Ensure that ECDSA constant sizes are correctly-sized
Add test for -mempooltxinputlimit
Hold an ECCVerifyHandle in zcash-gtest
Additional testing of -mempooltxinputlimit
Fix comment
Use sendfrom for both t-addr calls
make-release.py: Versioning changes for 1.0.10.
make-release.py: Updated manpages for 1.0.10.
Kevin Pan (1): "getblocktemplate" could work without wallet
Pieter Wuille (2): Update key.cpp to new secp256k1 API Switch to libsecp256k1-based validation for ECDSA
Simon Liu (5): Fix intermediate vpub_new leakage in multi joinsplit tx (#1360) Add option 'mempooltxinputlimit' so the mempool can reject a transaction based on the number of transparent inputs. Check mempooltxinputlimit when creating a transaction to avoid local mempool rejection. Partial revert & fix for commit 9e84b5a ; code block in wrong location. Fix #b1eb4f2 so test checks sendfrom as originally intended.
Wladimir J. van der Laan (2): Use real number of cores for default -par, ignore virtual cores Remove ChainParams::DefaultMinerThreads
kozyilmaz (3): [macOS] system linker does not support “--version” option but only “-v” option to disable building libraries (zcutil/build.sh) support per platform filename and hash setting for dependencies