vlnahp / Btcbf

Bitcoin private key brute force tool, written in python. Also can be used as a bitcoin wallet generator.
GNU Affero General Public License v3.0
304 stars 125 forks source link

Deriveing Bitcoin private key from it's p2sh-segwit address (p2sh p2wpkh) #67

Open avirils opened 1 year ago

avirils commented 1 year ago

Am going to share some details on how to get the private key from address.

I know you'll be thinking by now that the private key can't be derived from the address, that's what I thought on till I told my self nothing is impossible . Now instead of you guys running brute force attack or try to reverse the algorithm why not create/find a different calculation that can be use to derive the address from the private key and then reverse your own calculation, now it may sound impossible looking at it this way f16dd077d18c6a2c64293da97cc84fad6e3ba8acc4079b32693a8e950fd0ce24 to 3MvhVPJesYH3teZ6eydZkdeMMGmjkQRF4M but after using the below script

from decimal import Decimal

user = input("1: Priv to position\n2: Position to priv\n3: Add to position\n4: Position to add\n[Ans]: ")

if user == '1':
   def find_position(hex_str):
       return int(hex_str, 16)+1

   key = input("\nkey: ")
   print ('Position:',find_position(key))

elif user == '2':
     def find_private_key(position):
         return hex(int(position) - 1)[2:].zfill(64)

     position = Decimal(input("\nPosition: "))
     private_key = find_private_key(position)
     print("Private Key:", private_key)

elif user == '3':
     def calculate_position(string):
         characters = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
         base = len(characters)
         length = len(string)
         position = 0
         power = 1

         for i in range(length - 1, -1, -1):
             char = string[i]
             digit = characters.index(char)
             position += digit * power
             power *= base

         return position

     input_string = input("\n[address]: ")
     position = calculate_position(input_string)+1
     print(f"Position:",position)

elif user == '4':
     def calculate_address(position):
         characters = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
         base = len(characters)
         address = ""

         while position > 0:
               position, remainder = divmod(position , base)
               address = characters[remainder] + address

         return address

     input_position = int(input("\nPosition: ")) - 1
     address = calculate_address(input_position)
     print("Address:", address)

else:
   print ('\nWrong input')

This how you should be looking at it 109201421632169861550405429025058298838764240157642115744110253215387890011685 to 36828257717136275917320730136896267955301102672325362318923 now it should look more vulnerable for your brain to comprehend.

Am not going to share the calculation/script I use in deriving the address from the private key but if you're planning on following the idea I just gave I want you to consider that

  1. Nothing is impossible
  2. It's not going to be an easy one (finding a different approach for deriveing the address from the private key)
  3. Don't be afraid of errors or failure instead fine a way to solve the issue or find a different approach (you only fail when you stop trying)
  4. Try to take a break(free your mind a bit)

If you have a calculation in mind but don't know how to implement it in python3 or any other programming language try using an Ai chatbot.

I will not be giving any prove on this

ghost3666 commented 10 months ago

I tried with AI and converted to a valid bitcoin address, tested also on blockchain.com/explorer, but i dont know about the private key generated will import successfully into wallet

Espresso0org commented 9 months ago

Am going to share some details on how to get the private key from address.

I know you'll be thinking by now that the private key can't be derived from the address, that's what I thought on till I told my self nothing is impossible . Now instead of you guys running brute force attack or try to reverse the algorithm why not create/find a different calculation that can be use to derive the address from the private key and then reverse your own calculation, now it may sound impossible looking at it this way f16dd077d18c6a2c64293da97cc84fad6e3ba8acc4079b32693a8e950fd0ce24 to 3MvhVPJesYH3teZ6eydZkdeMMGmjkQRF4M but after using the below script

from decimal import Decimal

user = input("1: Priv to position\n2: Position to priv\n3: Add to position\n4: Position to add\n[Ans]: ")

if user == '1':
   def find_position(hex_str):
       return int(hex_str, 16)+1

   key = input("\nkey: ")
   print ('Position:',find_position(key))

elif user == '2':
     def find_private_key(position):
         return hex(int(position) - 1)[2:].zfill(64)

     position = Decimal(input("\nPosition: "))
     private_key = find_private_key(position)
     print("Private Key:", private_key)

elif user == '3':
     def calculate_position(string):
         characters = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
         base = len(characters)
         length = len(string)
         position = 0
         power = 1

         for i in range(length - 1, -1, -1):
             char = string[i]
             digit = characters.index(char)
             position += digit * power
             power *= base

         return position

     input_string = input("\n[address]: ")
     position = calculate_position(input_string)+1
     print(f"Position:",position)

elif user == '4':
     def calculate_address(position):
         characters = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
         base = len(characters)
         address = ""

         while position > 0:
               position, remainder = divmod(position , base)
               address = characters[remainder] + address

         return address

     input_position = int(input("\nPosition: ")) - 1
     address = calculate_address(input_position)
     print("Address:", address)

else:
   print ('\nWrong input')

This how you should be looking at it 109201421632169861550405429025058298838764240157642115744110253215387890011685 to 36828257717136275917320730136896267955301102672325362318923 now it should look more vulnerable for your brain to comprehend.

Am not going to share the calculation/script I use in deriving the address from the private key but if you're planning on following the idea I just gave I want you to consider that

  1. Nothing is impossible
  2. It's not going to be an easy one (finding a different approach for deriveing the address from the private key)
  3. Don't be afraid of errors or failure instead fine a way to solve the issue or find a different approach (you only fail when you stop trying)
  4. Try to take a break(free your mind a bit)

If you have a calculation in mind but don't know how to implement it in python3 or any other programming language try using an Ai chatbot.

I will not be giving any prove on this

Hello.tnx for your informations.can you give me a little details about this script?what is these positions exactly?

ghost3666 commented 9 months ago

If you have script then you can share and may be we test it and try, i know its even impossible, but there are some scripts that test 1mkey/s and i m running some on my gpu and some on cpu.....

goldenhippo58 commented 5 months ago

@ghost3666 hey can you share the code that does 1mkey/s? This one tops out at about 7000key/s. Much appreciated!

TemplarWorld commented 1 month ago

But you can get this priv key information by just putting in the segwit address in https://secretscan.org/PrivateKeySegwit. And then look at line 11 and there's your calculation. It is not "the" private key. The position is not a public key and stands out. Is it a x or y axis or is it to be combined with the priv key for a calculation? I know you dont want to share more but it would be nice to know what you mean by position.

Espresso0org commented 1 month ago

But you can get this priv key information by just putting in the segwit address in https://secretscan.org/PrivateKeySegwit. And then look at line 11 and there's your calculation. It is not "the" private key. The position is not a public key and stands out. Is it a x or y axis or is it to be combined with the priv key for a calculation? I know you dont want to share more but it would be nice to know what you mean by position.

I think its just a fake thing.because pri position is private key decimal +1

And adress position is the thing you mentioned in line 11 +1.what is thease +1?i think it just bait

Espresso0org commented 1 month ago

But you can get this priv key information by just putting in the segwit address in https://secretscan.org/PrivateKeySegwit. And then look at line 11 and there's your calculation. It is not "the" private key. The position is not a public key and stands out. Is it a x or y axis or is it to be combined with the priv key for a calculation? I know you dont want to share more but it would be nice to know what you mean by position.

image I only found 1 thing.i made 100,000 example and draw them on the chart with python and thats the result.its a Rectangle ! Maybe we need to find the length and width this Rectangle.beacuse im pretty sure if i make more cordinates and draw them on the chart they will complete this Rectangle