dtr-org / unit-e

A digital currency for a new era of decentralized trust
https://unit-e.io
MIT License
45 stars 15 forks source link

Client created an invalid block with REMOTE_STAKING_INPUT_BIGGER_THAN_OUTPUT #998

Closed Gnappuraz closed 5 years ago

Gnappuraz commented 5 years ago

Describe the bug I saw this in the testnet logs. Seems that somebody managed to create an block invalid because of REMOTE_STAKING_INPUT_BIGGER_THAN_OUTPUT.

2019-04-16 15:00:22 [finalization] Process candidate tip block_hash=fed812f0c99d1c07f95efc737f2e3fff583e1175b4c45a8e6dbe8f6ab391ae36 height=1203
2019-04-16 15:00:22 [  validation] ConnectBlock: Invalid stake found for block=fed812f0c99d1c07f95efc737f2e3fff583e1175b4c45a8e6dbe8f6ab391ae36 failure=REMOTE_STAKING_INPUT_BIGGER_THAN_OUTPUT
2019-04-16 15:00:22 [            ] InvalidChainFound: invalid block=fed812f0c99d1c07f95efc737f2e3fff583e1175b4c45a8e6dbe8f6ab391ae36  height=1203  log2_work=64.032837  date=2019-04-16 15:00:24
2019-04-16 15:00:22 [            ] InvalidChainFound:  current best=c4183e870f473070b47c1747b63a904c401c9511a914b54bff8a1ad3edaecb22  height=1202  log2_work=64.031509  date=2019-04-16 15:00:20
2019-04-16 15:00:22 [            ] ERROR: ConnectTip(): ConnectBlock fed812f0c99d1c07f95efc737f2e3fff583e1175b4c45a8e6dbe8f6ab391ae36 failed
2019-04-16 15:00:22 [            ] InvalidChainFound: invalid block=fed812f0c99d1c07f95efc737f2e3fff583e1175b4c45a8e6dbe8f6ab391ae36  height=1203  log2_work=64.032837  date=2019-04-16 15:00:24
2019-04-16 15:00:22 [            ] InvalidChainFound:  current best=c4183e870f473070b47c1747b63a904c401c9511a914b54bff8a1ad3edaecb22  height=1202  log2_work=64.031509  date=2019-04-16 15:00:20
2019-04-16 15:00:23 [   proposing] Not proposing this time (wallet=wallet.dat)
2019-04-16 15:00:27 [   proposing] Not proposing this time (wallet=wallet.dat)
2019-04-16 15:00:28 [            ] ERROR: AcceptBlockHeader: block fed812f0c99d1c07f95efc737f2e3fff583e1175b4c45a8e6dbe8f6ab391ae36 is marked invalid

To Reproduce Don't know.

Expected behavior An up-to-date client should not create invalid blocks.

Nizametdinov commented 5 years ago

Here is the invalid block.

{
  "hash": "fed812f0c99d1c07f95efc737f2e3fff583e1175b4c45a8e6dbe8f6ab391ae36",
  "confirmations": -1,
  "strippedsize": 310093,
  "size": 694512,
  "weight": 1624791,
  "height": 1203,
  "version": 1,
  "versionHex": "00000001",
  "merkleroot": "dc49b07c0570660cf02d0b2048cc25ee568b726fd5f3915e009071db39c9725a",
  "witnessmerkleroot": "9583cd61019a0cd69effb118cf1b68f9e19cb1d0d745827d392eccdf6f64be27",
  "finalizercommitsmerkleroot": "0000000000000000000000000000000000000000000000000000000000000000",
  "tx": [
    "af540d2140b98fe3ab8b073ba5c851c11cd8e332f9119fb941b4bf2321c2a681",
    ...
  ],
  "time": 1555426824,
  "mediantime": 1555426792,
  "bits": "1a0426d1",
  "difficulty": 4041057.076973401,
  "chainwork": "00000000000000000000000000000000000000000000000105e4c0113ace3519",
  "nTx": 120,
  "previousblockhash": "c4183e870f473070b47c1747b63a904c401c9511a914b54bff8a1ad3edaecb22"
}
Nizametdinov commented 5 years ago

