Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Why not just build this as a web app instead of a native iPhone app?


Well, you could, but that would leave your wallet (containing all your BitCoins) at a remote server, removing much of the point of Bitcoin. It would be just another Paypal basically (although you would be able to send the money between different "Bitcoin-PayPals" without a fee).

It would also make it much harder to send Bitcoins to other devices/people. With a native app you could for example detect other Bitcoin clients in near proximity via BT/same Wifi to make it much easier to transfer money, with the web you're stuck typing a long cryptic address.


Check out MyBitcoin. Something like this is actually very useful. The wallet on the remote server can (and should) just be a temporary transfer; send to mybtc or a similar service on sale, transfer out to a private wallet once a day, etc. Then, when you want to buy something, mail to your mybtc account, and then to the vendor you want to buy from. Only one extra step and still much more convenient than typing in a btc address.


I wonder if a bitcoin via email protocol/system could be implemented. Perhaps a special mail client could be built directly in the bitcoin client for such a purpose. Then the bitcoin web app would just communicate between individuals bitcoin clients via the email protocol. Just a thought. I really want to see Bitcoin succeed.


you could store the data in localStorage, avoiding the remote data problem. Now if only there were a way to sync local storage across devices...


Local Storage is limited to 5MB. Bitcoin requires much more than that --- on the order of 500MB.

This is because it needs to verify the block chain history, in order to provide cryptographically secure transactions.


Not at all. The Java bitcoin client doesn't store the entire block chain. http://code.google.com/p/bitcoinj/

You don't even need to know the current block to send transactions, if I remember right (haven't dived in deeply enough yet to be 100% certain). The block solver (miner) is the only one who needs to know the chain, as they choose what transactions to include, and your transaction may not even be included (ie, if fees are too low), but may in a later block.


You need to know the current block chain in order to know that nobody is fooling your client.

In other words, you need to know the current block chain in order to be sure you really did just receive 100BTC from Website X, and that it wasn't just a trick.


Only partially. You only need to know N blocks after a transaction to be N-certain a it is valid - that it's included in a block at all and propagated through the network implies the transaction is valid. If it weren't, other clients wouldn't accept the block.

You can never technically be completely certain a transaction isn't fake. You could be looking at a non-standard branch of the network, and you have no way of knowing it. So randomize your connections, wait for a few more blocks at reasonable difficulties, and you can be sure enough without having to work from the origin.

And (again, not 100% certain) I think you only need to store the hashes of each block to prove the chain is valid, and demonstrate a certain amount of work has been done (the difficulty of each). Each block solution builds only on the previous hash. That's just relatively tiny numbers, the entire list of block solutions would likely fit within 5MB with room to spare.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: