Bitcoin Forum
June 21, 2024, 09:26:06 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 ... 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 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 »
3221  Bitcoin / Development & Technical Discussion / Re: "balance of accounts" block on: June 24, 2011, 02:36:00 AM
You have the option to run your own full node too.  Presumably it wouldn't try to deceive your own lightweight clients.

Oh, and if you keep track of your own spending, which would make sense, you don't have to worry about a node forgetting to tell you about it.  Plus, the client could check them all, either from time to time, or any time a new key is imported.  We could even attach a record to the key in the database indicating the current block number when the key was created, so that only blocks after that need to be checked.  Etc, etc.  The amount of work saved by having balance blocks is pretty low compared to the crapton of data that would necessarily need to be in them for them to be useful.

I disagree. The problem is that you have to trust that the transactions pruned by your connected full node are actually supposed to be discarded. If your full node omits a recent transaction that spends its own coins and then sends you a double spend on those coins, you have no way to know that was a double spend.  So you must trust the node to not prune transactions you need to know about. A balance block would solve that, at worst you would only need the 80 byte block headers leading to that balance block to know it was the correct one, all blocks before it could be completely pruned.

And now we are back to "You ask more than one, maybe even one you pay for the service".  If you ask two nodes at random, you have a pretty good chance of getting an honest answer from at least one of them.  To be extra careful, which is entirely reasonable if you are hoping to validate an incoming transaction, you could wait until after you get the transaction, then replace all of your connections with new random ones, and ask all of them.

Also, a balance block wouldn't help in this case at all, unless you want the lightweight client to consider every incoming transaction as unverified until the next balance block.
3222  Bitcoin / Development & Technical Discussion / Re: bitcoind command help (extended descriptions) on: June 24, 2011, 02:29:40 AM
I get "false" for the getgenerate command. I have both the server and GPU miner working, does this mean that something is wrong? The server has the complete block chain and 8 total connections.

