Bitcoin Forum
May 26, 2024, 04:06:29 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 [50] 51 52 53 54 55 56 57 58 59 60 61 »
981  Bitcoin / Pools / Re: [∞ YH] solo.ckpool.org 1% fee solo mining USA/DE 252 blocks solved! on: May 10, 2019, 12:59:06 PM
Hello,
When you refer to (All you need to confirm you are mining to your own address is to examine the coinbase and template sent to you over stratum), does this mean adding my address to the text box and seeing the resulting link?
Also, I am mining with an Antminer V9, the Blocks Found Column and Best Shares show nothing? Any idea why?
Thanks
No, you can use the master cgminer code in --decode mode and it will tell you exactly what you're mining. Antminers are notorious for buggy code at detecting best shares and blocks found, but there's a good chance blocks found is SUPPOSED to be zero for almost everyone since they're so rare to find.

New here with questions, sorry.
Will --decode work outside of the V9?
What version is needed?
Do you have a link to a windows 10 already built version, I don't know how to compile yet?
Is antpool solo the same as ckpool solo, all luck?
Is a 15gh/s usb miner as lucky as the v9?


Just a note I mined with V9's had the same issue buggy as hell no best share value shown had big long drawn email battle with bitmain about the miners power of two issue they dismissed it.
None of the firmware they have released for the v9 works well it's what you would call fubar.
982  Bitcoin / Project Development / Re: Whonix Anonymous Operating System, anything, any Bitcoin client/server over Tor on: May 10, 2019, 12:53:29 PM
Top project whonix comes with the cubes os which is very nice indeed.
I would recommend the use of Whonix in the cubes environment works very well.

Keep up the good work! 
983  Bitcoin / Development & Technical Discussion / Re: Half of any bitcoin (crypto) public key - (public key half) in Python on: May 10, 2019, 12:38:33 PM
You are talking of exploiting the ECDSA signatures?

If you have the values you can use something like this.


Code:
#!/usr/bin/env python

import bitcoin
import hashlib
import random

def ecdsa_sign_k(z, d, k):
    r, y = bitcoin.fast_multiply(bitcoin.G, k)
    s = bitcoin.inv(k, bitcoin.N) * (z + r*d) % bitcoin.N
    v, r, s = 27+((y % 2) ^ (0 if s * 2 < bitcoin.N else 1)), r, s if s * 2 < bitcoin.N else bitcoin.N - s
    return v, r, s

# Generate secret key & the corresponding public key and address
sk = random.SystemRandom().randrange(1, bitcoin.N)
Q = bitcoin.fast_multiply(bitcoin.G, sk);

# Sign 2 differents messages with same k
signing_k = random.SystemRandom().randrange(1, bitcoin.N)
z1 = bitcoin.hash_to_int(hashlib.sha256('first_message').hexdigest())
z2 = bitcoin.hash_to_int(hashlib.sha256('second_message').hexdigest())
v1, r1, s1 = ecdsa_sign_k(z1, sk, signing_k)
v2, r2, s2 = ecdsa_sign_k(z2, sk, signing_k)
assert r1 == r2
print('+ R used   = {:x}'.format(r1))

# Calculate k candidates
k_candidates = [
    (z1 - z2) * bitcoin.inv(s1 - s2, bitcoin.N) % bitcoin.N,
    (z1 - z2) * bitcoin.inv(s1 + s2, bitcoin.N) % bitcoin.N
]
for k in k_candidates:
    priv_key = (s1 * k - z1) * bitcoin.inv(r1, bitcoin.N) % bitcoin.N
    if bitcoin.fast_multiply(bitcoin.G, priv_key) == Q:
        print('+ Calc key = {0}'.format( priv_key ))
        break
else:
    print('An unknown error occured.')
984  Alternate cryptocurrencies / Pools (Altcoins) / Re: SEGWIT LTC.TBDICE.ORG 0.5% fee SOLO MM LTC/DGE POOL 3K+ LTC/7K+ DGE blks solved on: March 28, 2019, 02:42:09 PM
Yes it seems you have lost the block the pool OP is missing for around 6 months now so dont expect a reply from him anytime soon.

Make sure your address says self when mining here its the only way you get the reward.
985  Bitcoin / Bitcoin Discussion / Re: Should bitcoin be limited to 21 million? on: March 20, 2019, 02:55:25 PM
From version 0.1.5
I think with the lost coins and other factors it will be under 21 million coins total somewhere around the 20.5 million coins is a good estimate.


Code:
int64 CBlock::GetBlockValue(int64 nFees) const
{
    int64 nSubsidy = 50 * COIN;

    // Subsidy is cut in half every 4 years
    nSubsidy >>= (nBestHeight / 210000);

    return nSubsidy + nFees;
}

unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast)
{
    const unsigned int nTargetTimespan = 14 * 24 * 60 * 60; // two weeks
    const unsigned int nTargetSpacing = 10 * 60;
    const unsigned int nInterval = nTargetTimespan / nTargetSpacing;

Some of the things that in bitcoin that should not be changed unless there is full consent and I would agree that there MAX_MONEY for bitcoin should not be increased if the supply is inflated we become nothing more than the central banks printing press and it would have a negative impact on bitcoin.

Some of the principals and fundamentals in bitcoin should always be.

1. Increase of the total number of bitcoin issued above and beyond the 21 million.  While precision may be increased the proportions must stay the same.

2. Rules that add any requires or explicit centralization like changes that would require that transactions or blocks be signed by any central organization.

3. Deletion or revocation "and or I believe" Redistribution of coins that are deemed to be either lost or unused.

The Fundamentals

    21 million coins TOTAL.
    No censorship = Nobody should be able to prevent valid tx's from being confirmed on the network.
    Open-Source = Bitcoin source code should always be open for anyone to read, modify, copy, share.
    Permissionless = No gatekeepers should ever prevent anybody from being part of the network
    Pseudonymous = No ID should be required to own or use Bitcoin.
    Fungible = All coins are equal and should be equally spendable.
    Irreversible Transactions = Confirmed blocks should be set in stone. Blockchain History should be immutable.

If we lose the above we're going to have a "Bad Time"

 Smiley
986  Bitcoin / Bitcoin Technical Support / Re: Unknown BTC transactions go IN and OUT of my wallet on: March 17, 2019, 11:28:27 AM
Were you accepting funds from exchange wallets?
Sometimes when they send payments you can have 100's of inputs that show on explorer could it be it's picking up all the inputs to your wallet and thinking they were all to you and not just the output.

This might throw off some kinds of calculation software.
987  Bitcoin / Development & Technical Discussion / Re: What is the best distro to compile windows binaries? on: March 14, 2019, 02:36:20 AM
This might be what your looking  working in debian

 Wink
Code:

sudo apt-get install build-essential libtool autotools-dev automake pkg-config bsdmainutils curl git

Then choose:

-------------------------------------------------
Option A: Cross-compile Windows wallets (64 bit)
-------------------------------------------------

sudo apt-get install g++-mingw-w64-x86-64 mingw-w64-x86-64-dev

# Pick posix version for the following!

sudo update-alternatives --config x86_64-w64-mingw32-gcc
sudo update-alternatives --config x86_64-w64-mingw32-g++

cd depends

make -j 24 HOST=x86_64-w64-mingw32

# *** TIME FOR A REST HERE THIS TAKES SOME TIME ***

cd ..

./autogen.sh

CONFIG_SITE=$PWD/depends/x86_64-w64-mingw32/share/config.site ./configure --prefix=/

make -j 24

Optional: strip the binaries to reduce size at this point if you're going to share them.

-------------------------------------------------
Option B: Compile native Linux wallets
-------------------------------------------------

cd depends

make -j 24

# *** ANOTHER PLEASE WAIT MOMENT OR TWO ***

cd ..

./autogen.sh

CONFIG_SITE=$PWD/depends/x86_64-pc-linux-gnu/share/config.site ./configure --prefix=/

make -j 24

Optional: strip the binaries to reduce size at this point if you're going to share them.
988  Alternate cryptocurrencies / Pools (Altcoins) / Re: SEGWIT LTC.TBDICE.ORG 0.5% fee SOLO MM LTC/DGE POOL 3K+ LTC/7K+ DGE blks solved on: March 14, 2019, 01:45:29 AM
WARNING - USE THIS POOL AT YOUR OWN RISK

POOL op is currently MIA -  and there has been no response to PM's by forums members. 

Tagging OP with RED TRUST until there is some news from the OP.

989  Bitcoin / Bitcoin Technical Support / Re: Trusted blockchain download source for mass installation on: March 11, 2019, 08:59:57 PM
https://bitcoin.org/bin/block-chain/

Found this torrent link on the bitcoin.org website might be useful.

Note the block height is 317000 for this.  I have no clue how this is maintained or updated someone else might have a better answer for you.



Code:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512


Torrent info hash: 36719ba2cecf9f3bd7c5abfb7a88e939611b536c
Torrent magnet link:
magnet:?xt=urn:btih:36719ba2cecf9f3bd7c5abfb7a88e939611b536c&dn=bootstrap.dat&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Fcoppersurfer.tk%3A6969%2Fannounce&tr=udp%3A%2F%2Fopen.demonii.com%3A1337&tr=http%3A%2F%2Fbttracker.crunchbanglinux.org%3A6969%2Fannounce

Block height: 317000
Filename: bootstrap.dat
Byte size: 22566124235
SHA1: 2e6e5dd20cd9c21960ba94f7265f42c4b6443758
SHA256: d05062052be4dd6fbaeac5f17598e52f7ad545f9f938acefaf7067ecce1d7b5a

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.22 (Darwin)
Comment: GPGTools - http://gpgtools.org

iQEcBAEBCgAGBQJT+PcrAAoJEL8a4JGi25zKmj4H/i8xKIXW/xnw5i5Pc+ciUuc2
Zo+KxQd1YGRmJSvGsyTgTqK4IJUBD8s8tIGTtznCJ2/Q3wIdZmoqxkST7r4rqJly
cOyJ/n19K5beYvVekIgHVXFmhdJhZf8KNnyuV+DpHmmLKYyZtvkoY9b3hEBHVtSM
AkjuWyA9IEPeghxBX32JAToXOZGs9vZghNyIMg/fWbGLuv1oX7QCjAAua0NAMbLX
diSvVcLXskTRy38W4whz1DX6ruL8mPRYH5Ko6/cmtVqEkr53aEwYf1XJGHHAz3+J
nEHecxBUbiRhDwMdCVtqzKudXWVDtkgVQmRxrkKTw63NTVMge4eEziE2+7JQgq8=
=p9TY
-----END PGP SIGNATURE-----
990  Bitcoin / Mining / Re: New buildout with buysolar has entered stage 2. on: March 11, 2019, 08:11:31 PM
Really nice setup with the solar have you thought about liquid cooling the miners in novec or dielectric coolant?

https://www.engineeredfluids.com/coolfluids

Been looking at pulling the boards from my miners and sinking them into this stuff.
991  Bitcoin / Bitcoin Technical Support / Re: Finally setting up a full node on: March 10, 2019, 05:30:33 PM
Not sure if this helps but I found this.

https://bitcoin.org/bin/block-chain/

Seems to be a torrent link to the blockchain in bootstrap type format.

there is also reference to this here though the link seems to be changed.

https://bitcointalk.org/index.php?topic=145386.0

As per the above you should do verification on this if you use it.
992  Alternate cryptocurrencies / Pools (Altcoins) / Re: SEGWIT LTC.TBDICE.ORG 0.5% fee SOLO MM LTC/DGE POOL 3K+ LTC/7K+ DGE blks solved on: March 10, 2019, 05:23:24 PM
Giving this topic another 14 days for pool op to respond then it's red trust i'm afraid no reply last account hacked.  
And there has been lots of members reached out to him with no response back.



Yeah, I'm not holding my breath... but my bounty still stands. I believe the total bounty is 3 LTC combined. Hell, I'm even willing to give the OP my 1 LTC bounty if he/she just happens in and does the right thing without being prompted.

it sucks but he hasnt been online for nearly 6 months.
there was some big storms in US. specially in California and midwest. also i think a few big tornadoes. i have no idea if he lives in US tho.
maybe he lost access to the pools wallet.. no funds have moved for a long time.

at this point it seems something has happened to him. hopefully nothing fatal or really bad.

I hope that the OP is safe but people are risking hashrate on this pool and there seems to be no contact point for the OP anymore I see there is a 2nd account that has some trust from philipma1957.
But the account has not been online for some time now and has not responded to PM's or reply's to the topic.

993  Bitcoin / Pools / Re: [∞ YH] solo.ckpool.org 1% fee solo mining USA/DE 252 blocks solved! on: March 10, 2019, 05:13:03 PM
Nice hit to the winner!

Had a rental going watched the stats tick back to 0.00 diff checked wallet thinking this time! Smiley

No luck. again Smiley

 "shares": 8915002565,
 "bestever": 53999534193,

 Roll Eyes
994  Alternate cryptocurrencies / Pools (Altcoins) / Re: SEGWIT LTC.TBDICE.ORG 0.5% fee SOLO MM LTC/DGE POOL 3K+ LTC/7K+ DGE blks solved on: March 04, 2019, 01:30:19 PM
Giving this topic another 14 days for pool op to respond then it's red trust i'm afraid no reply last account hacked. 
And there has been lots of members reached out to him with no response back.

995  Bitcoin / Development & Technical Discussion / Re: How can I get bitcoin v 0.1.0 to connect to other peers?n on: March 04, 2019, 01:25:38 PM
I’ve been trying to connect the oldest bitcoin executable but I can’d Get it to connect. Anybody have a clue as to how I can connect it to other peers? Easy way?

As far as I am aware you can't use that version anymore you won't get any connections or sync the blockchain.
I have a feeling  v0.1.0  makes calls to the IRC channel to look for peers.

https://github.com/Dan-McG/bitcoin-0.1.0/blob/master/src/net.cpp

Code:
bool GetMyExternalIP(unsigned int& ipRet)
{
    CAddress addrConnect("72.233.89.199:80"); // whatismyip.com 198-200

    SOCKET hSocket;
    if (!ConnectSocket(addrConnect, hSocket))
        return error("GetMyExternalIP() : connection to %s failed\n", addrConnect.ToString().c_str());

    char* pszGet =
        "GET /automation/n09230945.asp HTTP/1.1\r\n"
        "Host: www.whatismyip.com\r\n"
        "User-Agent: Bitcoin/0.1\r\n"
        "Connection: close\r\n"
        "\r\n";
    send(hSocket, pszGet, strlen(pszGet), 0);

    string strLine;
    while (RecvLine(hSocket, strLine))
    {
        if (strLine.empty())
        {
            if (!RecvLine(hSocket, strLine))
            {
                closesocket(hSocket);
                return false;
            }
            closesocket(hSocket);
            CAddress addr(strLine.c_str());
            printf("GetMyExternalIP() received [%s] %s\n", strLine.c_str(), addr.ToString().c_str());
            if (addr.ip == 0)
                return false;
            ipRet = addr.ip;
            return true;
        }
    }
    closesocket(hSocket);
return error("GetMyExternalIP() : connection closed\n");



996  Bitcoin / Development & Technical Discussion / Re: Corrupt getheaders messages from /Satoshi:0.16.3/ on: February 08, 2019, 01:05:47 PM
Surprised there has been no response to this topic.

I would guess the client "should" be banning the peers if they are sending something malformed?
From the post above it seems they are pretty close in the IP ranges so I would guess they are being run by the same person.

I'm sure some core guru will be along with a more detailed answer but it is concerning if the number of these nodes continues to grow.
997  Bitcoin / Development & Technical Discussion / Re: Collection of 18.509 found and used Brainwallets on: February 07, 2019, 01:34:27 PM
The tools are already out there.

You could argue publishing the result to be a issue but nothing I have posted is not already in the public domain.

https://www.youtube.com/watch?v=foil0hzl4Pg

A simple google search or github will show how many tools are out there for this type of thing.

998  Bitcoin / Development & Technical Discussion / Re: Collection of 18.509 found and used Brainwallets on: February 07, 2019, 12:35:25 PM
where is admin, mod? Why topics like this can exist?

Security liabilities need to be discussed publicly, otherwise you have no basis for public discourse, awareness and improvement.

Note that this thread is about monitoring and documenting cases of brainwallet thefts, rather than stealing them.

While these thefts are happening regardless of whether threads like this exist, it may prevent some people from generating weak brainwallets and becoming victims themselves.

so why have to write and post script here? Teach everybody do with him?

1. Most of this code is available online or on github as already said we do this to improve the security of bitcoin to help users understand about brain wallets and the dangers of them.
2. I feel it much better to see a community attempting to eradicate and document this by-design un-secure wallet.
3. Who would you rather be talking about this issue,  the open community who are pushing new users away from this dangerous way to store funds or the criminals behind closed forums scanning new users funds away.

I have a feeling this guy has a brain wallet Smiley
999  Bitcoin / Development & Technical Discussion / Re: Collection of 18.509 found and used Brainwallets on: February 07, 2019, 12:20:07 PM
Seems like a waste of time to use random BIP words, as the seed word generation process involves checks, and many randomly generated combinations will be invalid.

Plus, even with a list of valid word combinations, it's a fools game in terms of odds.


That may be the case but what about weak seeds I also think the use of the script below might be helpful?


Hmm... what's the point of throwing randomly selected word sets at your address checker? The chances of matching a 12 word passphrase are essentially zero.

I think your size calcs may be off a bit, too. I pre-calculated the RMD160 values for all ASCII 1 to 5 character words, and the output is about 0.9TB in size. To increase to 6 characters would result in a file size about 95 times that (about 80TB) and to go up to 7 characters would result in an output of over 7000TB. And consider the amount of time needed to check 135 trillion entries.

That's one of the interesting things about SHA256 brainwallets (so long as you're doing this for fun) : it can be easy to find them, but it's also very, very hard. Smiley

As for the tables sizes I think they are about right to be honest they are not hash160's they are raw hex combinations see below I have tested on the smaller value ones at the come out pretty close to the figures quoted.  So the DB for this type of data is vast.  

I am currently at around block 259090 of importing all the transactions into mysql database ( Currently 3 days reading from blk files)

Code:
Combination data from 10Hex  ./10hex | brainflayer -v -b example.blf 

https://github.com/wpatoolkit/10-Hex-Generator

010316ead1
010316ead2
010316ead3
010316ead4
010316ead5
010316ead6
010316ead7
010316ead8
010316ead9
010316eada
010316eadb
010316eadc
010316eadd
010316eade
010316eadf
010316eae0
010316eae1
010316eae2
010316eae3
010316eae4
010316eae5
010316eae6
010316eae7
010316eae8
010316eae9
010316eaea
010316eaeb
010316eaec
010316eaed
010316eaee
010316eaef
010316eaf0
010316eaf1
010316eaf2
010316eaf3
010316eaf4
010316eaf5
010316eaf6
010316eaf7
010316eaf8
010316eaf9
010316eafa
010316eafb
010316eafc
010316eafd
010316eafe
010316eaff
010316eb01
010316eb02
010316eb03
010316eb04
010316eb05
010316eb06
010316eb07
010316eb08
010316eb09
010316eb0a
010316eb0b
010316eb0c
010316eb0d
010316eb0e
010316eb0f
010316eb10


after setting up ABE it is far quicker at checking against the database for balance than my previous method of API calls to Blockchain.com

Code:
def mn_encode( message ):
    out = []
    for i in range(len(message)/8):
        word = message[8*i:8*i+8]
        x = int(word, 16)
        w1 = (x%n)
        w2 = ((x/n) + w1)%n
        w3 = ((x/n/n) + w2)%n
        out += [ words[w1], words[w2], words[w3] ]
    return out

def mn_decode( wlist ):
    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

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

def mpk_from_seed(seed):
    curve = SECP256k1
    secexp = stretch_key(seed)
    master_private_key = ecdsa.SigningKey.from_secret_exponent( secexp, curve = SECP256k1 )
    master_public_key = master_private_key.get_verifying_key().to_string().encode('hex')
    return master_public_key


class Account(object):
    def __init__(self, v):
        self.addresses = v.get('0', [])
        self.change = v.get('1', [])

    def dump(self):
        return {'0':self.addresses, '1':self.change}

    def get_addresses(self, for_change):
        return self.change[:] if for_change else self.addresses[:]

    def create_new_address(self, for_change):
        addresses = self.change if for_change else self.addresses
        n = len(addresses)
        address = self.get_address( for_change, n)
        addresses.append(address)
        return address

    def get_address(self, for_change, n):
        pass
        
    def get_pubkeys(self, sequence):
        return [ self.get_pubkey( *sequence )]
class OldAccount(Account):
    """  Privatekey(type,n) = Master_private_key + H(n|S|type)  """

    def __init__(self, v):
        self.addresses = v.get(0, [])
        self.change = v.get(1, [])
        self.mpk = v['mpk'].decode('hex')

    def dump(self):
        return {0:self.addresses, 1:self.change}

    @classmethod
    def mpk_from_seed(klass, seed):
        curve = SECP256k1
        secexp = klass.stretch_key(seed)
        master_private_key = ecdsa.SigningKey.from_secret_exponent( secexp, curve = SECP256k1 )
        master_public_key = master_private_key.get_verifying_key().to_string().encode('hex')
        return master_public_key

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

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

    def get_address(self, for_change, n):
        pubkey = self.get_pubkey(for_change, n)
        address = public_key_to_bc_address( pubkey.decode('hex') )
        return address

    def get_pubkey(self, for_change, n):
        curve = SECP256k1
        mpk = self.mpk
        z = self.get_sequence(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_private_key_from_stretched_exponent(self, for_change, n, secexp):
        order = generator_secp256k1.order()
        secexp = ( secexp + self.get_sequence(for_change, n) ) % order
        pk = number_to_string( secexp, generator_secp256k1.order() )
        compressed = False
        return SecretToASecret( pk, compressed )
        
    def get_private_key(self, seed, sequence):
        for_change, n = sequence
        secexp = self.stretch_key(seed)
        return self.get_private_key_from_stretched_exponent(for_change, n, secexp)

    def check_seed(self, seed):
        curve = SECP256k1
        secexp = self.stretch_key(seed)
        master_private_key = ecdsa.SigningKey.from_secret_exponent( secexp, curve = SECP256k1 )
        master_public_key = master_private_key.get_verifying_key().to_string().encode('hex')
        if master_public_key != self.mpk:
            print_error('invalid password (mpk)')
            raise BaseException('Invalid password')
        return True

    def redeem_script(self, sequence):
        return None

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 b58decode(v, length):
    """ decode v into a string of len bytes."""
    long_value = 0L
    for (i, c) in enumerate(v[::-1]):
        long_value += __b58chars.find(c) * (__b58base**i)

    result = ''
    while long_value >= 256:
        div, mod = divmod(long_value, 256)
        result = chr(mod) + result
        long_value = div
    result = chr(long_value) + result

    nPad = 0
    for c in v:
        if c == __b58chars[0]: nPad += 1
        else: break

    result = chr(0)*nPad + result
    if length is not None and len(result) != length:
        return None

    return result

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

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

def DecodeBase58Check(psz):
    vchRet = b58decode(psz, None)
    key = vchRet[0:-4]
    csum = vchRet[-4:]
    hash = Hash(key)
    cs32 = hash[0:4]
    if cs32 != csum:
        return None
    else:
        return key
def public_key_to_bc_address(public_key):
    h160 = hash_160(public_key)
    return hash_160_to_bc_address(h160)
def hash_160(public_key):
    try:
        md = hashlib.new('ripemd160')
        md.update(hashlib.sha256(public_key).digest())
        return md.digest()
    except:
        import ripemd
        md = ripemd.new(hashlib.sha256(public_key).digest())
        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)
mnemonic_hash = lambda x: hmac_sha_512("Bitcoin mnemonic", x).encode('hex')
hmac_sha_512 = lambda x,y: hmac.new(x, y, hashlib.sha512).digest()
Hash = lambda x: hashlib.sha256(hashlib.sha256(x).digest()).digest()

def hack(t, d):
while True:
guess = random.sample(words,12)
#guess = "shirt always flat become bird company everytime poet least soar crack story".split()
#print guess
seed = mn_decode(guess)
mpk = OldAccount.mpk_from_seed(seed)
acc = OldAccount({'mpk':mpk, 0:[], 1:[]})
#pk = number_to_string( secexp, generator_secp256k1.order() )
#compressed = False
# SecretToASecret( pk, compressed )

addy = acc.create_new_address(False)
myurl = "http://localhost:2750/chain/Bitcoin/q/getreceivedbyaddress/" + addy

f = urllib.urlopen(myurl)
balance = f.read()
print balance + ": " + addy
if balance != "0":
with open("addresses.txt", "a+") as myfile:
myfile.write(balance + ": " + addy + "\t" + seed + "\n")
1000  Bitcoin / Development & Technical Discussion / Re: Collection of 18.509 found and used Brainwallets on: February 06, 2019, 12:11:02 PM
I have been running some scans like this I grabbed about 2TB of word lists for brain wallet hunting.

At the moment it is currently syncing up with bitcoin-abe into mysql database (taking forever)

I wrote a small python script to create seeds that can be piped into a seed checker as such.

Code:
import random

filename = "YourWordList.txt"

def main(filename):
    words_file = open(filename, 'r')
    words = words_file.read().split("\n")
    temp_words = []
    for word in words:
        temp_words.append(word.strip("\r"))
    words = temp_words

    while True:
        length = int(raw_input("12:"))
        for i in range(0,length):
            print(words[random.randrange(0,len(words)+1)]),
        print("\n")


if __name__ == "__main__":
    main(filename)

Still buggy welcome any adaptation  Wink

Code:

Output
12:12
twist flush ranch screen yard film option walk stuff sick maximum stumble

12:12
ill banner replace snack athlete wage patient right sell bicycle meadow weekend

12:12
knock include learn fruit video drama sort crunch cost people undo inherit

12:12
close symbol either voyage cool life obtain enemy valve process consider project

12:12
fish tube lunar among adjust inch transfer slight evil tell apology negative

12:12
host century basket drift scatter raven job carbon excite gym biology hospital

12:12
soup verify mouse whisper weather resource upon  lens slim consider celery

12:12
farm gold useless area renew settle until soap rent attract unique ceiling

12:12
code stage dad two brick clock gospel voice easily impose grunt cry

12:12
roast garment board wise fabric bus bundle idea street asthma horse language


I have also been piping in random text like such

Code:
1xjPr0ta5PsTrKTlETa3
ay9RDUrEhjdkNX6ynm8V
GsAupTvPwo3t0875dsBF
LCHaTQYseeu833Wrs3eu
53fCknZ7XGn2CSpDhLVV
jX8Tex8rafMjEsQTmY9S
yuOEOXF0JzYc0TmB4R36
MolQV7IKX15RSSo4s7OM
ZoKMjxUvV5QwTL8ZdCRo
9YLZNaUklLxx6rCwyQKg
lekYEIMpEhkPlnFw32bk
W7meYuwMyrJtnsL3biLH
8z1FKk39xpPtzzLmtdeQ

No results yet from random data.

From text word lists I have found around 500+ empty brain wallets so far most of which have already been published in the list.

I have been collecting hash160 addresses from the blockchain and have them in a bloom filter searching against the word list but still no results with a small sample space of hash160 at the moment.

I have also been testing with random hex being pushed to the brain wallet.

Code:
//using namespace std;
int main(int argc, char *argv[]) {
 srand(time(NULL));
 bool risky_mode = false;
 bool even_only = false;
 bool odd_only = false;
 bool output_random = false;
 bool use_lower = false;
 bool use_upper = false;
 bool use_len_8 = false;
 bool use_len_9 = false;
 bool no_0 = false;
 bool no_1 = false;
 int desired_uniques = 0;
 int min_uniques = 6; // 94.6% chance of having 6 to 9 uniques
 int max_uniques = 9;
 int min_numbers = 4; // 94.02% chance of having 4 to 8 numbers
 int max_numbers = 8;
 int min_letters = 2; // 94.02% chance of having 2 to 6 letters
 int max_letters = 6;
 bool negate_sequential = true; // 89.8% chance of not having any 3 consecutive sequential chars (123) or reverse sequential chars (321)
 int differential = 0;
 int slot1_start_at = 0;
 int slot1_stop_at = 0;
 bool starts_with_letter = false;
 bool make_next_start_at = false;
 bool make_next_stop_at = false;
 int make_next_start_at_cnt = 0;
 int make_next_stop_at_cnt = 0;
 unsigned long long int start_at_long = 0;
 unsigned long long int stop_at_long = 0;
 if (argc > 1) {
  for (int i=1;i<argc;++i) {
   if (stricmp(argv[i], "-risky") == 0) { risky_mode = true; }
   if (stricmp(argv[i], "-evenonly") == 0) { even_only = true; }
   if (stricmp(argv[i], "-oddonly") == 0) { odd_only = true; }
   if (stricmp(argv[i], "-random") == 0) { output_random = true; }
   if (stricmp(argv[i], "-lower") == 0) { use_lower = true; }
   if (stricmp(argv[i], "-upper") == 0) { use_upper = true; }
   if (stricmp(argv[i], "-len8") == 0) { use_len_8 = true; }
   if (stricmp(argv[i], "-len9") == 0) { use_len_9 = true; }
   if (stricmp(argv[i], "-no0") == 0) { no_0 = true; }
   if (stricmp(argv[i], "-no1") == 0) { no_1 = true; }
   if (stricmp(argv[i], "-no01") == 0) { no_0 = true; no_1 = true; }
   if (stricmp(argv[i], "-no10") == 0) { no_0 = true; no_1 = true; }
   if (stricmp(argv[i], "-1unique") == 0) { desired_uniques = min_uniques = max_uniques = 1; }
   if (stricmp(argv[i], "-2uniques") == 0) { desired_uniques = min_uniques = max_uniques = 2; }
   if (stricmp(argv[i], "-3uniques") == 0) { desired_uniques = min_uniques = max_uniques = 3; }
   if (stricmp(argv[i], "-4uniques") == 0) { desired_uniques = min_uniques = max_uniques = 4; }
   if (stricmp(argv[i], "-5uniques") == 0) { desired_uniques = min_uniques = max_uniques = 5; }
   if (stricmp(argv[i], "-6uniques") == 0) { desired_uniques = min_uniques = max_uniques = 6; }
   if (stricmp(argv[i], "-7uniques") == 0) { desired_uniques = min_uniques = max_uniques = 7; }
   if (stricmp(argv[i], "-8uniques") == 0) { desired_uniques = min_uniques = max_uniques = 8; }
   if (stricmp(argv[i], "-9uniques") == 0) { desired_uniques = min_uniques = max_uniques = 9; }
   if (stricmp(argv[i], "-10uniques") == 0) { desired_uniques = min_uniques = max_uniques = 10; }
   if (stricmp(argv[i], "-1minunique") == 0) { min_uniques = 1; }  if (stricmp(argv[i], "-minunique1") == 0) { min_uniques = 1; }  if (stricmp(argv[i], "-min1unique") == 0) { min_uniques = 1; }
   if (stricmp(argv[i], "-2minuniques") == 0) { min_uniques = 2; } if (stricmp(argv[i], "-minuniques2") == 0) { min_uniques = 2; } if (stricmp(argv[i], "-min2uniques") == 0) { min_uniques = 2; }
   if (stricmp(argv[i], "-3minuniques") == 0) { min_uniques = 3; } if (stricmp(argv[i], "-minuniques3") == 0) { min_uniques = 3; } if (stricmp(argv[i], "-min3uniques") == 0) { min_uniques = 3; }
   if (stricmp(argv[i], "-4minuniques") == 0) { min_uniques = 4; } if (stricmp(argv[i], "-minuniques4") == 0) { min_uniques = 4; } if (stricmp(argv[i], "-min4uniques") == 0) { min_uniques = 4; }
   if (stricmp(argv[i], "-5minuniques") == 0) { min_uniques = 5; } if (stricmp(argv[i], "-minuniques5") == 0) { min_uniques = 5; } if (stricmp(argv[i], "-min5uniques") == 0) { min_uniques = 5; }
   if (stricmp(argv[i], "-6minuniques") == 0) { min_uniques = 6; } if (stricmp(argv[i], "-minuniques6") == 0) { min_uniques = 6; } if (stricmp(argv[i], "-min6uniques") == 0) { min_uniques = 6; }
   if (stricmp(argv[i], "-7minuniques") == 0) { min_uniques = 7; } if (stricmp(argv[i], "-minuniques7") == 0) { min_uniques = 7; } if (stricmp(argv[i], "-min7uniques") == 0) { min_uniques = 7; }
   if (stricmp(argv[i], "-8minuniques") == 0) { min_uniques = 8; } if (stricmp(argv[i], "-minuniques8") == 0) { min_uniques = 8; } if (stricmp(argv[i], "-min8uniques") == 0) { min_uniques = 8; }
   if (stricmp(argv[i], "-9minuniques") == 0) { min_uniques = 9; } if (stricmp(argv[i], "-minuniques9") == 0) { min_uniques = 9; } if (stricmp(argv[i], "-min9uniques") == 0) { min_uniques = 9; }
   if (stricmp(argv[i], "-10minuniques") == 0) { min_uniques = 10; } if (stricmp(argv[i], "-minuniques10") == 0) { min_uniques = 10; } if (stricmp(argv[i], "-min10uniques") == 0) { min_uniques = 10; }
   if (stricmp(argv[i], "-1maxunique") == 0) { max_uniques = 1; }  if (stricmp(argv[i], "-maxunique1") == 0) { max_uniques = 1; }  if (stricmp(argv[i], "-max1unique") == 0) { max_uniques = 1; }
   if (stricmp(argv[i], "-2maxuniques") == 0) { max_uniques = 2; } if (stricmp(argv[i], "-maxuniques2") == 0) { max_uniques = 2; } if (stricmp(argv[i], "-max2uniques") == 0) { max_uniques = 2; }
   if (stricmp(argv[i], "-3maxuniques") == 0) { max_uniques = 3; } if (stricmp(argv[i], "-maxuniques3") == 0) { max_uniques = 3; } if (stricmp(argv[i], "-max3uniques") == 0) { max_uniques = 3; }
   if (stricmp(argv[i], "-4maxuniques") == 0) { max_uniques = 4; } if (stricmp(argv[i], "-maxuniques4") == 0) { max_uniques = 4; } if (stricmp(argv[i], "-max4uniques") == 0) { max_uniques = 4; }
   if (stricmp(argv[i], "-5maxuniques") == 0) { max_uniques = 5; } if (stricmp(argv[i], "-maxuniques5") == 0) { max_uniques = 5; } if (stricmp(argv[i], "-max5uniques") == 0) { max_uniques = 5; }
   if (stricmp(argv[i], "-6maxuniques") == 0) { max_uniques = 6; } if (stricmp(argv[i], "-maxuniques6") == 0) { max_uniques = 6; } if (stricmp(argv[i], "-max6uniques") == 0) { max_uniques = 6; }
   if (stricmp(argv[i], "-7maxuniques") == 0) { max_uniques = 7; } if (stricmp(argv[i], "-maxuniques7") == 0) { max_uniques = 7; } if (stricmp(argv[i], "-max7uniques") == 0) { max_uniques = 7; }
   if (stricmp(argv[i], "-8maxuniques") == 0) { max_uniques = 8; } if (stricmp(argv[i], "-maxuniques8") == 0) { max_uniques = 8; } if (stricmp(argv[i], "-max8uniques") == 0) { max_uniques = 8; }
   if (stricmp(argv[i], "-9maxuniques") == 0) { max_uniques = 9; } if (stricmp(argv[i], "-maxuniques9") == 0) { max_uniques = 9; } if (stricmp(argv[i], "-max9uniques") == 0) { max_uniques = 9; }
   if (stricmp(argv[i], "-10maxuniques") == 0) { max_uniques = 10; } if (stricmp(argv[i], "-maxuniques10") == 0) { max_uniques = 10; } if (stricmp(argv[i], "-max10uniques") == 0) { max_uniques = 10; }
   if (stricmp(argv[i], "-startswith0") == 0) { slot1_start_at = 0; starts_with_letter = true; }
   if (stricmp(argv[i], "-startswith1") == 0) { slot1_start_at = 1; starts_with_letter = true; }
   if (stricmp(argv[i], "-startswith2") == 0) { slot1_start_at = 2; starts_with_letter = true; }
   if (stricmp(argv[i], "-startswith3") == 0) { slot1_start_at = 3; starts_with_letter = true; }
   if (stricmp(argv[i], "-startswith4") == 0) { slot1_start_at = 4; starts_with_letter = true; }
   if (stricmp(argv[i], "-startswith5") == 0) { slot1_start_at = 5; starts_with_letter = true; }
   if (stricmp(argv[i], "-startswith6") == 0) { slot1_start_at = 6; starts_with_letter = true; }
   if (stricmp(argv[i], "-startswith7") == 0) { slot1_start_at = 7; starts_with_letter = true; }
   if (stricmp(argv[i], "-startswith8") == 0) { slot1_start_at = 8; starts_with_letter = true; }
   if (stricmp(argv[i], "-startswith9") == 0) { slot1_start_at = 9; starts_with_letter = true; }
   if (stricmp(argv[i], "-startswithA") == 0) { slot1_start_at = 10; starts_with_letter = true; }
   if (stricmp(argv[i], "-startswithB") == 0) { slot1_start_at = 11; starts_with_letter = true; }
   if (stricmp(argv[i], "-startswithC") == 0) { slot1_start_at = 12; starts_with_letter = true; }
   if (stricmp(argv[i], "-startswithD") == 0) { slot1_start_at = 13; starts_with_letter = true; }
   if (stricmp(argv[i], "-startswithE") == 0) { slot1_start_at = 14; starts_with_letter = true; }
   if (stricmp(argv[i], "-startswithF") == 0) { slot1_start_at = 15; starts_with_letter = true; }
   if (stricmp(argv[i], "-start") == 0) { make_next_start_at = true; make_next_start_at_cnt = i; }
   if (stricmp(argv[i], "-stop") == 0) { make_next_stop_at = true; make_next_stop_at_cnt = i; }
   if ((make_next_start_at) && (i == (make_next_start_at_cnt+1))) { std::istringstream str_to_num(argv[i]); str_to_num >> start_at_long; if (!str_to_num) {std::cout << "ERROR: start is not a number" << "\n"; return 1;} make_next_start_at = false; }
   if ((make_next_stop_at) && (i == (make_next_stop_at_cnt+1))) { std::istringstream str_to_num(argv[i]); str_to_num >> stop_at_long; if (!str_to_num) {std::cout << "ERROR: stop is not a number" << "\n"; return 1;} make_next_stop_at = false; }
  }
 }

// ---------------------------------------------------
 // Number of combinations (10-length)
 // ---------------------------------------------------
 //  # of combos (10-length) = 1,099,511,627,776 (16^10) (13,194.14 GB)
 //  # of combos (10-length) with rules (6-9 uniques): 564,561,702,612 (51.3%) (6,774.74 GB)
 //  # of combos (10-length) with rules (10 uniques): 18,649,285,466 (1.7%) (223.79 GB)
 //  # of combos (10-length) with rules (09 uniques): 116,641,092,458 (10.6%) (1,399.69 GB)
 //  # of combos (10-length) with rules (08 uniques): 226,271,576,762 (20.6%) (2,715.26 GB)
 //  # of combos (10-length) with rules (07 uniques): 170,561,659,663 (15.5%) (2,046.74 GB)
 //  # of combos (10-length) with rules (06 uniques): 51,087,373,729 (4.6%) (613 GB)
 //  # of combos (10-length) with rules (05 uniques): 5,392,440,877 (0.5%) (64.7 GB)
 //  # of combos (10-length) with rules (04 uniques): 132,844,293 (0.012%) (1.59 GB)

 // ---------------------------------------------------
 // Number of combinations (10-length) (RISKY)
 // ---------------------------------------------------
 //  # of combos (10-length) = 1,099,511,627,776 (16^10) (13,194.14 GB)
 //  # of combos (10-length) with rules (6-9 uniques): 367,647,332,933 (33.4%) (4,411.8 GB)
 //  # of combos (10-length) with rules (10 uniques): 12,010,291,278 (1.1%) (144.1 GB)
 //  # of combos (10-length) with rules (09 uniques): 75,876,130,604 (6.9%) (910.5 GB)
 //  # of combos (10-length) with rules (08 uniques): 147,638,929,917 (13.4%) (1,771.7 GB)
 //  # of combos (10-length) with rules (07 uniques): 111,045,927,794 (10.1%) (1,332.6 GB)
 //  # of combos (10-length) with rules (06 uniques): 33,086,344,618 (3.0%) (397 GB)
 //  # of combos (10-length) with rules (05 uniques): 3,472,496,526 (0.31%) (41.7 GB)
 //  # of combos (10-length) with rules (04 uniques): 85,114,150 (0.008%) (1.02 GB)

instead of creating the lists I am piping the output of the scan direct to the scanner which save on the disk space some what.

I would like to hash some lists of words I have then pipe the input to the scanner what would be the best method of hashing large passwords lists to a specific hash output?

Thanks





 
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 [50] 51 52 53 54 55 56 57 58 59 60 61 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!