Bitcoin Forum
May 07, 2024, 08:37:00 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 33 34 35 36 37 38 39 40 41 42 43 44 45 [46] 47 48 49 50 51 »
901  Bitcoin / Bitcoin Discussion / Re: How to overthrow the Bitcoin Network on: April 23, 2011, 12:16:50 PM
The US is building a 20 petaflop machine at Oak Ridge:
http://www.techeye.net/hardware/us-titan-supercomputer-will-dwarf-chinas-tianhe-1a

But they made a classic newbie mistake of buying nVidia instead of ATI   Grin
902  Economy / Economics / Re: The relative Value of the 5970? on: April 23, 2011, 05:46:22 AM
How? Easy. I paid $620 each for two, and $400 for the third. I listed all three for $800 on amazon. All three sold in the past week.

Well, now that you've let everyone else know about all these stupid people, tomorrow you'll probably be able to find a bunch of 5970s on amazon for $775. Wink
903  Bitcoin / Bitcoin Discussion / Re: Why is the bitcoin value skyrocketing? on: April 23, 2011, 05:14:01 AM
I hope people are buying BTC as a real investment, but my fear is that you have people who are basically day-trading.  Buying 100 at $1.10, and then immediately putting in a sell order for $1.20.  That wouldn't just inflate the price, but also the volume, where (for example) that 30,000 daily volume is really only the same 300 or 3000 coins getting shifted around.   The mtGox 30 day volume is over half a million BitCoins.  I'm not sure if I believe that anything close to 1/10th of all bitcoins have been bought with USD by investors in the past month.

Well, if they buy at $1.10 and the price doesn't rise to $1.20, I guess that makes them an investor.
904  Bitcoin / Bitcoin Discussion / Re: How to overthrow the Bitcoin Network on: April 23, 2011, 03:28:07 AM
it means that in order to double spend, you would have to be able to compute 2 blocks (containing your double spend) before the rest of the network is able to compute 2 blocks

No. Even if the network gets one block between your two blocks, you refuse to build onto that block: you build only onto your blocks. Since you are a little faster than the real network, you can prevent all other blocks from appearing in your chain, which is the longest.

Ah, I see now.  If you compute the next two blocks faster than the rest of the network, the chances are still 50/50 whether you can compute the next block faster than the rest of the network.  But if you always build on your own blocks and not the shared blocks...on average, every other block created (by you or the network) will cause the entire network to oscillate between your block chain and the other block chain.

I was thinking the other day about the practice of encoding a block into the client (that basically fixates the chain as of some block in the recent past)...perhaps that should be codified in the client to happen in some way automatically...set a limit of say 60 blocks and make it so the client's will not accept any chain that alters a block that's more than 60 blocks old.  If someone were really paranoid about a transaction, they could wait 60 blocks (around 6 hours on average) for confirmation.  I'm guessing there's a downside to this, but I'm too exhausted to think through it at the moment.

Edit: One other thought...something like this might be useful for garnering transaction fees.  If you have this 60 block rule for firm embedding of the block chain...anyone needing rock solid confirmation within 6 hours would have an incentive to pay a fee with that transaction to ensure it gets included in the next block or two so they then only need to wait ~6 hours.  If they don't pay a fee and it takes a couple hours for the transaction to get into a block, they could be waiting 8 or more hours.
905  Bitcoin / Bitcoin Discussion / Re: Why is the bitcoin value skyrocketing? on: April 23, 2011, 03:02:34 AM
LOL...you knew someone was going to cite the Elliot wave.  I think in reality, most people that are putting some money into bitcoins understand that it could collapse at any time and hence only put in what they're willing to lose.  The flip side of that is that they're also not in any hurry to sell (and probably think bitcoins have enormous potential that far outweighs the risks of losing the small amount they've put in).  In addition, you probably have new people discovering bitcoins that reach similar conclusions and want to build a position.  And, at this early stage a wealthy individual or two that are willing to put a significant amount into bitcoins can really drive up the price (but it could fall just as quickly when they stop buying).
906  Bitcoin / Bitcoin Discussion / Re: How to overthrow the Bitcoin Network on: April 23, 2011, 02:50:31 AM
But the longest chain still has to be a valid chain correct (meaning, no double spends in that chain)?

It can't contain double-spends within itself, but it can double-spend transactions in conflicting chains. So you can double-spend from the perspective of a merchant if you have >50% of the network's computational power.

That's what I thought.  So, at 50% of the mining power on the network, you would get on average every other block...if people were waiting on just one block for confirmation, it means that in order to double spend, you would have to be able to compute 2 blocks (containing your double spend) before the rest of the network is able to compute 2 blocks...you could do some double spending with that and undermine confidence in the network.  But, you still couldn't do it on any sufficiently long time horizon...if people waited even three or for blocks for confirmation, odds are pretty good that they would protected from double spends.  I wouldn't call that overthrowing the network (if it started happening, people would in fact start waiting longer for confirmations and that would quickly limit the theft a double spender could pull off), but it could certainly have a very detrimental affect on confidence in the system.  If the objective were to steal money, I don't think super computer would be an economical choice (the top 10 supercomputers are likely to cost far more than all the bitcoins in circulation).  But, maybe the economics are better for a botnet.  If the objective is to undermine the confidence in bitcoins, this attack could do a lot of damage and I think is the biggest threat that someone with a lot of mining power presents.

So, what does it mean exactly to "overthrow the bitcoin network"?
907  Bitcoin / Bitcoin Discussion / Re: How to overthrow the Bitcoin Network on: April 23, 2011, 02:24:34 AM
Whatever is in the longest chain is the truth. Network clients won't (and can't) reject blocks that double-spend a transaction in one of the conflicting blocks.

