Bitcoin Forum
May 06, 2024, 07:43:40 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 ... 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 [252] 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 »
5021  Bitcoin / Development & Technical Discussion / Re: Handle much larger MH/s rigs : simply increase the nonce size on: October 10, 2012, 02:22:06 PM
Its not misdesign, its trade-off. The 32 bit nonce is old design, probably it looked great when only CPUs where doing mining, but right now it looks like a bottleneck.
It doesn't not look like a bottleneck. It provides a factor of four billion in reduction in whatever serial task exists outside of that. I have yet to see any evidence that it's a bottleneck.
5022  Bitcoin / Development & Technical Discussion / Re: Double-spending with 6 confirmations on: October 10, 2012, 02:15:59 PM
This is very simular to a speculation of how MyBitcoin, which required only 1 confirmation, was hacked with only 1 pre-mined block instead of 2 as required for a normal withholding attack: White Paper, section 11
As an aside, many people searched and none could find an orphaned block in their storage (bitcoin stores all blocks lost in reorgs) which contained a double spend against the main chain, making their claimed attack vector very unlikely. Moreover they refused to provide a copy of their blockchain file, which would have conclusively proved the attack. In light of this I believe it's far more likely that they gambled away or just outright stole the funds.

In any case, Bitcoin "takes advantage of the nature of information being easy to spread but hard to stifle"— you only need one honest connection to resist this kind of attack, and the attack can't be performed against reasonable client software that enforces a reasonable number of confirmations without a considerable cost in producing doomed blocks.
5023  Bitcoin / Development & Technical Discussion / Re: Handle much larger MH/s rigs : simply increase the nonce size on: October 09, 2012, 03:41:32 PM
kano is right. I did encounter this bandwidth issue, its somehow the same annoyance for hardware developers as it was diff1 and multi GHs miners network bandwidth consumption for pool operators. Unfortunately, solving hardware bandwidth issues is not as simple as a workaround in software, most of the time it requires changing design and adding extra costs.
Then don't mis-design your hardware in the first place. Seriously, if you can't do the small bit of multiplication to figure out what your bandwidth requirements will be then you _have no business making mining hardware_, operating pools, etc... Nothing suggested avoids changing design and adding costs. At best the suggestions externalize cost on future bitcoin users.
5024  Bitcoin / Development & Technical Discussion / Re: Handle much larger MH/s rigs : simply increase the nonce size on: October 09, 2012, 02:17:47 PM
Quote
So ... where is extra nonce referred to in the original Bitcoin document by Satoshi? Oh it isn't.
The same place scripts are referenced as well as locktime and nbits.
Quote it - coz it isn't there.
Have even ever read "Bitcoin: A Peer-to-Peer Electronic Cash System"?
I embedded the quote steganographically in the wooshing sound you heard as you read my response.

… The paper was written something like a year before the publication of the system. It covers the core concepts but omits things such as the script system, which is easily the most complicated part of a full node implementation. Since the paper covers _very_ little of the actual implementation, including a number of critical design decisions (I provided some examples of uncovered things), it would have been surprising if it _had_ mentioned extranonce.

