Bitcoin Forum
May 04, 2024, 05:31:46 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 »
821  Bitcoin / Development & Technical Discussion / Re: Dead man's switch: better approach proposal on: September 19, 2019, 10:45:53 AM
The transactions output are to P2SH or P2WSH address where unlock script allows Alice to spend anytime, but Bob to spend in N days after broadcast time.
I am not much into coding or technical things, how a regular user can perform this task?
Alice (owner) will just set an option of N days in a wallet. Then the wallet creates transactions automatically when sees new UTXO under control. Then it will send it to heir via some standard peer to peer channel (email, messenger, etc.) From Bob's (heir) side a wallet will get and store the tx.
It can be new wallet software with this functionality or an add-on to existing one.

Cicada were working on a Key Escrow System.
Not sure if it was ever released as such.
822  Bitcoin / Development & Technical Discussion / Re: Something Odd? Thinking caps on guys. on: September 13, 2019, 11:43:09 AM
Interesting but I can't tell myself if there's a logical explanation other than the (Wrong) logic that those set of words for sure spit out those parts of the hash.

It's not a one off with the same set of words in different positions, but do you also get the same findings with other sets of words? Or if you progressively replace 1 word in the same set with new words from dictionary?

Which v electrum?

I was running this specific set of words from the word list.
I believe most of this code is from either v1 or 2 of electrum it's like creating the "old style" wallet format.

From what I am seeing come back are far to close to say there is not something there. be it the way the words are being calculated into integer or otherwise.

If I take the entire word list and use them the results do not come back like such only when exactly 12 words are selected you get this same start to them.

It also works if you take any 12 words and do this function which to me seems very odd.
823  Bitcoin / Mining / Re: Learn from my mistake (load balancing) on: September 11, 2019, 08:14:44 PM
Holy crap.

That could have ended very bad indeed.
824  Bitcoin / Development & Technical Discussion / Re: Something Odd? Thinking caps on guys. on: September 11, 2019, 07:58:46 PM
You have got something interesting but in my opinion its not so easy to detect those combination by using single partial match only. If you look deeply on those set of words then you can see there that in every single combination multiple words organised in different position. Its not like that same words are using on similar place or in a common combination each time. Every single time those words are making their pairs by changing previous combination. For those pairs of words easily more thousands of combination could be generated which is kinda tough to detect AFAIK.    

Yes if you look at the words they are not in the same positions so why or how could the produce a hash with the same leading start as the previous one?

thats my point.

unless there something in the code I am not seeing that's causing it but from what I can see its all electrum code from a old wallet.
I am wondering if there may be some kind of flaw with the old electrum wallets that people missed I cannot understand how 2 words sets with the same words but in very different positions can produce a hash with the same leading characters unless there is a problem along the road somewhere.

I may be wrong but when you have 20k of these all very very very close it tells you something is wrong very wrong.
825  Bitcoin / Development & Technical Discussion / Re: Something Odd? Thinking caps on guys. on: September 11, 2019, 07:54:43 PM
I can understand why you'd say it's strange, but normally hash would be totally different even if only 1 bit of the input is changed.

I wonder if you could try it again, but using cryptographic random function instead.

here is the entire script that produces them.

Do you not find it strange that the words are all jumbled up but still you are getting hashes that show the same leading characters are matching.

even though the words are not in the same place or even next to each other.

as far as I am aware this is the old electrum code for "old style" wallets.

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:
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)
with open("addresses.txt", "a+") as myfile:
myfile.write(mpk + ": " + addy + "\t" + seed + "\n")



for example lets look at number 7

['fruit', 'stone', 'enrich', 'cupboard', 'vendor', 'idle', 'alter', 'ensure', 'horn', 'segment', 'spawn', 'smooth']
0: 1HX5wVovCUMmJCFuZ5PQ3JRFSvr1jeud6h: fed1b2acfef9e43800286ab300c9967a: ee4875dd10630520647378f69b0974be59b076d9443ff5b999645411bb156a6cc3934d67cfb9ab3 c7d97f5b933930d3f837b21000c91bf726fdc0d580ac6ef3d


['smooth', 'vendor', 'idle', 'enrich', 'segment', 'horn', 'alter', 'spawn', 'ensure', 'stone', 'fruit', 'cupboard']
0: 13WJoAWkqftY9DPxBEDDkk3xCTdK6PM1Yg: fed19f9fffc3c6da0028645900c9967d: d2e3b54a56868fa4d201c72aedb6e9d99a55cad5a1215d0d87e0399cc70663e8194cdba5dbedd99 250b5110941d5e326ae32bb0a14c84a1847fc5a51cc8d174f

why would it return the 2 values that are so close at the start this is not a one off by the way.
if i let this run for hours 95% of them have a relation like this even with the words being used at very different parts of the seed.

I think there is something more here that I am missing but those hashes should not be so close considering the functions used to create them?

Thanks guys.

Magic


826  Alternate cryptocurrencies / Altcoin Discussion / Re: *** Complete Guide on How to Create a New Alt Coin *** on: September 11, 2019, 04:24:08 PM
This guide is well out of date now and missing key info and things that need to be done.

if you fork early coins that still have the old SSL libs ect for example you open up your coin to attacks.

This guide is outdated and should NOT be used for a production coin now.

Guys it was posted in 2013 lol just a touch out of date don't you think lol
827  Bitcoin / Development & Technical Discussion / Something Odd? Thinking caps on guys. on: September 11, 2019, 04:16:52 PM
Hello everyone.

I have a strange topic I want to ask about,  I have been doing some testing with seed words and have found something interesting that I cannot explain and I am looking for some advice or possibly the answer to why this is happening.

So I have a small python script that is used the old electrum code to generate the MPK seed and PK and PubK.  
After running it with a specific set of words I started to notice many similarity in some of the hashes being returned to me.  

