Pages:
Author

Topic: Bitcoin; Algoritma Üzerine Yöntemler - page 12. (Read 33534 times)

newbie
Activity: 27
Merit: 1
Konuyu uzun zamandır inceliyorum. imkansız bir şey biliyorum. yine de denemek istedim. vanity programi ile üretmiş olduğum adresi kendi yazdığım program ile blockchain api den sorgulama yapıyorum. Dandik bir bilgisayar ile denememde 1saniyede 11'e yakın adres sorgulaması yapabildim. Başka güzel ve hizli api bilen varsa geri dönüş yaparsa sevinirim. Amacım bütün apilere keyleri göndermek ve daha hizlı geri dönüş almak. Programın tarama sonrası bir fotosunu attım. eski tarihli boş bir tane key bulmuş.

https://www.imagevisit.com/image/gWr4o      

API üzerinden yapacağınız işlemler size çok fazla fayda sağlamayacaktır. belirli adetlerde sorgulama yaparsınız ve sonrasında program çalışır ama balance bilgileriniz
sürekli olarak ''0'' olarak gözükür. konuyu baştan sona okuduğunuzu ve unuttuğunuzu düşünerek önceki sayfalarda bunlarla ilgili örnekler bulabilirsiniz.


Benim size önerim daha farklı olabilir. Random btc adresi üretip bunların bakiyelerini sorgulamak yerine kullanılan aktif bitcoin adreslerini alıp bir database oluşturun ve random bitcoin adresi - private key üreterek benzerlik taraması yaptırın. python bilginiz ne durumda bilmiyorum ama bununla ilgili rahat bir çalışma yapabilirsiniz. yine size örnek olması açısından bir iki program linki bırakıyorum bunları inceleyip kendinize uygun bir program yazabilirsiniz veya mevcutta olanları kullanabilirsiniz.

Plutus : https://github.com/Isaacdelly/Plutus

Açıklama : Database dosyası içerisinde bulunan adresleri kullanır ve random bitcoin adresi üreterek benzerlik araması yapar. program açıklamasında 3-6 ay arasında database dosyasının güncellendiğini yazıyor şu an 4 ay geçmiş bir hareket yok. saniyede yaklaşık 370 civarı (işlemci hızına göre) arama yaptığını yazmış. yine siz bunu ortalama 150-200 olarak hesaplayın.


Brutus : https://github.com/diehummel/Brutus

Açıklama : line 57 bölümündeki bitcoin adresini değiştirip istediğiniz adresi yazarak yine random oluşturulan adres ve private keyler ile benzerlik araması yaptırır. yine çok hızlı bir uygulama değil ama en azından içerisindeki kodlar size fikir verebilir.

Mfbc : https://github.com/mobb111/mfbc-master

Diğer iki programla aynı mantık, database içerisinde yer alan adreslere random adres ve key üreterek adres benzerliği sorgular.


Bütün bu programların aslında kendi içerisinde boş olduğunu düşünüyorum ama sistemi hiç yormayan ve mantıklı olanları kullanmaya çalışıyorum. MFBC dosyasında yer alan database dosyasını istediğiniz adresleri editleyerek -az veya çok- kendi sisteminizi kurabilirsiniz.

yine sorunuza cevaben bu konudan ilgili alıntıyı sizinle paylaşıyorum. mesajın üst bölümüne tıklayarak devam eden yazışmaları takip edebilirsiniz.. son olarak balance kontrolü yerine benzerlik taraması yaptırmak daha mantıklı.. örneğin database içerisinde yer alan adresleri gruplayarak yani 1cf, 1sp, 1pp, 1az gibi random adresler üreterek sorgulatmak daha mantıklı diye düşünüyorum.

Arkadaşlar Python öğrenmeye çalışıyorum da bir sorum olacak ustalardan ;

kod şu

bu kodla girilen adresin bakiye kontrolü yapılıyor
>>>>>>

from bs4 import BeautifulSoup
import urllib.request
 
tr = input(" Adres Girin ")
url = ("https://blockchain.info/q/addressbalance/"+tr)

url_oku = urllib.request.urlopen(url)

soup = BeautifulSoup(url_oku, 'html.parser')
 
print(soup)
print (tr)

<<<<

ben burada bir txt dosyasından tr değişkenini satır satır çekmek istiyorum... (her bir satıra bir adres gelecek şekilde oluşturulmuş 10 satırlık bir txt dosyası mesala ) Bunu nasıl yapabilirim? çıktıyıda başka bir txt dosyasına yazdırmak...


Bu şekilde dış bir kaynaktan sorgulama yaparsanız en fazla 10 sorguya yanıt alırsınız, bir süre sonra site ddos saldırısına uğradığını düşünüp sizi bloklayacaktır.

Bunun yerine core kullanmanız daha yerinde olacaktır.

cevabın için teşekkürler. onları daha önceden inceledim. bazı siteler var anlık sayfada 128 adet adres üretiyor ve depolamıyor. sistemi kontrol ettiğimde 4 yıllık aktif site şimdiye kadar 2 milyar adres üretmiş. yani random herkes neredeyse birbirini takip etmiş. biraz o mantığa benziyor. ben bunu yine MysQL ile çalıştırıyorum. tx leri kontrol ediyorum şayet cevap gelmezse veya ıp kısıtlama gelirse o adresi hata birimine geri yazıyor. bunun denemesini 3 milyon adresi 3 parçaya böldüm ve 3 programla aynı anda başlattım yine 1 saniyede 11x3 şeklinde buldu. 3 milyon adres de 18 adet hata verdi. deneme yaparken adresler arasına içi dolu olan adresler ekledim ve buldu. 3 milyon keyde 18 adet gayet iyi gibi. fotoda hata kodu var. Evdeki ekran kartım oclvanitygen diffi yükselttiğim de tek kart ile saniyede 78mkey tarama yapıyor. ethereum için ise en iyisi küfür programı 98mkeys amd 580 8gb mavi kart ile. tabiki imkanlar kısıtlı bir FPGA miners: Xilinx BCU 1525 kart olmuş olsa eter adresi çözmek 1 hafta sürmeyebilir.

https://www.imagevisit.com/image/gWUCZ
full member
Activity: 156
Merit: 170
Konuyu uzun zamandır inceliyorum. imkansız bir şey biliyorum. yine de denemek istedim. vanity programi ile üretmiş olduğum adresi kendi yazdığım program ile blockchain api den sorgulama yapıyorum. Dandik bir bilgisayar ile denememde 1saniyede 11'e yakın adres sorgulaması yapabildim. Başka güzel ve hizli api bilen varsa geri dönüş yaparsa sevinirim. Amacım bütün apilere keyleri göndermek ve daha hizlı geri dönüş almak. Programın tarama sonrası bir fotosunu attım. eski tarihli boş bir tane key bulmuş.

https://www.imagevisit.com/image/gWr4o      

API üzerinden yapacağınız işlemler size çok fazla fayda sağlamayacaktır. belirli adetlerde sorgulama yaparsınız ve sonrasında program çalışır ama balance bilgileriniz
sürekli olarak ''0'' olarak gözükür. konuyu baştan sona okuduğunuzu ve unuttuğunuzu düşünerek önceki sayfalarda bunlarla ilgili örnekler bulabilirsiniz.


Benim size önerim daha farklı olabilir. Random btc adresi üretip bunların bakiyelerini sorgulamak yerine kullanılan aktif bitcoin adreslerini alıp bir database oluşturun ve random bitcoin adresi - private key üreterek benzerlik taraması yaptırın. python bilginiz ne durumda bilmiyorum ama bununla ilgili rahat bir çalışma yapabilirsiniz. yine size örnek olması açısından bir iki program linki bırakıyorum bunları inceleyip kendinize uygun bir program yazabilirsiniz veya mevcutta olanları kullanabilirsiniz.

Plutus : https://github.com/Isaacdelly/Plutus

Açıklama : Database dosyası içerisinde bulunan adresleri kullanır ve random bitcoin adresi üreterek benzerlik araması yapar. program açıklamasında 3-6 ay arasında database dosyasının güncellendiğini yazıyor şu an 4 ay geçmiş bir hareket yok. saniyede yaklaşık 370 civarı (işlemci hızına göre) arama yaptığını yazmış. yine siz bunu ortalama 150-200 olarak hesaplayın.


Brutus : https://github.com/diehummel/Brutus

Açıklama : line 57 bölümündeki bitcoin adresini değiştirip istediğiniz adresi yazarak yine random oluşturulan adres ve private keyler ile benzerlik araması yaptırır. yine çok hızlı bir uygulama değil ama en azından içerisindeki kodlar size fikir verebilir.

Mfbc : https://github.com/mobb111/mfbc-master