And the invalid coinbase transaciton.

{
  "in_active_chain": false,
  "txid": "af540d2140b98fe3ab8b073ba5c851c11cd8e332f9119fb941b4bf2321c2a681",
  "hash": "1b37f1bdae1aa87b239fb2fd28843f5266884eeabcb80b9ccb5d1e0f9ea5a0fe",
  "version": 1,
  "txtype": 1,
  "size": 747,
  "vsize": 422,
  "locktime": 0,
  "vin": [
    {
      "coinbase": "02b304209466c0aae65fb59fc0999f4fee567ac9e33fb8dfeac5ce58fb4989e40eaa69e3"
    },
    {
      "txid": "bfe4346ef54ff9b2bab3f4f9ab19178473b49ab79ca9abd3b466d873d92e91c4",
      "vout": 1,
      "scriptSig": {
        "asm": "",
        "hex": ""
      },
      "txinwitness": [
        "3045022100956ae631c03e868d412cc063ee681a036eaed352ffc8907d7d9b4735804d4f0802201f21f8bc73f80a68b60da4ff7cf78854a57becc882e76bb710397efdeeea92d901",
        "03735f51c3478ff6f39303b850940a6fdde0ab92dd4f9b0c74cdc9c4880124cd47"
      ],
      "sequence": 4294967295
    },
    {
      "txid": "5c099f37dc8bed81fc107fe0e64041ef9cd5c8d19cc61e221132bfb9235024b9",
      "vout": 1,
      "scriptSig": {
        "asm": "",
        "hex": ""
      },
      "txinwitness": [
        "3045022100bc45ffd28728e325defe7640946f88925543cbca2e143474c818ac573ababeec022033ddf111f407a5e1b9e4c390645c4ab86bc56016dd758d46b2c8077950393a3301",
        "02e27ca8195a8d866fb0063b46f2d1ef0224721d277de18358c18561b814b6f1f3"
      ],
      "sequence": 4294967295
    },
    {
      "txid": "bfe4346ef54ff9b2bab3f4f9ab19178473b49ab79ca9abd3b466d873d92e91c4",
      "vout": 0,
      "scriptSig": {
        "asm": "",
        "hex": ""
      },
      "txinwitness": [
        "304402200da747168dbfd66ed6395e023c7130d89fd5b68cc5abbb123d34b58af327d33b02201a9e70cbdf8fe39bb7c8963dc209c1363a5927df1d88fabaa55b38333d84348101",
        "03735f51c3478ff6f39303b850940a6fdde0ab92dd4f9b0c74cdc9c4880124cd47"
      ],
      "sequence": 4294967295
    },
    {
      "txid": "5c099f37dc8bed81fc107fe0e64041ef9cd5c8d19cc61e221132bfb9235024b9",
      "vout": 0,
      "scriptSig": {
        "asm": "",
        "hex": ""
      },
      "txinwitness": [
        "3045022100c11cacf446d90fb4df3f27185d21aaebce3810ebcd9b1a690c8ce5cb8f589947022040a191c4e52dfb16e8e3f26cb695befee0f9f977dfc408e4e9ba9e39a9e5f24601",
        "02e27ca8195a8d866fb0063b46f2d1ef0224721d277de18358c18561b814b6f1f3"
      ],
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 0.70169425,
      "n": 0,
      "scriptPubKey": {
        "asm": "0 724b37df95123d320a718426f2cd41743e84d968",
        "hex": "0014724b37df95123d320a718426f2cd41743e84d968",
        "reqSigs": 1,
        "type": "witness_v0_keyhash",
        "addresses": [
          "tue1qwf9n0hu4zg7nyzn3ssn09n2pwslgfktgvl0ta4"
        ]
      }
    },
    {
      "value": 17000003.78329896,
      "n": 1,
      "scriptPubKey": {
        "asm": "0 724b37df95123d320a718426f2cd41743e84d968",
        "hex": "0014724b37df95123d320a718426f2cd41743e84d968",
        "reqSigs": 1,
        "type": "witness_v0_keyhash",
        "addresses": [
          "tue1qwf9n0hu4zg7nyzn3ssn09n2pwslgfktgvl0ta4"
        ]
      }
    }
  ],
  "hex": "010001000001050000000000000000000000000000000000000000000000000000000000000000000000002402b304209466c0aae65fb59fc0999f4fee567ac9e33fb8dfeac5ce58fb4989e40eaa69e3ffffffffc4912ed973d866b4d3aba99cb79ab473841719abf9f4b3bab2f94ff56e34e4bf0100000000ffffffffb9245023b9bf3211221ec69cd1c8d59cef4140e6e07f10fc81ed8bdc379f095c0100000000ffffffffc4912ed973d866b4d3aba99cb79ab473841719abf9f4b3bab2f94ff56e34e4bf0000000000ffffffffb9245023b9bf3211221ec69cd1c8d59cef4140e6e07f10fc81ed8bdc379f095c0000000000ffffffff0251b32e0400000000160014724b37df95123d320a718426f2cd41743e84d968281bab2e240a0600160014724b37df95123d320a718426f2cd41743e84d9680002483045022100956ae631c03e868d412cc063ee681a036eaed352ffc8907d7d9b4735804d4f0802201f21f8bc73f80a68b60da4ff7cf78854a57becc882e76bb710397efdeeea92d9012103735f51c3478ff6f39303b850940a6fdde0ab92dd4f9b0c74cdc9c4880124cd4702483045022100bc45ffd28728e325defe7640946f88925543cbca2e143474c818ac573ababeec022033ddf111f407a5e1b9e4c390645c4ab86bc56016dd758d46b2c8077950393a33012102e27ca8195a8d866fb0063b46f2d1ef0224721d277de18358c18561b814b6f1f30247304402200da747168dbfd66ed6395e023c7130d89fd5b68cc5abbb123d34b58af327d33b02201a9e70cbdf8fe39bb7c8963dc209c1363a5927df1d88fabaa55b38333d843481012103735f51c3478ff6f39303b850940a6fdde0ab92dd4f9b0c74cdc9c4880124cd4702483045022100c11cacf446d90fb4df3f27185d21aaebce3810ebcd9b1a690c8ce5cb8f589947022040a191c4e52dfb16e8e3f26cb695befee0f9f977dfc408e4e9ba9e39a9e5f246012102e27ca8195a8d866fb0063b46f2d1ef0224721d277de18358c18561b814b6f1f300000000",
  "blockhash": "fed812f0c99d1c07f95efc737f2e3fff583e1175b4c45a8e6dbe8f6ab391ae36",
  "confirmations": 0
}
Nizametdinov commented 5 years ago