far too many to be a coincidence.

the word set being used is

['ensure', 'alter', 'segment', 'spawn', 'cupboard', 'idle', 'horn', 'enrich', 'vendor', 'smooth', 'fruit', 'stone']

Here are some of the results that came back.

Partial Match 1
Code:
['ensure', 'alter', 'segment', 'spawn', 'cupboard', 'idle', 'horn', 'enrich', 'vendor', 'smooth', 'fruit', 'stone']
0: 1BC5kyKk4Cp8BQQnCGUrGyALKVRAFv8ZbC: [b]0142aa16fea967b90142aa1700f20785[/b]: 47acd3ff230114489bd8843f5844e30b918dbf9d1959c4005555bb7a1ff5c51811259339652327cfb0faa221cb64d2726daa105901eeea6a66cc7503258da122

['horn', 'enrich', 'vendor', 'segment', 'smooth', 'idle', 'alter', 'fruit', 'stone', 'cupboard', 'ensure', 'spawn']
0: 13XYF15nGbyTZCSAF1dzaGhmES4kdcqE3U: [b]0142aa17ff4a937e00c9d5f71003c8196[/b]: 62ea4c8b70b138180a5bae9516490f577d613a9988ac085267598d24f820c594ead48fcc09ed804222760b877927bd6acaf1900943d79a5adffdac42b41bd16b

P2
Code:
['idle', 'smooth', 'enrich', 'segment', 'fruit', 'cupboard', 'horn', 'vendor', 'ensure', 'alter', 'stone', 'spawn']
0: 13MdNvvebwPoADLqh8nMip7tgtHyBCe8rf: [b]ff731dea00c9a988ff730ae1fefa2a0d[/b]: 12a8d7a5d021a0b55f31c08877ee468a6f95c01a9f391e85a29d4d0cd4bb71c482e741f5a73b43c6fbd0f9a1cc3e4ef3b72dd493ee0d27ac3b6fd061d4c0474f

['smooth', 'cupboard', 'horn', 'idle', 'ensure', 'spawn', 'enrich', 'vendor', 'segment', 'alter', 'stone', 'fruit']
0: 14aB3QzdqrZYWJ8ctoPbzcuukzEuVLTn7N:[b] ff73048910014696c100147c7cff7330f9[/b]: d7a5be995e9e0aade40bbd41f0b418597f912c79dfbcc8b14b3247ea52b09a8b9a632c90d8a388cafdc147e6595f9c76a4b530e99f46a25abe420b039d51aae6

P3

Code:
['segment', 'horn', 'enrich', 'smooth', 'cupboard', 'idle', 'ensure', 'alter', 'fruit', 'vendor', 'stone', 'spawn']
0: 1BYyy7W4SxTV18vtX343AvDVnpg9WSsw5S: [b]ffebe55afea94e5500f1facefef9f745[/b]: 0184be21c8607345ea934384bfce9b00b6b0c99d40910b43944946d071306705ab603b6f9f7e8ae30cd7b6a59f2a926a38af711ef68fdaa41d4532fc4640921a

['spawn', 'ensure', 'enrich', 'cupboard', 'horn', 'smooth', 'alter', 'idle', 'fruit', 'stone', 'segment', 'vendor']
0: 1QHzzhLEYb1jmmerkDBeasfcpHNoq4dNVX: [b]ffebfebd0078e734011a5f2300509c45[/b]: c799a5f28bce411ff19c445c2ccce8ff310fdd04ee76cbc36e86be451cbebb5176b14604461ab9d6eeee38741635092b3d46da772e1d1a0ca6981e25c5b9f148

P4

Code:
['smooth', 'spawn', 'cupboard', 'idle', 'horn', 'ensure', 'alter', 'fruit', 'segment', 'enrich', 'vendor', 'stone']
0: 18mKvV94QZa78GvQAM39LBNLMbaoHhqL3: [b]0142a3bf100146fc60050cf0b0050dbc0[/b]: 8f71f7cfdfd400c6313cbfa99ef3b8964dfc6d3022d797e84e7b5e1a3d177d7837ff3976c7c588b163aa433127c000cf2d850c6b321688dbfdaa63ca8c67b67a

['fruit', 'ensure', 'stone', 'cupboard', 'horn', 'spawn', 'smooth', 'vendor', 'enrich', 'alter', 'segment', 'idle']
0: 1AsFMbNHudUAit1748jaPxL2E45nLRKou5: [b]0142b07210014304cff224ee7fefa16ff:[/b] a3cdb77d9971ee5f72d93859b051cd7ed67e104f05ab83d92eb00561aa2baf1b1af8ad61f799bb169d473e753c537f7166d5698ead59f198ae8565f325bdea4f

P5

Code:
['segment', 'ensure', 'horn', 'fruit', 'enrich', 'alter', 'idle', 'vendor', 'spawn', 'smooth', 'stone', 'cupboard']
0: 1DYNQRdnELPQNpc8z483TfS6JthT7GEjjz: [b]005095e81003c8e46ff4ad2fa100146973[/b]: 05e35ce254f82deaa6b5ca9a1d1cef64c5242f4281a948b430385e6d7c67157285f92025dd16a82e4fb98033f553e6e4b8b9c85dd404b71d0ef6d57f11f4b870

['fruit', 'spawn', 'ensure', 'cupboard', 'stone', 'enrich', 'idle', 'alter', 'horn', 'segment', 'smooth', 'vendor']
0: 14QqCQiTkJVyHc5KgsuJj3dvVQiZM6pWWT: [b]00509c40fed1994800a164ea0079009a[/b]: 685e32aae2053931b1a06ca39d9e2ae0c26b112ceb831f433ac231f6146f06e98ee985f02548fa31735e84c892f2310da346be48d0b627e79cd13f0c2193d27a

P6

Code:
['ensure', 'stone', 'fruit', 'horn', 'cupboard', 'spawn', 'idle', 'alter', 'segment', 'smooth', 'vendor', 'enrich']
0: 1AoCMiZEiuUwdCCyf2bbg9HBbBYqqivd7: [b]ff731deeff2261f3011a6bd6ff224ee7:[/b] 5ec064a83f2a19d3736e1a96f1eaa3cd54cd8e75fe5351d0e986a2dba5e27b437e36855bb3368c28c21a36f76a3c2844d5ce1acf071a0daa4d0207d3da54b042

['horn', 'vendor', 'smooth', 'alter', 'segment', 'ensure', 'spawn', 'idle', 'stone', 'fruit', 'enrich', 'cupboard']
0: 1Yq6kidaUtpzdprSRGKePBNHXjU2GrcBM:[b] ffec11cdff9b758f01e408a5016afb62[/b]: b5dc00ff63b649abd61be60d58b1909f25c45e5f08900d59507ff39f06a2013aa6c626eb56112efa8bae2acaaa19fc2dfc9f361f373c981c8ec4619d489fca63

P7

Code:
['fruit', 'stone', 'enrich', 'cupboard', 'vendor', 'idle', 'alter', 'ensure', 'horn', 'segment', 'spawn', 'smooth']
0: 1HX5wVovCUMmJCFuZ5PQ3JRFSvr1jeud6h: [b]fed1b2acfef9e43800286ab300c9967a:[/b] ee4875dd10630520647378f69b0974be59b076d9443ff5b999645411bb156a6cc3934d67cfb9ab3c7d97f5b933930d3f837b21000c91bf726fdc0d580ac6ef3d


['smooth', 'vendor', 'idle', 'enrich', 'segment', 'horn', 'alter', 'spawn', 'ensure', 'stone', 'fruit', 'cupboard']
0: 13WJoAWkqftY9DPxBEDDkk3xCTdK6PM1Yg:[b] fed19f9fffc3c6da0028645900c9967d[/b]: d2e3b54a56868fa4d201c72aedb6e9d99a55cad5a1215d0d87e0399cc70663e8194cdba5dbedd99250b5110941d5e326ae32bb0a14c84a1847fc5a51cc8d174f

Further Breakdown

Code:
Words Used :
['ensure', 'alter', 'segment', 'spawn', 'cupboard', 'idle', 'horn', 'enrich', 'vendor', 'smooth', 'fruit', 'stone']
0142aa16fea967b90142aa1700f20785  =   1BC5kyKk4Cp8BQQnCGUrGyALKVRAFv8ZbC

Words Used:
['horn', 'enrich', 'vendor', 'segment', 'smooth', 'idle', 'alter', 'fruit', 'stone', 'cupboard', 'ensure', 'spawn']
0142aa17ff4a937e00c9d5f71003c8196 =  13XYF15nGbyTZCSAF1dzaGhmES4kdcqE3U

Words Used:
['idle', 'smooth', 'enrich', 'segment', 'fruit', 'cupboard', 'horn', 'vendor', 'ensure', 'alter', 'stone', 'spawn']
ff731dea00c9a988ff730ae1fefa2a0d =  13MdNvvebwPoADLqh8nMip7tgtHyBCe8rf

Words Used:
['smooth', 'cupboard', 'horn', 'idle', 'ensure', 'spawn', 'enrich', 'vendor', 'segment', 'alter', 'stone', 'fruit']
ff73048910014696c100147c7cff7330f9 = 14aB3QzdqrZYWJ8ctoPbzcuukzEuVLTn7N

Words Used:
['smooth', 'spawn', 'cupboard', 'idle', 'horn', 'ensure', 'alter', 'fruit', 'segment', 'enrich', 'vendor', 'stone']
0142a3bf100146fc60050cf0b0050dbc0 =  18mKvV94QZa78GvQAM39LBNLMbaoHhqL3

Words Used:
['fruit', 'ensure', 'stone', 'cupboard', 'horn', 'spawn', 'smooth', 'vendor', 'enrich', 'alter', 'segment', 'idle']
0142b07210014304cff224ee7fefa16ff =  1AsFMbNHudUAit1748jaPxL2E45nLRKou5

Words Used:
['segment', 'ensure', 'horn', 'fruit', 'enrich', 'alter', 'idle', 'vendor', 'spawn', 'smooth', 'stone', 'cupboard']
005095e81003c8e46ff4ad2fa100146973 = 1DYNQRdnELPQNpc8z483TfS6JthT7GEjjz

Words Used:
['fruit', 'spawn', 'ensure', 'cupboard', 'stone', 'enrich', 'idle', 'alter', 'horn', 'segment', 'smooth', 'vendor']
00509c40fed1994800a164ea0079009a = 14QqCQiTkJVyHc5KgsuJj3dvVQiZM6pWWT



For reference here is parts of the code used to generate them..


Code:
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

while True:
        guess = random.sample(words,12)
        #guess = "sensure alter segment spawn cupboard idle horn enrich vendor smooth fruit stone".split()
        print guess
        seed = mn_decode(guess)
        mpk = OldAccount.mpk_from_seed(seed)
        acc = OldAccount({'mpk':mpk, 0:[], 1:[]})
        secexp = number_to_string(secexp, generator_secp256k1.order())
        compressed = False
        SecretToASecret( pk, compressed )


My thoughts were that the old electrum way of doing things each digit represented by a word is variable, it depends on the previous word. if this is the case the returned hashes make no logical explanation for there matching pairs for example if you look at the first two being

