Pages:
Author

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

full member
Activity: 156
Merit: 170
Eğer talep gelirse güncel btc bloğuna kadar kullanılmış 1 ile başlayan adresleri isteyen varsa yükleye bilirim. Belirli periyotlarla güncellerim. GDrive veya istediğiniz, indirme sınırı ve kotası koymayacak bir yere. Şu an 14.5 GB boyutunda. Hangi adres aralığı daha fazla kullanılıyor falan diye istatistik çıkarmak isteyenlere yada belirli aralıkları taramak isteyeceklere fikir verebilir. Roll Eyes

Merhaba, güncel adreslere ihtiyacım var eğer zor olmayacaksa almak isterim Smiley
member
Activity: 183
Merit: 35
Bayadır konuyu takip etmiyordum, bir gelişme oldu mu? bir şeyler yakalandı mı? Ne kadar adres üretildi tarandı, karşılaştırıldı, proje üzerinde hala çalışanlar varsa bir istatistik paylaşsa güzel olurdu.

İstatistik tutmuyorum. Belirli bir adres desenine yönelik çalışıyorum. 1 BTC altı birkaç tane denk geldi. Ellemedim öyle duruyorlar Smiley

Eğer talep gelirse güncel btc bloğuna kadar kullanılmış 1 ile başlayan adresleri isteyen varsa yükleye bilirim. Belirli periyotlarla güncellerim. GDrive veya istediğiniz, indirme sınırı ve kotası koymayacak bir yere. Şu an 14.5 GB boyutunda. Hangi adres aralığı daha fazla kullanılıyor falan diye istatistik çıkarmak isteyenlere yada belirli aralıkları taramak isteyeceklere fikir verebilir. Roll Eyes
member
Activity: 122
Merit: 26
..... 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.

bu işere merak sarıp donanımsal sorunları olan arkadaşlarada bir çözüm

https://cloud.google.com/ yeni üyelere 300 dolarlık bir kullanım hakkı vermektedir... tek yapmanız gereken üye olduktan sonra compute engine kısmına girip sanal makine örneklerine giriceseksiniz orda oluştura tıklayıp cpu seçiminde 64 cpu ya kadar seçebilirsiniz... işletim sistemi olarak windows veya linux seçebilirsiniz 1 cpu ile 8 ay ücretsiz kullanım mümkün 96 cpu seçerseniz 1 kaç günlük süreniz olacaktır ben windows kullanmaktayım 64 cpu ile ethaddrgen.exe 500.000 altına düşmüyor  vanitygen veya diğer uygulamalarıda kullanabilirsiniz...

İlave: Özelden adres üretimi ile alakalı çok mesaj geliyor... Aşağıdaki basit bir kodu da kullanabilirsiniz random üretilen adresleri ve adres+keyleri ayrı dosyalara satır satır yazar karşılaştırma yapmak için txt dosyalarında hiçbir düzenleme yapmanıza gerek yok direk satır satır karşılaştırmaya geçebilirsiniz...

from bitcoin import *
f = open("sifreler.txt", "w")
z = open("addr.txt", "w")
for addr in range(1000):
    priv = sha256(random_key())
    pub = privtopub(priv)
    addr = pubtoaddr(pub)
    f.write(priv+ "\n"+ addr+ "\n")
    z.write(addr+ "\n")
    print (addr)
    #print (priv)
legendary
Activity: 1904
Merit: 1282
valla 1 ay boyunca  7/24 vanitygen ile adres ürettim bulunan 0
full member
Activity: 602
Merit: 122
Bayadır konuyu takip etmiyordum, bir gelişme oldu mu? bir şeyler yakalandı mı? Ne kadar adres üretildi tarandı, karşılaştırıldı, proje üzerinde hala çalışanlar varsa bir istatistik paylaşsa güzel olurdu.
member
Activity: 183
Merit: 35
Geçen gün Vanity gen ile uğraşırken aklıma farklı bir adres yaratma seçeneği geldi ama program üzerinde bilgim sınırlı olduğu için deneyemedim. Vanitygen ana konusuna baktım yine aynı şekilde istediğim gibi bir bilgi bulamadım.

Şöyle bir adresimiz olsun : 1Q643GzctxJC5LXWB6thEkWRv4XqU8Wqrz

Vanitygen üzerine şu şekilde arama yaptırma şansımız var mı veya başka bir programla 1Q...........5........E......... gibi.  yani adresi 1Q64 gibi oluşturmak yerine yine 3 karakter kullanarak adresin belirli yerlerini oluşturarak bir database elde etmek. mantıksızdır, imkansızdır veya olasılık olarak mümkün değildir bilmiyorum ama 1Q64 gibi bir adres oluşturmaktan daha faydalı gibi geliyor nedense.
Dediğiniz olur vanitygen regex (regular expression) olarak arama yapın denk gelecektir. 1Q - 1Q6 - 1Q64 - 1Q643 - 1Q643G ... şeklinde taramalara denk gelebilmek için farklı yöntemler denediğimde bulma yüzdesi çoktan aza doğru gidiyor. Zamanla %0.004'e kadar düşse de aralıkların aralarındaki benzerleri de taradığında denk gelmeye devam ediyor. Mantıksız ve imkansız olabilir ama tekrar deseni bulunduğunda birçok adres için geçerli olacaktır diye düşünüyorum. Eski mesajlarda nasıl başladığım yazıyor şu anda ondan farklı bir yöntem izliyorum ama yinede fikir verecektir. Zaman gösterecek Smiley
member
Activity: 122
Merit: 26
İşe yarar bir kod...(32 GB Ramli ve güçlü bir işlemci ile a.txt tüm adresler yaklaşık 10 GB b.txt yaklaşık 1 GB karşılaştırma süresi 5 dakika) (4gb ramli bir bilgisayar ile a.txt 1 gb yaklaşık 32 m bakiyeli adres b.txt 100 mb yaklaşık 3 m oluşturulmuş adres karşılaştırma 2 dakika)  her iki sistemde de denenmiştir...

tüm satırları okuyup a ve b txt teki aynı satırı yakalarsa c.txt e atar... (hem eth hemde btc için kullanabilir)...

Herkese bol şans...

a_dosyasi = open("a.txt")
b_dosyasi = open("b.txt")
a_icerik = a_dosyasi.read()
a_dosyasi.close()
b_icerik = b_dosyasi.read()
b_dosyasi.close()

ast = set(a_icerik.splitlines())
bst = set(b_icerik.splitlines())

fark = ast.intersection(bst)
son = []
for i in fark:
    son.append(i+"\n")

c_dosyasi = open("c.txt", "w")
c_dosyasi.writelines(son)
c_dosyasi.close()




Daha önce konu içinde paylaşdığım bir kod denemenizi öneririm çok hızlı ve sorunsuz çalışıyor windows kullanıcıları için bence önemli bir kod karşılaştırma yapanlara
full member
Activity: 156
Merit: 170
Bende benzer çalışma yapıyorum oranlar çok değişken oluyor ancak belirli bir desene sürekli uymuyor. Belirli aralıklarda sanki tekrar ediyor gibi... aralıklar doldukça tekrar etme sayısı artıyor gibi. Tıpkı debian'ın logosundaki girdap gibi  Roll Eyes

Geçen gün Vanity gen ile uğraşırken aklıma farklı bir adres yaratma seçeneği geldi ama program üzerinde bilgim sınırlı olduğu için deneyemedim. Vanitygen ana konusuna baktım yine aynı şekilde istediğim gibi bir bilgi bulamadım.

Şöyle bir adresimiz olsun : 1Q643GzctxJC5LXWB6thEkWRv4XqU8Wqrz

Vanitygen üzerine şu şekilde arama yaptırma şansımız var mı veya başka bir programla 1Q...........5........E......... gibi.  yani adresi 1Q64 gibi oluşturmak yerine yine 3 karakter kullanarak adresin belirli yerlerini oluşturarak bir database elde etmek. mantıksızdır, imkansızdır veya olasılık olarak mümkün değildir bilmiyorum ama 1Q64 gibi bir adres oluşturmaktan daha faydalı gibi geliyor nedense.
member
Activity: 183
Merit: 35
... Başka güzel ve hizli api bilen varsa geri dönüş yaparsa sevinirim....
Programın tarama sonrası bir fotosunu attım. eski tarihli boş bir tane key bulmuş.
Daha önceki mesajlarda en hızlı çözümün lokale bitcoin-core kurup txid=1 ile tüm işlemleri tarayarak harici bir veritabanına kayıt edip oradan sorgulamanın daha hızlı olacağını yazmıştım. Ondan daha hızlı ve kesilmeyecek çözüm yok. Adresi kelime taratarak mı? random key oluşturarak mı denk geldiniz?

... 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.
Bende benzer çalışma yapıyorum oranlar çok değişken oluyor ancak belirli bir desene sürekli uymuyor. Belirli aralıklarda sanki tekrar ediyor gibi... aralıklar doldukça tekrar etme sayısı artıyor gibi. Tıpkı debian'ın logosundaki girdap gibi  Roll Eyes

Bitcoin-core kurmak istemeyenler içinde https://btc0.z.tl sitesi denk geldi. Bloktaki bilgiler ve güncel blok sürekli güncelleniyor. Wget tarzı programla çekip içindeki veri temizlenebilir. Temizlendikten sonra db'ye aktarılabilir. Yinede python ile bitcoin-core'dan okutup db'ye girmek daha mantıklı Smiley
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: 122
Merit: 26
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: 122
Merit: 26
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: 122
Merit: 26
ö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.
Pages:
Jump to: