Bitcoin Forum
July 07, 2024, 10:00:39 PM *
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 »
61  Bitcoin / Bitcoin Technical Support / Re: Encrypted wallet.dat, lost password, any solutions? on: April 07, 2013, 07:38:58 AM
Maybe this will help someone with mistyped password on Windows. This is a short Powershell script that tries the passwords read from standard input as rapidly as the particular cryptocoin client will allow.

Nice.  I should have done something like this from the start.  I'll add it to my next version.
62  Bitcoin / Development & Technical Discussion / Re: Q: Hardware Acceleration, Memory Demand on: April 07, 2013, 12:15:25 AM
You can start from a random nonce.  It's a large enough space that you're unlikely to collide with yourself unless you control a significant percentage of the global hashpower.

Yes, you can divide the start nonces evenly between your ASICs if you want to try to squeeze out the last fraction of a percent.  Smiley
63  Bitcoin / Development & Technical Discussion / Re: Q: Hardware Acceleration, Memory Demand on: April 06, 2013, 11:13:16 PM
It's actually easier than that.  Your software will just:

* get the data and target with getwork
* upload it to the ASIC over SPI
* wait for an interrupt
* read out the nonce over SPI
* return it with submitblock

Bitcoind does all the rest of the work: talking to the network, creating and distributing blocks, everything involving wallets, etc.
64  Bitcoin / Bitcoin Technical Support / Re: SENDING TRC TO BTC ADDRESS on: April 04, 2013, 04:14:07 AM
I don't use TRC but I believe they use the same address and key format as BTC.  The network has no way to know that it's supposed to be a BTC address, so no, it doesn't bounce.

The recipient can import their BTC key into a TRC client to collect the TRC and perhaps send them back.
65  Bitcoin / Development & Technical Discussion / Re: Change addresses and wallet backups on: April 04, 2013, 04:07:04 AM
https://en.bitcoin.it/wiki/Key_pool
66  Bitcoin / Bitcoin Technical Support / Re: Encrypted wallet.dat, lost password, any solutions? on: April 03, 2013, 08:49:53 AM
Hey guys this is amazing any chance i can get help with my 10k ltc wallet? I forgot i had it on my laptop and remember the password as its simmilar and i just change either number at the end or used "ks" instead of "x" or "o" instead of "a" . In this case its over 33characters long and i been at it for a week with a notepad file where i record all combinations i tried and nothing so far :/

I know this is off topic but this is the best answer to similar problem i seen so far.

I will give a donation to anyone who can help i know this is just a mispelling because I remember writing it out in a notepad, then copy pasting it twice in ltc wallet and BAM since i cant get it to work ....( yes i know this is extremly stupid  Cry to do and yet for some dumb reason i did it to save time )


thanks in advance and sorry to post here regarding ltc wallet agian.

Hey, I'm cool with LTC.  Let's see what we can do:

Code:
#!/usr/bin/ruby

passphrase = 'I fargat my paxxward'
max_digits = 5

def test(phrase)
  print phrase, "\t"
  system("./litecoind", "walletpassphrase", phrase, "20")
  case $?.exitstatus
  when 0
    puts "Found it! #{phrase}"
    exit 0
  when 127
    puts "bitcoind not found in current dir"
    exit 1
  when nil
    puts "Aborting"
    exit 1
  end
end

indexes = (0..passphrase.length-1).select{|i| passphrase[i].match /a|x/}
phrases = (0..2**indexes.length-1).map do |mask|
  new_phrase = passphrase.chars.to_a
  (0..(indexes.length-1)).select{|i| (mask>>i).odd?}.map do |index|
    target = new_phrase[indexes[index]]
    target.sub!("a", "o")
    target.sub!("x", "ks")
    target
  end
  new_phrase.join
end

(0..max_digits).each do |digits|
  (0..10**digits-1).each do |i|
    phrases.each do |phrase|
      test("%s%0#{digits}d" % [phrase,i])
    end
  end
end

The instructions are the same as for bitcoind:  Set your RPC passphrase, start the litecoind daemon, then start the script running.  You should see the passphrases being tested followed by "Error: The wallet passphrase entered was incorrect."  I haven't actually tried it on litecoind so let me know if it doesn't work.

When you enter your passphrase at the top, use all "a" and "x", don't use "o" or "ks".  Set the max_digits to the maximum number of digits to try on the end.

It will take about a week as shown: 6 "a"s and "x"es to try and max_digits = 5.  Every extra a or x doubles the time.  Every extra digit is about 10x the time.

Good luck!
67  Bitcoin / Bitcoin Technical Support / Re: Encrypted wallet.dat, lost password, any solutions? on: April 03, 2013, 06:09:47 AM
What if you know the start of the password and some of the letters in the end?

Roughly how many characters are in the middle?  Would it be all numbers, all lowercase, etc?  Anything you know will help.
68  Bitcoin / Bitcoin Technical Support / Re: Encrypted wallet.dat, lost password, any solutions? on: March 30, 2013, 06:08:06 AM
What if i know most of the characters, which are either in the very beginning or in the middle, but missing 3-5 characters(certain letters, numbers, and symbols), that are mostly at the end but might have one or two at beginning?

