Bitcoin Forum
May 27, 2024, 04:13:03 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 »
61  Bitcoin / Hardware / Re: [BitCentury] Metabank 120Gh 65nm Pre-Order Proxy [CLOSED] on: September 14, 2013, 04:47:31 AM
Great news to hear!  I hope you have time to also enjoy the trip; I'll bet Moscow is very beautiful place.

Quote
Thanks everyone for your patience and especially your civility, considering all of what goes on around these threads
Thank you for taking the time to write out these detailed updates.
62  Bitcoin / Development & Technical Discussion / Re: REWARD offered for hash collisions for SHA1, SHA256, RIPEMD160 and other on: September 13, 2013, 08:48:16 AM
This is both incredibly fascinating, and a beautiful show of the kinds of innovation the Bitcoin system supports!
63  Bitcoin / Hardware / Re: @Friedcat: A forgotten promise? on: September 13, 2013, 03:06:05 AM
Quote
.... we bought something, we've not received it. Why is that so difficult for people to understand?
Stockholm syndrome or something similar to it, I would suppose.  Miners 'round these parts have suffered many abuses from many mining equipment companies.

On topic, I have no stake in this particular complaint, but to-date I held friedcat and ASICMiner in high regard.  It is disconcerting to see them ignoring some of their most important customers.  It was these early auction customers that established the market price for ASICMiner's hardware, and consequently fueled the continued rise of their dividends and stock price.  It seems unwise to ignore them now.  Again, I don't own any of their auctioned blades, but regardless share your concern and would like to see friedcat make their customers whole.

In a related event, friedcat recently offered heavily discounted coupons for early USB stick customers (like myself).  It was, of course, not strictly necessary and seemed to be a rather gracious gesture on their part, for which many of us were excited and grateful.  However, ASICMiner initially only shipped a fraction of the discounted quantities, leaving us waiting a few weeks before the rest were shipped.  By the time I received all of my discounted sticks (through a group buy), friedcat had already dropped the wholesale price to match the "discount."  While not dishonest, it was completely disappointing and really, in my opinion, destroyed the goodwill I assume it was intended to generate.  Especially so, given ASICMiner's golden track record previously.

