Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
alek76
on 13/01/2024, 09:34:06 UTC
result
0230210c23b1a047bc9bdbb13448e67deddc108946de6de639bcc75d47c0216b1b
 Grin


Check each function separately. Starting with void point_add().
Missing intermediate variables.
        mpz_t imod;
   mpz_t l;
   mpz_t lsq;
   mpz_t lsq2;
   mpz_t lsq3;
   mpz_t mul;
   mpz_t x3;
   mpz_t xmx3;
   mpz_t xsub;
   mpz_t ymul;
   mpz_t ys;
   mpz_t ysub;

Should the results be stored in temporary variables?
For example:
mpz_sub(ysub, other.m_y, m_y);
mpz_sub(xsub, other.m_x, m_x);
mpz_invert(imod, xsub, m_curve.m_p);
mpz_mul(mul, ysub, imod);
mpz_mod(l, mul, m_curve.m_p);
mpz_pow_ui(lsq, l, 2);
mpz_sub(lsq2, lsq, m_x);
mpz_sub(lsq3, lsq2, other.m_x);
mpz_mod(x3, lsq3, m_curve.m_p);
mpz_sub(xmx3, m_x, x3);
mpz_mul(ymul, l, xmx3);
mpz_sub(ys, ymul, m_y);
mpz_mod(m_y, ys, m_curve.m_p);
mpz_set(m_x, x3);
mpz_set_ui(m_o, 0);