pika's random mode (which is not in brichard19's bitcrack) is not using a random number generator, it turns out that it uses an iteration count and multiplies it with all the other normal stuff, which is then ADDED to some exponent to obtaining private key samples:
// https://github.com/ZenulAbidin/BitCrack-3000/blob/master/CudaKeySearchDevice/CudaKeySearchDevice.cpp line 112
// Generate key pairs for k, k+1, k+2 ... k + <total points in parallel - 1>
secp256k1::uint256 privKey = _startExponent;
if(!_randomMode) {
exponents.push_back(privKey);
}
// ...
// Line 272
if(!_randomMode) {
offset = (secp256k1::uint256((uint64_t)_blocks * _threads * _pointsPerThread * _iterations) + privateKeyOffset) * _stride;
privateKey = secp256k1::addModN(_startExponent, offset);
} else {
offset = secp256k1::uint256(_iterations) * _stride;
privateKey = exponents[privateKeyOffset];
privateKey = secp256k1::addModN(privateKey, offset);
}
Can you please explain a bit more how's pika's random mode is working? I though it was using RNG. Can you explain how it get starting points compared to original bitcrack? Tnx