Diğer iki programla aynı mantık, database içerisinde yer alan adreslere random adres ve key üreterek adres benzerliği sorgular.


Bütün bu programların aslında kendi içerisinde boş olduğunu düşünüyorum ama sistemi hiç yormayan ve mantıklı olanları kullanmaya çalışıyorum. MFBC dosyasında yer alan database dosyasını istediğiniz adresleri editleyerek -az veya çok- kendi sisteminizi kurabilirsiniz.

yine sorunuza cevaben bu konudan ilgili alıntıyı sizinle paylaşıyorum. mesajın üst bölümüne tıklayarak devam eden yazışmaları takip edebilirsiniz.. son olarak balance kontrolü yerine benzerlik taraması yaptırmak daha mantıklı.. örneğin database içerisinde yer alan adresleri gruplayarak yani 1cf, 1sp, 1pp, 1az gibi random adresler üreterek sorgulatmak daha mantıklı diye düşünüyorum.

Arkadaşlar Python öğrenmeye çalışıyorum da bir sorum olacak ustalardan ;

kod şu

bu kodla girilen adresin bakiye kontrolü yapılıyor
>>>>>>

from bs4 import BeautifulSoup
import urllib.request
 
tr = input(" Adres Girin ")
url = ("https://blockchain.info/q/addressbalance/"+tr)

url_oku = urllib.request.urlopen(url)

soup = BeautifulSoup(url_oku, 'html.parser')
 
print(soup)
print (tr)

<<<<<<<

ben burada bir txt dosyasından tr değişkenini satır satır çekmek istiyorum... (her bir satıra bir adres gelecek şekilde oluşturulmuş 10 satırlık bir txt dosyası mesala ) Bunu nasıl yapabilirim? çıktıyıda başka bir txt dosyasına yazdırmak...


Bu şekilde dış bir kaynaktan sorgulama yaparsanız en fazla 10 sorguya yanıt alırsınız, bir süre sonra site ddos saldırısına uğradığını düşünüp sizi bloklayacaktır.

Bunun yerine core kullanmanız daha yerinde olacaktır.
newbie
Activity: 27
Merit: 1
Konuyu uzun zamandır inceliyorum. imkansız bir şey biliyorum. yine de denemek istedim. vanity programi ile üretmiş olduğum adresi kendi yazdığım program ile blockchain api den sorgulama yapıyorum. Dandik bir bilgisayar ile denememde 1saniyede 11'e yakın adres sorgulaması yapabildim. Başka güzel ve hizli api bilen varsa geri dönüş yaparsa sevinirim. Amacım bütün apilere keyleri göndermek ve daha hizlı geri dönüş almak. Programın tarama sonrası bir fotosunu attım. eski tarihli boş bir tane key bulmuş.

https://www.imagevisit.com/image/gWr4o       
newbie
Activity: 25
Merit: 2
eth tarafında da  geth uygulaması ile console açılarak eth adres üretimi çok hızlı olarak yapılabiliyor ve balance kontrolu ancak rpc üzerinden komutlara karşılık cevap alamadım.

Eth için kullandığım Python scripti;

#-*-coding:utf-8-*-
#!/usr/bin/python3

import os
from ethereum import utils
import time
from web3 import Web3, HTTPProvider, IPCProvider, WebsocketProvider



start = time.time()


a = 1
while(a<=5000000):
   zaman=time.time()-start
   private_key = utils.sha3(os.urandom(64))
   raw = utils.privtoaddr(private_key)
   acc_address = (utils.checksum_encode(raw)).lower()

   z=utils.encode_hex(private_key)
   
   infura_url = "https://mainnet.infura.io/v3/"İNFURA PRİVATE KEY""
   web3 = Web3(Web3.HTTPProvider(infura_url))
   address = (Web3.toChecksumAddress(acc_address))
   balance = web3.eth.getBalance(address)
   amount = float(balance)
   print("Private Key = "+z+" "+"Address = "+acc_address+    " Miktar= "+str(web3.fromWei(balance, "ether"))+" "+str(a))
   #print(web3.fromWei(balance, "ether"))
   
   if amount > 0:
      print("Wallet Bulundu")
      print("Private Key = "+z)
      print("Adres = "+address)
      print("Ether = "+str(web3.fromWei(balance, "ether")))
      dosya=open("Bulunan.txt","a")
      dosya.write(z+" "+address+" "+str(web3.fromWei(balance, "ether"))+ "\n")
      dosya.close()

   a = a + 1
   
   
   
print("toplam zaman % saniye " %zaman)

Edit; İnfura Private key kısmı değiştirilmiştir.


merhaba paylaştığın kod için teşekkürler geth ile aynı dizindemi çalıştırılacak vs kodun kullanımını biraz daha açıklayabilirsen kullanıcılar için daha yardımcı olacaktır
Günaydın geri dönüş için teşekkür ederim,ben aylardır bitcoin tabanından daha çok araştırmalarımı ethereum üzerine kurmuş bulunmaktayım. Kod Java bilmediğim için python'da yazılmıştır. Web3.py modülü kullanıldı. Kullanabilmek için gerekli modüller yüklenmelidir. İnfura.io üzerinden API bağlantısını kullanmakta bunun için, İnfura.io'da üyelik alıp,proje oluşturmalı daha sonra kod kısmında ki "infura_url =" kısmına oluşturduğunuz bağlantının "Endpoint Mainnet" kısmında yazan url adresini yazmanız,yeterli olacaktır. Olası bir problem de dm üzerinden iletişime geçebilirsiniz. Elimden geldiğince yardımcı olacağım. Aynı zamanda daha hızlı iletişim için, telegram adresim;wahrenheit2

İlaveten;
Token balance'lerini çekebilmek için hala çalışıyorum. Ancak bilgim,yetersiz kalıyor. Geliştiren arkadaşlar bilgilendirirse sevinirim.

Edit; Telegram adresimden grup yoğunluğu sebebiyle görmeyebilirim. Bu sebeple mail adresimi de bırakıyorum; [email protected]
full member
Activity: 156
Merit: 170
Konuyu ilgiyle takip ediyorum. belki işinize yarar ethereum adres üretimi için şöyle bir rehber hazırlamıştım : https://bitcointalksearch.org/topic/ozel-ethereum-adresleri-oluturmak-rehber-windows-mac-5160868




member
Activity: 126
Merit: 38
eth tarafında da  geth uygulaması ile console açılarak eth adres üretimi çok hızlı olarak yapılabiliyor ve balance kontrolu ancak rpc üzerinden komutlara karşılık cevap alamadım.

Eth için kullandığım Python scripti;

#-*-coding:utf-8-*-
#!/usr/bin/python3

import os
from ethereum import utils
import time
from web3 import Web3, HTTPProvider, IPCProvider, WebsocketProvider



start = time.time()


a = 1
while(a<=5000000):
   zaman=time.time()-start
   private_key = utils.sha3(os.urandom(64))
   raw = utils.privtoaddr(private_key)
   acc_address = (utils.checksum_encode(raw)).lower()

   z=utils.encode_hex(private_key)
   
   infura_url = "https://mainnet.infura.io/v3/"İNFURA PRİVATE KEY""
   web3 = Web3(Web3.HTTPProvider(infura_url))
   address = (Web3.toChecksumAddress(acc_address))
   balance = web3.eth.getBalance(address)
   amount = float(balance)
   print("Private Key = "+z+" "+"Address = "+acc_address+    " Miktar= "+str(web3.fromWei(balance, "ether"))+" "+str(a))
   #print(web3.fromWei(balance, "ether"))
   
   if amount > 0:
      print("Wallet Bulundu")
      print("Private Key = "+z)
      print("Adres = "+address)
      print("Ether = "+str(web3.fromWei(balance, "ether")))
      dosya=open("Bulunan.txt","a")
      dosya.write(z+" "+address+" "+str(web3.fromWei(balance, "ether"))+ "\n")
      dosya.close()

   a = a + 1
   
   
   
print("toplam zaman % saniye " %zaman)

Edit; İnfura Private key kısmı değiştirilmiştir.


merhaba paylaştığın kod için teşekkürler geth ile aynı dizindemi çalıştırılacak vs kodun kullanımını biraz daha açıklayabilirsen kullanıcılar için daha yardımcı olacaktır
newbie
Activity: 25
Merit: 2
eth tarafında da  geth uygulaması ile console açılarak eth adres üretimi çok hızlı olarak yapılabiliyor ve balance kontrolu ancak rpc üzerinden komutlara karşılık cevap alamadım.

Eth için kullandığım Python scripti;

#-*-coding:utf-8-*-
#!/usr/bin/python3

import os
from ethereum import utils
import time
from web3 import Web3, HTTPProvider, IPCProvider, WebsocketProvider



