Post
Topic
Board Bitcoin Discussion
Re: Bitcoin challenge transaction: ~100 BTC total bounty to solvers!
by
BurtW
on 05/08/2019, 20:21:00 UTC
Nice idea, but you can simplify it by ignoring Y coordinate, since X is much more important and effectively defining the point on the curve. Then you can stay in 256 bit range instead of venturing to 512 bits, and use this version I've written for you:

Code:
struct xorshift256_state {
  uint64_t a, b, c, d;
};

/* The state array should be initialized to X coordinate */
uint64_t xorshift256(struct xorshift256_state *state)
{
uint64_t t = state->d;

uint64_t const s = state->a;
state->d = state->c;
state->c = state->b;
state->b = s;

t ^= t << 11;
t ^= t >> 8;
return state->a = t ^ s ^ (s >> 19);
}

Thanks, that looks great (fast).

BTW there is already a 512 bit state version of xoshiro in case we/anyone wants to try it.