From 7b5319757107675ad54f38dcd916d74d6aa87772 Mon Sep 17 00:00:00 2001 From: j-berman Date: Sun, 5 Oct 2025 17:56:57 -0700 Subject: [PATCH] Cleaner validation (faster and saner) --- src/cryptonote_core/blockchain.cpp | 15 --------------- 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; }