But the longest chain still has to be a valid chain correct (meaning, no double spends in that chain)?
908  Bitcoin / Bitcoin Discussion / Re: How to overthrow the Bitcoin Network on: April 23, 2011, 02:06:22 AM
Wrong.

Hard to debate that.
909  Bitcoin / Bitcoin Discussion / Re: How to overthrow the Bitcoin Network on: April 22, 2011, 09:22:34 PM
You're speaking of mining power, but that's not the whole story.  Power alone would not be sufficient to overthrow the network.  If you held 50% of the mining power (which would require that you double the current total power of the network), about every other block would be yours and you could slow down the rate at which transactions made it into the chain, you could try to double spend, but your direct peers would immediately reject blocks with double spends.  You could probably come up with some ways to create a DOS attack on the network.  But, I think enough people would recognize such chicanery and would take measures to isolate and remove the bad actor from the network. 

To take control over the block chain, you'd also need to control over 50% of the nodes on the p2p network that validate any blocks you create.  Your powerful hardware could also run a bunch of nodes, but I believe the client seeks diversity (in terms of ip addresses) in the nodes with which it will connect.  That would make it hard to overcome the validation that the p2p network performs.  You would need to double the number of clients *and* convince the rest of the network to connect up with them instead of others (so, you might need to arrange for a bunch of different IP address subnets).  A botnet could potentially accomplish this (a botnet for ip diversity in combination with some super computer miners might be a good way to go).  Or, you could also convince a bunch of people to run your special, hacked up client that changes the rules for block acceptance.  Or you could write a virus that targets the bitcoin executables to overwrite people's legit clients with your own hacked up version (that changes the rules for block acceptance).
910  Bitcoin / Development & Technical Discussion / Re: Reorganization of code around classes on: April 21, 2011, 08:32:58 PM
Steve, I'm looking forward to your native Mac client, since right now an official mac client is missing for the latest release.

Actually, I've got another project that bubbled up ahead of the native Mac client in priority (just something I think will have broader appeal and is more urgently needed).  I'm not prepared to talk about it just yet other than to say I will be using this branch I've created for it.  I still would like a native Mac client though.
911  Bitcoin / Development & Technical Discussion / Re: Reorganization of code around classes on: April 21, 2011, 05:19:55 AM
After putting together the 0.3.21 release candidate today, I'm thinking after 0.3.21 is out the door it might be a good time to do a major source tree re-org.   I like the idea of following the GNU directory layout standard, and it would make my job easier if source was in src/, readmes/etc were in doc/, scripts to automate the Windows build were in build/, etc.

PS: jaromil is the second person I've heard who says they'd prefer a development mailing list.  I don't care one way or another, but it would be easy to create one using SourceForge's mailing list feature.  What do others think?
[/quote]

I'd vote for a mailing list...in other open source projects I've worked with, it's worked well. 

