Bitcoin Forum
May 30, 2024, 03:36:07 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 ... 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 [125] 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 ... 288 »
2481  Bitcoin / Development & Technical Discussion / Re: NSA and ECC on: July 15, 2014, 07:46:42 PM
Instead of a single block hash the computational cost can be easily increased by using a sequence of n block hashes starting from the the block containing the commitment txn (block_x).  Since miners are in fact distrusting parties you could optionally avoid the need for step #2.
I think since each block already hashes the prev block we already have that property without doing it explicitly! Smiley

There is an argument that it should be using toeplitz hashing with as much data as possible as an input as the entropy extraction, but there is a tradeoff that more "unusual crypto" in the scheme makes it harder to trust.

Quote
I also like the idea that you can in essence do a trial run.  Pretest the system to be sure it works as expected without knowing what the official seed is going to be.  Get peer reviewed feedback and then commit it to the blockchain and wait for the entropy source to be generated.  I know I would trust it more than any other so called "provably random" curves.
Yep. The idea is that you lay out all the "influence" parts up front, then use the blockchain to 'cut the deck' in a hard to rig way.

Even if someone didn't personally witness the process they still have the blockchain POW as evidence for a minimum computational cost in retrying. E.g. doing 2^70 blockchain work multiple times to rig it might be conceivable, but not the 2^128 work required to do 2^58 retries.

The next annoying property is that you want to have curve-acceptability tests but too many tests and perhaps you are actually testing for weakness-included. E.g. DJB would perhaps have you test that there exists a specific mapping to nearly uniform scalars (e.g. elegator), but perhaps that guarantees a vulnerability. Or in our case secp256k1 is selected with the efficient endomorphism to permit the GLV method for faster operations.
2482  Bitcoin / Development & Technical Discussion / Re: NSA and ECC on: July 15, 2014, 06:35:24 PM
It is no different than NIST just randomly generating curves directly.
Well, it is different— say there is a class of weak curves known to the NSA but the weakness requires you to select a one in 2^128 set of parameters... without a pre-image attack on the hash function you couldn't use one of these 'random' procedures to pick such a curve.

If the weakness was a 2^32 one— you could, thus the bada55 curves.

The scheme you suggest has a weakness in that there are potentially too many plausible schemes.  For example, an attacker might use their ability to choose a hash function and value serializations to choose insecure parameters.

What I would prefer is a scheme that worked like this:

(1) Take a scheme like yours, but give it an initialization seed as an input. The scheme should be designed such that all acceptable parameters are equally likely to be selected (assuming good properties of some cryptographic hash).
(2) Publish the scheme, and ask various mutual distrusting parties to compute random values R_0, R_1 ... and each of them publishes X_n = H(R_n).
(3) Take the H(scheme) and X_n and commit to them in a bitcoin transaction, publicly announce this commitment.
(4) 100s blocks after the commitment, take the block hash 100 blocks after the comment and have the parties release their R_x numbers. H(scheme||R_n...||block hash)

The idea here is that up to the preimage resistance of the hash function, to influence the selection you must both compromise all the distrusting parties AND do a huge amount of sha256 computation.

