Bitcoin Forum

Bitcoin => Wallet software => Topic started by: vjudeu on October 08, 2021, 08:57:36 AM



Title: Assertion failed when submitting block with Satoshi's address
Post by: vjudeu on October 08, 2021, 08:57:36 AM
1. Open Bitcoin Core regtest.
2. Type in console:
Code:
submitblock 0100000006226e46111a0b59caaf126043eb5bbf28c34f3a5e332a1fc7b2b73cf188910f3ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4aed046061ffff7f20000000000101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff4d04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73ffffffff0100f2052a01000000434104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac00000000
3. Some error message is displayed:
Code:
---------------------------
Microsoft Visual C++ Runtime Library
---------------------------
Assertion failed!

Program: C:\Program Files\Bitcoin\bitcoin-qt.exe
File: wallet/wallet.cpp
Line: 922

Expression: wtx.m_confirm.hashBlock == confirm.hashBlock

For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts

(Press Retry to debug the application - JIT must be enabled)
---------------------------
Abort   Retry   Ignore   
---------------------------
I wonder if it is possible to remotely crash nodes by feeding them with such blocks.


Title: Re: Assertion failed when submitting block with Satoshi's address
Post by: BitMaxz on October 08, 2021, 11:05:16 PM
What version of core do you currently use?

The error seems related to Bitcoin file corruption.

Is it full sync? You can make a backup of bitcoin to another hard drive and uninstall the Bitcoin core then after that put the backup Bitcoin data back to the original location and install bitcoin core again(Make sure to download it again).

Let see if it can remove/fix the error.


Title: Re: Assertion failed when submitting block with Satoshi's address
Post by: suchmoon on October 09, 2021, 01:13:34 AM
I wonder if it is possible to remotely crash nodes by feeding them with such blocks.

Seems unlikely, given that the assert is happening in wallet code. It doesn't crash v0.21 client:

Code:
***@***~$ bitcoin-cli -datadir=*** -rpcconnect=*** submitblock 0100000006226e46111a0b59caaf126043eb5bbf28c34f3a5e332a1fc7b2b73cf188910f3ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4aed046061ffff7f20000000000101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff4d04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73ffffffff0100f2052a01000000434104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac00000000
high-hash
***@***:~$


Title: Re: Assertion failed when submitting block with Satoshi's address
Post by: nc50lc on October 09, 2021, 03:48:23 AM
1. Open Bitcoin Core regtest.
2. Type in console:
-snip-
I've followed this exactly but I didn't encountered any error. Tested in both v0.21.0 and v22.0 - Windows10 OS.
Maybe it's an isolated case?


Title: Re: Assertion failed when submitting block with Satoshi's address
Post by: vjudeu on October 09, 2021, 07:18:14 AM
Quote
What version of core do you currently use?
The latest official 22.0 release.
Quote
Is it full sync?
It is regtest, there are no connections, I just put the next block after Genesis by myself.
Quote
Code:
high-hash
In regtest it matches the minimal difficulty, in other networks it has to be mined first.
Quote
I've followed this exactly but I didn't encountered any error.
Try also importing Satoshi's public key:
Code:
importpubkey "04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f" "satoshi"
I deleted all data files and executed both commands, then I reached the same error again. So maybe it works only if someone imported Satoshi's key.


Title: Re: Assertion failed when submitting block with Satoshi's address
Post by: nc50lc on October 09, 2021, 07:55:15 AM
Quote
I've followed this exactly but I didn't encountered any error.
Try also importing Satoshi's public key:
Code:
importpubkey "04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f" "satoshi"
I deleted all data files and executed both commands, then I reached the same error again. So maybe it works only if someone imported Satoshi's key.
Okay, now I got the assertion error if I import satoshi's pubkey before executing the command (using a fresh datadir).

However, node didn't crashed and there's no error in the debug.log, and it seems like the command worked at the first attempt regardless of the error.
So I doubt that it could be used to attack other nodes (or rather satoshi's node, bec. it requires his pubkey  :P).