Code:
0142aa16fea967b90142aa1700f20785
['ensure', 'alter', 'segment', 'spawn', 'cupboard', 'idle', 'horn', 'enrich', 'vendor', 'smooth', 'fruit', 'stone']

and

Code:
0142aa17ff4a937e00c9d5f71003c8196
['horn', 'enrich', 'vendor', 'segment', 'smooth', 'idle', 'alter', 'fruit', 'stone', 'cupboard', 'ensure', 'spawn']

if the were to follow this rule then the hashes should be much much different as the words used are in a totally different order.

I also noticed many HEX values showing up during this for color values.

Code:
00509c40fed1994800a164ea0079009a = 14QqCQiTkJVyHc5KgsuJj3dvVQiZM6pWWT

#00509c  = Royal Blue | RGBA 90, 80, 156, 1)

Dose the old electrum style wallet use color hex codes as part of the number process because from what I am seeing there seems to be some kind of detectable issue with the hashing of the same words in different orders ?

I hope someone can shed some light on this matter more as I am now rather stumped on where to look into this further.

Magic

828  Bitcoin / Development & Technical Discussion / Re: OTP for crypto transactions on: September 04, 2019, 04:49:15 PM
I am wondering how OTP will prevent if you are sending crypto-currency into wrong address. OTP will ensure that fund sending by right person, it will not verify address that you are going to send funds.

I also don't see how OTP can mitigate cases where a user sends funds to the wrong address (eg. due to clipboard-malware). The only way I currently see to avoid this problem is to (1) double check the address before pressing send and (2) confirming the address over a secondary device / communication channel (eg. via phone or email). I'm not sure if there's a good solution for automating / integrating this process of recipient confirmation though.

Sometimes this is not enough the clipboard malware strains are becoming much more in-depth you may paste the correct address double check it but when the send button is presses the malware then manipulates the data to replace the address only after it's send do you realize that the funds are going to another address and not the one being pasted in.

The old paste in style is not the cyber crims choice of tool anymore manipulation of the packet it where they seem to be at now.
829  Other / Beginners & Help / Re: Need some creative ideas! on: July 30, 2019, 09:02:16 AM
BitcoinTX.net    -   Great name for a Block explorer / mining pool.
BitcoinOptimist.com -  Would work very well as a news outlet or price analysis site.
CryptoGear.net -  Good name for crypto hardware sales
BtcExplode.com -  This could be good as a price alert site (say bitcoin starts to pump this site could send alerts to people when bitcoin explodes alerts go out)
CryptoInforms.com -  Not sure about this one possible it may be good to put regulation information here for people interested in starting crypto company.
BtcDiva.com - A site just for the ladies out there make it pink put some cute coins there and trinkets for sale it might do very well.

830  Bitcoin / Press / Re: [2019-07-27] US Prosecutors Indict BTC-e Crypto Exchange, Seek $100 million on: July 30, 2019, 08:52:09 AM
If I am not wrong, the BTC-e guys openly challenged the feds after the latter tried multiple times to get the website closed down (for the refusal to conduct KYC). They thought that since they were all based in Russia, the Feds will never be able to catch them. It ended very badly for them. First, one of the founders (Alexander Vinnik) was arrested in Greece and in all certainty he will be deported to the US (where he will be given life without parole). Just a few weeks later, a part of their funds (both crypto and fiat) were seized by the feds. And surprisingly even after all this, these guys refused to back down. They set up another website (WEx.nz), restored the user balance (partly in crypto and partly in tokens), resumed trading and once again challenged the feds. The feds devoted all their resources to finish them once and for all, and in the end it was a similar story. 

I'm sure it was reported that Vinnik had gone on hunger-strike in protest about being extradited to the US to faces charges.
I think he ended up in quite a serious condition and his legal team were fighting the extradition to the US.

https://www.coindesk.com/alleged-btc-e-operator-alexander-vinnik-seeks-extradition-to-russia

https://www.facebook.com/cointelegraph/videos/alexander-vinnik-to-go-on-hunger-strike-from-monday/319482565448456/

Seems that there arrest paperwork at the time was also out of date at the time of Mr Vinnik's arrest which in turn should cause the investigation some problems as they technically broke the law to detain Mr Vinnik.

