ECC Signature Issue



Summary:

A developer is working on a Java implementation of Bitcoin and has modularized, unit tested the core modules of the implementation. However, the dummy client gets stuck on block 140493 at transaction hash: 70f7c15c6f62139cc41afa858894650344eda9975b46656d893ee59df8914a3d. The signature verification fails for this specific transaction for one input, which is odd since verification was successful for all preceding blocks and inputs. The official C++ client is successful here, but the bitcoinj implementation also fails to verify this transaction, which seems to point to the direction of BouncyCastle. The developer asks if anyone has hit this issue before and if someone can double-check that they are not missing something trivial. They provide the data that should be signed, the signature (with '01' at the end for SIGHASH_ALL), and the public key. This works with OpenSSL but fails with BouncyCastle version 140.


Updated on: 2023-06-05T01:52:04.651297+00:00