Page MenuHomePhabricator
Feed Advanced Search

Feb 2 2019

markblundeberg updated the diff for D2455: Enable Schnorr signature verification in CHECK(DATA)SIG(VERIFY).

rewrote tests; removed trick for generating valid 64-byte ecdsa

Feb 2 2019, 02:48
markblundeberg added a comment to D2455: Enable Schnorr signature verification in CHECK(DATA)SIG(VERIFY).

OK, thanks for the in depth ideas on how to organize this.

Feb 2 2019, 01:29
markblundeberg abandoned D2467: add tests throwing Schnorr signatures at opcodes when they are disallowed.
Feb 2 2019, 00:25
markblundeberg added a comment to D2455: Enable Schnorr signature verification in CHECK(DATA)SIG(VERIFY).

Possibly the whole business about generating valid 64 byte ECDSA sigs can be taken out...

Feb 2 2019, 00:17
markblundeberg updated the diff for D2455: Enable Schnorr signature verification in CHECK(DATA)SIG(VERIFY).

Note that when the old tests were applied, 7 of them failed due to the change in specification to ban 64+1-byte ECDSA sigs in CHECKMULTISIG. They were updated accordingly.

Feb 2 2019, 00:16

Feb 1 2019

markblundeberg updated the diff for D2469: Add SCRIPT_ENABLE_SCHNORR support to sigencoding.

rebase; add comments; use new lcg.h test module

Feb 1 2019, 23:18
Herald added a reviewer for D2481: radix_tests : use lcg.h module: deadalnix.
Feb 1 2019, 23:10
markblundeberg updated the diff for D2475: sigencoding_tests : use pseudorandom generator for flag patterns.

rm comment

Feb 1 2019, 22:57
markblundeberg added inline comments to D2475: sigencoding_tests : use pseudorandom generator for flag patterns.
Feb 1 2019, 22:55
markblundeberg updated the diff for D2475: sigencoding_tests : use pseudorandom generator for flag patterns.

rebased

Feb 1 2019, 22:40
markblundeberg updated the diff for D2480: tests: add LCG pseudorandom module.

changed name; misc comments from amaury

Feb 1 2019, 22:36
markblundeberg updated the diff for D2480: tests: add LCG pseudorandom module.

changed to return 32bit; expand attribution & explanation; more tests

Feb 1 2019, 22:22
markblundeberg updated the diff for D2475: sigencoding_tests : use pseudorandom generator for flag patterns.

updated to use D2480

Feb 1 2019, 20:25
markblundeberg added a comment to D2477: Refactor signature encoding checks.

ok!

Feb 1 2019, 19:05
Herald added a reviewer for D2480: tests: add LCG pseudorandom module: deadalnix.
Feb 1 2019, 18:29
markblundeberg updated the diff for D2475: sigencoding_tests : use pseudorandom generator for flag patterns.

ensure flags=00000...000 is done at start; rewrap LCG as class & separate test

Feb 1 2019, 17:37
markblundeberg added inline comments to D2475: sigencoding_tests : use pseudorandom generator for flag patterns.
Feb 1 2019, 17:09
markblundeberg updated the summary of D2469: Add SCRIPT_ENABLE_SCHNORR support to sigencoding.
Feb 1 2019, 16:53
markblundeberg updated the test plan for D2469: Add SCRIPT_ENABLE_SCHNORR support to sigencoding.
Feb 1 2019, 16:50
markblundeberg updated the diff for D2469: Add SCRIPT_ENABLE_SCHNORR support to sigencoding.

rebased on top of D2477 and D2475 ; finished changes to sigencoding; added sigencoding_tests.