As for a re-org, let me know if I can help.  I think a simple approach of separating the classes out into *.h, *-inl.h, *.cpp files is a good start.  Some people have objected on the grounds that it creates a lot of files (in reality, less than 150), but I think it's a clear and simple rule and allows people to easily reuse any of the classes in any combination for custom projects they might work on.  If you don't separate the classes like that, then what do you do?  Five classes per file?  Ten?  I think a clear and simple rule in this regard overrides the concern over a proliferation of files (and actually, I like being able to see all the classes when doing an "ls" in the directory).
912  Bitcoin / Bitcoin Discussion / Re: MtGox - single point of failure on: April 19, 2011, 06:52:53 PM
If someone can solve the issue of holding USD in a distributed nature, I'd love to see it.

I don't think the issue is that of holding USD in a decentralized manner per se. What we need is a decentralized web of trust, so that when a peer enters a buy/sell order into the network, they can be trusted that they will execute the order if someone takes it up. Right now this function is done by MtGox by requiring that they user deposit the funds a priori.

This is a key point...you have to involve a trusted third party in the process to help ensure 2 things: a) than an order can be accepted by anyone else in the system and b) that trades actually execute (whether that's by requiring collateral up front or by the exchange making a guarantee is a separate question).  Without these, the price discovery function of the system is compromised because the system can be easily manipulated (people making trades with themselves, people not actually settling trades, etc).  The trusted third party then makes certain information about the trade available to the public to help in general market price discovery (which is for the benefit of everyone).  We just need more of these trusted third parties and perhaps a more standardized and federated trading platform.  It would be nice to separate the various concerns in the architecture (allowing different people to operate the order entry and execution system from the people backing orders with collateral, from the people providing market intelligence, etc).
913  Bitcoin / Development & Technical Discussion / Re: Feature Request: Printed Wallet Backups ("Bearer Bonds") on: April 19, 2011, 06:40:45 PM
How about keeping a few encrypted backup copies of your wallet with a couple different online storage services.  Then keep the decryption codes and instructions in your safe deposit box (or better yet, keep the instructions online and encrypted as well...in the safe deposit box, you have the decryption code for the instructions and a URL).  This way, as you add new keys to your wallet, or you move things around, you only have to update that set of online instructions (rather than print a new copy of your wallet and replace it in your safe deposit box).  This is essentially what I do (though it's not just for bitcoins...and there's no one sheet of paper that has all the needed info...you need 2 out of 3 sheets of paper that I have distributed among family members).
914  Bitcoin / Development & Technical Discussion / Re: New, standardized wallet protocol on: April 19, 2011, 06:24:24 PM
So what's your proposal? I'm willing to get behind this. Show us the code.

I think it's good to let actual needs drive evolution, but that doesn't mean it's not worthwhile in soliciting ideas/requirements if you're about to undertake work like this (but, I do think it would be better, for someone that is so inclined, to collect some input/feedback...and then go write some code and let the code be the specification...I wouldn't agitate too much about getting the specification agreed upon by a large number of people in advance).

So, here's my feedback...first, here's a "user story" I would like it to support:
"As a user, I would like to have very tight control over the handling of my private keys"
    - to support this story, I think you need to boil down the private key handling to the very basic methods that require the use of unencrypted private keys...I think this is basically the creation of new keys (for receiving payments) and the creation of spend transactions (is there anything else?) ...I envision a very simple module (with a very small amount of easily comprehensible code...perhaps in a very readable language other than C++) that supports an API to a) instantiate a set of key pairs from a serialized form (where the private keys are encrypted), b) request the creation of a new key pair, c) request the creation of a transaction, d) request to serialize the public portion of all key pairs e) request to serialize all key pairs (with private keys encrypted)  ...additionally, the key pairs might include a small bit of meta info (like a description of the key as the current client supports) ...an implementation of this very small API would allow for someone to run a very small and trusted bit of code that is used to maintain the privacy and integrity of their keys (about the only UI that module would require is a password prompt used for the encryption of the private keys), while at the same time allowing the rest of the system to manage physical storage and backup of the encrypted keys and create the full wallet GUI (showing a balance, a send bitcoin UI, a transaction listing, an address book, etc).  ... few additional APIs to let the components work with keys individually might also be useful

I would be very interested in a solution that utilized 0mq+protocolbuffers for this.
915  Bitcoin / Development & Technical Discussion / Re: bitcoind ideas on: April 19, 2011, 05:50:25 PM
I mentioned it on IRC that I don't see a need for bitcoind to have any process forking behavior in it...interactively, you can fork the process easy enough to run in the background (and even detach it after starting).  And, if you're setting up a server, it's simple enough to run in the background (and if you're serious, you'll be using something along the lines of daemontools to manage it).