Use the setgenerate true command to enable mining, if for some reason you really want to (but you probably don't).  You can also add an optional third parameter for the number of CPUs to use.

By the way, impressive thread necromancy.  Don't see a lot of that on these forums, most people just post new threads, but you actually used the search function.  Almost warms my heart.
3223  Bitcoin / Development & Technical Discussion / Re: Pay miners to rewrite block(s)? on: June 24, 2011, 02:22:51 AM
If chain reversal required an exponential increase in demonstrated difficulty, rather than merely an improvement over equality, a transaction could be made absolutely safe after some number of blocks have passed, instead of merely statistically safe.  The effort would be minimal, and my estimate of the side effects are likewise minimal, but there is no desire to do even that, because block chain attacks are horribly impractical, even today, and they get less practical by 40 or 50% every couple of weeks.
Do you explain a mechanism for doing that anywhere? Or could you sketch it out here?

I think they may get slightly more practical in the future. I think the gap between purpose-built fully custom mining hardware (that would only be profitable if you could attack the chain) and commodity hardware (that would be used by miners) will increase over time. And I think it's at least possible that the interest in mining may drop over time and thus the resources an attacker might need relative to those he could muster might decrease.

Consider a person who designs and builds a beast with 1,000 fully-custom chips. Current cost would be around $10,000,000. You can't make that back by mining.

I think that they will become less practical.  Currently there are a small number of miners that are mostly in it for the reward.  In the future, I think there will be a large number of miners that are mostly in it for the security.  Dedicated hardware will make it even more so.

Exponential difficulty increase summary:

Consider the longest honest blockchain fork that is likely to happen innocently, now pick a smallish number, still somewhat greater than that, call it X.  6 is probably a suitable number for X.

A node gets a new block in, that extends a side chain instead of the main chain.  For the new chain to replace the main chain, the node must replace a number of blocks, call this Y.  I don't think that Y has been greater than 2 yet.  By my estimation, it should happen every 27 million blocks or so.  But my estimate is based on a tiny data set, there could have been a 3 or 4 block reversal in the early days that I don't know about.

Now if Y is less than X, the chain with the highest difficulty wins (this pretty much always means the longer chain).

However, if Y is equal to or greater than X, it calculates: current_difficulty*2^(Y-X).  If the difference in difficulty between the current chain and the proposed chain is greater than this amount, the proposed chain is accepted.  If it is less than that amount, the proposed chain is still ignored, but kept on hand in case it continues to grow.  Notice that 2^(Y-X) grows rapidly, quickly exceeding even unimaginable hashing power.

The side effect is that it can cause a fork in the chain to become permanent, at least until humans intervene.  But this side effect is unlikely, and the more nodes that would need to be fixed by hand, the less likely it is.  If the earth was literally chopped in half, and all radio communication was prevented between the halves, we would have a hell of a mess to sort out.  You know, after we defeat the aliens that cut the planet in half, and glue the two halves back together.
3224  Bitcoin / Development & Technical Discussion / Re: A proposed solution to adjust for lost Bitcoins: wallet 'heartbeats' on: June 24, 2011, 02:03:36 AM
I'll answer your question. I don't hold Zimbabwe currency or currencies like it. On the other hand, some currencies are rather stable, and are fine for holding for periods of time. Bitcoins, while volatile, are an interesting investment, and there's a strong chance they will rise significantly. But in the end, they will become unstable.

Given a choice, I would much prefer to hold a version of Bitcoins that requires a heartbeat, for the reasons clearly stated above. I would have zero fears of losing it.

I think you are very, very wrong about the bolded part.  You know my opinion of the unstable comment, so I won't bother repeating it.
3225  Bitcoin / Development & Technical Discussion / Re: A proposed solution to adjust for lost Bitcoins: wallet 'heartbeats' on: June 24, 2011, 02:00:25 AM
And finally, no, I still prefer a system that is capable of neither destroying nor redistributing bitcoins.
Why the preference?

Because we finally have a system where what is mine will always remain mine (even after I die) unless I fuck it up myself.
3226  Bitcoin / Development & Technical Discussion / Re: "balance of accounts" block on: June 24, 2011, 01:53:03 AM
You have the option to run your own full node too.  Presumably it wouldn't try to deceive your own lightweight clients.

Oh, and if you keep track of your own spending, which would make sense, you don't have to worry about a node forgetting to tell you about it.  Plus, the client could check them all, either from time to time, or any time a new key is imported.  We could even attach a record to the key in the database indicating the current block number when the key was created, so that only blocks after that need to be checked.  Etc, etc.  The amount of work saved by having balance blocks is pretty low compared to the crapton of data that would necessarily need to be in them for them to be useful.
3227  Bitcoin / Mining software (miners) / Re: Flexible mining proxy on: June 24, 2011, 01:47:12 AM
Meh.  Took me like 5 minutes to modify the work_data table, add new history tables, write a cron job to rotate the records out, and post my scripts.  Bonus: I didn't even have to think of any clever SQL tricks.
3228  Bitcoin / Development & Technical Discussion / Re: Pay miners to rewrite block(s)? on: June 24, 2011, 01:41:13 AM
It is much harder to reverse a transaction that is buried in the chain than one in the most recent block.  If the recipient waits 5 blocks, even an attacker with half of the hashing power in the world has about a 1.5% chance of reversing it.  And that is assuming they start now and work until the end of time.  What fee would be large enough to make it worth a miner's time and effort, but small enough that the recipient won't wait for it to get buried?
I agree. This is a theoretical risk that would be practical only under circumstances that are extremely unlikely.

More importantly, it is an intentional property of the design. For any cryptographic system, the designer should be able to say, "Someone can break this system if they do X, and X is hard enough to do that we don't have to worry about it." The system gets weaker either if X gets more practical or someone finds an attack that is easier than X.

An attacker producing a longer chain is the intentional, by design weakest link in BitCoin. This is BitCoin's X.

Rational people will always be able to reliably estimate how long to wait and add a sufficient safety factor. For small transactions, this will almost always be no time at all. For very large transactions, it might hit two hours or so under unlikely but possible future circumstances.

If chain reversal required an exponential increase in demonstrated difficulty, rather than merely an improvement over equality, a transaction could be made absolutely safe after some number of blocks have passed, instead of merely statistically safe.  The effort would be minimal, and my estimate of the side effects are likewise minimal, but there is no desire to do even that, because block chain attacks are horribly impractical, even today, and they get less practical by 40 or 50% every couple of weeks.
3229  Bitcoin / Development & Technical Discussion / Re: A proposed solution to adjust for lost Bitcoins: wallet 'heartbeats' on: June 24, 2011, 01:30:39 AM
I know all about Zimbabwe's currency. That's not the point.

The point is: what would you do if it was the far future and the apparent circulation of Bitcoins is about 1,000, and as a result, due to the public's general fear that 10,000 or even 100,000 Bitcoins could be dumped on the market tomorrow, people, in general, when receiving payment in it, immediately cash it out for something else, driving its value down even further? Would you place much of your wealth in it? Would you be so confident that nothing might happen tomorrow?

Or, would you prefer a version of Bitcoins that mandates heartbeats, thus ensuring the above situation could never occur for all time?

Do you know about every fiat currency ever tried over the last 4 thousand years or so?

The point is:  what do you do if it was today and, due to the public's general fear that 10 trillion or 100 trillion dollars could be dumped on the market over the next year or two, people, in general, when receiving payment in it, immediately cash it out for something else, driving its value down even further?

To answer your questions, I would not "put my wealth" in it, not for your reasons, but because I never do that; I know the difference between money and wealth, it involves using one to buy the other, but I'll let you sort out the details on your own.  And yes,  I would still be pretty confident, for reasons already explained, by me and several other people, in several unique and colorful ways, all of which you have ignored.  And finally, no, I still prefer a system that is capable of neither destroying nor redistributing bitcoins.

Perhaps in the year 3535, people will rue the day we rejected your idea, but I'll leave that to them.
3230  Bitcoin / Development & Technical Discussion / Re: Pay miners to rewrite block(s)? on: June 24, 2011, 01:20:21 AM
It should be trivial to calculate how many blocks to wait before accepting a payment as valid, based on an estimate of the fraction of the world's hashing power under the control of the single largest corrupt mining organization.
The problem is that the incentive to mine drops while the incentive to steal stays the same. So the time you may have to wait could go up significantly over time.

It is much harder to reverse a transaction that is buried in the chain than one in the most recent block.  If the recipient waits 5 blocks, even an attacker with half of the hashing power in the world has about a 1.5% chance of reversing it.  And that is assuming they start now and work until the end of time.  What fee would be large enough to make it worth a miner's time and effort, but small enough that the recipient won't wait for it to get buried?
3231  Bitcoin / Development & Technical Discussion / Re: "balance of accounts" block on: June 24, 2011, 01:11:38 AM

You can actually stop here, and you don't need a balance block at all.  A lightweight client only needs to verify all of the headers, and then have a way to fetch full blocks as needed.  All that is really needed is a new message type in the network protocol that will allow a client to ask a node for all blocks that have transaction going to a given address.

how do you make sure that node doesnt leave out some transaction to misrepresent an  address' balance?

besides, I think with time you have to assume that most clients are lightweight, if lightweight means not downloading gigabytes of blocks, so the node itself doesnt necessarily have an answer.

You ask more than one.  Maybe even one that you pay for reliable information.
3232  Bitcoin / Mining software (miners) / Re: Flexible mining proxy on: June 24, 2011, 01:10:22 AM
Installed and seems to work. Tho weighting seems to be quite a bit off (haven't looked at that portion of code yet).

Quick glance at DB shows no reason why it should be slow, if queries match. So those who are having speed issues probably have bad MySQL config just. MySQL scales really efficiently and i don't see immediate reasons why this would be slow, but have to wait for data set to increase.

If anyone got say 8G+ dataset they don't mind sharing, i would be willing to look into it. Or any size with which someone is having some serious perf issues.

Code should be PLENTY more commented btw Wink

Check out the join that creates the status display.
3233  Bitcoin / Development & Technical Discussion / Re: A proposed solution to adjust for lost Bitcoins: wallet 'heartbeats' on: June 24, 2011, 12:02:52 AM
The ratio for dollars is zero right now.
True, but there is only one entity that could dump a quantity that is many times the current number of dollars in circulation, and they do have an interest in not doing something too drastic.

In the case of Bitcoins, as the ratio goes towards zero, the number of entities that could dump an amount many times Bitcoin's perceived circulation onto the market will be unknown, and their motivations will be unknown.

If history is any guide, they have every incentive to do this, just not all in the one day.  The value of each and every fiat currency not currently in use ended up at zero.  Actually, a lot of metal currencies ended up turning into fiat currencies through debasement, and then end up at zero.

Did you see the image I posted?  It wasn't caused by some unknown entity, it was caused by the entity in control of that currency.  And it wasn't for unknown motivations, it was caused by a desire to spend money that the entity did not have, a motivation common to everyone.

For further amusement, I chuckle that you find the system-preservation motive sufficient when applied to a type of entity with a 100% track record for destroying currencies, but reject (or at least ignore) the same motive when applied to an entity with enough coins to ensure that he and his family live like kings for all eternity so long as they don't destroy the system that is willing to give them goods and services, essentially for free.
3234  Bitcoin / Development & Technical Discussion / Re: Pay miners to rewrite block(s)? on: June 24, 2011, 12:02:17 AM
It should be trivial to calculate how many blocks to wait before accepting a payment as valid, based on an estimate of the fraction of the world's hashing power under the control of the single largest corrupt mining organization.
3235  Bitcoin / Pools / Re: BTC Guild - 0% Fees, Long polling, SSL, JSON API, and more [~2500 gH/sec] on: June 23, 2011, 11:34:28 PM
Looks like we hit our 1,000th block during the chaos!

Thanks again for all of your work on this.
3236  Bitcoin / Development & Technical Discussion / Re: A proposed solution to adjust for lost Bitcoins: wallet 'heartbeats' on: June 23, 2011, 11:33:04 PM
I just realized something.  All of the current money systems in the world today are already more uncertain than bitcoin will ever be.  Bitcoin actually gives us boundaries on the uncertainty which do not exist in the real world.  The amount of bitcoins that might potentially show up on the market tomorrow is strictly limited by powerful mathematics.  The amount of dollars (or whatever) that might potentially show up on the market tomorrow is limited by human discipline.
This isn't really true. Towards the end of Bitcoin's life, the ratio goes towards zero, which means that a near infinite change can occur.

However, if some form of the heartbeat is implemented, then things really are good.

The ratio for dollars is zero right now.
3237  Other / Beginners & Help / Re: What the Early Adoptors Don't want you to know on: June 23, 2011, 11:16:18 PM
I really wish that more people would try to read Keynes.  His book (the famous one) is incomprehensible gibberish.  Ozzy Osbourne makes more sense.

If more people had that sort of personal exposure to his writings, there would be fewer of these threads defending his ideas as sacred.
3238  Bitcoin / Development & Technical Discussion / Re: "balance of accounts" block on: June 23, 2011, 11:12:07 PM
They already thought of pruning. 

You ask the other clients to just send you the headers.  This is 80 bytes per block (so about 1MB).

block 1 -> block 2 -> ..... -> block 130000 -> block 130001 -> block 130002 -> block 130003 .....

You can verify the entire chain.  This gives you is proof that they are the chain and also the root hash for each block.

Next you would ask for the actual blocks themselves.  You can verify that they connect properly to the chain.

You can actually stop here, and you don't need a balance block at all.  A lightweight client only needs to verify all of the headers, and then have a way to fetch full blocks as needed.  All that is really needed is a new message type in the network protocol that will allow a client to ask a node for all blocks that have transaction going to a given address.
3239  Bitcoin / Development & Technical Discussion / Re: Designing distributed contracts on: June 23, 2011, 10:57:32 PM
If you want the operation to be atomic you can create the initial send, hash it, send the hash to the recipient and then wait for them to reply with the reclamation tx. Once you have the reclamation tx, broadcast the send.

I think I'm missing an implied step in there.  How is the hash useful as security to them?  Couldn't you just fail to broadcast the send after you get the reclaim?

But we could just skip that step entirely and end up in the same place.  They give you the reclamation transaction first, and then invalidate it (as described earlier) if you fail to send.
3240  Other / Beginners & Help / Re: What the Early Adoptors Don't want you to know on: June 23, 2011, 10:52:56 PM
Deflationary currency is bad because you owe more on your loans every day.    Economic activity stops because everyone waits until tomorrow to buy something when it's cheaper.   You keep getting paycuts at your job.   And the incredibly-ultra-rich have their billions worth more.

Is it really difficult to understand why deflation is a bad thing?

Is it really difficult to understand why debt is a bad thing?
Pages: « 1 ... 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 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!