Bitcoin Forum
July 10, 2024, 07:32:09 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 »
21  Other / Beginners & Help / Re: Is there a bitcoin business directory? on: December 07, 2016, 04:07:39 PM
Airbitz might interest you.
22  Bitcoin / Bitcoin Technical Support / Re: Lost Password to my Wallet.dat / try to recover on: November 24, 2016, 03:26:13 PM
If you'd like to try to recover it yourself, here's the Quick Start for the open source (free) tool btcrecover: https://github.com/gurnec/btcrecover/blob/master/TUTORIAL.md#quick-start. It does take a bit of work to get it set up and running, though. (Full disclosure: I'm the author of that tool.)

If you have any questions about it, just let me know.

Although I've never dealt with Dave @ walletrecoveryservices personally, he's gotten nothing but good reviews from what I can tell, so that seems like a good option too.

In either case you'll need to have a good idea of what's in your password.
23  Bitcoin / Electrum / Re: Is Electrum 2.6.3 safe to generate keys? on: November 13, 2016, 04:20:30 PM
If you say the pre 2.7 wallets have 13 words but only reflect 12 word security
Plus a "checksum". Only half the 8-bit checksum (plus the entropy) would fit into 12 words, hence the need for a 13th which encodes just 4 bits. (Note that BIP-39 has a smaller 4-bit overhead for its checksum which does fit into 12 words.)

while the  post 2.7 wallets have 12 words but that is more efficiently done here
Yes, but only more efficient in the sense that there are no words which encode fewer than 11 bits; so better encoding efficiency. Since half of the 8-bit "checksum" wouldn't fit into 12 words, the choice was apparently made to reduce security by 4 bits post-2.7 so that now everything fits into 12.

then technically the post 2.7 wallet with 13 words is better than pre-2.7 wallet with 13 words.
Potentially, but it depends on how you call make_seed().

With post-2.7, calling make_seed() with 133 <= num_bits <= 143 gives you a wallet with 13 words and always 135 bits of security due to the rounding-up-to-improve-encoding-efficiency I mentioned. With pre-2.7, you'd get the exact same security level and word count by calling make_seed() with num_bits == 135.

The difference is that pre-2.7, num_bits was the desired security level you wanted, and could result in a mnemonic with an added word which encodes fewer than 11 bits. Post-2.7 num_bits is now a lower bound for the total number of bits you want to encode in the mnemonic including the "checksum". It's a bit confusing post-2.7 IMO.

Regardless, by default, make_seed() is called with num_bits == 128, which generates a 12-word 124-bit-security mnemonic with post-2.7, and a 13-word 128-bit-security mnemonic with pre-2.7.

In fact for maximum security you should use 15 words and unspent addresses.
To improve security if ECDSA is ever broken (given 160-bit RIPEMD)? I suppose, but practically speaking there are many other far more likely attack vectors, such as side channel attacks against Electrum/Python, the quality of the underlying OS's CSPRNG, the ability to see pubkeys in the mempool prior to being added to a block (bad if ECDSA is broken), etc.
24  Bitcoin / Electrum / Re: Problems for a noob on: November 13, 2016, 03:15:53 PM
If it works, you'll get some bitcoins coming your way. Again, can't emphasize how much I appreciate all your help.
Thanks!

Moving forward, what is the best idiot-proof and secure setup for Electrum? Think 2 factor authentication would suit me better?
There's really no single "best", or rather "best" is very much a matter of opinion.

There are at least three factors to consider when security is your most important goal: risk (of loss), convenience, and cost. There's no single solution which maximizes all three. (And of course there are plenty of other non-security-related factors, e.g. privacy, tx validation type, software license, protocol stance (block size/RBF/SegWit), etc.)

I'm not an Electrum expert, but I believe you'd have these five options: "standard" online; standard cold/watching-only; 2FA; multisig; and hardware. The breakdown in order of best to worst looks something like this (and even this is somewhat a matter of opinion):

Risk
Cold/watching-only & hardware > multisig > 2FA > online

Convenience
Online > 2FA > hardware > multisig > cold/watching-only