Then you need something like this:

Code:
#!/usr/bin/ruby

middle = "password"           # The known part in the middle
min_left = 0                  # The minimum number of chars on the left
max_left = 2                  # The maximum number of chars on the left
max_total = 5                 # The max total unknowns
chars = 'abcd1234'.chars.to_a # Possible chars to choose from
#chars << '\\'                 # ... plus backslash
#chars << "'"                  # ... plus single quote

def test(phrase)
  print phrase, "\t"
  system("./bitcoind", "walletpassphrase", phrase, "20")
  case $?.exitstatus
  when 0
    puts "Found it! #{phrase}"
    exit 0
  when 127
    puts "bitcoind not found in current dir"
    exit 1
  when nil
    puts "Aborting"
    exit 1
  end
end

(1..max_total).each do |length|
  chars.repeated_permutation(length) do |str|
    max_offset = [max_left, length].min
    (min_left..max_offset).each do |offset|
      left = str.join[0,offset]
      right = str.join[offset,99] || ""
      test(left + middle + right)
    end
  end
end

Fill in the part you know for middle= and put in the characters you want to try in chars= .  If you want a backslash or single-quote then remove the # at the start of those lines.

Try to keep the chars list small. The time required increases very rapidly as you add more: 10 characters = 8 hours; 20 characters = 11 days; 30 characters = 3 months.
69  Bitcoin / Bitcoin Technical Support / Re: Encrypted wallet.dat, lost password, any solutions? on: March 29, 2013, 08:26:19 AM
And another: This person knows the middle of the password but forgot the digits on either side.

Code:
#!/usr/bin/ruby

middle = "password"  # The known part in the middle
min_per_side = 1     # The minimum number of digits per side
max_per_side = 4     # The maximum number of digits per side

def test(phrase)
  print phrase, "\t"
  system("./bitcoind", "walletpassphrase", phrase, "20")
  case $?.exitstatus
  when 0
    puts "Found it! #{phrase}"
    exit 0
  when 127
    puts "bitcoind not found in current dir"
    exit 1
  when nil
    puts "Aborting"
    exit 1
  end
end

((2 * min_per_side)..(2 * max_per_side)).each do |length|
  if length - max_per_side > min_per_side
    min_per_side = length - max_per_side
  end
  (0..(10**length-1)).each do |number|
    digits = ("%0#{length.to_s}d" % [number]).chars.to_a
    (min_per_side..(length - min_per_side)).each do |offset|
      left = digits[0,offset].join
      right = digits[offset,99].join
      test(left + middle + right)
    end
  end
end

Edit: Improved to limit the max digits per side which will help with longer passphrases.
70  Bitcoin / Development & Technical Discussion / Re: Bitcoin ATM/Debit/Credit Card on: March 21, 2013, 04:33:18 PM
http://blog.bitinstant.com/blog/2012/8/22/public-statement-regarding-the-bitinstant-paycard.html
71  Bitcoin / Bitcoin Technical Support / Re: Mining behind a firewall? on: March 16, 2013, 04:00:19 AM
ssh -l 8332:some.server.com:8332 user@shell.server.com
72  Bitcoin / Development & Technical Discussion / Re: What is the reason of separation into 2 programs daemon and GUI? on: March 13, 2013, 07:49:22 AM
Have your cake and eat it too:  'bitcoin-qt -server'
73  Bitcoin / Development & Technical Discussion / Re: Are 6 confirmations really that necessary on: March 10, 2013, 11:48:49 PM
There's nothing magic about the number 6 - it is simply an arbitrary choice of 1 hour's worth of blocks.

If you only require 1 confirmation it's very easy to perform a Finney attack.  You basically mine until you create a conflicting transaction, keep it secret, perform your spend, wait for the confirmation and then release the conflicting transaction to the network, undoing the spend.  You now have at least a chance that the chain will be based on your block instead of the other one.  Even a 10% success rate is enough if you have a low overhead transaction you can exploit.

With two confirmations you would have to mine two blocks in a row with your conflicting transaction before you spend.  That's much more rare, but still statistically possible to do at least on very rare occasions, and might be viable for high value, very low friction transactions.

By 6 confirmations it simply won't work.  The frequency that you'll just happen to mine six blocks before the rest of the network gets one is extremely low unless you have a significant double-digits percentage of global hashpower.  At that point you're already close to a 51% attack.

On the other hand, 2 confirmations is usually enough for low value transactions involving nonfungible products.
74  Bitcoin / Bitcoin Technical Support / Re: Encrypted wallet.dat, lost password, any solutions? on: March 08, 2013, 08:25:56 AM
Another custom version: in this case he knows the start and end of the passphrase, but there are some words missing in the middle.  This will try some of the most common English words in a classic dictionary attack.

The words are all lowercase, no punctuation, and run together without spaces.

Fill in the "start" and "finish" parts of the passphrase, choose how common of words you want, fill in your special words in dictionary_extra, then run it.  I recommend using dictionary_size=5000 and max_words=2 for the first run, then 500 and 3 for the second run.  5000 and 3 will take far too long.