831  Bitcoin / Bitcoin Technical Support / Re: Need help with 24 word mnemonic on: July 23, 2019, 11:03:12 AM
Code:
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=300;
numberofchangeaddresses=300;

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') )

        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 = [ "like", "just", "love", "know", "never", "want", "time", "out", "there", "make", "look", "eye", "down", "only", "think", "heart", "back", "then", "into", "about", "more", "away", "still", "them", "take", "thing", "even", "through", "long", "always", "world", "too", "friend", "tell", "try", "hand", "thought", "over", "here", "other", "need", "smile", "again", "much", "cry", "been", "night", "ever", "little", "said", "end", "some", "those", "around", "mind", "people", "girl", "leave", "dream", "left", "turn", "myself", "give", "nothing", "really", "off", "before", "something", "find", "walk", "wish", "good", "once", "place", "ask", "stop", "keep", "watch", "seem", "everything", "wait", "got", "yet", "made", "remember", "start", "alone", "run", "hope", "maybe", "believe", "body", "hate", "after", "close", "talk", "stand", "own", "each", "hurt", "help", "home", "god", "soul", "new", "many", "two", "inside", "should", "true", "first", "fear", "mean", "better", "play", "another", "gone", "change", "use", "wonder", "someone", "hair", "cold", "open", "best", "any", "behind", "happen", "water", "dark", "laugh", "stay", "forever", "name", "work", "show", "sky", "break", "came", "deep", "door", "put", "black", "together", "upon", "happy", "such", "great", "white", "matter", "fill", "past", "please", "burn", "cause", "enough", "touch", "moment", "soon", "voice", "scream", "anything", "stare", "sound", "red", "everyone", "hide", "kiss", "truth", "death", "beautiful", "mine", "blood", "broken", "very", "pass", "next", "forget", "tree", "wrong", "air", "mother", "understand", "lip", "hit", "wall", "memory", "sleep", "free", "high", "realize", "school", "might", "skin", "sweet", "perfect", "blue", "kill", "breath", "dance", "against", "fly", "between", "grow", "strong", "under", "listen", "bring", "sometimes", "speak", "pull", "person", "become", "family", "begin", "ground", "real", "small", "father", "sure", "feet", "rest", "young", "finally", "land", "across", "today", "different", "guy", "line", "fire", "reason", "reach", "second", "slowly", "write", "eat", "smell", "mouth", "step", "learn", "three", "floor", "promise", "breathe", "darkness", "push", "earth", "guess", "save", "song", "above", "along", "both", "color", "house", "almost", "sorry", "anymore", "brother", "okay", "dear", "game", "fade", "already", "apart", "warm", "beauty", "heard", "notice", "question", "shine", "began", "piece", "whole", "shadow", "secret", "street", "within", "finger", "point", "morning", "whisper", "child", "moon", "green", "story", "glass", "kid", "silence", "since", "soft", "yourself", "empty", "shall", "angel", "answer", "baby", "bright", "dad", "path", "worry", "hour", "drop", "follow", "power", "war", "half", "flow", "heaven", "act", "chance", "fact", "least", "tired", "children", "near", "quite", "afraid", "rise", "sea", "taste", "window", "cover", "nice", "trust", "lot", "sad", "cool", "force", "peace", "return", "blind", "easy", "ready", "roll", "rose", "drive", "held", "music", "beneath", "hang", "mom", "paint", "emotion", "quiet", "clear", "cloud", "few", "pretty", "bird", "outside", "paper", "picture", "front", "rock", "simple", "anyone", "meant", "reality", "road", "sense", "waste", "bit", "leaf", "thank", "happiness", "meet", "men", "smoke", "truly", "decide", "self", "age", "book", "form", "alive", "carry", "escape", "damn", "instead", "able", "ice", "minute", "throw", "catch", "leg", "ring", "course", "goodbye", "lead", "poem", "sick", "corner", "desire", "known", "problem", "remind", "shoulder", "suppose", "toward", "wave", "drink", "jump", "woman", "pretend", "sister", "week", "human", "joy", "crack", "grey", "pray", "surprise", "dry", "knee", "less", "search", "bleed", "caught", "clean", "embrace", "future", "king", "son", "sorrow", "chest", "hug", "remain", "sat", "worth", "blow", "daddy", "final", "parent", "tight", "also", "create", "lonely", "safe", "cross", "dress", "evil", "silent", "bone", "fate", "perhaps", "anger", "class", "scar", "snow", "tiny", "tonight", "continue", "control", "dog", "edge", "mirror", "month", "suddenly", "comfort", "given", "loud", "quickly", "gaze", "plan", "rush", "stone", "town", "battle", "ignore", "spirit", "stood", "stupid", "yours", "brown", "build", "dust", "hey", "kept", "pay", "phone", "twist", "although", "ball", "beyond", "hidden", "nose", "taken", "fail", "float", "pure", "somehow", "wash", "wrap", "angry", "cheek", "creature", "forgotten", "heat", "rip", "single", "space", "special", "weak", "whatever", "yell", "anyway", "blame", "job", "choose", "country", "curse", "drift", "echo", "figure", "grew", "laughter", "neck", "suffer", "worse", "yeah", "disappear", "foot", "forward", "knife", "mess", "somewhere", "stomach", "storm", "beg", "idea", "lift", "offer", "breeze", "field", "five", "often", "simply", "stuck", "win", "allow", "confuse", "enjoy", "except", "flower", "seek", "strength", "calm", "grin", "gun", "heavy", "hill", "large", "ocean", "shoe", "sigh", "straight", "summer", "tongue", "accept", "crazy", "everyday", "exist", "grass", "mistake", "sent", "shut", "surround", "table", "ache", "brain", "destroy", "heal", "nature", "shout", "sign", "stain", "choice", "doubt", "glance", "glow", "mountain", "queen", "stranger", "throat", "tomorrow", "city", "either", "fish", "flame", "rather", "shape", "spin", "spread", "ash", "distance", "finish", "image", "imagine", "important", "nobody", "shatter", "warmth", "became", "feed", "flesh", "funny", "lust", "shirt", "trouble", "yellow", "attention", "bare", "bite", "money", "protect", "amaze", "appear", "born", "choke", "completely", "daughter", "fresh", "friendship", "gentle", "probably", "six", "deserve", "expect", "grab", "middle", "nightmare", "river", "thousand", "weight", "worst", "wound", "barely", "bottle", "cream", "regret", "relationship", "stick", "test", "crush", "endless", "fault", "itself", "rule", "spill", "art", "circle", "join", "kick", "mask", "master", "passion", "quick", "raise", "smooth", "unless", "wander", "actually", "broke", "chair", "deal", "favorite", "gift", "note", "number", "sweat", "box", "chill", "clothes", "lady", "mark", "park", "poor", "sadness", "tie", "animal", "belong", "brush", "consume", "dawn", "forest", "innocent", "pen", "pride", "stream", "thick", "clay", "complete", "count", "draw", "faith", "press", "silver", "struggle", "surface", "taught", "teach", "wet", "bless", "chase", "climb", "enter", "letter", "melt", "metal", "movie", "stretch", "swing", "vision", "wife", "beside", "crash", "forgot", "guide", "haunt", "joke", "knock", "plant", "pour", "prove", "reveal", "steal", "stuff", "trip", "wood", "wrist", "bother", "bottom", "crawl", "crowd", "fix", "forgive", "frown", "grace", "loose", "lucky", "party", "release", "surely", "survive", "teacher", "gently", "grip", "speed", "suicide", "travel", "treat", "vein", "written", "cage", "chain", "conversation", "date", "enemy", "however", "interest", "million", "page", "pink", "proud", "sway", "themselves", "winter", "church", "cruel", "cup", "demon", "experience", "freedom", "pair", "pop", "purpose", "respect", "shoot", "softly", "state", "strange", "bar", "birth", "curl", "dirt", "excuse", "lord", "lovely", "monster", "order", "pack", "pants", "pool", "scene", "seven", "shame", "slide", "ugly", "among", "blade", "blonde", "closet", "creek", "deny", "drug", "eternity", "gain", "grade", "handle", "key", "linger", "pale", "prepare", "swallow", "swim", "tremble", "wheel", "won", "cast", "cigarette", "claim", "college", "direction", "dirty", "gather", "ghost", "hundred", "loss", "lung", "orange", "present", "swear", "swirl", "twice", "wild", "bitter", "blanket", "doctor", "everywhere", "flash", "grown", "knowledge", "numb", "pressure", "radio", "repeat", "ruin", "spend", "unknown", "buy", "clock", "devil", "early", "false", "fantasy", "pound", "precious", "refuse", "sheet", "teeth", "welcome", "add", "ahead", "block", "bury", "caress", "content", "depth", "despite", "distant", "marry", "purple", "threw", "whenever", "bomb", "dull", "easily", "grasp", "hospital", "innocence", "normal", "receive", "reply", "rhyme", "shade", "someday", "sword", "toe", "visit", "asleep", "bought", "center", "consider", "flat", "hero", "history", "ink", "insane", "muscle", "mystery", "pocket", "reflection", "shove", "silently", "smart", "soldier", "spot", "stress", "train", "type", "view", "whether", "bus", "energy", "explain", "holy", "hunger", "inch", "magic", "mix", "noise", "nowhere", "prayer", "presence", "shock", "snap", "spider", "study", "thunder", "trail", "admit", "agree", "bag", "bang", "bound", "butterfly", "cute", "exactly", "explode", "familiar", "fold", "further", "pierce", "reflect", "scent", "selfish", "sharp", "sink", "spring", "stumble", "universe", "weep", "women", "wonderful", "action", "ancient", "attempt", "avoid", "birthday", "branch", "chocolate", "core", "depress", "drunk", "especially", "focus", "fruit", "honest", "match", "palm", "perfectly", "pillow", "pity", "poison", "roar", "shift", "slightly", "thump", "truck", "tune", "twenty", "unable", "wipe", "wrote", "coat", "constant", "dinner", "drove", "egg", "eternal", "flight", "flood", "frame", "freak", "gasp", "glad", "hollow", "motion", "peer", "plastic", "root", "screen", "season", "sting", "strike", "team", "unlike", "victim", "volume", "warn", "weird", "attack", "await", "awake", "built", "charm", "crave", "despair", "fought", "grant", "grief", "horse", "limit", "message", "ripple", "sanity", "scatter", "serve", "split", "string", "trick", "annoy", "blur", "boat", "brave", "clearly", "cling", "connect", "fist", "forth", "imagination", "iron", "jock", "judge", "lesson", "milk", "misery", "nail", "naked", "ourselves", "poet", "possible", "princess", "sail", "size", "snake", "society", "stroke", "torture", "toss", "trace", "wise", "bloom", "bullet", "cell", "check", "cost", "darling", "during", "footstep", "fragile", "hallway", "hardly", "horizon", "invisible", "journey", "midnight", "mud", "nod", "pause", "relax", "shiver", "sudden", "value", "youth", "abuse", "admire", "blink", "breast", "bruise", "constantly", "couple", "creep", "curve", "difference", "dumb", "emptiness", "gotta", "honor", "plain", "planet", "recall", "rub", "ship", "slam", "soar", "somebody", "tightly", "weather", "adore", "approach", "bond", "bread", "burst", "candle", "coffee", "cousin", "crime", "desert", "flutter", "frozen", "grand", "heel", "hello", "language", "level", "movement", "pleasure", "powerful", "random", "rhythm", "settle", "silly", "slap", "sort", "spoken", "steel", "threaten", "tumble", "upset", "aside", "awkward", "bee", "blank", "board", "button", "card", "carefully", "complain", "crap", "deeply", "discover", "drag", "dread", "effort", "entire", "fairy", "giant", "gotten", "greet", "illusion", "jeans", "leap", "liquid", "march", "mend", "nervous", "nine", "replace", "rope", "spine", "stole", "terror", "accident", "apple", "balance", "boom", "childhood", "collect", "demand", "depression", "eventually", "faint", "glare", "goal", "group", "honey", "kitchen", "laid", "limb", "machine", "mere", "mold", "murder", "nerve", "painful", "poetry", "prince", "rabbit", "shelter", "shore", "shower", "soothe", "stair", "steady", "sunlight", "tangle", "tease", "treasure", "uncle", "begun", "bliss", "canvas", "cheer", "claw", "clutch", "commit", "crimson", "crystal", "delight", "doll", "existence", "express", "fog", "football", "gay", "goose", "guard", "hatred", "illuminate", "mass", "math", "mourn", "rich", "rough", "skip", "stir", "student", "style", "support", "thorn", "tough", "yard", "yearn", "yesterday", "advice", "appreciate", "autumn", "bank", "beam", "bowl", "capture", "carve", "collapse", "confusion", "creation", "dove", "feather", "girlfriend", "glory", "government", "harsh", "hop", "inner", "loser", "moonlight", "neighbor", "neither", "peach", "pig", "praise", "screw", "shield", "shimmer", "sneak", "stab", "subject", "throughout", "thrown", "tower", "twirl", "wow", "army", "arrive", "bathroom", "bump", "cease", "cookie", "couch", "courage", "dim", "guilt", "howl", "hum", "husband", "insult", "led", "lunch", "mock", "mostly", "natural", "nearly", "needle", "nerd", "peaceful", "perfection", "pile", "price", "remove", "roam", "sanctuary", "serious", "shiny", "shook", "sob", "stolen", "tap", "vain", "void", "warrior", "wrinkle", "affection", "apologize", "blossom", "bounce", "bridge", "cheap", "crumble", "decision", "descend", "desperately", "dig", "dot", "flip", "frighten", "heartbeat", "huge", "lazy", "lick", "odd", "opinion", "process", "puzzle", "quietly", "retreat", "score", "sentence", "separate", "situation", "skill", "soak", "square", "stray", "taint", "task", "tide", "underneath", "veil", "whistle", "anywhere", "bedroom", "bid", "bloody", "burden", "careful", "compare", "concern", "curtain", "decay", "defeat", "describe", "double", "dreamer", "driver", "dwell", "evening", "flare", "flicker", "grandma", "guitar", "harm", "horrible", "hungry", "indeed", "lace", "melody", "monkey", "nation", "object", "obviously", "rainbow", "salt", "scratch", "shown", "shy", "stage", "stun", "third", "tickle", "useless", "weakness", "worship", "worthless", "afternoon", "beard", "boyfriend", "bubble", "busy", "certain", "chin", "concrete", "desk", "diamond", "doom", "drawn", "due", "felicity", "freeze", "frost", "garden", "glide", "harmony", "hopefully", "hunt", "jealous", "lightning", "mama", "mercy", "peel", "physical", "position", "pulse", "punch", "quit", "rant", "respond", "salty", "sane", "satisfy", "savior", "sheep", "slept", "social", "sport", "tuck", "utter", "valley", "wolf", "aim", "alas", "alter", "arrow", "awaken", "beaten", "belief", "brand", "ceiling", "cheese", "clue", "confidence", "connection", "daily", "disguise", "eager", "erase", "essence", "everytime", "expression", "fan", "flag", "flirt", "foul", "fur", "giggle", "glorious", "ignorance", "law", "lifeless", "measure", "mighty", "muse", "north", "opposite", "paradise", "patience", "patient", "pencil", "petal", "plate", "ponder", "possibly", "practice", "slice", "spell", "stock", "strife", "strip", "suffocate", "suit", "tender", "tool", "trade", "velvet", "verse", "waist", "witch", "aunt", "bench", "bold", "cap", "certainly", "click", "companion", "creator", "dart", "delicate", "determine", "dish", "dragon", "drama", "drum", "dude", "everybody", "feast", "forehead", "former", "fright", "fully", "gas", "hook", "hurl", "invite", "juice", "manage", "moral", "possess", "raw", "rebel", "royal", "scale", "scary", "several", "slight", "stubborn", "swell", "talent", "tea", "terrible", "thread", "torment", "trickle", "usually", "vast", "violence", "weave", "acid", "agony", "ashamed", "awe", "belly", "blend", "blush", "character", "cheat", "common", "company", "coward", "creak", "danger", "deadly", "defense", "define", "depend", "desperate", "destination", "dew", "duck", "dusty", "embarrass", "engine", "example", "explore", "foe", "freely", "frustrate", "generation", "glove", "guilty", "health", "hurry", "idiot", "impossible", "inhale", "jaw", "kingdom", "mention", "mist", "moan", "mumble", "mutter", "observe", "ode", "pathetic", "pattern", "pie", "prefer", "puff", "rape", "rare", "revenge", "rude", "scrape", "spiral", "squeeze", "strain", "sunset", "suspend", "sympathy", "thigh", "throne", "total", "unseen", "weapon", "weary" ]

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

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