Per-tx Cost (least expensive to most)
Hardware, cold/watching-only & online > multisig > 2FA
(Of course, hardware wallets have a startup cost, and so might cold/watching-only, multisig, or 2FA if you don't already have spare hardware/phones available.)

So the best option for you is impossible for me to say, but if you have any specific questions about the above, ask away!
25  Bitcoin / Electrum / Re: Is Electrum 2.6.3 safe to generate keys? on: November 12, 2016, 02:34:10 PM
First off, it's great IMO to seeing people doing code reviews of Electrum, the more eyes the better!

It looks like the last word of the seed was not generated very well, so this means that pre-2.7 seeds have a bit lower security?

In short, pre-2.7 seeds have slightly more entropy, but it probably doesn't matter.

     Prior to Electrum 2.7, Electrum encoded 136* bits of data into 13 or fewer mnemonic words using a wordlist of length 2048**. log22048=11, so each word is capable of encoding exactly 11 bits of data. This made Electrum perhaps not as efficient as it could have been, since 13 words (as you already pointed out) can store 143 bits of data, but it only needed 136 bits of storage.

*From the source:
Code:
n_added = max(16, len('01')*4 + 128 - ceil(log2(1)))
n_added = max(16, 2*4 + 128 - 0)
n_added = 136
**Except for the Portuguese word list which has 1626 words in it, log21626≈10.67 bits per word.

     Prior to encoding, Electrum truncates any leading 0 bits, so if the 136 bits of data has 4 or more leading 0 bits (1 in 16 chance for random data), the resulting mnemonic would be 12 or fewer words. There's no loss of bit storage/security here, it's simply the equivalent of using a simple compression algorithm before encoding into words.

     These 136 bits are generated randomly by the OS (assuming no OS bugs), but are then incremented until an HMAC of these bits starts with the byte 0x01 to act as a sort of checksum. This effectively discards 255 out of 256 all possible seeds, which decreases the entropy by 8 bits (28=256), resulting in a seed with about 128 bits of entropy.

     AFAIK, all versions of Electrum 2.x prior to 2.7 used this algorithm (assuming custom entropy wasn't added), but I could be mistaken.

     The commit you referenced makes two changes. First, instead of aiming to gather 136 bits from the OS, it aims for just 128 bits. Second, it rounds 128 up to remove the inefficiency I mentioned above so that the mnemonic's max possible length is fully utilized. 128 bits gets rounded up to 132 bits ( ⌈128/log22048⌉*log22048 ). The result, after removing the bits to account for the checksum, is 124 bits of entropy (≈120 bits for Portuguese).

     The second change makes sense to me, but I don't understand the reasoning behind the first. The commit message says in part "count prefix length as entropy" which I disagree is a valid thing to do.

     Does this commit matter practically? Not really IMO, 124 bits of seed entropy is still far beyond any practical ability to crack any resulting ECDSA keys.
26  Bitcoin / Electrum / Re: Problems for a noob on: November 12, 2016, 12:45:40 AM
OK (and wow! Smiley), so I think you should be able to create an Electrum 2.7.x wallet with both master private keys that can finally spend your funds.

Download the latest Electrum (it must be at least Electrum 2.7, or maybe even later, I'm unsure, just grab the latest to be sure).
Create a new wallet, choose multi-sig, and choose 2 of 2 (which is the default).
Select "I already have a seed", and enter your Electrum seed. It will display an xpub which you can ignore.
For the cosigner, choose that you "Enter cosigner seed" (not "key").
Before entering a seed, click Options, and enable "BIP39 seed". Then enter your newly discovered Copay seed.
It will ask for an account number, accept the default of 0.

Hopefully that should be it, but I'm not 100% sure, so let us know. Incidentally it doesn't make much sense to use this wallet going forward; it will be a 2 of 2 wallet which creates larger txs (more fees) with none of the advantages of a 2 of 2 wallet (separate signing devices).
27  Bitcoin / Electrum / Re: Problems for a noob on: November 11, 2016, 12:35:14 AM
Sorry for the long delay. Forgot about the Bitcoins for a while. Appreciate the responses. It does appear to be a multisig wallet. It's x1 (self) and x2 (cosigner).

There are 12 words in my seed.

Quote
watch-only wallets don't have private keys. but it could be you have a multisig wallet like btchris said. What does the address on the receive tab look like? Does it begin with the number 3 or the number 1?

The receiving address starts with a number 3

Again, appreciate the help again. I may have created a multi-sig wallet, thinking it'd be more secure.

OK, so this is a 2 of 2 multisig wallet, and it has stored inside it only one of the two master private keys required to send transactions out of this wallet.

Back when you created this wallet, Electrum must have asked you for the cosigner master public key (which starts with xpub), there's no other way you could have created such a wallet (unless you happen to have a hardware wallet?).

Is it possible you entered the xpub from your Mycellium wallet when you created the Electrum 2 of 2 wallet? You can check to see if the xpub displayed in Electrum under Wallet menu -> Master Public Keys, the second/cosigner one, matches the xpub in Mycellium.

If not, do you know where else you may have gotten that xpub?

(I'm assuming that the 12-word seed you do have is the same one that's displayed when you go to Wallet menu -> Seed, correct?)
28  Other / MultiBit / Re: can anyone clarify how secure is Multibit HD actually ? on: November 08, 2016, 11:38:43 PM
Serious answer.

Glad to here it. Sorry if I implied earlier that you were trolling, but you're definitely mistaken.

If you want to prove me wrong, prove me with proofs and I will retire from such sayings.

To simplify a bit, creating a child key from a parent key involves two steps as per BIP32:

(for non-hardened keys) The second step looks more or less the same for both public keys and private keys:
Code:
For private keys: privkey_parent + privkey_temp = privkey_child  (privkeys are 32-byte long integers)
For public keys:  pubkey_parent  + pubkey_temp  = pubkey_child   (pubkeys are points on the EC)

...and the first step is to create the "temp" keys, which involves taking an HMACSHA512:
Code:
    For private keys:
privkey_temp = HMAC_SHA512(key=chaincode_parent, data= PrivkeyToPubkey(privkey_parent) | index)  ("|" means concatenate)

    For public keys:
privkey_temp = HMAC_SHA512(key=chaincode_parent, data= pubkey_parent                   | index)  (both privkey_temps are equal)
pubkey_temp  = PrivkeyToPubkey(privkey_temp)  (note we need pubkey_temp for that second public key step above, privkey_temp is of no use)
where "index" is the child key number which increments for each new key.

The important part here is that we use HMACSHA512 to create the temp keys. This means that the temp keys look completely random and unrelated to one another, as do the resulting child keys. The only way to relate child keys with one another is to reverse the HMACSHA512, which is infeasible as long as SHA512 remains unbroken.

Of course if you have the parent key and chaincode, you can derive the children, but the parent key and chaincode never appear in the blockchain. They're stored in the MultiBit HD's encrypted wallet file.
29  Bitcoin / Electrum / Re: How to Export electrum wallet data securely ? on: November 03, 2016, 05:24:15 PM
When you set a password electrum encrypts the seed using that password. So there is no need to use another encryption app.

No offense intended, but that's a matter of opinion.

Electrum has never used key stretching, which makes wallet files with shorter/weaker passwords in the realm of being brute-forcible. For example, an Electrum wallet with a password containing 8 lowercase letters or digits would cost somewhere around $100-$200 to brute-force (some back-of-the-napkin calculations can be found here).

Personally I'd avoid uploading my wallet to the cloud unless I was certain it had a strong password, or used an additional layer of encryption with strong key stretching such as Veracrypt as shorena mentioned.
30  Bitcoin / Bitcoin Technical Support / Re: Enable HD wallet on: November 01, 2016, 10:01:48 PM
So I create a new wallet, and then encrypt it, and then dump it. Part of it shown below.

Quote
# Wallet dump created by Bitcoin v0.13.1
# * Created on 2016-11-01T16:49:59Z
# * Best block at time of backup was 436933 (000000000000000002ccbdae69c8d90f305e12a892ab89646f4b80e713fc1135),
#   mined on 2016-11-01T16:44:03Z
<snip>

Would anyone know how to generate the extended public masterkey from the above private masterkey?

I'd like to create a HD watch-only wallet.

That's a wallet dump from Bitcoin Core—there is no associated master public key.

Core uses an entirely hardened BIP-32 path, which makes it impossible to create a master public key or an HD watch-only wallet. (edit: at least at the moment, there does seem to be a desire to do so eventually)
31  Bitcoin / Bitcoin Discussion / Re: 111111111111111113rZwuYDQxa1 can you get more 1 than mine? on: October 31, 2016, 05:00:59 PM
LOL, i wonder how did you get such an awesome address? Vanity address? Is it easy to be hacked or the addy generator recorded your addy?

Neither person has such an address in the sense that they have the private keys used to spend any funds sent to the address.

It's trivial to create any address (except for the last few characters and the first). It's trivial to send funds to such an address (poorly programmed wallets sometimes do so). It's not trivial to create a private key with an arbitrary address (hence vanitygen, which can "choose" a few characters in an address along with a private key, but not these addresses).
32  Bitcoin / Bitcoin Technical Support / Re: 0.13.1 install and error and so / 0.13.1 unstable? on: October 31, 2016, 04:38:58 PM
This is somewhat anecdotal, but it may be helpful anyways.

I had similar problems a few years back, and it turned out to be bad RAM.

I wasn't having any other PC-related problems; no crashing, no problems when gaming, just problems w/core. I eventually ran memtest86+, and discovered a single bit error (in all 16GB) which matched up perfectly with the single-bit error (in terms of its position in a 64-bit word) I had also tracked down in my block files.

Although I was surprised, perhaps I shouldn't have been. Unlike most software, Bitcoin does a whole lot of checking/hashing of its block data, so it's much more likely to uncover hardware problems on a PC than most any other non-diagnostic software.

Win 10 has a memory diagnostic tool built-in. Just click the Start, and type "diagnostic", and should show up (it will require a reboot). Memtest86+ is probably more thorough; it's a little harder to set up, but worth the effort IMO.
33  Bitcoin / Development & Technical Discussion / Re: If I use my pre 0.13.0 wallet.dat on 0.13.0, does it mean my wallet is not HD? on: October 29, 2016, 05:12:05 PM
There is no address limit. You keep generating addresses forever.

No practical limit, but (please correct me if I'm wrong) technically there's about a 2.1 billion address limit. Might be a problem for Amazon, but not for most anyone else.

With Bitcoin Core's current implementation, I believe it will wrap around once it hits that limit and begin producing non-hardened keys, and once those are exhausted it will loop infinitely. Not that I'm particularly concerned about that at the moment....
34  Bitcoin / Development & Technical Discussion / Re: Public key from private key in elliptic curve on: October 28, 2016, 01:26:48 AM
It sounds like you pretty much already know the answer, or maybe I don't understand the question?

On the secp256k1 elliptic curve used by Bitcoin, there is a point that's called the "base point generator", often denoted G. It was arbitrarily chosen (by Certicom I believe, or whoever defined the secp256k1 curve parameters).

A private key is simply a 32-byte (approx.) long integer. A public key is a point on the curve-- it is found by taking the point G multiplied by the private key (via the double & add method, or some other).
35  Bitcoin / Electrum / Re: Serious Security glitch in Electrum !! on: October 27, 2016, 09:42:07 PM
I can't find an option in the GUI to add a new address, I think you can only do that in the console through the command line.

You misunderstood OP's issue.

You can create a wallet containing loose (non-HD) keys: create a "standard" wallet, select "Use public or private keys", and paste in one or more keys. Set a password when asked.

After creating the wallet, go to Wallet --> Private keys --> Import to import additional keys. Electrum will ask you for your password. In versions 2.7.9 and earlier, you could hit Cancel on the password prompt, but Electrum would still allow you to enter new private keys for import, and you'd end up with a wallet with the original keys encrypted, but the new keys in plaintext.

As I said above, this was fixed in 2.7.10.
36  Bitcoin / Electrum / Re: Serious Security glitch in Electrum !! on: October 27, 2016, 05:18:32 PM
It doesn't look like this was a known bug, but it was fixed here (as a result of fixing a related issue) in version 2.7.10 (current version is 2.7.11).

After upgrading, you'll still need to fix your wallet. Delete any affected addresses on the addresses tab, and import them again.
37  Bitcoin / Electrum / Re: Problems for a noob on: October 27, 2016, 02:41:44 PM
but my screen shows up as Partially signed (1/2), and it gives me an option to Copy, Save, and Close.

It sounds like you created a multisig wallet for some reason.

In Electrum, go to the Wallet menu and select Master Public Keys. How many are listed? If more than one is listed, how are the labeled (e.g. "x1/ (self)" and "x/2 (something)")?

Also, how many words are present in your seed (Wallet menu -> Seed)?
38  Bitcoin / Electrum / Re: What paths does electrum use for it's receiving addresses? on: October 23, 2016, 03:05:45 PM
our algorithm is not proprietary, any other wallet can use it.
some documentation here:
http://docs.electrum.org/en/latest/seedphrase.html

My apologies, that was a very poor choice of words on my part (I should know better). I should have written "different (and in some ways better) than BIP-39" or similar....
39  Bitcoin / Electrum / Re: What paths does electrum use for it's receiving addresses? on: October 22, 2016, 07:26:01 PM
That's only for wallets which are restored from a BIP39-compliant mnemonic sentence created by some other not-Electrum software (Electrum currently supports this, but it may not always).

Wallets created by Electrum use Electrum's proprietary mnemonic-to-xprv algorithm, and use a path of m/c/i.
40  Bitcoin / Electrum / Re: What paths does electrum use for it's receiving addresses? on: October 22, 2016, 06:54:43 PM
Electrum uses m/c/i, where c is 0 for external, 1 for internal (change), and i is the incrementing index.

For a summary of various wallets, see this spreadsheet.
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 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!