I want to hope that ASICMiner simply got caught off-guard by the emergence of so many competitors, causing them to scrap their 2nd gen chips and move directly to 28nm.  This would explain friedcat's lack of attention of communication lately, as such a rapid shift would leave everyone at ASICMiner exceedingly busy and stressed.  One can only hope...
64  Bitcoin / Development & Technical Discussion / Re: BIP0032 HD Wallet private key derivation incorrect? on: September 12, 2013, 12:50:41 PM
Good catch!  Looks like a typo to me.  I'd edit it, but I'm not sure about the rules on editing BIPs on the wiki.
65  Bitcoin / Development & Technical Discussion / Re: BIP0032 HD Wallet private key derivation incorrect? on: September 12, 2013, 01:11:19 AM
Quote
The public addresses that are used are created by adding (point addition) X to all of the  BIP32 addresses
created on that branch. The auditor can create these given X and the master public key.
If a private key is given to the auditor (m/i'/0+x) the auditor cannot deduce m/i'/0 from this private key and so cannot derive any other private keys.
I don't think that'll work.  Here's why:

Suppose we simplify BIP32, to make my explaination easier, but without loss of generality:

Code:
k_i = k_par + HASH(i)
K_i = K_par + HASH(i) * G

The weakness here, that you're trying to solve, is that if any derived private keys are leaked, an attacker can find the parent private key, and thus all derived keys:

Code:
k_0 = k_par + HASH(0)
=> k_par = k_0 - HASH(0)

Now, from what I understand of your proposal, you'd modify that like so:

Code:
k_i = k_par + HASH (i) + x
K_i = K_par + HASH(i) * G + X

Where x is a secret not given to an auditor, and X is the associated public key (given to the auditor).  If a derived private key leaks...

Code:
k_0 = k_par + HASH(0) + x
=> k_par + x = k_0 - HASH(0) = m
=> k_i = m + HASH (i)

Therefore, if one private key in a branch leaks, all derived private keys leak.
66  Bitcoin / Development & Technical Discussion / Re: NSA and ECC on: September 12, 2013, 12:20:35 AM
Quote
How large are Lamport signatures with security equal to 256 bit ECDSA?
256-bit ECDSA has a security strength of 128-bits under classical computing.  Under Lamport, that would require signatures of length 128 * 128 bits, which is 2 KB.  The public keys would be 4 KB. (Source)

To have an estimated security strength of 128-bits under quantum computing, Lamport signatures would be 256 * 256, which is 8KB. (Source)

Quote
Also, would there be any reason not to get this into Bitcoin right now?
I would say the size of the signatures would be one reason.  The inability to re-use them being another.  What if you received bitcoins to a Lamport derived address after you already spent from it?  Now you can't spend the extra bitcoins.

Also, are Lamport signatures going to offer significantly more protection than one-time ECDSA with pay-to-hash?  Using ECDSA that way, even if ECDSA is broken, would only be weak for the 10 minutes or so before a transaction gets into a block.  Can we reasonably foresee a break in ECDSA so profound that it can be performed in under 10 minutes?

Seems like the real issue is that broken ECDSA will break BIP32, our means of allowing convenient one-time-addresses.  And BIP32 can't be applied to Lamport, so Lamport doesn't help here either.
67  Bitcoin / Hardware / Re: Project Evil Genius – Custom SHA2-256 Circuits on a FPGA on: September 11, 2013, 10:11:21 AM
Hi,

Thanks! So the only chance to have performance boost is to fit 2 or more sha instances to run in parallel, but with unrolled SHA1, it might not be possible to fit it all.

BR

https://github.com/fpgaminer/sha1_collider
68  Bitcoin / Hardware / Re: [BitCentury] Metabank 120Gh 65nm Pre-Order Proxy [CLOSED] on: September 11, 2013, 04:40:47 AM
Keep them updates comin'!  It helps distract me from watching the Oculus shipping thread(s)...

Quote
If you have a major objection to getting double units
No problems here.  Heck, you can round up my order if you're lazy Wink
69  Bitcoin / Hardware / Re: Official BITMINE CoinCraft series 28nm ASIC miners thread on: September 10, 2013, 12:28:32 PM
Quote
With diff. Going up 20% each 12 days
It's been going up 30% each readjustment lately.
70  Bitcoin / Development & Technical Discussion / Re: Deterministic Usage of DSA and ECDSA Digital Signature Algorithms (RFC 6979) on: September 10, 2013, 01:33:07 AM
Quote
Pull request adding RFC 6979 into python-ecdsa: https://github.com/warner/python-ecdsa/pull/10
Round of applause.  Very awesome to see!  Thank you for sharing, and pushing to warner's repo.

Personally, I'd like to see it use a separate HMAC-DRBG module, to help code separation, unit testing, and code reuse (https://github.com/fpgaminer/python-hmac-drbg is public domain).  Also, the possibility to swap out HMAC-DRBG for a different function, so it can be used as a test-bed for using plain HMAC.
71  Bitcoin / Development & Technical Discussion / Re: Deterministic Usage of DSA and ECDSA Digital Signature Algorithms (RFC 6979) on: September 10, 2013, 12:55:01 AM
I reached out to Colin Percival (who wrote scrypt, for example) for his thoughts/comments on RFC 6979.  Here's what he had to say (with his permission):

Quote
I don't see any concrete problems with this proposal, but using the private key
as part of the hashed input does make me a bit nervous.

Personally, I'd prefer to feed these into an HMAC-DRBG to be used for entropy
*in addition to* normal seeding of entropy from the operating system -- unless
you really need deterministic signatures.

This seems to be in agreement with pretty much everyone else's opinion on RFC 6979, which is good to see.  Many thanks to Colin Percival for taking the time to respond to my inquiry!

Quote
Wow, thanks for posting your 'microecdsa' code - now I get to see how what I came up with stacks up to your version Smiley
Shameless self-promotion: https://github.com/fpgaminer/strong-arm

Quote
Can you give me any insights/references into your 'PRECOMPUTED_CP/IV' technique?
Looks to me like the LUT implementation of EC scalar multiplication.  You have 256 pre-computed values, each of the form 2^i * G so you can just add them together depending on the bits of the scalar.  I can go into a more detailed explanation if you would like.

I chose not to implement that optimization in strong-arm, since it really wasn't much of a bottleneck, and I personally prefer transparent code over optimized code.  Easier to audit and avoid bugs.

Quote
What would be the disadvantage of deterministically generating k each time and then multiplying by a PRNG generated number and reducing mod n and use this to sign?
You can do that in pseudo-RFC 6979 by just reseeding the DRBG with any extra entropy you'd like.  Though, as natb pointed out, gmaxwell and others believe it best to leave things fully deterministic.  I'm ... still on the fence, but leaning more towards deterministic after reading gmaxwell's arguments.
72  Bitcoin / Development & Technical Discussion / Re: Deterministic Usage of DSA and ECDSA Digital Signature Algorithms (RFC 6979) on: September 10, 2013, 12:27:04 AM
Quote
How do you actually know that it is running the open source firmware and not a modified version installed by the manufacturer or replaced in transit?
Two stages, depending on user paranoia:

1) Update the device before using it, with known good firmware (cryptographically signed + deterministic compilation). [Does not rule out rootkit]
2) Open the device, visually verify hardware, and use JTAG/SWD to manually wipe and flash. [Rules out rootkit, FPGA masquerade, etc]

This will mitigate all reasonable attacks.  The only one left would a malicious custom ASIC pretending to be the MCU.  But if your attacker is willing to spend millions of dollars ... hell, you must be doing something right in your life.

Quote
Generally if your computing device is compromised you're kind of doomed, but in this case not so much... because the behavior of the device is sufficiently narrow and all communication mediated via the host, it should be possible to be a little more confident here.
Yes, there are a million and one ways to attack a user when a malicious party can manipulate the hardware.  But, you make a great point regardless; better safer than sorry.

Quote
My expectation is that you'd make your master key  some H(device randomness || user or initial host randomness).  You need a way to export the master key data for backup purposes, so with an addition that also lets the user obtain the contributing randomness after obtaining the device master key.  Effectively this means the the device cannot undetectable cheat in the way you suggest.
Rather than that, and assuming you have a trusted computer on which to do all this (since it will have access to your master key), just build the backup manually using your own entropy and restore it to the device.  Then query the device for a few public keys to verify it's using your backup.  I specifically left this option open on my platform, so that advanced users could choose their own means of creating the master key.  For example, choosing it like a brainwallet.

As usual, gmaxwell, your comments are wonderfully insightful and helpful.  Thank you for taking the time to bat around these ideas with me (and the rest of the community).
73  Bitcoin / Development & Technical Discussion / Re: All Bitcoind / Bitcoin-qt nodes failing to come up. Workaround inside! on: September 09, 2013, 11:00:36 PM
Quote
Right now the version is meaningless: all values should work in blocks.  The issue here is not really uint32 vs int32.
Well, if the Satoshi client had used uint32 ...

Quote
all values should work in blocks.
Except now nVersion == 0 or with the high bit set is non-standard Tongue

Anyway, thank you for the response!  I was just curious, and wanted to make sure there weren't going to be any other weird bugs cropping up because of it.
74  Bitcoin / Development & Technical Discussion / Re: ECDSA Weak signing on: September 09, 2013, 10:55:01 PM
Quote
Sure it does. For example, with OpenSSL it would force you to add your own K generation conversion to R and Rinv. In that code you get a free chance to make many mistakes or insert many backdoors.
No need, just check the r value OpenSSL returns.