clue="1pP35yQkzWe9sPwxrfMS1AQEMoyQc91pa"


origseed=["idle", "alter", "enrich", "spawn", "ensure", "horn", "fruit", "smooth", "segment", "vendor", "cupboard", "stone"];




for x in range(0, 12):
   myseed=origseed[:];
   for y in range(0,1626):
variedword=words[y];

myseed2 = ""
myseed[x]=variedword;
    for i in myseed:
      myseed2 += str(i) + "  ";
      myseed2 = myseed2[:-1]
    print "Attempting seed: "+myseed2;
        seed=myseed2;
print " ";
plainseed=seed;
print "We're on seed word "+str(x+1)+" iteration "+str(y);
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');
for ra in range(0,numberofreceivingaddresses):
foundseed=0;
addy=get_address(mpk,0,ra);
if addy==clue:
print "WOWWWWWWW!!! FOUND THE SEED!!!";
foundseed=1;
print plainseed;
if foundseed==1:
quit()



This will check every possible combination of the seed and it will also generate many addresses to check.
You can lower the number of addresses generated if required..

Good luck as this is quite slow.

832  Bitcoin / Bitcoin Technical Support / Re: Hash to 160 (Python) on: July 12, 2019, 09:58:49 AM
Thanks guys you solved my issue and thank you for the explanations and script.