Feb 1 2019, 16:48
markblundeberg added inline comments to D2477: Refactor signature encoding checks.
Feb 1 2019, 16:22
markblundeberg added a task to D2475: sigencoding_tests : use pseudorandom generator for flag patterns: T527: Add Schnorr support to OP_CHECKSIG and OP_CHECKDATASIG.
Feb 1 2019, 15:57
markblundeberg added a revision to T527: Add Schnorr support to OP_CHECKSIG and OP_CHECKDATASIG: D2475: sigencoding_tests : use pseudorandom generator for flag patterns.
Feb 1 2019, 15:57
markblundeberg added a task to D2477: Refactor signature encoding checks: T527: Add Schnorr support to OP_CHECKSIG and OP_CHECKDATASIG.
Feb 1 2019, 15:56
markblundeberg added a revision to T527: Add Schnorr support to OP_CHECKSIG and OP_CHECKDATASIG: D2477: Refactor signature encoding checks.
Feb 1 2019, 15:56
markblundeberg added inline comments to D2477: Refactor signature encoding checks.
Feb 1 2019, 15:44
markblundeberg accepted D2477: Refactor signature encoding checks.

OK looks good, I added a couple of comments showing how this will have to integrate with the schnorr flag

Feb 1 2019, 15:26
markblundeberg added a comment to D2477: Refactor signature encoding checks.

@markblundeberg Have a look at D2478. Does it make more sense with that one added after?

I split the refactor into two, this one to pave the way for banning 64-byte ECDSA signatures, and D2478 to make it easy to add Schnorr.

My idea is to add the code to restrict 64-byte signature inside CheckRawECDSASignatureEncoding, and add the code allowing 64-byte signatures (with no DER checks) in CheckRawSignatureEncoding

Maybe it would be less confusing if I combine the diffs into one.

Feb 1 2019, 15:00
markblundeberg added inline comments to D2469: Add SCRIPT_ENABLE_SCHNORR support to sigencoding.
Feb 1 2019, 13:46
markblundeberg added a comment to D2477: Refactor signature encoding checks.

(CheckTransactionECDSASignatureEncoding could also be called CheckTransactionSignatureEncodingButNo65ByteSignaturesAllowedIfSchnorrEnabled, at least that is the function that CHECKMULTISIG must call per specification.)

Feb 1 2019, 13:41
markblundeberg requested changes to D2477: Refactor signature encoding checks.
Feb 1 2019, 13:39
markblundeberg added a comment to D2475: sigencoding_tests : use pseudorandom generator for flag patterns.

Does this hit enough flag combinations? See comments in the code..

Feb 1 2019, 04:01
Herald added a reviewer for D2475: sigencoding_tests : use pseudorandom generator for flag patterns: deadalnix.
Feb 1 2019, 03:54
markblundeberg updated the summary of D2469: Add SCRIPT_ENABLE_SCHNORR support to sigencoding.
Feb 1 2019, 02:28
markblundeberg planned changes to D2467: add tests throwing Schnorr signatures at opcodes when they are disallowed.
Feb 1 2019, 02:16
markblundeberg added a task to D2467: add tests throwing Schnorr signatures at opcodes when they are disallowed: T527: Add Schnorr support to OP_CHECKSIG and OP_CHECKDATASIG.
Feb 1 2019, 00:29
markblundeberg added a revision to T527: Add Schnorr support to OP_CHECKSIG and OP_CHECKDATASIG: D2467: add tests throwing Schnorr signatures at opcodes when they are disallowed.
Feb 1 2019, 00:29
markblundeberg added a task to D2469: Add SCRIPT_ENABLE_SCHNORR support to sigencoding: T527: Add Schnorr support to OP_CHECKSIG and OP_CHECKDATASIG.
Feb 1 2019, 00:28
markblundeberg added a revision to T527: Add Schnorr support to OP_CHECKSIG and OP_CHECKDATASIG: D2469: Add SCRIPT_ENABLE_SCHNORR support to sigencoding.
Feb 1 2019, 00:28

Jan 31 2019