start = time.time()


a = 1
while(a<=5000000):
   zaman=time.time()-start
   private_key = utils.sha3(os.urandom(64))
   raw = utils.privtoaddr(private_key)
   acc_address = (utils.checksum_encode(raw)).lower()

   z=utils.encode_hex(private_key)
   
   infura_url = "https://mainnet.infura.io/v3/"İNFURA PRİVATE KEY""
   web3 = Web3(Web3.HTTPProvider(infura_url))
   address = (Web3.toChecksumAddress(acc_address))
   balance = web3.eth.getBalance(address)
   amount = float(balance)
   print("Private Key = "+z+" "+"Address = "+acc_address+    " Miktar= "+str(web3.fromWei(balance, "ether"))+" "+str(a))
   #print(web3.fromWei(balance, "ether"))
   
   if amount > 0:
      print("Wallet Bulundu")
      print("Private Key = "+z)
      print("Adres = "+address)
      print("Ether = "+str(web3.fromWei(balance, "ether")))
      dosya=open("Bulunan.txt","a")
      dosya.write(z+" "+address+" "+str(web3.fromWei(balance, "ether"))+ "\n")
      dosya.close()

   a = a + 1
   
   
   
print("toplam zaman % saniye " %zaman)

Edit; İnfura Private key kısmı değiştirilmiştir.
legendary
Activity: 1554
Merit: 1334
bitcoin için geçerli elimizde 12 15 18 veya 24 kelimelik bir seed var ve biz bu seed in tüm alt adreslere ve wif keylerine ulaşmak istiyoruz...daha önce söylediğim gibi tek seed ile oluşabilecek adres sayısı 2^32 dir...

hd walletin size kullanmanız için verdiği adresler bu 2^32 lik havuzdan random seçilmektedir...


numberofreceivingaddresses=5000;
numberofchangeaddresses=5000;

bu yukardaki iki satır oluşturmak istediğiniz alt adres sayısıdır burada değeri çok girerseniz bilgisayar zayıf ise donma yapıyor... dikkat ederseniz 2 deger vardır aslında oluşturulabilecek adres sayısı 2^31 * 2 -1 dir....

seed="pluck envelope sheriff fun copper leaf force start family prefer nature again";

burayada seed i giriyorsunuz...

2.7 de denenmiştir sorunsuz çalışmaktadır...

HERKESE BOL ŞANS....



Tekrar merhaba.
Ethereum adres üretimi için uyarlayabilirsem çalıştırmaya başlayacağım. Teşekkürler Smiley
member
Activity: 126
Merit: 38
bitcoin için geçerli elimizde 12 15 18 veya 24 kelimelik bir seed var ve biz bu seed in tüm alt adreslere ve wif keylerine ulaşmak istiyoruz...daha önce söylediğim gibi tek seed ile oluşabilecek adres sayısı 2^32 dir...

hd walletin size kullanmanız için verdiği adresler bu 2^32 lik havuzdan random seçilmektedir...


numberofreceivingaddresses=5000;
numberofchangeaddresses=5000;

bu yukardaki iki satır oluşturmak istediğiniz alt adres sayısıdır burada değeri çok girerseniz bilgisayar zayıf ise donma yapıyor... dikkat ederseniz 2 deger vardır aslında oluşturulabilecek adres sayısı 2^31 * 2 -1 dir....

seed="pluck envelope sheriff fun copper leaf force start family prefer nature again";

burayada seed i giriyorsunuz...

2.7 de denenmiştir sorunsuz çalışmaktadır...

HERKESE BOL ŞANS....


import hashlib, ecdsa
from ecdsa.curves import SECP256k1
from ecdsa.ellipticcurve import Point
from ecdsa.util import string_to_number, number_to_string
from ecdsa.ecdsa import curve_secp256k1, generator_secp256k1
#
#
#
#
#
#

##--------------------------------------------------------------------------

numberofreceivingaddresses=5000;
numberofchangeaddresses=5000;
seed="pluck envelope sheriff fun copper leaf force start family prefer nature again";

##--------------------------------------------------------------------------
def sha256(x):
       return hashlib.sha256(x).digest()

def Hash(x):
       if type(x) is unicode: x=x.encode('utf-8')
       return sha256(sha256(x))

def pw_decode(s, password):
       if password is not None:
           secret = Hash(password)
           try:
               d = DecodeAES(secret, s).decode("utf8")
           except Exception:
               raise Exception('Invalid password')
           return d
       else:
           return s

def get_address(mpk,  for_change, n):
       pubkey =  get_pubkey(mpk,for_change, n)
       address = public_key_to_bc_address( pubkey.decode('hex') )
       print "Address " + str(n) + ": " + address;
       print "public key";
       print "     "+pubkey;
       return address


def get_pubkey(mpk, for_change, n):
           curve = SECP256k1
           z = get_sequence(mpk,for_change,n);
           master_public_key = ecdsa.VerifyingKey.from_string( mpk, curve = SECP256k1 )
           pubkey_point = master_public_key.pubkey.point + z*curve.generator
           public_key2 = ecdsa.VerifyingKey.from_public_point( pubkey_point, curve = SECP256k1 )
           return '04' + public_key2.to_string().encode('hex')

def get_sequence(mpk, for_change, n):
           return string_to_number( Hash( "%d:%d:"%(n,for_change) + mpk ) )

def get_private_key_from_stretched_exponent(mpk,for_change, n, secexp):
           order = generator_secp256k1.order()
           secexp = ( secexp + get_sequence(mpk,for_change, n) ) % order
           pk = number_to_string( secexp, generator_secp256k1.order() )
           compressed = False
           return SecretToASecret( pk, compressed )

def get_private_key(mpk,seed, sequence):
           for_change, n = sequence
           secexp = stretch_key(seed)
           pk = get_private_key_from_stretched_exponent(mpk,for_change, n, secexp)
           return pk;

def stretch_key(seed):
           oldseed = seed
           for i in range(100000):
               seed = hashlib.sha256(seed + oldseed).digest()
           return string_to_number( seed )

def public_key_to_bc_address(public_key):
       h160 = hash_160(public_key)
       return hash_160_to_bc_address(h160)

def SecretToASecret(secret, compressed=False, addrtype=0):
       vchIn = chr((addrtype+128)&255) + secret
       if compressed: vchIn += '\01'
       return EncodeBase58Check(vchIn)

def EncodeBase58Check(vchIn):
       hash = Hash(vchIn)
       return b58encode(vchIn + hash[0:4])

def b58encode(v):
       """ encode v, which is a string of bytes, to base58."""

       long_value = 0L
       for (i, c) in enumerate(v[::-1]):
           long_value += (256**i) * ord(c)
       result = ''
       while long_value >= __b58base:
           div, mod = divmod(long_value, __b58base)
           result = __b58chars[mod] + result
           long_value = div
       result = __b58chars[long_value] + result

       # Bitcoin does a little leading-zero-compression:
       # leading 0-bytes in the input become leading-1s
       nPad = 0
       for c in v:
           if c == '\0': nPad += 1
           else: break

       return (__b58chars[0]*nPad) + result

def hash_160(public_key):
       try:
           md = hashlib.new('ripemd160')
           md.update(sha256(public_key))
           return md.digest()
       except Exception:
           import ripemd
           md = ripemd.new(sha256(public_key))
           return md.digest()

def hash_160_to_bc_address(h160, addrtype = 0):
       vh160 = chr(addrtype) + h160
       h = Hash(vh160)
       addr = vh160 + h[0:4]
       return b58encode(addr)

__b58chars = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
__b58base = len(__b58chars)

##-------------------------------------------------------------------------------

