From 8c71ac83b779ea174ba8c60110f96f9dae71d46e Mon Sep 17 00:00:00 2001 From: sowle Date: Wed, 5 Oct 2022 14:02:32 +0200 Subject: [PATCH] zarcanum: main inequality type fixed --- src/crypto/zarcanum.cpp | 4 ++-- src/crypto/zarcanum.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/crypto/zarcanum.cpp b/src/crypto/zarcanum.cpp index f000139f..9aa4dc36 100644 --- a/src/crypto/zarcanum.cpp +++ b/src/crypto/zarcanum.cpp @@ -21,11 +21,11 @@ namespace crypto } bool zarcanum_check_main_pos_inequality(const hash& kernel_hash, const scalar_t& blinding_mask, const scalar_t& secret_q, - const scalar_t& last_pow_block_id_hashed, const mp::uint256_t& z_l_div_z_D, uint64_t stake_amount, mp::uint256_t& lhs, mp::uint256_t& rhs) + const scalar_t& last_pow_block_id_hashed, const mp::uint256_t& z_l_div_z_D, uint64_t stake_amount, mp::uint256_t& lhs, mp::uint512_t& rhs) { scalar_t lhs_s = scalar_t(kernel_hash) * (blinding_mask + secret_q + last_pow_block_id_hashed); // == h * (f + q + f') mod l lhs = lhs_s.as_boost_mp_type(); - rhs = z_l_div_z_D * stake_amount; // == floor( l / (z * D) ) * z * a + rhs = static_cast(z_l_div_z_D) * stake_amount; // == floor( l / (z * D) ) * z * a return lhs < rhs; // h * (f + q + f') mod l < floor( l / (z * D) ) * z * a } diff --git a/src/crypto/zarcanum.h b/src/crypto/zarcanum.h index daaa1b4e..6f2d83d4 100644 --- a/src/crypto/zarcanum.h +++ b/src/crypto/zarcanum.h @@ -19,7 +19,7 @@ namespace crypto mp::uint256_t zarcanum_precalculate_z_l_div_z_D(const mp::uint128_t& pos_difficulty); bool zarcanum_check_main_pos_inequality(const hash& kernel_hash, const scalar_t& blinding_mask, const scalar_t& secret_q, - const scalar_t& last_pow_block_id_hashed, const mp::uint256_t& z_l_div_z_D_, uint64_t stake_amount, mp::uint256_t& lhs, mp::uint256_t& rhs); + const scalar_t& last_pow_block_id_hashed, const mp::uint256_t& z_l_div_z_D_, uint64_t stake_amount, mp::uint256_t& lhs, mp::uint512_t& rhs); } // namespace crypto