Bitcoin Forum
May 25, 2024, 02:40:23 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Electrum and strict DER sig checking (to big S-Value)  (Read 391 times)
pebwindkraft (OP)
Sr. Member
****
Offline Offline

Activity: 257
Merit: 343


View Profile
September 14, 2016, 09:06:01 PM
 #1

Hi team(s),

I had installed some time ago an Electrum Wallet on my OSX as online system, and also on my SuSE Linux cold storage system. Both versions use Electrum 2.6.x.
I had sent many trx to the cold storage, now I wanted to spend some. So I copied the (cold storage) master PUBLIC key to my online OSX system, created an unsigned  transaction, brought it onto a USB stick, and turned on the Linux offline storage system. I opened Electrum, and loaded the (unsigned) transaction file to the cold storage wallet. I signed the transaction, and saved it to USB stick. Brought the USB stick back to my online OSX system, and opened Electrum to send it. Electrum gave me an error, saying I am using a function that requires version 2.5.1 ( Huh, I am on 2.6.x)...
I then analyzed the signed trx with my CLI tool (see also here: https://bitcointalk.org/index.php?topic=1505958.0), just to find out I had too big S-Values in the signature. I did the check with a smaller set of inputs, just to receive same result.
I thought I had a problem with my scripts, so went to blockchain.info, and verified the trx (https://blockchain.info/de/decode-tx). Verification went well, so wanted to send it (https://blockchain.info/pushtx), just to find out, that the sysem refused to do so.

I rewrote my script a bit, to precisely show, where strict signature checking shows too big S-Values, and there you go: out of 6 inputs, only input 3 was ok, all other input sigs had a too high S-Value. The Electrum generated trx code is here (added some line breaks for better readability):

01000000065d01ca223f2308644dcf3cdcb1abbebb15c8f8f923ba6e79d398e69ca0cef2363a000 0006b
48304502204608918e8d135eecd982b822c99439a0f1c073394548ab5244aa40e596bdd29702210 0a739a436608530c27fbe7b16ee017472bfd63049570c9797620ed6fda984822101
210297b7974c37520054aa48eea16531bd12710c65ccae0b8f310215e808c9b79f93ffffffff9f4 b8c7f4ac20338c1a555ee1e22c6298b2cb7e257e72925531c96b9a0200e41010000006c
493046022100ea04b4243c51983b150c356064da3211006ee2ebec9ca2b56fd079077405ba85022 100b98e0c80f59bbbadec70f0c062c39158756602a706add18ca787ad5ce0e7ce9001
210297b7974c37520054aa48eea16531bd12710c65ccae0b8f310215e808c9b79f93ffffffff8ee 4e6f8d271d8be1f14faa3ca7de68e317a3fdee9dceecd4270f005726e6e50f10000006b
483045022100d5a2d3a11eda6685383ad9e00917e76f656c9259bfee2f86e29111e3b653431e022 072d70f44b3ebb810b1e11fc3ecf2d9ae36b688711c835c6451eac18d1e4ff38801210297b7974c37520054aa48eea16531bd12710c65ccae0b8f310215e808c9b79f93ffffffffd58 1fb833d6cc08ade1fb6ddec166736e3737f394919c3b1457d83944c5cd8b4130100006b
48304502202ae249af840dab290e0ac8f088b975b55772fdb2bc29911a3354f701326f067102210 092abf4eb8346f509c82624d8586e87ae0bcd95dcc36b4b094b0cc381d1e6b4d401
210297b7974c37520054aa48eea16531bd12710c65ccae0b8f310215e808c9b79f93ffffffff997 a0eeb12b0ee24ed45a44346bc7522ed954a428a6131bf99e86611581ca1d6010000006b
4830450220361a02ee5b56e94a925a57c125cf0d568fcc99da03d8f5457eb4a8b7793a023502210 09cea77afbe60275c288f2cec66c498c7d3b64e65e69aa1f81f4e2b640b27108d01
210297b7974c37520054aa48eea16531bd12710c65ccae0b8f310215e808c9b79f93ffffffff931 935c63a33c328ad1786b4bae296d29da8721378715def05554ff4a62181f44c0100006b
48304502203503b58673c329bdb04bfe396d946bede5fe4795ad65722a55f088a04afa1e5902210 0ed60b811c067a3e8a1d240abc444734c64dbbd8e655e69ac4c883fd933bd7c8201
210297b7974c37520054aa48eea16531bd12710c65ccae0b8f310215e808c9b79f93ffffffff025 c5d0000000000001976a914284d39d05e3600ddb07bc668d8257a64a1dc868588ac20a107000000 00001976a914c2df275d78e506e17691fd6f0c63c43d15c897fc88ac00000000

I then corrected the high S-Values via my script tools, and adapted the length fields (a trx analyzer is really helpful here). I then handed it again into blockchain.info, and it went out without issues:
https://blockchain.info/de/tx/811848214a52c823f53eaaa302eaddb7dd2b03874174c9202d291ac35868fb74  Smiley

Any hints?

(also: I am unsure, if this is the right forum to post to, or if this needs to go somewhere else. If so, please direct me to the right section).

thx
pebwindkraft (OP)
Sr. Member
****
Offline Offline

Activity: 257
Merit: 343


View Profile
December 19, 2016, 09:02:00 AM
 #2

this can be closed. After several backups and restores, it is quite likely, that a mismatch of versions has happened. I had a deeper look and found some files with versions pre-2.5.  Huh Angry
Meanwhile I updated to 2.7, and all works as expected. No more issues with "too high S-Value.".
paffie
Newbie
*
Offline Offline

Activity: 58
Merit: 0


View Profile
December 19, 2016, 09:03:43 AM
 #3

this can be closed. After several backups and restores, it is quite likely, that a mismatch of versions has happened. I had a deeper look and found some files with versions pre-2.5.  Huh Angry
Meanwhile I updated to 2.7, and all works as expected. No more issues with "too high S-Value.".

Luckily you found the error Smiley
You can close the topic yourself, open the original post, expand the additional options, select the "lock topic" box
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!