words = [ "abandon", "ability", "able", "about", "above", "absent", "absorb", "abstract", "absurd", "abuse", "access", "accident", "account", "accuse", "achieve", "acid", "acoustic", "acquire", "across", "act", "action", "actor", "actress", "actual", "adapt", "add", "addict", "address", "adjust", "admit", "adult", "advance", "advice", "aerobic", "affair", "afford", "afraid", "again", "age", "agent", "agree", "ahead", "aim", "air", "airport", "aisle", "alarm", "album", "alcohol", "alert", "alien", "all", "alley", "allow", "almost", "alone", "alpha", "already", "also", "alter", "always", "amateur", "amazing", "among", "amount", "amused", "analyst", "anchor", "ancient", "anger", "angle", "angry", "animal", "ankle", "announce", "annual", "another", "answer", "antenna", "antique", "anxiety", "any", "apart", "apology", "appear", "apple", "approve", "april", "arch", "arctic", "area", "arena", "argue", "arm", "armed", "armor", "army", "around", "arrange", "arrest", "arrive", "arrow", "art", "artefact", "artist", "artwork", "ask", "aspect", "assault", "asset", "assist", "assume", "asthma", "athlete", "atom", "attack", "attend", "attitude", "attract", "auction", "audit", "august", "aunt", "author", "auto", "autumn", "average", "avocado", "avoid", "awake", "aware", "away", "awesome", "awful", "awkward", "axis", "baby", "bachelor", "bacon", "badge", "bag", "balance", "balcony", "ball", "bamboo", "banana", "banner", "bar", "barely", "bargain", "barrel", "base", "basic", "basket", "battle", "beach", "bean", "beauty", "because", "become", "beef", "before", "begin", "behave", "behind", "believe", "below", "belt", "bench", "benefit", "best", "betray", "better", "between", "beyond", "bicycle", "bid", "bike", "bind", "biology", "bird", "birth", "bitter", "black", "blade", "blame", "blanket", "blast", "bleak", "bless", "blind", "blood", "blossom", "blouse", "blue", "blur", "blush", "board", "boat", "body", "boil", "bomb", "bone", "bonus", "book", "boost", "border", "boring", "borrow", "boss", "bottom", "bounce", "box", "boy", "bracket", "brain", "brand", "brass", "brave", "bread", "breeze", "brick", "bridge", "brief", "bright", "bring", "brisk", "broccoli", "broken", "bronze", "broom", "brother", "brown", "brush", "bubble", "buddy", "budget", "buffalo", "build", "bulb", "bulk", "bullet", "bundle", "bunker", "burden", "burger", "burst", "bus", "business", "busy", "butter", "buyer", "buzz", "cabbage", "cabin", "cable", "cactus", "cage", "cake", "call", "calm", "camera", "camp", "can", "canal", "cancel", "candy", "cannon", "canoe", "canvas", "canyon", "capable", "capital", "captain", "car", "carbon", "card", "cargo", "carpet", "carry", "cart", "case", "cash", "casino", "castle", "casual", "cat", "catalog", "catch", "category", "cattle", "caught", "cause", "caution", "cave", "ceiling", "celery", "cement", "census", "century", "cereal", "certain", "chair", "chalk", "champion", "change", "chaos", "chapter", "charge", "chase", "chat", "cheap", "check", "cheese", "chef", "cherry", "chest", "chicken", "chief", "child", "chimney", "choice", "choose", "chronic", "chuckle", "chunk", "churn", "cigar", "cinnamon", "circle", "citizen", "city", "civil", "claim", "clap", "clarify", "claw", "clay", "clean", "clerk", "clever", "click", "client", "cliff", "climb", "clinic", "clip", "clock", "clog", "close", "cloth", "cloud", "clown", "club", "clump", "cluster", "clutch", "coach", "coast", "coconut", "code", "coffee", "coil", "coin", "collect", "color", "column", "combine", "come", "comfort", "comic", "common", "company", "concert", "conduct", "confirm", "congress", "connect", "consider", "control", "convince", "cook", "cool", "copper", "copy", "coral", "core", "corn", "correct", "cost", "cotton", "couch", "country", "couple", "course", "cousin", "cover", "coyote", "crack", "cradle", "craft", "cram", "crane", "crash", "crater", "crawl", "crazy", "cream", "credit", "creek", "crew", "cricket", "crime", "crisp", "critic", "crop", "cross", "crouch", "crowd", "crucial", "cruel", "cruise", "crumble", "crunch", "crush", "cry", "crystal", "cube", "culture", "cup", "cupboard", "curious", "current", "curtain", "curve", "cushion", "custom", "cute", "cycle", "dad", "damage", "damp", "dance", "danger", "daring", "dash", "daughter", "dawn", "day", "deal", "debate", "debris", "decade", "december", "decide", "decline", "decorate", "decrease", "deer", "defense", "define", "defy", "degree", "delay", "deliver", "demand", "demise", "denial", "dentist", "deny", "depart", "depend", "deposit", "depth", "deputy", "derive", "describe", "desert", "design", "desk", "despair", "destroy", "detail", "detect", "develop", "device", "devote", "diagram", "dial", "diamond", "diary", "dice", "diesel", "diet", "differ", "digital", "dignity", "dilemma", "dinner", "dinosaur", "direct", "dirt", "disagree", "discover", "disease", "dish", "dismiss", "disorder", "display", "distance", "divert", "divide", "divorce", "dizzy", "doctor", "document", "dog", "doll", "dolphin", "domain", "donate", "donkey", "donor", "door", "dose", "double", "dove", "draft", "dragon", "drama", "drastic", "draw", "dream", "dress", "drift", "drill", "drink", "drip", "drive", "drop", "drum", "dry", "duck", "dumb", "dune", "during", "dust", "dutch", "duty", "dwarf", "dynamic", "eager", "eagle", "early", "earn", "earth", "easily", "east", "easy", "echo", "ecology", "economy", "edge", "edit", "educate", "effort", "egg", "eight", "either", "elbow", "elder", "electric", "elegant", "element", "elephant", "elevator", "elite", "else", "embark", "embody", "embrace", "emerge", "emotion", "employ", "empower", "empty", "enable", "enact", "end", "endless", "endorse", "enemy", "energy", "enforce", "engage", "engine", "enhance", "enjoy", "enlist", "enough", "enrich", "enroll", "ensure", "enter", "entire", "entry", "envelope", "episode", "equal", "equip", "era", "erase", "erode", "erosion", "error", "erupt", "escape", "essay", "essence", "estate", "eternal", "ethics", "evidence", "evil", "evoke", "evolve", "exact", "example", "excess", "exchange", "excite", "exclude", "excuse", "execute", "exercise", "exhaust", "exhibit", "exile", "exist", "exit", "exotic", "expand", "expect", "expire", "explain", "expose", "express", "extend", "extra", "eye", "eyebrow", "fabric", "face", "faculty", "fade", "faint", "faith", "fall", "false", "fame", "family", "famous", "fan", "fancy", "fantasy", "farm", "fashion", "fat", "fatal", "father", "fatigue", "fault", "favorite", "feature", "february", "federal", "fee", "feed", "feel", "female", "fence", "festival", "fetch", "fever", "few", "fiber", "fiction", "field", "figure", "file", "film", "filter", "final", "find", "fine", "finger", "finish", "fire", "firm", "first", "fiscal", "fish", "fit", "fitness", "fix", "flag", "flame", "flash", "flat", "flavor", "flee", "flight", "flip", "float", "flock", "floor", "flower", "fluid", "flush", "fly", "foam", "focus", "fog", "foil", "fold", "follow", "food", "foot", "force", "forest", "forget", "fork", "fortune", "forum", "forward", "fossil", "foster", "found", "fox", "fragile", "frame", "frequent", "fresh", "friend", "fringe", "frog", "front", "frost", "frown", "frozen", "fruit", "fuel", "fun", "funny", "furnace", "fury", "future", "gadget", "gain", "galaxy", "gallery", "game", "gap", "garage", "garbage", "garden", "garlic", "garment", "gas", "gasp", "gate", "gather", "gauge", "gaze", "general", "genius", "genre", "gentle", "genuine", "gesture", "ghost", "giant", "gift", "giggle", "ginger", "giraffe", "girl", "give", "glad", "glance", "glare", "glass", "glide", "glimpse", "globe", "gloom", "glory", "glove", "glow", "glue", "goat", "goddess", "gold", "good", "goose", "gorilla", "gospel", "gossip", "govern", "gown", "grab", "grace", "grain", "grant", "grape", "grass", "gravity", "great", "green", "grid", "grief", "grit", "grocery", "group", "grow", "grunt", "guard", "guess", "guide", "guilt", "guitar", "gun", "gym", "habit", "hair", "half", "hammer", "hamster", "hand", "happy", "harbor", "hard", "harsh", "harvest", "hat", "have", "hawk", "hazard", "head", "health", "heart", "heavy", "hedgehog", "height", "hello", "helmet", "help", "hen", "hero", "hidden", "high", "hill", "hint", "hip", "hire", "history", "hobby", "hockey", "hold", "hole", "holiday", "hollow", "home", "honey", "hood", "hope", "horn", "horror", "horse", "hospital", "host", "hotel", "hour", "hover", "hub", "huge", "human", "humble", "humor", "hundred", "hungry", "hunt", "hurdle", "hurry", "hurt", "husband", "hybrid", "ice", "icon", "idea", "identify", "idle", "ignore", "ill", "illegal", "illness", "image", "imitate", "immense", "immune", "impact", "impose", "improve", "impulse", "inch", "include", "income", "increase", "index", "indicate", "indoor", "industry", "infant", "inflict", "inform", "inhale", "inherit", "initial", "inject", "injury", "inmate", "inner", "innocent", "input", "inquiry", "insane", "insect", "inside", "inspire", "install", "intact", "interest", "into", "invest", "invite", "involve", "iron", "island", "isolate", "issue", "item", "ivory", "jacket", "jaguar", "jar", "jazz", "jealous", "jeans", "jelly", "jewel", "job", "join", "joke", "journey", "joy", "judge", "juice", "jump", "jungle", "junior", "junk", "just", "kangaroo", "keen", "keep", "ketchup", "key", "kick", "kid", "kidney", "kind", "kingdom", "kiss", "kit", "kitchen", "kite", "kitten", "kiwi", "knee", "knife", "knock", "know", "lab", "label", "labor", "ladder", "lady", "lake", "lamp", "language", "laptop", "large", "later", "latin", "laugh", "laundry", "lava", "law", "lawn", "lawsuit", "layer", "lazy", "leader", "leaf", "learn", "leave", "lecture", "left", "leg", "legal", "legend", "leisure", "lemon", "lend", "length", "lens", "leopard", "lesson", "letter", "level", "liar", "liberty", "library", "license", "life", "lift", "light", "like", "limb", "limit", "link", "lion", "liquid", "list", "little", "live", "lizard", "load", "loan", "lobster", "local", "lock", "logic", "lonely", "long", "loop", "lottery", "loud", "lounge", "love", "loyal", "lucky", "luggage", "lumber", "lunar", "lunch", "luxury", "lyrics", "machine", "mad", "magic", "magnet", "maid", "mail", "main", "major", "make", "mammal", "man", "manage", "mandate", "mango", "mansion", "manual", "maple", "marble", "march", "margin", "marine", "market", "marriage", "mask", "mass", "master", "match", "material", "math", "matrix", "matter", "maximum", "maze", "meadow", "mean", "measure", "meat", "mechanic", "medal", "media", "melody", "melt", "member", "memory", "mention", "menu", "mercy", "merge", "merit", "merry", "mesh", "message", "metal", "method", "middle", "midnight", "milk", "million", "mimic", "mind", "minimum", "minor", "minute", "miracle", "mirror", "misery", "miss", "mistake", "mix", "mixed", "mixture", "mobile", "model", "modify", "mom", "moment", "monitor", "monkey", "monster", "month", "moon", "moral", "more", "morning", "mosquito", "mother", "motion", "motor", "mountain", "mouse", "move", "movie", "much", "muffin", "mule", "multiply", "muscle", "museum", "mushroom", "music", "must", "mutual", "myself", "mystery", "myth", "naive", "name", "napkin", "narrow", "nasty", "nation", "nature", "near", "neck", "need", "negative", "neglect", "neither", "nephew", "nerve", "nest", "net", "network", "neutral", "never", "news", "next", "nice", "night", "noble", "noise", "nominee", "noodle", "normal", "north", "nose", "notable", "note", "nothing", "notice", "novel", "now", "nuclear", "number", "nurse", "nut", "oak", "obey", "object", "oblige", "obscure", "observe", "obtain", "obvious", "occur", "ocean", "october", "odor", "off", "offer", "office", "often", "oil", "okay", "old", "olive", "olympic", "omit", "once", "one", "onion", "online", "only", "open", "opera", "opinion", "oppose", "option", "orange", "orbit", "orchard", "order", "ordinary", "organ", "orient", "original", "orphan", "ostrich", "other", "outdoor", "outer", "output", "outside", "oval", "oven", "over", "own", "owner", "oxygen", "oyster", "ozone", "pact", "paddle", "page", "pair", "palace", "palm", "panda", "panel", "panic", "panther", "paper", "parade", "parent", "park", "parrot", "party", "pass", "patch", "path", "patient", "patrol", "pattern", "pause", "pave", "payment", "peace", "peanut", "pear", "peasant", "pelican", "pen", "penalty", "pencil", "people", "pepper", "perfect", "permit", "person", "pet", "phone", "photo", "phrase", "physical", "piano", "picnic", "picture", "piece", "pig", "pigeon", "pill", "pilot", "pink", "pioneer", "pipe", "pistol", "pitch", "pizza", "place", "planet", "plastic", "plate", "play", "please", "pledge", "pluck", "plug", "plunge", "poem", "poet", "point", "polar", "pole", "police", "pond", "pony", "pool", "popular", "portion", "position", "possible", "post", "potato", "pottery", "poverty", "powder", "power", "practice", "praise", "predict", "prefer", "prepare", "present", "pretty", "prevent", "price", "pride", "primary", "print", "priority", "prison", "private", "prize", "problem", "process", "produce", "profit", "program", "project", "promote", "proof", "property", "prosper", "protect", "proud", "provide", "public", "pudding", "pull", "pulp", "pulse", "pumpkin", "punch", "pupil", "puppy", "purchase", "purity", "purpose", "purse", "push", "put", "puzzle", "pyramid", "quality", "quantum", "quarter", "question", "quick", "quit", "quiz", "quote", "rabbit", "raccoon", "race", "rack", "radar", "radio", "rail", "rain", "raise", "rally", "ramp", "ranch", "random", "range", "rapid", "rare", "rate", "rather", "raven", "raw", "razor", "ready", "real", "reason", "rebel", "rebuild", "recall", "receive", "recipe", "record", "recycle", "reduce", "reflect", "reform", "refuse", "region", "regret", "regular", "reject", "relax", "release", "relief", "rely", "remain", "remember", "remind", "remove", "render", "renew", "rent", "reopen", "repair", "repeat", "replace", "report", "require", "rescue", "resemble", "resist", "resource", "response", "result", "retire", "retreat", "return", "reunion", "reveal", "review", "reward", "rhythm", "rib", "ribbon", "rice", "rich", "ride", "ridge", "rifle", "right", "rigid", "ring", "riot", "ripple", "risk", "ritual", "rival", "river", "road", "roast", "robot", "robust", "rocket", "romance", "roof", "rookie", "room", "rose", "rotate", "rough", "round", "route", "royal", "rubber", "rude", "rug", "rule", "run", "runway", "rural", "sad", "saddle", "sadness", "safe", "sail", "salad", "salmon", "salon", "salt", "salute", "same", "sample", "sand", "satisfy", "satoshi", "sauce", "sausage", "save", "say", "scale", "scan", "scare", "scatter", "scene", "scheme", "school", "science", "scissors", "scorpion", "scout", "scrap", "screen", "script", "scrub", "sea", "search", "season", "seat", "second", "secret", "section", "security", "seed", "seek", "segment", "select", "sell", "seminar", "senior", "sense", "sentence", "series", "service", "session", "settle", "setup", "seven", "shadow", "shaft", "shallow", "share", "shed", "shell", "sheriff", "shield", "shift", "shine", "ship", "shiver", "shock", "shoe", "shoot", "shop", "short", "shoulder", "shove", "shrimp", "shrug", "shuffle", "shy", "sibling", "sick", "side", "siege", "sight", "sign", "silent", "silk", "silly", "silver", "similar", "simple", "since", "sing", "siren", "sister", "situate", "six", "size", "skate", "sketch", "ski", "skill", "skin", "skirt", "skull", "slab", "slam", "sleep", "slender", "slice", "slide", "slight", "slim", "slogan", "slot", "slow", "slush", "small", "smart", "smile", "smoke", "smooth", "snack", "snake", "snap", "sniff", "snow", "soap", "soccer", "social", "sock", "soda", "soft", "solar", "soldier", "solid", "solution", "solve", "someone", "song", "soon", "sorry", "sort", "soul", "sound", "soup", "source", "south", "space", "spare", "spatial", "spawn", "speak", "special", "speed", "spell", "spend", "sphere", "spice", "spider", "spike", "spin", "spirit", "split", "spoil", "sponsor", "spoon", "sport", "spot", "spray", "spread", "spring", "spy", "square", "squeeze", "squirrel", "stable", "stadium", "staff", "stage", "stairs", "stamp", "stand", "start", "state", "stay", "steak", "steel", "stem", "step", "stereo", "stick", "still", "sting", "stock", "stomach", "stone", "stool", "story", "stove", "strategy", "street", "strike", "strong", "struggle", "student", "stuff", "stumble", "style", "subject", "submit", "subway", "success", "such", "sudden", "suffer", "sugar", "suggest", "suit", "summer", "sun", "sunny", "sunset", "super", "supply", "supreme", "sure", "surface", "surge", "surprise", "surround", "survey", "suspect", "sustain", "swallow", "swamp", "swap", "swarm", "swear", "sweet", "swift", "swim", "swing", "switch", "sword", "symbol", "symptom", "syrup", "system", "table", "tackle", "tag", "tail", "talent", "talk", "tank", "tape", "target", "task", "taste", "tattoo", "taxi", "teach", "team", "tell", "ten", "tenant", "tennis", "tent", "term", "test", "text", "thank", "that", "theme", "then", "theory", "there", "they", "thing", "this", "thought", "three", "thrive", "throw", "thumb", "thunder", "ticket", "tide", "tiger", "tilt", "timber", "time", "tiny", "tip", "tired", "tissue", "title", "toast", "tobacco", "today", "toddler", "toe", "together", "toilet", "token", "tomato", "tomorrow", "tone", "tongue", "tonight", "tool", "tooth", "top", "topic", "topple", "torch", "tornado", "tortoise", "toss", "total", "tourist", "toward", "tower", "town", "toy", "track", "trade", "traffic", "tragic", "train", "transfer", "trap", "trash", "travel", "tray", "treat", "tree", "trend", "trial", "tribe", "trick", "trigger", "trim", "trip", "trophy", "trouble", "truck", "true", "truly", "trumpet", "trust", "truth", "try", "tube", "tuition", "tumble", "tuna", "tunnel", "turkey", "turn", "turtle", "twelve", "twenty", "twice", "twin", "twist", "two", "type", "typical", "ugly", "umbrella", "unable", "unaware", "uncle", "uncover", "under", "undo", "unfair", "unfold", "unhappy", "uniform", "unique", "unit", "universe", "unknown", "unlock", "until", "unusual", "unveil", "update", "upgrade", "uphold", "upon", "upper", "upset", "urban", "urge", "usage", "use", "used", "useful", "useless", "usual", "utility", "vacant", "vacuum", "vague", "valid", "valley", "valve", "van", "vanish", "vapor", "various", "vast", "vault", "vehicle", "velvet", "vendor", "venture", "venue", "verb", "verify", "version", "very", "vessel", "veteran", "viable", "vibrant", "vicious", "victory", "video", "view", "village", "vintage", "violin", "virtual", "virus", "visa", "visit", "visual", "vital", "vivid", "vocal", "voice", "void", "volcano", "volume", "vote", "voyage", "wage", "wagon", "wait", "walk", "wall", "walnut", "want", "warfare", "warm", "warrior", "wash", "wasp", "waste", "water", "wave", "way", "wealth", "weapon", "wear", "weasel", "weather", "web", "wedding", "weekend", "weird", "welcome", "west", "wet", "whale", "what", "wheat", "wheel", "when", "where", "whip", "whisper", "wide", "width", "wife", "wild", "will", "win", "window", "wine", "wing", "wink", "winner", "winter", "wire", "wisdom", "wise", "wish", "witness", "wolf", "woman", "wonder", "wood", "wool", "word", "work", "world", "worry", "worth", "wrap", "wreck", "wrestle", "wrist", "write", "wrong", "yard", "year", "yellow", "you", "young", "youth", "zebra", "zero", "zone", "zoo" ]