Transaction 5c099f37dc8bed81fc107fe0e64041ef9cd5c8d19cc61e221132bfb9235024b9.

{
  "in_active_chain": true,
  "txid": "5c099f37dc8bed81fc107fe0e64041ef9cd5c8d19cc61e221132bfb9235024b9",
  "hash": "96a33186ccad93b3e804beb3d7febfcfd95e292e7dbfffb0ad813b75c909f0c1",
  "version": 1,
  "txtype": 1,
  "size": 516,
  "vsize": 352,
  "locktime": 0,
  "vin": [...],
  "vout": [
    {
      "value": 0.61810000,
      "n": 0,
      "scriptPubKey": {
        "asm": "1 52fcce6136d442e6d09d98894968e545464fe42a 4e70453df2e53fef60686799660e9dc2098a5c3a9048efa67c51a8425bbbb262",
        "hex": "511452fcce6136d442e6d09d98894968e545464fe42a204e70453df2e53fef60686799660e9dc2098a5c3a9048efa67c51a8425bbbb262",
        "reqSigs": 21856,
        "type": "witness_v1_remotestake_keyhash",
        "addresses": [
          "tue1q2t7vucfk63pwd5yanzy5j689g4rylep2cw8h4j",
          "tue1qwuwpmp2utv0y8gxvq5rk3x4p0gc9t9cghf3qvc"
        ]
      }
    },
    {
      "value": 7000000.61810000,
      "n": 1,
      "scriptPubKey": {
        "asm": "1 52fcce6136d442e6d09d98894968e545464fe42a 4e70453df2e53fef60686799660e9dc2098a5c3a9048efa67c51a8425bbbb262",
        "hex": "511452fcce6136d442e6d09d98894968e545464fe42a204e70453df2e53fef60686799660e9dc2098a5c3a9048efa67c51a8425bbbb262",
        "reqSigs": 21856,
        "type": "witness_v1_remotestake_keyhash",
        "addresses": [
          "tue1q2t7vucfk63pwd5yanzy5j689g4rylep2cw8h4j",
          "tue1qwuwpmp2utv0y8gxvq5rk3x4p0gc9t9cghf3qvc"
        ]
      }
    }
  ],
  "hex": "010001000001030000000000000000000000000000000000000000000000000000000000000000000000002402b602209ab7e616b9ebd342d9ddc836cda922e72f3c29204ee961aebc9aef19510a697effffffff18ed772519683d1ac0d9309ca5f80977ebb316f53fbe82d46f05de43c29701b60100000000ffffffff18ed772519683d1ac0d9309ca5f80977ebb316f53fbe82d46f05de43c29701b60000000000ffffffff025025af030000000037511452fcce6136d442e6d09d98894968e545464fe42a204e70453df2e53fef60686799660e9dc2098a5c3a9048efa67c51a8425bbbb26250e50677a57c020037511452fcce6136d442e6d09d98894968e545464fe42a204e70453df2e53fef60686799660e9dc2098a5c3a9048efa67c51a8425bbbb2620002483045022100fb2bcb589619eb3ffed82c5276794efc8c3a9e0fe13a717e27636029a8f0565802206aa72e5feea61db02257c6650df17943faa167f43bd9a0be14db9dad7469a865012102e27ca8195a8d866fb0063b46f2d1ef0224721d277de18358c18561b814b6f1f302483045022100efc193b1c2deb8696d0a6a9b0aecac0a50e189a70608a628d5ce04566bddad170220308a9445ef2b661ab613c8c86d1696bd93028c30c313938e2484f91163a26bb7012102e27ca8195a8d866fb0063b46f2d1ef0224721d277de18358c18561b814b6f1f300000000",
  "blockhash": "2447301874fb86281ec021c97f47669d0d49b1bd979c325e36968b8d7dc9a1e4",
  "confirmations": 800,
  "time": 1555422668,
  "blocktime": 1555422668
}
Ruteri commented 5 years ago