But thats all for where a random selection can't be avoided... the "fixed by security/performance considerations" approach is probably best.  An interesting question how reasonable it would be to formalize all those considerations in order to combine the approaches... since DJB's claims notwithstanding, there really is many degrees of freedom in within that (otherwise secp256k1 _and_ ed25519 wouldn't both exist).

2483  Bitcoin / Development & Technical Discussion / Re: On The Longest Chain Rule and Programmed Self-Destruction of Crypto Currencies on: July 15, 2014, 01:48:14 PM
Note in my proposal unwinding only affects double-spent coins, so if you never send a double-spend then your transaction will never be unwound. Note a double-spend is not the same as resending the same transaction.
As mentioned in my prior response— if you did this then your proposal is completely ineffective. First you double spend, and then you spend your double-spent coins to yourself.  If you do not also unwind the child transaction then the doublespender walks free for nothing but the cost of an extra transaction. If you do unwind the children then everyone is at constant risk.
2484  Bitcoin / Development & Technical Discussion / Re: NSA and ECC on: July 15, 2014, 12:37:45 PM
how someone researching the security of the DSA of bitcoin might not feel 100% satisfied
Please read the thread. We explain in detail how choice of G is not relevant for our own applications. If you don't believe that, DJB also argues why choice of G is usually irrelevant on safe-curves (SafeCurves does not place restrictions on the choice of this base point. If there is a "weak" base point W allowing easy computations of discrete logarithms, then ECDLP is weak for every base point)— an argument he added after I emailed him and suggested he add an explanation of his own G choice, which he did not previously provide... it took me inventing a novel attack against a contrived hypothetical protocol (not Bitcoin) where choice of G actually mattered to convince him to say anything at all.
2485  Bitcoin / Development & Technical Discussion / Re: On The Longest Chain Rule and Programmed Self-Destruction of Crypto Currencies on: July 14, 2014, 11:30:42 AM
and where was my solution proposed before?
I don't believe your post contained a "proposed solution" when I initially responded, if it did— I missed it.

But it's not a solution, alas. Ignoring other issues, at best it still leaves it at a simple piece of extortion "return most of the funds to me or I will reliably destroy your payment". It that sense pretty much isomorphic to "replace by fee scorched earth". The ongoing effort has other problems— a txout can be spent again immediately in the same block. Imagine it takes months to get the fraud notice out (heck, imagine a malicious miner creating one and intentionally withholding it).  By that time perhaps virtually all coins in active circulation are deprived from the conflicted coins. Now they finally get the notice out (/finally stop hiding it). What do you do?  Nothing? Invalidate _everyone's_ coins? Partially invalidate everyone's coins?  Each option is horrible. Do nothing makes the 'fix' ineffective in all cases: the attacker just always sends the coins to themselves in the same block, the others make the failure propagate— potentially forever, and don't just hit the unlucky merchant with the potentially unwise policy.

(It should be noted that already systems reject from their mempool discard later double-spend transactions from their local perspective, because— duh)

Quote
Rather if sufficient hashrate can be rented [...] potentially makes the 50+% double-spend attack much more accessible
Many places, I'll pick an example from myself— (note the log I reference there 12:37 < gmaxwell> pirateat40: you can have 10% of the hash power and attack.)
2486  Bitcoin / Development & Technical Discussion / Re: NSA and ECC on: July 14, 2014, 11:12:32 AM
Edit: note I did not dig into the bada55 curves to make sure I understand what they mean by verifiable random. So I am not sure if it is distinct. I am just speaking conceptually above.
The bada55 curves were created to show the worthlessness "verifyably random" (at least as done by NIST), they are "random"— but the authors (ab)used the process to make sure the parameters had "bada55" in them. You are supposed to imagine an attacker armed with a mathematical breakthrough who could compromise 1/2^24 random curves doing the same kind of seed grinding.

I didn't believe the post I was responding to was at all talking about the bada55 curves, the subject had drifted and the post was talking about the curves recommended by the site. Presumably if I failed to answer the authors question he could respond.
2487  Bitcoin / Development & Technical Discussion / Re: On The Longest Chain Rule and Programmed Self-Destruction of Crypto Currencies on: July 14, 2014, 05:22:34 AM
The most important point made in the paper
Huh, the fact that someone with <<50% hashpower can successfully double spend has been repeated many many times on this forum, by dozens of people (including myself), along with comments that mining pools or (especially) vertically integrated closed mining operations with double digit percentages of the hashrate are all concerning, even if its not near 50%. The original Bitcoin whitepaper gives the formal for calculating the success rates.
2488  Bitcoin / Development & Technical Discussion / Re: NSA and ECC on: July 14, 2014, 05:19:57 AM
If I am not mistaken, aren't you moving the goal posts in that you appear to be talking about bits of security which is orthogonal to what he was talking about verifiable randomness of the parameters to eliminate any suspicion of a backdoor?
Unlike the NIST curves the Bitcoin curve is not "random": There is no parameter question there. The comments on the safer curves page addresses a whole host of analysis points, so with the randomness off the table I was speaking to some of the other things where there are meaningful engineering differences between Bitcoin and curve25519.
2489  Bitcoin / Development & Technical Discussion / Re: Question on Transaction Fee and TX input/output, technically on: July 13, 2014, 01:44:28 PM
As we know Bitcoin currently has a minimum transaction fee threshold of 0.0001 BTC (10^4 Satoshi).
It most certantly does not.

In any case, many (most?) miners do "regard" fees below some threshold as zero in order to prevent people from jumping the queue just by paying an infinitesimal fee... but they still collect it all the same, they just treat it as zero when prioritizing.
2490  Bitcoin / Development & Technical Discussion / Re: BitCoin Adopting Unique Alt-Coin Features on: July 12, 2014, 09:01:10 PM
Just try getting the bitcoin-core developers to go 'against the grain' as it where when you have mining consortiums literally pumping tens of millions of dollars into the current sha256 PoW mechanism...ain't gonna happen. 
Sure it will. If mining centralization undermines the usefulness and values of Bitcoin people will take action— it's not even a question about bitcoin-core developers (though we're bitcoin users too!), since anyone can offer a modified version... The users of bitcoin are not going to just sit back when something moots the system.
2491  Bitcoin / Development & Technical Discussion / Re: Message Encryption with bitcoin address. on: July 12, 2014, 08:15:33 PM
Aren't you assuming that the receiver is going to respond to your attacks using the same session key?
No. Not at all.

Can you review my post again with this in mind. Communication is hard and I take full responsibility for being unclear... but I think I'm going to just repeat myself at this point.  I'll gladly retry if you reread with the assumption that the users do not reuse the session key.
2492  Bitcoin / Development & Technical Discussion / Re: Message Encryption with bitcoin address. on: July 12, 2014, 12:57:38 PM
I think I'm following your concern, but that's why I said:
Obviously this only works for a single <= 256-bit message, but the technique can be easily extended to messages of arbitrary length1.  
1EDIT: the IES scheme D&T just posted is one such method of extending this technique to arbitrary-length messages: https://en.wikipedia.org/wiki/Integrated_Encryption_Scheme  

If no one ever transmits more than a single <= 256 bit message with that session key, is there still a security problem?  Wouldn't this be an unbreakable one-time pad if only used once?  I can see the danger in sending more than one message XOR'd with the same session key, but I was just trying to explain the concept behind the Diffie-Hellman shared secret as simply as possible for a single transmission.  But perhaps I'm missing something.
No.

You can send a single message, the concern has nothing to do with _you_ potentially reusing your nonce.

I can intercept your single message, modify it, send it to the receiver. I can take advantage of the receivers misbehavior on receipt of the corrupted message— either doing new things from bitflips (e.g. I guessed what part of your message likely was and twiddled bits), or if garbage messages will make the receiver echo back in plaintext I can use that to recover your one-time pad.

Another way to look at it is that without authentication an attacker can cause multiple messages with the same nonce to exist. It doesn't matter that you didn't create them, the additional messages with the same nonce are potentially problematic none the less.
2493  Bitcoin / Development & Technical Discussion / Re: BitCoin Adopting Unique Alt-Coin Features on: July 12, 2014, 12:52:45 PM
Playing a bit of devil's advocate here... but Ethereum is turing-complete, and that would be hard to implement in Bitcoin. Right?
Not at all. It's actually so easy to implement turing-completeness that we implemented it accidentally in the first OP_EVAL patch and took it out (the recursion limits didn't actually work). The implementation in their demo code on github is (or was, I haven't looked in a while) just basically a replication of bitcoin script with a single JUMP opcode added. It's not uncommon for things to be accidentally turing-complete (using the non-pedantic definition which permits bounded memory or computation time as turing complete (otherwise what ethereum has proposed is not either)).

Now, making a system that won't magically implode into insecurity because almost no one validates it anymore takes more work than this, but it's unclear that anyone knows at all how to solve this if validation is made expensive. None of the things ethereum people have discussed there would be particularly difficult to implement in Bitcoin— and many of the ideas like prefixing scripts with an operation count and weighing fees against them were proposed for Bitcoin long before ethereum existed.

All that said, Turing completeness doesn't actually increase the expressive power of cryptocurrency much— the examples usually given for ethereum can also be accomplished with finite state machines. The primary advantage an actually turing complete machine has appears to be that some problems can have much smaller encodings for them, the primary disadvantage is that someone can give you a script and determining exactly what it can do (e.g. if you'd like to agree to it as a contract) can potentially be much harder than a reduced computation model.
2494  Bitcoin / Development & Technical Discussion / Re: Message Encryption with bitcoin address. on: July 12, 2014, 05:06:39 AM
   encrypted_message = (clear-text message) XOR (symmetric key)
Danger! Will Robinson, Danger!

Say someone were to deploy the simple scheme you described just as you described it—  they they used it to secure queries sent to a simple web server.

I capture a message sent to them that I want to intercept, and I take the nonce out of it— but replace it with a message of my own (perhaps all zeros).

The server responds to me "INVALID REQUEST:  20iE⊥∩θ⊂∏↔θ⊂dlkvc25πδjdk⊕κ×σκk8κσ×3th7hξκδι2λσ∃ΚΣ‡"  ... now I xor with my 'message' and have the session keystream and can decode the message I intercepted.

Even if there isn't some handy error response I can invoke, I can still freely flip bits. "Wait, but if its in a transaction, thats signed right?"— no, I can rebind your message without knowing its content either with or without bitflips into another transaction but reuse the ephemeral key and exploit whatever interesting behavior I can squeeze out of that.

This kind of cryptosystem is often trivially insecure without strong authentication tied strongly to the ephemeral key.