@pooya87  I ran out of merits so IOU 1+ merit Smiley





833  Bitcoin / Bitcoin Technical Support / Hash to 160 (Python) on: July 11, 2019, 07:33:14 PM
Trying to convert pub key to corresponding hash 160.

input.txt would have the public addresses inside
output would be the hash160's but the issue is the hash 160's that come back do not match on the explorer.

Is there a step that is missing from the conversion?  I read that I need possibly base58 check

Thanks in advance!

 Wink


Code:
import hashlib,binascii

# Set Output file
with open('OUT.txt', 'w') as result:

# Set input addresses
    for word in open('input.txt').read().split():

     # Check encoding and set Algorithm choice SHA1, SHA224, SHA256, SHA384, SHA512, RIPEMD160, MD5,
        h = hashlib.new('ripemd160', word.encode('utf-8')).digest()
        result.write(binascii.hexlify(h) + '\n')
834  Bitcoin / Development & Technical Discussion / Re: Any recommendations for a simple javascript file for signing messages? on: July 09, 2019, 12:31:38 PM
Thanks, you might be right!  I will have a gander... 
Thank you again!!

Most welcome.

 Wink
835  Bitcoin / Development & Technical Discussion / Re: Any recommendations for a simple javascript file for signing messages? on: July 09, 2019, 11:33:48 AM
https://github.com/coinbin/coinbin