def mn_decode( wlist ):
       n=1626;
       out = ''
       for i in range(len(wlist)/3):
           word1, word2, word3 = wlist[3*i:3*i+3]
           w1 =  words.index(word1)
           w2 = (words.index(word2))%n
           w3 = (words.index(word3))%n
           x = w1 +n*((w2-w1)%n) +n*n*((w3-w2)%n)
           out += '%08x'%x
       return out

##--------------------------------------------------------------------------------

print "......ready to compute.....";
print " ";
seedlist=str.split(seed);

password = None;
seed=mn_decode(seedlist);

oldseed=seed;
newseed=stretch_key(seed);
curve = SECP256k1
master_private_key = ecdsa.SigningKey.from_secret_exponent( newseed, curve = SECP256k1 );
master_public_key = master_private_key.get_verifying_key().to_string().encode('hex');
mpk=master_public_key.decode('hex');

print "MASTER PUBLIC KEY IS "
print "  ";
print master_public_key;


print "  ";
print "  ";

print "++++++++++++++++++++++++++++++++++";

print "RECEIVING ADDRESSES ";
print "  ";
print "  ";

for ra in range(0,numberofreceivingaddresses):
       addy=get_address(mpk,0,ra);
       pk=get_private_key(mpk,oldseed,(0,ra));
       print "private key";
       print "     "+pk;
       print "  ";