Until BIP 0032.5 is formalized and we feel more comfortable about it, this isn't a bad check to have in my opinion.  Combined with continuous random number generator tests (you should have those anyway, to protect private key generation).
75  Bitcoin / Development & Technical Discussion / Re: All Bitcoind / Bitcoin-qt nodes failing to come up. Workaround inside! on: September 09, 2013, 01:19:49 PM
gmaxwell, I'm curious about a discrepancy between the wiki's Protocol Specification page, and the Bitcoin-QT client's CTransaction class.  The wiki says nVersion is uint32.  CTransaction says int.  Which is correct?  Should the wiki be updated?  Seems to me like versions should never be negative, and uint32 is thus more appropriate.
76  Bitcoin / Development & Technical Discussion / Re: NSA and ECC on: September 09, 2013, 12:16:20 PM
Quote
I was wondering if it might be a good idea to have everyone start including a second (more secure?) signature algorithm that does not require a random nonce.
gmaxwell proposed BIP 0032.5, calling for the usage of a deterministic version of ECDSA.  Deterministic ECDSA signature generation (like the one defined by RFC 6979) is compatible with existing ECDSA verification implementations, so any Bitcoin client could use it today.  Neat!  I have a thread open discussing RFC 6979.

Quote
On the other hand, thinking out loud here, using the nonce allowed us to discover the bad PRNG on android devices.
It may be wise for applications to run continuous health checks on any RNG they're using.  FIPS 140-2 requires a simple one, for example.  Maybe even run a cut-down version of DIEHARD every so often?
77  Bitcoin / Hardware / Re: [ANN] Bitfury is looking for alpha-testers of first chips! FREE MONEY HERE! on: September 09, 2013, 09:40:25 AM
Quote
If you go with the Hakko, get a couple of extra T18-B tips for it.  That standard chisel tip is going to look enormous compared to the size of stuff you'll be working on.
Pffft, sissies.  I soldered 0402 with a big honking chisel tip on my Hakko.  Tongue  Not that I'll ever want to hand solder 0402 again.

But for the love of electronics, please get good solder.  Good solder, good iron, and flux is all a man needs to be happy.
78  Bitcoin / Development & Technical Discussion / Re: For fun: the lowest block hash yet on: September 09, 2013, 07:52:22 AM
Quote
Not doubting this, just curious what the actual math is convincing you that SHA256 is solid. Do you have a pointer?
On a related note, if a solid (1) hash function actually did exist, it would have some groundbreaking implications: Theoretical implications of one-way functions.

(1) "In computer science, a one-way function is a function that is easy to compute on every input, but hard to invert given the image of a random input. Here, "easy" and "hard" are to be understood in the sense of computational complexity theory, specifically the theory of polynomial time problems." ~ Wikipedia:One-way function
79  Bitcoin / Development & Technical Discussion / Re: BIP0032 HD Wallet private key derivation incorrect? on: September 09, 2013, 04:06:33 AM
Quote
You need to treat IL as an EC private key. If it is == 0 or >= n then it is an invalid private key.
For both CKD functions, it is okay for IL to be 0.  You only need to check that IL < n.  (and that k_i != 0)

IL being 0 means the child's EC key pair is equal to the parent's EC key pair, which is a bit odd, but not explicitly forbidden by the current BIP 0032.  (NOTE: The extended key may still differ in these cases)
80  Bitcoin / Development & Technical Discussion / Re: BIP0032 HD Wallet private key derivation incorrect? on: September 08, 2013, 12:30:31 PM
Quote
I wrote one of the Java implementations that is also listed on the BIP page. If this is the one you refer to, then please elaborate on the bugs.
I just finished a more detailed look at the code.  There were only two bugs, both pedantic in nature.  The rest of the code looks fine to me.

Code:
Audit of https://github.com/bitsofproof/supernode/blob/1.1/api/src/main/java/com/bitsofproof/supernode/api/ExtendedKey.java



Line 155: l compared to `n`, but not 0.
If the code is going to compare to n, it should be consistent and also compare to 0.
One could also argue that both checks are useless; it'll never occur and is untestable.


Line 235: Does it mean anything for depth to overflow?
Perhaps an exception should be thrown if this key is already at maximum depth
(0xFF). Whether this matters or not depends on the application using the
class.
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 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!