markblundeberg updated the test plan for D2469: Add SCRIPT_ENABLE_SCHNORR support to sigencoding.
Jan 31 2019, 22:19
markblundeberg retitled D2469: Add SCRIPT_ENABLE_SCHNORR support to sigencoding from ban 64-byte signatures in CHECKMULTISIG when SCRIPT_ENABLE_SCHNORR to ban 64+1 byte signatures in CHECKMULTISIG when SCRIPT_ENABLE_SCHNORR.
Jan 31 2019, 21:58
Herald added a reviewer for D2469: Add SCRIPT_ENABLE_SCHNORR support to sigencoding: deadalnix.
Jan 31 2019, 21:56
markblundeberg added a comment to D2468: Add SCRIPT_ALLOW_SEGWIT_RECOVERY.

Beautifully simple way to do an exception, which is reflected in the shortness of the Diff.

Jan 31 2019, 21:07
Herald added a reviewer for D2467: add tests throwing Schnorr signatures at opcodes when they are disallowed: deadalnix.
Jan 31 2019, 20:53
markblundeberg added a task to D2466: duplicate API CheckTransactionSignatureEncoding -> CheckTransactionECDSASignatureEncoding: T527: Add Schnorr support to OP_CHECKSIG and OP_CHECKDATASIG.
Jan 31 2019, 20:18
markblundeberg added a revision to T527: Add Schnorr support to OP_CHECKSIG and OP_CHECKDATASIG: D2466: duplicate API CheckTransactionSignatureEncoding -> CheckTransactionECDSASignatureEncoding.
Jan 31 2019, 20:18
Herald added a reviewer for D2466: duplicate API CheckTransactionSignatureEncoding -> CheckTransactionECDSASignatureEncoding: deadalnix.
Jan 31 2019, 20:15
markblundeberg added inline comments to D2455: Enable Schnorr signature verification in CHECK(DATA)SIG(VERIFY).
Jan 31 2019, 18:46
markblundeberg added a comment to D2348: Add CKey::SignSchnorr and CPubKey::VerifySchnorr.

Note: this python code reproduces the first Schnorr deterministic signature

#!/usr/bin/env python3
# Reproduce Bitcoin ABC's deterministic Schnorr signature near end of key_tests.cpp
Jan 31 2019, 18:26
markblundeberg added inline comments to D2455: Enable Schnorr signature verification in CHECK(DATA)SIG(VERIFY).
Jan 31 2019, 15:41
markblundeberg updated the diff for D2455: Enable Schnorr signature verification in CHECK(DATA)SIG(VERIFY).

rebase

Jan 31 2019, 15:39
markblundeberg updated the diff for D2348: Add CKey::SignSchnorr and CPubKey::VerifySchnorr.
  • remove pubkey generation from SignSchnorr()
  • switch from data() to begin() in key_tests
Jan 31 2019, 15:03
markblundeberg retitled D2455: Enable Schnorr signature verification in CHECK(DATA)SIG(VERIFY) from WIP - add Schnorr support to opcodes to add Schnorr support to opcodes.
Jan 31 2019, 14:49
markblundeberg updated the test plan for D2455: Enable Schnorr signature verification in CHECK(DATA)SIG(VERIFY).
Jan 31 2019, 05:49
markblundeberg updated the diff for D2455: Enable Schnorr signature verification in CHECK(DATA)SIG(VERIFY).

add tests using VALID 64-byte ECDSA signatures

Jan 31 2019, 05:43
markblundeberg added inline comments to D2455: Enable Schnorr signature verification in CHECK(DATA)SIG(VERIFY).
Jan 31 2019, 03:31
markblundeberg updated the diff for D2455: Enable Schnorr signature verification in CHECK(DATA)SIG(VERIFY).

restrict usage of msigflags to the signature-checking loop

Jan 31 2019, 03:24
markblundeberg updated the test plan for D2455: Enable Schnorr signature verification in CHECK(DATA)SIG(VERIFY).
Jan 31 2019, 02:56
markblundeberg updated the test plan for D2455: Enable Schnorr signature verification in CHECK(DATA)SIG(VERIFY).
Jan 31 2019, 02:52
markblundeberg updated the diff for D2455: Enable Schnorr signature verification in CHECK(DATA)SIG(VERIFY).