print "++++++++++++++++++++++++++++++++++";

print "CHANGE ADDRESSES";

print "  ";
print "  ";

for ca in range(0,numberofchangeaddresses):
       addy=get_address(mpk,1,ca);
       pk=get_private_key(mpk,oldseed,(1,ca));
       print "private key";
       print "     "+pk;
       print "  ";






 
member
Activity: 126
Merit: 38
örneğin electrum  wallet te bir cüzdan oluşturuyorum

Seed bu
pluck envelope sheriff fun copper leaf force start family prefer nature again

otomatik içine 25 26 tane alım ve gönderim için adres atıyor

hd walletlerde bir tek seed ile bildiğim kadarıyla 2^32 tane adres üretmek mümkün şimdi bu seedle oluşturulan adres 1PLss2JFk4BYr685U2L2K8FSTsiyNZMSs3 bu walletten bağımsız ama ben electrum wallette bu adresi göremiyorum tek seed üzerinden oluşturulabilecek tüm adresleri girsem bile bu adresin oluşma olasılığı çok düşük...

aynı şey diğer tüm hd cüzdanlar içinde geçerli... burada kavram karğaşasına neden olan şey kurtarma seed i ile adreslerin seedleri birbirinden farklı olması... hd wallettlerde bir çatallanma söz konusudur burada çözümlenmesi gereken walletler içindeki algoritmadır electrum walletle bana verilen seed ile blockchain walleti kullanıp hesabı kurtamaya çalıştığımda sonuç alamıyorum

https://login.blockchain.com/tr/#/recover electrum da verilen seed burda hiç bir işe yaramıyor gördüğünüz gibi keza bir olasılık tutsa bile blockchain de açsa bile tamamıyla farklı adresler gözükecektir. dediğim gibi bu wallet algoritması ile ilgili bir karmaşadır.
sonuç olarak...

1- Size verilen Hd wallatlerdeki seed ler yani kurtarma  kelimeleri her hd wallette kendi algoritması içinde çatallanarak 2^32 tane adres oluşturabilir
2- Size verilen seed kullanılarak oluşturan adres walletinizdeki herhangi bir adreslerle alakalı bir adres değildir.
3- daha önceki mesajda paylaştığım kod tek bir seed ile Trezor ve Electrum walletlerde oluşturulabilecek adreslerin keylerini size verdiğini idda ediyor (daha denemedim)

Çok daha geniş bilgiyi https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki buradan okunabilinir...
elinizde 12 veya 24 kelimelik bir seed ve bir adres var ise 2^32 adres oluşturulup aranan adres oluşturulan adreslerde aranır.

Ekleme

ama ama ben seed ini bildiğim ayrıca parola olmayan bitcoin adresimi electrum a import ederken seed kelimelerini yazmam yeterli oluyor ve her seferinde içinde bakiye olna bitcoin adresime ulaşıyorum?


Bu walletin algoritmasıyla alakalı bir sorundur electrum dışında başka bir hd wallete import ederseniz seed inizi btc lerinize ulaşamazssanız çok büyük bir olasılık 2^32 lik bir hesabın içine giresiniz...
walletiniz https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki burdaki şemada anlatıldığı üzere bir adres derinliği oluşmaktadır walletin kendi algoritması gereği btc li adresleri ilk depth lere atmaktadır... ama bu seed i başka bir wallette kullandığınız zaman wallet algoritmaları farklı olduğu için bir kargaşa içinde coinleriniz 2^32 lik havuzda kaybolmaktadır...
member
Activity: 274
Merit: 88
Peki bir soru daha

Python ile ya da başka bir dille elimizdeki seed'den mevzubahis adresi üretene kadar farklı derivation path'ler üzerinden tarayacak bir kod var mı? Ne tarz bir şey olabilir?


walletlerde 2^32 gibi bir olasılık söz konu su sanırım ilk kökten itibaren hd wallette oluşturulabilecek adres sayısı

https://github.com/nilcons/crypto-key-derivation

şu konuyu bir kontrol edersen sanırım çözüm olacak
vereceğiniz seed le oluşturulabilecek adresleri gösteriyor ben denemedim bi boş vaktimde kodu deniyecegim