Code:
#!/usr/bin/ruby -w

start = "pass"                       # This is the part at the start that you remember with 100% certainty
finish = "word"                      # The end, which you also remember with 100% certainty
dictionary_size = 5000               # The number of common English words to load from the online dictionary
dictionary_extra = %w{one two three} # Some extra words which aren't in the dictionary
max_words = 2                        # The maximum number of words to try not including the start and finish parts
max_word_length = 8                  # Use only short words

require 'open-uri'

def test(phrase)
  printf "%40s ", phrase
  system("./bitcoind", "walletpassphrase", phrase, "20")
  case $?.exitstatus
  when 0
    puts "Found it!  #{phrase}"
    exit 0
  when 127
    puts "bitcoind not found in current dir"
    exit 1
  when nil
    puts "Aborting"
    exit 1
  end
end

dictionary = dictionary_extra
dictionary += open('http://www.wordfrequency.info/free.asp?s=y') do |stream|
  stream
    .read
    .split('<tr>')
    .map{ |i| i.scan(%r{<td>(.*)</td>}).flatten[1] }[7,5000]
end
dictionary.reject!{|i| i.match(/[^a-z]/)}              # Exclude words with punctuation
dictionary.select!{|i| i.length <= max_word_length }   # Only short words
dictionary.map!(&:downcase)                            # Even proper nouns are lower case
dictionary.uniq!                                       # Filter out any duplicates
dictionary = dictionary[0,dictionary_size]             # only use this many words

(0..max_words).each do |num_words|
  dictionary.permutation(num_words) do |perm|
    test(start + perm.join + finish)
  end
end
75  Bitcoin / Bitcoin Technical Support / Re: Encrypted wallet.dat, lost password, any solutions? on: March 07, 2013, 08:37:22 AM
Here's another version customized for a specific request.  In this case he knows the start and end of his passphrase, but he forgot the number in between except that it definitely doesn't have any zeroes.  Just edit in the parts you know where it says "pass" and "word".

This may be useful for anyone in a "missing number" situation.  You can set the start or end to "" (empty string) if the mystery number is at the end or beginning, and you can add 0 to the list of digits if yours might have a zero.

Code:
#!/usr/bin/ruby -w

start = "pass"
finish = "word"

def test(phrase)
  print phrase, "\t"
  system("./bitcoind", "walletpassphrase", phrase, "20")
  case $?.exitstatus
  when 0
    puts "Found it!  #{phrase}"
    exit 0
  when 127
    puts "bitcoind not found in current dir"
    exit 1
  when nil
    puts "Aborting"
    exit 1
  end
end

(0..20).each do |length|
  [1,2,3,4,5,6,7,8,9].repeated_permutation(length) do |digits|
    test(start + digits.join + finish)
  end
end
76  Alternate cryptocurrencies / Altcoin Discussion / Re: What's the need for Litecoin's shorter blocks? on: January 22, 2013, 07:43:43 AM
There is some nonlinearity.  The shorter blocks decrease variance; that reduces the chance of opportunistic attacks like Finney.  After 7 minutes you probably have three LTC confirms and you can be reasonably certain your transaction is permanent.  On BTC you have only one confirm, maybe zero, and it's very easy for a hidden block to be released.

This assumes equal hashrate and all bets are off if they have access to enough hashpower for a true 51% attack.
77  Bitcoin / Development & Technical Discussion / Re: Secure storage made simple? on: January 13, 2013, 03:18:40 AM
https://en.bitcoin.it/wiki/Hardware_wallet
https://bitcointalk.org/index.php?topic=134277.0
78  Alternate cryptocurrencies / Altcoin Discussion / Re: List of all cryptocurrencies on: January 01, 2013, 12:21:00 PM
DigiCash.
79  Bitcoin / Development & Technical Discussion / Re: DoS attack against the entire Bitcoin network ? on: December 23, 2012, 07:14:26 PM
No.  That's why there are mandatory fees.
80  Bitcoin / Development & Technical Discussion / Re: A valid criticism of Bitcoin's design? on: December 20, 2012, 02:59:34 AM
I thought Shor's algorithm will break elliptic curve encryption once quantum computers are sufficiently large?

It just cuts the effective key size in half.  The current 160-bit signatures will be brute forced in 2^80 operations.  That sounds weak, but it's going to be a long time before quantum computers reach 160-bit levels (if ever), and even when they do the operations per second will be very low and 2^80 will be infeasible for a long time thereafter.
You're thinking of Grover's algorithm. Shor's algorithm does indeed break ECDSA in polynomial time, though we're a very long way off a useful implementation. And note that Bitcoin public keys are 256 bits, not 160 bits - the hash is 160 bits, but this is not broken by Shor's algorithm.

You are correct.  The lame thing is I actually know that.  https://bitcointalk.org/index.php?topic=54542.msg651428#msg651428

tl;dr: ECDSA will break terribly, but we can use another pubkey algorithm if necessary, and all addresses with no spent coins should be safe since they're also protected by the hashes.
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 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!