I could even be persuaded that the only command I/O interface it needs to support is over stdio (because that too is easy enough to redirect, could be put behind something like xinetd, etc).  Switches could be used to control whether it's JSON, or human readable, etc (or use separate executables for different formats).  (but there's also an argument to be made against over-doing the modularity)
916  Bitcoin / Bitcoin Discussion / Re: Mystery miner at it again? on: April 19, 2011, 02:48:32 AM
I suspect, if it's a botnet, that whoever is using it has discovered that they can't mine full time and unload everything they mine without significantly pushing the market down.  So, they might be mining for a while, until they collect some amount of bitcoins then they switch to something else lucrative while they unload the bitcoins over time...once finished unloading (and perhaps when done with the other activity) they go back to mining again to load back up on bitcoins.
917  Bitcoin / Development & Technical Discussion / Re: Can the difficulty decrease if people stop mining? on: April 18, 2011, 08:48:29 PM
I am trying to understand the way in which the block generation difficulty is adjusted.  If people stop generating blocks, is it possible for the difficulty to decrease without 2016 blocks going by?  If not, then from what I understand, it seems like the following undesirable situation could arise:

0. The value of one BTC increases dramatically (say to 100 USD).
1. More people start mining, and so the difficulty increases a lot, and the electricity cost to generate a block settles at a bit less than 5000 USD as expected.
2. The value of one BTC decreases (for unrelated reasons) to 10 USD.
3. Almost everyone stops mining, because it's not worth spending 5000 USD to generate a block.  Now we only get (say) one block per day from a few people who are mining just for fun.
4. If the value of a BTC doesn't rise again, it takes about 5 years (in this case) for 2016 blocks to go by so that the difficulty can go down.

Am I missing something?  Thanks for reading.


I think that kind of price move would either be a) relatively temporary due to some panic or b) permanent and associated with complete demise of bitcoins.  In the first case, the price would recover as would mining interest and the situation would right itself.  In the second case, it's game over for bitcoin, so who cares if it takes 5 years or 5 decades to mine the next 2016 blocks.  It's hard to imagine a scenario where it loses 90% of its value and takes more than a few months to recover to the point where mining activity picks up enough that the next 2016 blocks get mined in a reasonably short amount of time.  Also, I don't think it would ever be the case for very long that the electricity cost of mining a block is equivalent to the value of the reward/fees for a block.  If that were the case, then mining would be a money losing proposition due to the hardware costs.  And, you have to factor in new generations of hardware that would increase efficiency and hence lower the cost of mining (thus inducing people to invest in new hardware and resume mining). 

But, it does raise interesting questions.  I'm not sure why it couldn't be made such that the difficultly adjustment happened more frequently (say every 100 blocks), or be triggered based on thresholds set on a moving average of the block creation rate (i.e. if the average rate of block creation for the last 100 blocks is <5min or >15min, re-adjust the difficulty).
918  Bitcoin / Bitcoin Discussion / Re: Who is Satoshi Nakamoto? on: April 18, 2011, 01:34:07 AM
I believe Satoshi was working on this idea for quite a while...looking at the code, I don't think this was something he threw together in a couple months.  I think he may have been working on it for several years and took great pains to ensure it was sufficiently evolved such that it wouldn't simply die shortly after its release.

Not several years.  I think he wrote somewhere on this forum that the actual coding was quite fast compared to the global mental design of the thing.



What does "global mental design" mean?  I didn't mean to imply that he may have spent several years coding...designing a good system often involves a lot more than actual coding.  I suspect the creation process was several years in the making even if the actual coding was relatively quick.
919  Bitcoin / Bitcoin Discussion / Re: Who is Satoshi Nakamoto? on: April 18, 2011, 12:34:36 AM
I believe Satoshi was working on this idea for quite a while...looking at the code, I don't think this was something he threw together in a couple months.  I think he may have been working on it for several years and took great pains to ensure it was sufficiently evolved such that it wouldn't simply die shortly after its release.
920  Bitcoin / Bitcoin Discussion / Re: there is only ONE thing we really need on: April 17, 2011, 09:18:41 PM
Maybe the best approach would be to find a small local bank to partner with to issue a bitcoin backed debit card.  If someone knows an executive at such a bank, it might be worth talking to them about it.  I imagine you could issue at least a few hundred such cards right off the bat.
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 42 43 44 45 [46] 47 48 49 50 51 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!