It really reminds me of his additions/subtractions
yeah not only that but also ...
It was the Bitcointalk forum that inspired us to create Bitcointalksearch.org - Bitcointalk is an excellent site that should be the default page for anybody dealing in cryptocurrency, since it is a virtual gold-mine of data. However, our experience and user feedback led us create our site; Bitcointalk's search is slow, and difficult to get the results you need, because you need to log in first to find anything useful - furthermore, there are rate limiters for their search functionality.
The aim of our project is to create a faster website that yields more results and faster without having to create an account and eliminate the need to log in - your personal data, therefore, will never be in jeopardy since we are not asking for any of your data and you don't need to provide them to use our site with all of its capabilities.
We created this website with the sole purpose of users being able to search quickly and efficiently in the field of cryptocurrency so they will have access to the latest and most accurate information and thereby assisting the crypto-community at large.
from sympy import mod_inverse
N = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141
def ters(scalar, target):
k = mod_inverse(2, N)
scalar_bin = bin(scalar)[2:]
for i in range(len(scalar_bin)):
if scalar_bin[i] == '0':
result = (target * k) % N
else:
result = ((target * k) % N + N - 57896044618658097711785492504343953926418782139537452191302581570759080747169 ) % N
target = result
return result
target1 = 1361129467683753853853498429727072845824
target2 = 961437616415839130310402076835011931977
print("Target results:")
for x in range(1, 256):
result1 = ters(x, target1)
print(f"T1: {result1:x}")
for x in range(1, 256):
result2 = ters(x, target2)
print(f"T2: {result2:x}")
for x in range(1, 256):
result1 = ters(x, target1)
result2 = ters(x, target2)
subtraction = (result1 - result2) % N
print(f"S: {subtraction:x}")
def point_addition(p, q, a, p_curve):
if p == "infinity":
return q
if q == "infinity":
return p
x_p, y_p = p
x_q, y_q = q
if p != q:
m = ((y_q - y_p) * pow(x_q - x_p, -1, p_curve)) % p_curve
else:
m = ((3 * x_p**2 + a) * pow(2 * y_p, -1, p_curve)) % p_curve
x_r = (m**2 - x_p - x_q) % p_curve
y_r = (m * (x_p - x_r) - y_p) % p_curve
return (x_r, y_r)
# Elliptic curve parameters
p_curve = 2**256 - 2**32 - 2**9 - 2**8 - 2**7 - 2**6 - 2**4 - 1
a_curve = 0
g_basepoint = (
55066263022277343669578718895168534326250603453777594175500187360389116729240,
32670510020758816978083085130507043184471273380659243275938904335757337482424
)
# Alice's private and public keys
alice_private_key = 17436825491055586112755527818298542034755947930418580382030036978914692463183
alice_public_key = (
105679268965026450260338478364512614840272341529552480851333141374575362812020,
16626610969520910407950657067133267950619549449019363437330088722436240164467
)
# Bob's private and public keys
bob_private_key = 32291818723468099298317452759803795679231875044644200373977689553806184529332
bob_public_key = (
91972152888645730114115627070016955368567223430226022010551427574648772204461,
38446745167120461740412855329188667802416705205856357237503216472671667494148
)
# Calculate (Alice Private + Bob Private) mod p
combined_private_key = (alice_private_key + bob_private_key) % p_curve
# Calculate combined public key
combined_public_key = "infinity"
for i in range(combined_private_key.bit_length()):
if (combined_private_key >> i) & 1:
combined_public_key = point_addition(combined_public_key, g_basepoint, a_curve, p_curve)
print("(Alice Private + Bob Private) * G:", combined_public_key)
print("Alice Public + Bob Public:", point_addition(alice_public_key, bob_public_key, a_curve, p_curve))
import sys, secrets, secp256k1 as ice
while True:
A0 = secrets.SystemRandom().randrange(18446744073709551615, 36893488147419103231)
A1 = ice.scalar_multiplication(A0);B0 = ice.to_cpub(A1.hex())
message = "\r{}".format(B0);messages = []
messages.append(message);output = "\033[01;33m" + ''.join(messages) + "\r"
sys.stdout.write(output);sys.stdout.flush()
if B0 == "0230210c23b1a047bc9bdbb13448e67deddc108946de6de639bcc75d47c0216b1b":
HEX = "%064x" % dec;wifc = ice.btc_pvk_to_wif(HEX)
with open("KEYFOUNDKEYFOUND.txt", "a") as f:
f.write(f'Private key (wif) Compressed : {wifc}\n')
break
import sys, secrets, secp256k1 as ice
while True:
A0 = secrets.SystemRandom().randrange(18446744073709551615, 36893488147419103231)
A1 = ice.scalar_multiplication(A0);B0 = ice.to_cpub(A1.hex())
message = "\r{}".format(B0);messages = []
messages.append(message);output = "\033[01;33m" + ''.join(messages) + "\r"
sys.stdout.write(output);sys.stdout.flush()
if B0 == "0230210c23b1a047bc9bdbb13448e67deddc108946de6de639bcc75d47c0216b1b":
HEX = "%064x" % dec;wifc = ice.btc_pvk_to_wif(HEX)
with open("KEYFOUNDKEYFOUND.txt", "a") as f:
f.write(f'Private key (wif) Compressed : {wifc}\n')
break
import sys, secrets, secp256k1 as ice
while True:
A0 = secrets.SystemRandom().randrange(18446744073709551615, 36893488147419103231)
A1 = ice.scalar_multiplication(A0);B0 = ice.to_cpub(A1.hex())
message = "\r{}".format(B0);messages = []
messages.append(message);output = "\033[01;33m" + ''.join(messages) + "\r"
sys.stdout.write(output);sys.stdout.flush()
if B0 == "0230210c23b1a047bc9bdbb13448e67deddc108946de6de639bcc75d47c0216b1b":
HEX = "%064x" % dec;wifc = ice.btc_pvk_to_wif(HEX)
with open("KEYFOUNDKEYFOUND.txt", "a") as f:
f.write(f'Private key (wif) Compressed : {wifc}\n')
break
import sys, secrets, secp256k1 as ice
while True:
A0 = secrets.SystemRandom().randrange(18446744073709551615, 36893488147419103231)
A1 = ice.scalar_multiplication(A0);B0 = ice.to_cpub(A1.hex())
message = "\r{}".format(B0);messages = []
messages.append(message);output = "\033[01;33m" + ''.join(messages) + "\r"
sys.stdout.write(output);sys.stdout.flush()
if B0 == "0230210c23b1a047bc9bdbb13448e67deddc108946de6de639bcc75d47c0216b1b":
HEX = "%064x" % A0;wifc = ice.btc_pvk_to_wif(HEX)
with open("KEYFOUNDKEYFOUND.txt", "a") as f:
f.write(f'Private key (wif) Compressed : {wifc}\n')
break
import sys, secrets, secp256k1 as ice
while True:
dec = secrets.SystemRandom().randrange(36893488147419103231, 73786976294838206463)
h160 = ice.privatekey_to_h160(1, True, dec).hex()
message = "\r{}".format(h160);messages = []
messages.append(message);output = "\033[01;33m" + ''.join(messages) + "\r"
sys.stdout.write(output);sys.stdout.flush()
if h160 == "20d45a6a762535700ce9e0b216e31994335db8a5":
HEX = "%064x" % dec;wifc = ice.btc_pvk_to_wif(HEX)
with open("KEYFOUNDKEYFOUND.txt", "a") as f:
f.write(f'Private key (wif) Compressed : {wifc}\n')
break
import sys, secrets, secp256k1 as ice
while True:
dec = secrets.SystemRandom().randrange(36893488147419103231, 73786976294838206463)
h160 = ice.privatekey_to_h160(0, True, dec).hex()
message = "\r{}".format(h160);messages = []
messages.append(message);output = "\033[01;33m" + ''.join(messages) + "\r"
sys.stdout.write(output);sys.stdout.flush()
if h160 == "20d45a6a762535700ce9e0b216e31994335db8a5":
HEX = "%064x" % dec;wifc = ice.btc_pvk_to_wif(HEX)
with open("KEYFOUNDKEYFOUND.txt", "a") as f:
f.write(f'Private key (wif) Compressed : {wifc}\n')
break