wallet uygulamalarındaki veya donanımlarla birlikte size verilen kurtarma seedleri (12 15 18 24 kelimelik şifreler) bütünün kendisidir örneğin blockchain walletiniz de 21 tane adres var.... bu adreslerin minikeyleri, private key leri, brain, public keyleri, Bib39 Seed leri her birinin ki birbirinden farklıdır. Cüzdanınızın tamamının kurtarma şifresi ni diyelimki 12 kelimelik bir seed bunun adres dönüşümünü yaptığınız zaman size 21 tane adresten herhangi birini vermez isterseniz cüzdan içinde trilyonlarca adres oluşturun (yine bir olasılık meselesi verebilir şu anki bizim yapmaya çalıştığımız şey aslında bu olasılık tirilyonlarca adres yaratıp dolu olana veya kullanılmış olana denk gelmek) yine yakalayamazssınız... kısaca siz eğer cüzdanın şifresi ni biliyorsanız walletteki tüm coinleri kurtarırsınız... ama bu cüzdandaki 21 tane adresten sadece birinin mini keyi , private key i, brain keyi, public keyli veya Bib39 Seed  vs inden birine sahipseniz sadece o bir adresi çekersiniz... bu sonuçla  kurtarma seed inzle oluşturulmuş adres sizinle hiç bir alakası olmayan bir adrestir ve bakiyesi de sıfırdır Smiley

yukarıda anlatmaya çalıştığım 24 kelimelik seed walletlerde başka bir algoritmayla ayrımlaşıyor ve alt dizinlere bölünüyor 2^32 gibi alt çatallanmaya gidiyor oluşan her bir adresin aynı zamanda kendi seed leri private key vs oluyor... ve sizin ana seed iniz oluşturduğunuz hiç bir adresle örtüşmüyor...

https://wiki.trezor.io/Address_path_(BIP32)
buradaki şemeda net bir şekilde anlatım gözüküyor
neyse ben zaten sorduğunuz soruyla alakasız bir açıklama yapmışım  Smiley Smiley Smiley


Doğru mu anladım?
elimdeki 21 kelimeden oluşan seed ile bir çok bitcoin adresi üretilebiliyor ve ben doğru bitcoin adresine gelmezsem ayvayı yiyorum öyle mi?

ama ama ben seed ini bildiğim ayrıca parola olmayan bitcoin adresimi electrum a import ederken seed kelimelerini yazmam yeterli oluyor ve her seferinde içinde bakiye olna bitcoin adresime ulaşıyorum?

Kavram karmaşıklığı mı yaşıyoruz? konuyu açıklar mısınız lütfen.
member
Activity: 126
Merit: 38
Peki bir soru daha

Python ile ya da başka bir dille elimizdeki seed'den mevzubahis adresi üretene kadar farklı derivation path'ler üzerinden tarayacak bir kod var mı? Ne tarz bir şey olabilir?


walletlerde 2^32 gibi bir olasılık söz konu su sanırım ilk kökten itibaren hd wallette oluşturulabilecek adres sayısı

https://github.com/nilcons/crypto-key-derivation

şu konuyu bir kontrol edersen sanırım çözüm olacak
vereceğiniz seed le oluşturulabilecek adresleri gösteriyor ben denemedim bi boş vaktimde kodu deniyecegim

wallet uygulamalarındaki veya donanımlarla birlikte size verilen kurtarma seedleri (12 15 18 24 kelimelik şifreler) bütünün kendisidir örneğin blockchain walletiniz de 21 tane adres var.... bu adreslerin minikeyleri, private key leri, brain, public keyleri, Bib39 Seed leri her birinin ki birbirinden farklıdır. Cüzdanınızın tamamının kurtarma şifresi ni diyelimki 12 kelimelik bir seed bunun adres dönüşümünü yaptığınız zaman size 21 tane adresten herhangi birini vermez isterseniz cüzdan içinde trilyonlarca adres oluşturun (yine bir olasılık meselesi verebilir şu anki bizim yapmaya çalıştığımız şey aslında bu olasılık tirilyonlarca adres yaratıp dolu olana veya kullanılmış olana denk gelmek) yine yakalayamazssınız... kısaca siz eğer cüzdanın şifresi ni biliyorsanız walletteki tüm coinleri kurtarırsınız... ama bu cüzdandaki 21 tane adresten sadece birinin mini keyi , private key i, brain keyi, public keyli veya Bib39 Seed  vs inden birine sahipseniz sadece o bir adresi çekersiniz... bu sonuçla  kurtarma seed inzle oluşturulmuş adres sizinle hiç bir alakası olmayan bir adrestir ve bakiyesi de sıfırdır Smiley

yukarıda anlatmaya çalıştığım 24 kelimelik seed walletlerde başka bir algoritmayla ayrımlaşıyor ve alt dizinlere bölünüyor 2^32 gibi alt çatallanmaya gidiyor oluşan her bir adresin aynı zamanda kendi seed leri private key vs oluyor... ve sizin ana seed iniz oluşturduğunuz hiç bir adresle örtüşmüyor...

https://wiki.trezor.io/Address_path_(BIP32)
buradaki şemeda net bir şekilde anlatım gözüküyor
neyse ben zaten sorduğunuz soruyla alakasız bir açıklama yapmışım  Smiley Smiley Smiley
member
Activity: 183
Merit: 35
Peki bir soru daha

Python ile ya da başka bir dille elimizdeki seed'den mevzubahis adresi üretene kadar farklı derivation path'ler üzerinden tarayacak bir kod var mı? Ne tarz bir şey olabilir?
Jüpiter önceki sayfalarda paylaştım dedi ama hangisi hiç bir fikrim yok Smiley

1. eth üzerine hiç çalışmadım Smiley
2. araştırma yapınca bu konuyu düzenleyeceğim.
3. bilinen kurallar bunlar ise : kelimeler biliniyor. Adres üretilen cihaz biliniyor. (Örnek ledger) derivation path bellidir. Değil ise kullanılan her derivation path'te misal 100K adres taranacak şekilde yazılabilir.

Python bilmiyorum. Bilen arkadaşım var. Dediğim gibi eth şu an ilgimi çekmiyor. Başta core olarak kurmayı denedim çok yavaştı iptal ettim. Key havuzum yeterli sayıya geldiğinde mutlaka eth ve diğerlerine de gireceğim. Şu an btc, ltc, dash, monero core güncel olarak çalışıyor. Belki zamanla diğerlerinede geçerim.

Konuya bulundu mu diyenlere aslında @Matthias9515'ın 2 sene sonra kendi cüzdanını bulması örnek gösterilebilir. Şimdi keyleri biliyormuş vs.. diyen olur 2 sene sonra bulmasına ne diyeceksiniz  Grin
legendary
Activity: 1554
Merit: 1334

1. adresleri saklıyor musun?
2. minikey olayını unutmuştum ona bakayım  Grin


1. adresleri saklamıyorum çok çok fazla veri oluşuyor.
2. Mini key olayında aranan aralık baya bir düşüyor. tabi mevcutta minikeyler de saklı bitcoin miktarıda düşüyor bunuda unutmamak lazım... bunun dışında her minikey e ait bir private key atandığı için... bilinen minikeyler de ki btc ler dışında da bitcoine denk gelme olasılığı var.
Peki taradığın aralıkları kaydediyor musun? 1 Milyardan, 1 Milyar 100 Bine kadar mesela? Birde iki tip adresi de kontrol ediyor musun?
Mini key için dediğin doğru en yakın zamanda bakacağım.

Yukarıda Matthias'ın da benim de bahsettiğim şey derivation path'ler zaten. O şekilde bahsettiğiniz "düşürülmüş havuzdan" balık tutmaya benziyor yaptığım ama havuz yine de çok büyük.
Havuz küçük olsa herkes girerdi  Grin 1feex için özellikle

Peki bir soru daha

Python ile ya da başka bir dille elimizdeki seed'den mevzubahis adresi üretene kadar farklı derivation path'ler üzerinden tarayacak bir kod var mı? Ne tarz bir şey olabilir?
Jüpiter önceki sayfalarda paylaştım dedi ama hangisi hiç bir fikrim yok Smiley
member
Activity: 183
Merit: 35

1. adresleri saklıyor musun?
2. minikey olayını unutmuştum ona bakayım  Grin


1. adresleri saklamıyorum çok çok fazla veri oluşuyor.
2. Mini key olayında aranan aralık baya bir düşüyor. tabi mevcutta minikeyler de saklı bitcoin miktarıda düşüyor bunuda unutmamak lazım... bunun dışında her minikey e ait bir private key atandığı için... bilinen minikeyler de ki btc ler dışında da bitcoine denk gelme olasılığı var.
Peki taradığın aralıkları kaydediyor musun? 1 Milyardan, 1 Milyar 100 Bine kadar mesela? Birde iki tip adresi de kontrol ediyor musun?
Mini key için dediğin doğru en yakın zamanda bakacağım.