add a buttload of tests

Jan 31 2019, 02:51
markblundeberg accepted D2169: [secp256k1] Implement Schnorr signatures.

Went over this in fine detail all over again. Still good. 👍

Jan 31 2019, 01:21
markblundeberg updated the test plan for D2455: Enable Schnorr signature verification in CHECK(DATA)SIG(VERIFY).
Jan 31 2019, 00:46
markblundeberg added a comment to D2348: Add CKey::SignSchnorr and CPubKey::VerifySchnorr.

OK so I was an idiot and begin is the way to go with std::copy. Most of the code use memcpy so I was confused. Either way it's fine as std::copy knows about pointers.

Jan 31 2019, 00:34

Jan 30 2019

markblundeberg added a comment to D2455: Enable Schnorr signature verification in CHECK(DATA)SIG(VERIFY).

This needs WAY more tests.

Jan 30 2019, 23:57
markblundeberg added inline comments to D2455: Enable Schnorr signature verification in CHECK(DATA)SIG(VERIFY).
Jan 30 2019, 23:55
markblundeberg added a task to D2455: Enable Schnorr signature verification in CHECK(DATA)SIG(VERIFY): T527: Add Schnorr support to OP_CHECKSIG and OP_CHECKDATASIG.
Jan 30 2019, 21:57
markblundeberg added a revision to T527: Add Schnorr support to OP_CHECKSIG and OP_CHECKDATASIG: D2455: Enable Schnorr signature verification in CHECK(DATA)SIG(VERIFY).
Jan 30 2019, 21:56
markblundeberg added a comment to D2455: Enable Schnorr signature verification in CHECK(DATA)SIG(VERIFY).

This is a full implementation of the required changes in the main code, but with tests missing.

Jan 30 2019, 21:56
markblundeberg updated the summary of D2455: Enable Schnorr signature verification in CHECK(DATA)SIG(VERIFY).
Jan 30 2019, 21:55
Herald added a reviewer for D2455: Enable Schnorr signature verification in CHECK(DATA)SIG(VERIFY): deadalnix.
Jan 30 2019, 21:54
markblundeberg updated the diff for D2348: Add CKey::SignSchnorr and CPubKey::VerifySchnorr.

rebased

Jan 30 2019, 20:12
markblundeberg added a comment to D2430: add SCRIPT_ENABLE_SCHNORR flag.

Regarding the warning: https://github.com/bitcoin/bitcoin/issues/10030 Looks like Core didn't care about the issue much either.

Jan 30 2019, 03:18

Jan 29 2019

markblundeberg added a comment to D2430: add SCRIPT_ENABLE_SCHNORR flag.
In D2430#55413, @Fabien wrote:

@markblundeberg Did you activate the undefined sanitizer (ubsan) ? This would explain your warning, this is a tool limitation.

Jan 29 2019, 20:31
markblundeberg added a comment to D2430: add SCRIPT_ENABLE_SCHNORR flag.

I am now getting a warning when compiling script_tests.cpp, I guess because that script builder is too long:

Jan 29 2019, 03:02
markblundeberg updated the diff for D2430: add SCRIPT_ENABLE_SCHNORR flag.

oops, forgot to include a commit

Jan 29 2019, 03:01
markblundeberg added a comment to D2430: add SCRIPT_ENABLE_SCHNORR flag.
Jan 29 2019, 02:57
markblundeberg added a task to D2430: add SCRIPT_ENABLE_SCHNORR flag: T527: Add Schnorr support to OP_CHECKSIG and OP_CHECKDATASIG.
Jan 29 2019, 02:57
markblundeberg added a revision to T527: Add Schnorr support to OP_CHECKSIG and OP_CHECKDATASIG: D2430: add SCRIPT_ENABLE_SCHNORR flag.
Jan 29 2019, 02:57
Herald added a reviewer for D2430: add SCRIPT_ENABLE_SCHNORR flag: deadalnix.
Jan 29 2019, 02:56
markblundeberg abandoned D2377: add Schnorr support to VerifySignature via flag SCRIPT_ENABLE_SCHNORR.

being replaced ...

Jan 29 2019, 01:06
markblundeberg updated the diff for D2348: Add CKey::SignSchnorr and CPubKey::VerifySchnorr.

rebased

Jan 29 2019, 01:00
markblundeberg updated the diff for D2373: add flags to VerifySignature and sigcache.

reordered hashing: fixed size args first, then pubkey, then signature

Jan 29 2019, 00:05

Jan 28 2019

markblundeberg abandoned D2372: sighashtype: clarify subtle logic of isDefined().
Jan 28 2019, 23:54
markblundeberg updated the diff for D2373: add flags to VerifySignature and sigcache.

rename test flagsets; remove unnamed flags from TEST_VARIANT_FLAGS

Jan 28 2019, 23:31
markblundeberg added inline comments to D2373: add flags to VerifySignature and sigcache.
Jan 28 2019, 21:02

Jan 27 2019

markblundeberg added inline comments to D2373: add flags to VerifySignature and sigcache.
Jan 27 2019, 01:58

Jan 26 2019

markblundeberg added a comment to D2419: Bump version number to 0.18.8.

Shouldn't we go straight to 0.19.0?

Jan 26 2019, 19:07
markblundeberg added a comment to D2322: remove minimum total fee option.

@Fabien @Mengerian you need to have coin control settings enabled to see the radio, and it becomes selectable once you select some coins to spend --

Screenshot from 2019-01-25 22-04-58.png (618×1 px, 166 KB)

Jan 26 2019, 06:07
markblundeberg accepted D2172: [policy] Delete block policy estimator..

Great idea, code changes look good.

Jan 26 2019, 05:57
markblundeberg updated the diff for D2373: add flags to VerifySignature and sigcache.

remove comment from code per earlier discussion

Jan 26 2019, 05:41
markblundeberg updated the test plan for D2373: add flags to VerifySignature and sigcache.
Jan 26 2019, 05:24
markblundeberg updated the diff for D2373: add flags to VerifySignature and sigcache.

rebased on new sigcache testing code (D2409) and added testset

Jan 26 2019, 05:22
markblundeberg requested review of D2372: sighashtype: clarify subtle logic of isDefined().

@jasonbcox if you think these comments are a bad idea I can abandon this diff, no worries. I don't want to refactor the code in any way though ... even though it's apparently trivial, this is too scary for me given the history of this particular function. :-D

Jan 26 2019, 02:29
markblundeberg added a comment to D2409: add sigcache tests.

@deadalnix If you have any more changes to request please commandeer the revision and go right ahead and make the changes you have in mind. I would like to be working on building actual tests for Schnorr security rather than this.

Jan 26 2019, 00:56
markblundeberg updated the diff for D2409: add sigcache tests.

add more descriptive name and move around initialization in test

Jan 26 2019, 00:51

Jan 24 2019

markblundeberg added a comment to D2409: add sigcache tests.

I'm curious, how efficient are abstractions like this in terms of compilation optimization? Should this end up creating the same assembly for VerifySignature(). ?

Jan 24 2019, 16:30
markblundeberg updated the diff for D2409: add sigcache tests.

refactored per @deadalnix comment (adjusted to work)

Jan 24 2019, 16:28
markblundeberg updated the diff for D2409: add sigcache tests.

renamed things; added a few more tests

Jan 24 2019, 15:41
markblundeberg added inline comments to D2409: add sigcache tests.
Jan 24 2019, 15:28
markblundeberg added a task to D2409: add sigcache tests: T527: Add Schnorr support to OP_CHECKSIG and OP_CHECKDATASIG.
Jan 24 2019, 14:43