Behold the kind of fun that happens when you don't get every detail just right (start reading at the second message): http://sourceforge.net/p/bitcoin/mailman/bitcoin-development/thread/5325B5BC.3030501@gmx.de/  (A cryptographic disaster (near miss) which started with a thread on this forum very much like this one, but one where more experienced folks happened to not notice it…)
2495  Bitcoin / Development & Technical Discussion / Re: BitCoin Adopting Unique Alt-Coin Features on: July 12, 2014, 04:28:16 AM
I think a lot of people think Bitcoin won't ever change, or adapt, or get some different features.
Some people have said this— but the history doesn't really support it. With how fast (and, often, recklessly) various players have moved in the larger economy technical development may seem slow by comparison… but while a stream does not carve a canyon over night, it does so all the same. Someone looking to create a speculative asset boom by copying a bit of other people's code and hopping out weeks later before it busts might honestly say that within the time frames they care about Bitcoin won't adapt... But some are in this for the much longer term possibilities.
2496  Bitcoin / Development & Technical Discussion / Re: NSA and ECC on: July 11, 2014, 11:28:20 PM
I can't help but notice that not one of the safecurves.cr.yp.to families are implemented by openssl:
All of the curves most preferred on there are ones that DJB made. Some of them have no implementation in software, only the curve25519/ed25519 stuff has any non-trivial deployment at all.

While the analysis there is generally good and thoughtful, I believe that the page crosses the line into being a bit ... uh .. marketing motivated. This has been discussed before several times— e.g. it cites several points which are irrelevant to us (e.g. the elegator encoding), are 'one time costs' completeness making a correct implementation take some more work, and other points which are compensated by increased security of secp256k1 in other respects.  (E.g. the efficient endomorphism for secp256k1 that yields very fast verification for our curve reduces security by a couple bits, which is pretty comparable to the cofactor of 8 in ed25519 that reduces their security by a couple bits (actually slightly more).

Whats implemented in openssl has more or less nothing to do with what bitcoin uses, and getting rid of openssl wouldn't change it.

2497  Bitcoin / Development & Technical Discussion / Re: BitCoin Adopting Unique Alt-Coin Features on: July 11, 2014, 05:15:22 PM
I think Ethereum is quite close to that feat, although they still haven't launched.
Hm. Adopting script changes is _trivial_— in fact we've done it before. From a technical perspective P2SH replaced the script system with a copy of itself nested inside a hash.

Really the stuff that is not integrable is things that make economic changes (e.g. freicoin), have very negative scaling impact, or involve very different security assumptions (e.g. trusting a centeralized party).  The biggest barrier so far as been the lack of actual innovation or at least it not being clear if the changes that they make are useful and not totally broken.
2498  Bitcoin / Development & Technical Discussion / Re: Blockchain Keyframing on: July 11, 2014, 02:11:23 PM
There aren't any current alerts for fraud.  The original idea in the paper was a bit immature— the problem is that a DOS attacker could cheaply force SPV nodes into the very expensive operation of fetching the whole blocks.

Subsequently we've come up with some more refined versions of the idea where, with a few additions to the data blocks contain we'd be able to extract compact proofs that a block is invalid, preventing that DOS attack, but they've not been implemented yet.
2499  Bitcoin / Development & Technical Discussion / Re: Blockchain Keyframing on: July 11, 2014, 01:25:45 PM
My objective here was to make the blockchain being used smaller for devices such as smart phones etc rather than relying on a trusted node, e.g. many mobile wallet providers give a view of the blockchain to the wallet client from a central sever that stores an entire copy of the blockchain, from what I understand.
There are hosted wallets, but the true mobile wallets like "android wallet" use SPV mode see section 8 of the bitcoin whitepaper.  SPV wallets do not trust the nodes they query except for some denial of service/privacy issues, and have basically no storage requirements and very low bandwidth (far below your keyframes), and they do not use a centralized server (they use the bitcoin p2p network). SPV nodes security involves additional assumptions about miner honesty.

What you're describing is a pretty radical change in the security model. In Bitcoin we do not trust the data we are given at all, we verify it. The 'keyframes' you'd send there would need to be trusted, if one bogusly claimed to reassign ownership of a bunch of coin— no one relying on that data could tell (at least not mechanically). Assuming they are mined it would basically be the SPV security assumption set, but less efficient for a mobile wallet (since they'd have to transfer a full 'keyframe').

It's perfectly reasonable to relax the security assumptions for some applications, mobile wallets— for example— but thats why we have SPV mode already.
2500  Bitcoin / Development & Technical Discussion / Re: Random generation for Bitcoin on: July 10, 2014, 12:53:42 PM
I don't see how making it more efficient for everyone would change anything at all.
What it does is removes a differential advantage you'd get from using more complex miner designs that queue and pipeline work better and have more communications bandwidth to minimize latency.
Pages: « 1 ... 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 [125] 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 ... 288 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!