Yukarıda Matthias'ın da benim de bahsettiğim şey derivation path'ler zaten. O şekilde bahsettiğiniz "düşürülmüş havuzdan" balık tutmaya benziyor yaptığım ama havuz yine de çok büyük.
Havuz küçük olsa herkes girerdi  Grin 1feex için özellikle
legendary
Activity: 1554
Merit: 1334
Ben de şimdi sizin bahsettiğinizi anlayamadım Smiley

Ledger veya diğer donanım cüzdanlar ilk kurulumda 24 kelimelik seed veriyor ve her şeyin bu 24 kelimede olduğunu söylüyor.
Bu 24 kelime ile Ledger bana her bitcoin receive dediğimde farklı btc adresi veriyor.
Myetherwallet gibi bir siteye Ledger ile bağlandığım zaman bana onlarca binlerce eth adresi veriyor ve hepsini kullanabiliyorum, sonuçta hepsi sadece ve sadece bu 24 kelimeden oluşturulmuş cüzdanlar.
Ledger'ın 24 kelimeden ürettiği bir adrese eth atılmış ve daha sonra bu adresi göremiyor olabilir miyiz araştırdığımız konu bu.
Kaldı ki yukarıda Matthias bahsetmiş ve bu şekilde btc'lerine ulaşmış.
"derivation path" ile yapıyor. bir nevi dişli mekanizması. giren değer sabit olduğu halde dişli sistemine göre farklı çıktı üretiyor. Neticede oluşturduğu adreslerde aralık içerisinde bir yerde. "derivation path"  farklı çeşitlerde olabiliyor. Aynı kelimelerin tekrarlı ve tekrarsız kullanımlarına göre farklı değerler üretmesi normal 2048x2047.. şeklinde değilde "run x24" şeklinde olduğunda farklı olacaktır. yada "run stop run stop" gibi Cheesy neticede keyler varsa olasılıkları tüm havuzu taramaya göre çok çok düşürüyorsunuz.

Yukarıda Matthias'ın da benim de bahsettiğim şey derivation path'ler zaten. O şekilde bahsettiğiniz "düşürülmüş havuzdan" balık tutmaya benziyor yaptığım ama havuz yine de çok büyük.
member
Activity: 183
Merit: 35
Ben de şimdi sizin bahsettiğinizi anlayamadım Smiley

Ledger veya diğer donanım cüzdanlar ilk kurulumda 24 kelimelik seed veriyor ve her şeyin bu 24 kelimede olduğunu söylüyor.
Bu 24 kelime ile Ledger bana her bitcoin receive dediğimde farklı btc adresi veriyor.
Myetherwallet gibi bir siteye Ledger ile bağlandığım zaman bana onlarca binlerce eth adresi veriyor ve hepsini kullanabiliyorum, sonuçta hepsi sadece ve sadece bu 24 kelimeden oluşturulmuş cüzdanlar.
Ledger'ın 24 kelimeden ürettiği bir adrese eth atılmış ve daha sonra bu adresi göremiyor olabilir miyiz araştırdığımız konu bu.
Kaldı ki yukarıda Matthias bahsetmiş ve bu şekilde btc'lerine ulaşmış.
"derivation path" ile yapıyor. bir nevi dişli mekanizması. giren değer sabit olduğu halde dişli sistemine göre farklı çıktı üretiyor. Neticede oluşturduğu adreslerde aralık içerisinde bir yerde. "derivation path"  farklı çeşitlerde olabiliyor. Aynı kelimelerin tekrarlı ve tekrarsız kullanımlarına göre farklı değerler üretmesi normal 2048x2047.. şeklinde değilde "run x24" şeklinde olduğunda farklı olacaktır. yada "run stop run stop" gibi Cheesy neticede keyler varsa olasılıkları tüm havuzu taramaya göre çok çok düşürüyorsunuz.
legendary
Activity: 1554
Merit: 1334
Ben de şimdi sizin bahsettiğinizi anlayamadım Smiley

Ledger veya diğer donanım cüzdanlar ilk kurulumda 24 kelimelik seed veriyor ve her şeyin bu 24 kelimede olduğunu söylüyor.
Bu 24 kelime ile Ledger bana her bitcoin receive dediğimde farklı btc adresi veriyor.
Myetherwallet gibi bir siteye Ledger ile bağlandığım zaman bana onlarca binlerce eth adresi veriyor ve hepsini kullanabiliyorum, sonuçta hepsi sadece ve sadece bu 24 kelimeden oluşturulmuş cüzdanlar.
Ledger'ın 24 kelimeden ürettiği bir adrese eth atılmış ve daha sonra bu adresi göremiyor olabilir miyiz araştırdığımız konu bu.
Kaldı ki yukarıda Matthias bahsetmiş ve bu şekilde btc'lerine ulaşmış.
member
Activity: 126
Merit: 38
sorunu tam olarak anlayamadım ama anladığıma cevap vermeye çalışırsam
wallet uygulamalarındaki veya donanımlarla birlikte size verilen kurtarma seedleri (12 15 18 24 kelimelik şifreler) bütünün kendisidir örneğin blockchain walletiniz de 21 tane adres var.... bu adreslerin minikeyleri, private key leri, brain, public keyleri, Bib39 Seed leri her birinin ki birbirinden farklıdır. Cüzdanınızın tamamının kurtarma şifresi ni diyelimki 12 kelimelik bir seed bunun adres dönüşümünü yaptığınız zaman size 21 tane adresten herhangi birini vermez isterseniz cüzdan içinde trilyonlarca adres oluşturun (yine bir olasılık meselesi verebilir şu anki bizim yapmaya çalıştığımız şey aslında bu olasılık tirilyonlarca adres yaratıp dolu olana veya kullanılmış olana denk gelmek) yine yakalayamazssınız... kısaca siz eğer cüzdanın şifresi ni biliyorsanız walletteki tüm coinleri kurtarırsınız... ama bu cüzdandaki 21 tane adresten sadece birinin mini keyi , private key i, brain keyi, public keyli veya Bib39 Seed  vs inden birine sahipseniz sadece o bir adresi çekersiniz... bu sonuçla  kurtarma seed inzle oluşturulmuş adres sizinle hiç bir alakası olmayan bir adrestir ve bakiyesi de sıfırdır Smiley
legendary
Activity: 1554
Merit: 1334
Arkadaşlar merhaba.
12 veya 24 kelimelik bir seed'in üretebileceği Ethereum adreslerini nasıl tarayabilirim?
Teorik olarak 12 veya 24 kelimelik seed sonsuz sayıda adres mi üretir?
Bana danışan bir kişi Ledger Nano S'ten 24 kelimelik seed ürettiğini, bu seed'in ürettiği eth cüzdanına (Ledger Live'dan aldığı eth adresine) eth gönderdiğini ama sonra ulaşamadığını söylemekte.
Merak ettiğim konu şu, 24 kelimelik seed'in ürettiği cüzdanlar bize hangi sırayla gösteriliyor? Ledger ya da başka bir donanım cüzdan hangi sıraya göre bu cüzdanları gösteriyor? Bu donanım cüzdan boş cüzdanları gösteriyor olabilir mi? Asıl eth'lerin olduğu cüzdan'a ulaşma imkanımız nedir?

Elimizde olanlar;
Eth'lerin olduğu adres
24 kelimelik seed

İstediğimiz;
Bu adresin priv key'i.

Bu konuda yardımcı olabilecek kimse var mı acaba?

Bunu yaşadım ve çözebilirim.

BIP39’da farkli external ve accountları tek tek tarayacaksınız, BTC’mi 2 sene sonra kurtardım.

https://bitcointalksearch.org/topic/m.24663078

https://www.blockchain.com/btc/address/15We4LGzVgZP9atT8W8sPSWR15LwwFXtj6

Eğer kaybolan ETH miktari yuksek değilse ve bana güvenirse kurtarabilirim.

ETH miktari yüksekse BIP39’da

External 0
Account 0

External 0
Account 1

External 0
Account 2

External 0
Account 3

External 1
Account 0

External 1
Account 1

External 1
Account 2

Kısacası kombinasyon işlemi yapacak, ayrıca 20 rows yazan yeri 500 yapsın
Dün Bip39'la epey uğraştım fakat adresi bulamadım. Farklı derivation path'ler bile denedim hatta. Bi ara Ledger live'ın gösterdiği adresle Myetherwallet'ın gösterdiği adres farklıymış mesela, derivation path değiştirince düzelmiş. Onu denedim mesela çözüm olmadı.
More rows kısmından 5k kadar adres bile ürettim, yok Smiley


Ekleme:
Zaten external ve account kısmı bahsettiğim derivation path olayı. Ama bahsettiğin gibi çok alternatif denememiştim. Bugün müsait olunca deneyeyim.
Pages:
Jump to: