I have no idea why so many are so obsessed about this adding and subtracting public key thingy. Maybe I know nothing much about it and makes me think that way. This adding/subtracting method in my opinion are totally different from Pollard Kangaroo idea or BSGS. From my understanding, by adding/subtracting public key, you can generate a bunch of valid public key, nothing wrong about it. But if 1 private key matching only 1 public key(of course it does), then where is the difference between adding/subtracting and private key bruteforcing? IMHO, it doesn't eliminate any possible private key combination at all. Please correct me if I am wrong.
because if you look for pk=1361129467683753853853498429727072845823
subtracting...
import secp256k1 as ice
target_public_key = "03e067911ebf6bacf87a8088ab9344c95843aed80b070eed09f9d947c98dfc0249"
target = ice.pub2upub(target_public_key)
num = 136114 # number of times.
sustract= 10000000000000000000000000000000000 #amount to subtract each time.
sustract_pub= ice.scalar_multiplication(sustract)
res= ice.point_loop_subtraction(num, target, sustract_pub)
for t in range (num+1):
h= (res[t*65:t*65+65]).hex()
hc= ice.to_cpub(h)
data = open("data-base.txt","a")
data.write(str(hc)+"\n")
data.close()
one of the pub in the result will be:
pk=9467683753853853498429727072845823
and looking for this 1361129467683753853853498429727072845823
is not the same as this 9467683753853853498429727072845823