diff options
| author | luigi1111 <luigi1111w@gmail.com> | 2025-10-07 15:23:52 -0400 |
|---|---|---|
| committer | luigi1111 <luigi1111w@gmail.com> | 2025-10-07 15:23:52 -0400 |
| commit | de73139f4287c8dc0f47acda6ca9db688a1e834b (patch) | |
| tree | c50d41c490d8ef1805d55cd2be9168540fdfaad3 /src | |
| parent | f350ebdeeb7edb8428b16cc1c8069c27a0f2aa42 (diff) | |
| parent | 7b5319757107675ad54f38dcd916d74d6aa87772 (diff) | |
| download | monzero-core-de73139f4287c8dc0f47acda6ca9db688a1e834b.tar.gz monzero-core-de73139f4287c8dc0f47acda6ca9db688a1e834b.tar.xz monzero-core-de73139f4287c8dc0f47acda6ca9db688a1e834b.zip | |
Merge pull request #10148
7b53197 Cleaner validation (faster and saner) (j-berman)
Diffstat (limited to 'src')
| -rw-r--r-- | src/cryptonote_core/blockchain.cpp | 15 | ||||
| -rw-r--r-- | src/cryptonote_core/cryptonote_core.cpp | 2 |
2 files changed, 2 insertions, 15 deletions
diff --git a/src/cryptonote_core/blockchain.cpp b/src/cryptonote_core/blockchain.cpp index 74c87b921..d38586cd4 100644 --- a/src/cryptonote_core/blockchain.cpp +++ b/src/cryptonote_core/blockchain.cpp @@ -3009,21 +3009,6 @@ bool Blockchain::check_tx_outputs(const transaction& tx, tx_verification_context } } - // from v4, forbid invalid pubkeys - if (hf_version >= 4) { - for (const auto &o: tx.vout) { - crypto::public_key output_public_key; - if (!get_output_public_key(o, output_public_key)) { - tvc.m_invalid_output = true; - return false; - } - if (!crypto::check_key(output_public_key)) { - tvc.m_invalid_output = true; - return false; - } - } - } - // from v8, allow bulletproofs if (hf_version < 8) { if (tx.version >= 2) { diff --git a/src/cryptonote_core/cryptonote_core.cpp b/src/cryptonote_core/cryptonote_core.cpp index ee7e643a6..2df72a419 100644 --- a/src/cryptonote_core/cryptonote_core.cpp +++ b/src/cryptonote_core/cryptonote_core.cpp @@ -1041,6 +1041,8 @@ namespace cryptonote for(const auto& in: tx.vin) { CHECKED_GET_SPECIFIC_VARIANT(in, const txin_to_key, tokey_in, false); + if (rct::ki2rct(tokey_in.k_image) == rct::identity()) + return false; if (!(rct::scalarmultKey(rct::ki2rct(tokey_in.k_image), rct::curveOrder()) == rct::identity())) return false; } |