Transaction bfe4346ef54ff9b2bab3f4f9ab19178473b49ab79ca9abd3b466d873d92e91c4

{
  "txid": "bfe4346ef54ff9b2bab3f4f9ab19178473b49ab79ca9abd3b466d873d92e91c4",
  "hash": "e5326583bf3882377ed1d874b94d5f11040766c55fded0edd59ddd4c1987f689",
  "version": 1,
  "txtype": 1,
  "size": 449,
  "vsize": 286,
  "locktime": 0,
  "vin": [
    {
      "coinbase": "02e10220a0def57e5d942d27a0ec63de3369ff68a169a5e077faa57063442f736d794f35"
    },
    {
      "txid": "a26e8c581af1807a4218e2c4cb15abfc368ac0329ac3952c12035a5658fe727e",
      "vout": 1,
      "scriptSig": {
        "asm": "",
        "hex": ""
      },
      "txinwitness": [
        "304402206b466e6ebff3c1949560f756facc30b7a617eea969b60a8110ebaf82dd7568cb0220084696b3f178fb47e7aab045ecf95138bbacd0271a32d0d1fd78d65cd93516b801",
        "03735f51c3478ff6f39303b850940a6fdde0ab92dd4f9b0c74cdc9c4880124cd47"
      ],
      "sequence": 4294967295
    },
    {
      "txid": "a26e8c581af1807a4218e2c4cb15abfc368ac0329ac3952c12035a5658fe727e",
      "vout": 0,
      "scriptSig": {
        "asm": "",
        "hex": ""
      },
      "txinwitness": [
        "3045022100a9cdfe6330a4221c94bb40564c41de3b62cc1c200cc88ea9649e00b56ae53445022073dbbedce89eb440c91a15e0a47810a4debd161b19916045279ee207d97e3d7001",
        "03735f51c3478ff6f39303b850940a6fdde0ab92dd4f9b0c74cdc9c4880124cd47"
      ],
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 0.63132019,
      "n": 0,
      "scriptPubKey": {
        "asm": "0 724b37df95123d320a718426f2cd41743e84d968",
        "hex": "0014724b37df95123d320a718426f2cd41743e84d968",
        "reqSigs": 1,
        "type": "witness_v0_keyhash",
        "addresses": [
          "tue1qwf9n0hu4zg7nyzn3ssn09n2pwslgfktgvl0ta4"
        ]
      }
    },
    {
      "value": 10000001.91577877,
      "n": 1,
      "scriptPubKey": {
        "asm": "0 724b37df95123d320a718426f2cd41743e84d968",
        "hex": "0014724b37df95123d320a718426f2cd41743e84d968",
        "reqSigs": 1,
        "type": "witness_v0_keyhash",
        "addresses": [
          "tue1qwf9n0hu4zg7nyzn3ssn09n2pwslgfktgvl0ta4"
        ]
      }
    }
  ],
  "hex": "010001000001030000000000000000000000000000000000000000000000000000000000000000000000002402e10220a0def57e5d942d27a0ec63de3369ff68a169a5e077faa57063442f736d794f35ffffffff7e72fe58565a03122c95c39a32c08a36fcab15cbc4e218427a80f11a588c6ea20100000000ffffffff7e72fe58565a03122c95c39a32c08a36fcab15cbc4e218427a80f11a588c6ea20000000000ffffffff027351c30300000000160014724b37df95123d320a718426f2cd41743e84d96815bf31b07e8d0300160014724b37df95123d320a718426f2cd41743e84d968000247304402206b466e6ebff3c1949560f756facc30b7a617eea969b60a8110ebaf82dd7568cb0220084696b3f178fb47e7aab045ecf95138bbacd0271a32d0d1fd78d65cd93516b8012103735f51c3478ff6f39303b850940a6fdde0ab92dd4f9b0c74cdc9c4880124cd4702483045022100a9cdfe6330a4221c94bb40564c41de3b62cc1c200cc88ea9649e00b56ae53445022073dbbedce89eb440c91a15e0a47810a4debd161b19916045279ee207d97e3d70012103735f51c3478ff6f39303b850940a6fdde0ab92dd4f9b0c74cdc9c4880124cd4700000000",
  "blockhash": "9f02a02dc53d1c180fe75ceb6bc76e71a5cfb9f256f9e9a58a7504693ac18836",
  "confirmations": 827,
  "time": 1555423004,
  "blocktime": 1555423004
}
Nizametdinov commented 5 years ago

The node tried to combine its spendable coins in the coinbase transaction including the coins which are staked remotely.

Nizametdinov commented 5 years ago

There is also another issue. Remote staking node can send its own funds to remote staking script because of stake combining.

Nizametdinov commented 5 years ago

Fixed in #1017