This should be what your needing.
Should have all the parts to create what your looking for.
836  Bitcoin / Pools / Re: [∞ YH] solo.ckpool.org 1% fee solo mining USA/DE 252 blocks solved! on: July 09, 2019, 10:59:59 AM
Seems every time we get close to my magic number 128 diff we re-target and it falls further away! Smiley
Come on 128!

(i know means nothing but as humans we just love special numbers Smiley 

CK would you have an idea of how much hash rate would be needed to make solves here every month?


837  Bitcoin / Mining support / Re: Need Antminer s9 serial connect to eliminate NEW VIRUS!!! on: July 09, 2019, 09:51:45 AM
Downside to password manager is you lose or get hacked that one master password you can say goodbye to all your accounts.

I really don't think password managers are a good solution.

What I used to do for my miners was have a logbook give every miner a number and a random password in the logbook this way someone would need physical access to get your miner passwords.

The less you keep in digital format the less you have to lose.
838  Other / Meta / Re: The new (maybe not so new) spammy trend. on: July 08, 2019, 10:20:49 PM
What would be nice is some users to get something like the report button that marks topics like this.
I have submitted a few with the report button but I feel this is more for alerting to serious concerns like virus or phishing attempts it would be an idea to have people who are merit sources possibly have additional button to flag potential spam, low worth posts, and scams.

I don't know if there has been a system like this proposed but I think if there were some members who had some kind of secondary way to flag these accounts it might make banning them simpler.

Or a system of De-merit.

User N00B joins and posts a simple easy to find question on the forum or with google like

How do I check a my wallet on the blockchain.           

Merit-souce ( can flag the message,    1. spam,    2. non-constructive

every time you get a STRIKE from a merit source you should either lose merit or if you have a fresh account a warning for low-constructive posts

I also think it might be an idea to have new users view a forum rules post and accept the rules this way anyone falling foul of them cannot claim they did not know ect ect as they would have accepted them once joined.
There seems to be many bot's on the forum posting questions they are always of very low value or very low quality I would say after 3 strikes you get banned.

This action in turn will ban the "question bots"  and low quality content from spamming up the forum and good technical and valid questions won't be lost to them either.

Just my 2 sat's
839  Economy / Scam Accusations / Re: SCAM REPORT [BITTREX] on: July 08, 2019, 10:10:54 PM
this is not the only account wich has been freez and closed, same thing for coinbase for no reason and kraken because my bank account was not in my country.

this is really stupid and if you read the policy of this exchanges, all their terms of service are not clear and contradictory.

coinbase has rob me and never back send my btc, kraken have freez my account and have made me lost my time during bull run of 2017 and now bittrex have rob me and dont want back send my money.

This is not the first claim that has been made my users against Bittrex,  What I find strange is the fact they ask for selfies what use would they be anyway not like you submit one when you signed up to there exchange so why would they need this what purpose would it server them if they have no "original" reference.

I have the same issue with Binance and a lost 2fa they refuse remove my 2FA until I submit them photo's and government issued ID which is not happening.

I think we all supported the wrong exchanges in the past my advice from now on is to stick to DEX markets this way you can ensure no need for KYC.

I think we are about to see the next collapse of some exchanges either from "hacking" or insider exit scams.

i dont, i just refused and ask the refund but they want 3 selfies for let me withdraw my funds, pict front, left and right, like criminal, i never see that, any exchanges have never ask me that for refund me.

You misunderstood me I am saying it makes no sense for them to ASK for photo's if they have no Reference IE passport at signup to compare it to.
Stand your ground with them ask them for there company information including trading address and company references my only other advice would be seek legal advice over this.

If they have your money and won't give back you have re-course but would require advice from legal advisor.

Stand your ground if they did not request ID at sign up they should not be asking for it now if it's a change of service terms they MUST first inform you the customer.

I hope you get your funds back.


840  Economy / Scam Accusations / Re: SCAM REPORT [BITTREX] on: July 08, 2019, 09:42:14 PM
this is not the only account wich has been freez and closed, same thing for coinbase for no reason and kraken because my bank account was not in my country.

this is really stupid and if you read the policy of this exchanges, all their terms of service are not clear and contradictory.

coinbase has rob me and never back send my btc, kraken have freez my account and have made me lost my time during bull run of 2017 and now bittrex have rob me and dont want back send my money.

This is not the first claim that has been made my users against Bittrex,  What I find strange is the fact they ask for selfies what use would they be anyway not like you submit one when you signed up to there exchange so why would they need this what purpose would it server them if they have no "original" reference.

I have the same issue with Binance and a lost 2fa they refuse remove my 2FA until I submit them photo's and government issued ID which is not happening.

I think we all supported the wrong exchanges in the past my advice from now on is to stick to DEX markets this way you can ensure no need for KYC.

I think we are about to see the next collapse of some exchanges either from "hacking" or insider exit scams.
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 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!