Quote
Yes I guess for someone like you it is difficult to only associate BIP 22 with the thread title.
I'm not sure how you could associate the thread title with BIP 34 or 35, but that confusion is (in your opinion) 'having a clue'
Because:
(1) None of them were about ASIC mining. So I had to assume you were confused, and given that you are confused all bets are off.
(2) BIP 22 is primarily documenting (and cleaning up) an API we've had since long before 0.7; we merged it from forrestv in Septemberish 2011. So your talk about new in 0.7 more or less precluded it.
5025  Bitcoin / Development & Technical Discussion / Re: Handle much larger MH/s rigs : simply increase the nonce size on: October 06, 2012, 04:16:00 PM
Oh that's right, GBT related changes didn't happen in bitcoind - I forgot.
HUH? GBT is a rename of the poorly named getmemorypool which we've had for a long time— much longer than anyone was talking about 1TH/s mining devices— it's used by pool daemons and p2pool. Mostly for dynamic coinbase creation (e.g. to do fancy payouts) and because bitcoind coinbase creation is somewhat slow (it's synchronous, single threaded, and basically completely unoptimized).  The changes made in 0.7 beyond the rename were some extra fields to remove a potential DOS attack where some of the limits couldn't be properly enforced when the caller does dynamic transaction selection, support for the height in the coinbase, and some general cleanups to make it more 'designed' than accreted. BIP 22 makes no mention of 'asic', nor do the pull requests for the changes, and I don't believe asics _ever_ came up in discussion related to it around the reference client's development.

To the extent that GBT is useful for higher speed miners getmemorypool was absolutely as useful.

Quote
So ... where is extra nonce referred to in the original Bitcoin document by Satoshi? Oh it isn't.
The same place scripts are referenced as well as locktime and nbits.

Quote
There were that many BIPs added in 0.7.0 that you couldn't work out which one I was referring to?
It's awfully hard to work out what you're talking about when you haven't the foggiest clue about what you're talking about yourself.
5026  Bitcoin / Development & Technical Discussion / Re: Handle much larger MH/s rigs : simply increase the nonce size on: October 06, 2012, 02:33:31 PM
So if nonce size isn't too small - why are we changing bitcoin at all to support ASIC?

We are not and have not.

Quote
Why is this stupid BIP in 0.7.0 that's been forced on everyone, that also removed functionality from bitcoind, necessary?

Wtf are you talking about.

Quote
Why have people called sticking more junk in the coinbase an 'extra' nonce? What? They gave it the wrong name?
The current nonce is big enough? It's not necessary?

Extranonce has been part of the design since day one. It was the only way to make your coinbase transactions have unique IDs other than constantly changing to a new public key whenever you update the candidate block. It's fundamental and is required for things independent of the nonce size.

Quote
Coz when you get a block header to hash, you can only hash 2^32 times before needing to change it.
Why does that restriction exist?

A _4 billion to 1_ work factor is pretty reasonable. There are a couple tradeoffs here. Header size is utterly critical for SPV nodes of various kinds, and even adding a single byte to the header increases the size by 1.25%. Having too much workfactor ratio between header only work and block update work encourages miners to build devices which never process transactions: Cheaper to just build a constant root with no transactions and increment the header until you solve a block. On a fresh design I may have given a bit more space to nonce, sure. But there is no need to change it now.

Quote
It's gonna work fine without any changes right?
Oh ... no, that's not correct Tongue

Yes, in fact it will.

Quote
Yes I know the soft fork in April was done badly, but just because it was fucked up then, doesn't mean soft or hard forks can't be done.

Huh? The P2SH deployment went pretty smoothly.  About the only bad thing that came out of it was that we discovered Bitcoin had a bug in handling large reorgs with lots of transactions.  Timed less well— with large miners unable to reorg because of it— this could have been pretty fatal for the network. But since it only really impacted non-mining nodes (plus the tiny minority of non-updated miners) due to fork being invalid P2SH it was harmless. It's very fortunate, because I'm not sure we would have discovered that BDB issue even by now wthout it.

Quote
Where IS the restriction at the moment?

That we're not permitted to throw you into a volcano.

5027  Economy / Scam Accusations / Re: Nefario on: October 06, 2012, 04:31:46 AM
GLBSE should have been a black market operation, no offense. The fact that the founder is known and visible and that the exchange is centralized is a big red flag.
Thats no magic bullet.  It may be protective against "omg regulators exist; PANIC!" ... but it greatly increases exposure to  "Hm. Think I'll just take everyone's funds."

"securely anonymous" identity is cheap... and it must be cheap if anonymity is to be functionally available for people... so an operator of such a venue could just open up a second supposedly independently run clone and when people start to trust the second a bit they just pop the first and vanish with the funds. People then switch to the second, and they quitely spin up a third. etc.

The better advice is don't skirt laws when you're not pre-prepaired to deal with the consequences; and don't put your funds with obvious centralization targets which aren't at least making comforting sounds about their legal status.  (I've cautioned people about various webwallets which offer secondary services like "mixing" and gambling frontends as risk factors— asset seizure for these other things will give you a bad day none the less).
5028  Bitcoin / Development & Technical Discussion / Re: Handle much larger MH/s rigs : simply increase the nonce size on: October 06, 2012, 02:47:07 AM
Not the whole field, just take a couple of bytes from it. 2 bytes is more than enough for version information... Smiley
It's ridiculous, completely unnecessary, and craps on one of our very few backwards compatible upgrade mechanisms. Backwards compatibility means we may need to put some data there in the future— since even incrementing the version can't change the layout without creating a hard fork. Perhaps worst of all, it's simply tasteless. Tongue The version field? really. yuck.

Even a fairly slow computer can do extra-nonce advancing for many TH/s, esp once considering a few bits of ntime rolling— well, at least if someone doesn't insist on writing their SHA256 in javascript or other ultra slow interpenetrated language... And all these TH/s are not free. If someone can't manage a modest CPU or two per hundred thousand dollars in mining asics then they have a financial management problem that no amount of protocol fiddling can fix. Certainly it's not healthy for the network to encourage miners which are so CPU starved they can't even afford to update their coinbases enough to keep up with their hardware even given the ~2^48 work reduction that they get from nonce plus ntime rolling.

As far as communications goes, presumably people engineering products that cost as much as a nice car are smart enough to not use lawnmower wheels on it when it needs tank treads. If they aren't then I feel bad for their customers for all the other bits of the design they'll get wrong. But since its totally unprecedented that some mining hardware maker would produce a horribly mismatched design which did something daft like provide their hardware with a fraction of the required power supply we should have nothing to worry about…
5029  Bitcoin / Development & Technical Discussion / Re: Transaction script with block height as condition on: October 06, 2012, 02:09:10 AM
Yes, he is correct. So it is possible to incorporate the idea of nLockTime into script? For example:

1. The coin can be spent by 2-by-2 multisig with key E and key U at ANY TIME
2. If block height >= x, the coin can be spent by key U. The 2-by-2 multisig, however, is still a vaild way to spend the coin.
Validating that use of height is actually stateless in script would be horrific and more or less intractable. If script were designed so that there was a table of redemption options which had their own lock time then it could have been done... but alas.

It's no big deal in any case:

You are selling me your car. We decide to use a 2-of-2 escrow.  But I'm afraid you'll hold up the funds if the deal falls through.

I compute the payment into the escrow and sign it. But I do not announce it yet.  I also compute a transaction spending the escrow transaction and paying it all back to me with the locktime set some months from now.  I sign that transaction.  I give it to you (along with the txout its spending but not the whole payment). You can look at it and confirm that it is indeed unlocked until whenever, so sign it and give it back.  Then I announce the payment into the escrow. You don't need height in scripts to get refund timeouts. QED.
5030  Bitcoin / Hardware / Re: 400 BTC BOUNTY OFFERED FOR OPEN SOURCE BITSTREAM THAT IS FASTER THAN TLM on: October 05, 2012, 11:20:54 PM
I wonder if it would be beneficial to throw the 400(+ ?) BTC bounty into one bitcoin address visible by the community.
Personally, I wish I had the time to devote to this project.

Or into a multisig escrow.  If people are interested in that I can help set it up, and would be willing to act as an arbitrator for its disbursement.
5031  Bitcoin / Development & Technical Discussion / Re: New Attack Vector on: October 05, 2012, 04:43:44 AM
Now that this is well known, I have to point out the following:

Transaction malleability has been known and discussed many times— including padding and other encoding differences. Is there some reason that you believe the s-flip to have distinct implications from all of the other signature encoding differences?

The understood risk of this in prior discussions has primarily been that troublemakers could create confusion by changing the transaction ID of confirmed transactions to be something different than the transaction participants were expecting (so, e.g. they'd see two transactions doing the same thing, one which never confirms). There is a secondary risk that parasites could 'hijack' other people's transaction to pay the way to embed data in the blockchain for them.

Quote
I believe the originator wouldn't recognise the flipped transaction has spent his coins.

In the reference client the spent-ness of candidate inputs when drafting a transaction are checked with IsSpent(), the txid of the spending transaction should be irrelevant. Can you elaborate on what you're thinking here?
5032  Bitcoin / Development & Technical Discussion / Re: Contingency plans for a 51% attack on: October 04, 2012, 04:41:06 PM
For it to be an 'attack' the blocks have to be blank, and not contain any tx. Therefore every block the number of confirms goes down one.
This is confused.
Fixed it a bit.

It's just more clearly confused now.  The confirmation count is the number of blocks following when the transaction was initially confirmed. Every block implicitly confirms all prior in its chain because you couldn't have creates that block without processing all prior ones. Leaving transactions out has nothing to do with it... the effect of leaving transactions out is only that new transactions won't start getting confirmations.
5033  Bitcoin / Development & Technical Discussion / Re: Contingency plans for a 51% attack on: October 04, 2012, 04:17:17 PM
For it to be an 'attack' the blocks have to be blank, and not contain any tx. Therefore every block the number of confirms goes down one.
This is confused.
5034  Other / Beginners & Help / Re: network terahash goes up, but not the price of btc on: October 04, 2012, 03:47:33 AM
Price of BTC goes up -> More people mine -> Network hashrate goes up
Price of BTC goes down -> Miners take a break, give up, go back to playing games, etc. -> Network hashrate goes down

Yep. Moreover, the price has already gone up. GPU mining is loopy profitable again... rate is still catching back up, no doubt tempered by expectations of incoming asics.
5035  Bitcoin / Development & Technical Discussion / Re: Blocking the time warp attack on: October 03, 2012, 11:57:08 AM
It's hard to imagine there ever being a 24 hour gap in practice, but just in case, miners should cap timestamp at GetMedianTimePast() + 24 hours. (this part wouldn't require universal miner support, just enough to push through 2 blocks)
I haven't considered if your newly proposed rule is sufficient yet or if it's otherwise dangerous.  But it's deployment would be a fork risk unless it had super-majority miner support. Otherwise an attacker could intentionally split the network.

Two ways:
(1) If there is an unlikely moderately long gap between the median and now (5 blocks in 24 hours) he can just directly mine one block with a violating timestamp.
(2) Since you're already postulating majority hashpower attackers, one could replace the end of the chain with a violating chunk.

Quote
We shouldn't rely too much on it being harder. The minimum 51% attack currently requires 22Thash. Time warp might require 44Thash to pull off. Someone having 22Thash is unlikely, but 44Thash isn't much less likely than 22Thash. Someone with the ability to get 22Thash could probably get 44Thash too.

The chaos from a time warp attack could be an order of magnitude greater. Much more than the additional difficulty of pulling it off.
I wasn't saying that it isn't a concern, I was just cautioning against overstating it.  I'm not sure about the "order of magnitude worse" part— at the very start it's going to undo four weeks of transactions. That there is also a bunch of new coin created just increases the incentive to for the collective users of bitcoin to voluntarily kill the fork by checkpointing against it at its start point four weeks ago.

Getting a conservative rule in that kills these but which has hopefully never been violated by the mainnet would still be a good idea.  If nothing else the timewarp complicates explaining the security model of Bitcoin.  ("…such an attack can only do X/Y, except for this bug, also allowing Z but doing that is much harder than a simple overpowering…")

5036  Bitcoin / Development & Technical Discussion / Re: Subscription Model - OP_CHECK_HEIGHT? on: October 02, 2012, 02:08:24 AM
The only way would be if enough balance was on hand in each of  enough separate outputs (or groups) to uniquely use them for each future date.
Does that sound right?

No. Not quite. The bitcoin protocol has no concept of balances. A new transaction redeems old transactions. Transaction can only be redeemed once. Think of coins and the network is a forge that can combine them and split them.   You can write a transaction which can't be included in the blockchain until a particular time/height.. but it has to identify which coins it's spending. Not balances. Groups. Etc. The specific coins.   And until its in the chain you could spend those coins out from under it.
5037  Bitcoin / Development & Technical Discussion / Re: Blocking the time travel attack on: October 02, 2012, 01:29:33 AM
ArtForz posted here how the timestamp constraints can be gamed to walk backwards the timestamps used in difficulty adjustments.

While a 51% attack is still incredibly difficult, this bug greatly increases the potential damage if there is one.

It doesn't just require a simple majority, the chain must also be forked more than two weeks in the past (and at just over two weeks in the past it would take a long time to push the difficulty down), then must catchup and overtake in sum difficulty.  This is _much_ harder than just a majority. With only a 1% advantage you'd be toiling for a very long time in secret to overtake after cutting month back.

Quote
Rule: A block is invalid if its timestamp is less than the timestamps of either of the blocks 2015 and 2016 back.

I don't think that rule is sufficient.  You can tick the clock just 1 second per 5 blocks without advancing forward the oldest permitted time.


 I put a timewarp attack in the testnet3 chain to make it easier to test out rules to deal with it, so you might enjoy playing with that.
5038  Bitcoin / Development & Technical Discussion / Re: How safe is the first address in the standard client? on: October 01, 2012, 10:50:45 AM
Since we do not know what address the coins might go to in the wallet might they go to the very first address, the one that was once unencrypted? 
No.

Change goes to new addresses. Funds should only go to that first displayed one if you copy that address out of the client and send ones there.
5039  Bitcoin / Development & Technical Discussion / Re: Subscription Model - OP_CHECK_HEIGHT? on: October 01, 2012, 10:47:40 AM
Does some script like this already exist or could one be created? Wouldn't it then just depend on a special client program to create and manage such transactions? Any issues here?
We already have LOCKTIME which does what you're asking, but doesn't do what you want.

The locktime field on a transaction lets you specify the earliest time or height that the transaction can be included at.

It doesn't do what you want because you can't spend an input you don't have— so you'd have to have and freeze the funds you will use in advance. And since they're stuck in place— why not just pay up front?  ... There can be reasons, yes, but I don't think it really fits the subscription use case where you don't necessarily have the funds up front.

 
5040  Other / Beginners & Help / Re: Can't get client to download all the way :< on: September 29, 2012, 06:11:58 AM
Are you doing the default client? It takes a LONG time....
More than overnight means that something is broken (unless your hardware is very slow or you're running it on truecrypt).

Can you post the debug.log someplace (it will include your IP, so don't if you need to keep that private)
Pages: « 1 ... 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 [252] 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!