Bitcoin Forum
March 29, 2024, 07:19:16 AM *
News: Latest Bitcoin Core release: 26.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Bitcoin Express -- an iOS thin client for bitcoin  (Read 4708 times)
fingster (OP)
Newbie
*
Offline Offline

Activity: 20
Merit: 0



View Profile WWW
July 24, 2011, 04:11:33 PM
Last edit: August 23, 2011, 12:36:03 AM by fingster
 #1

Hi,
I've written a thin client for iPhone, based on the idea of separating a peer node into a 'thin' client and a server. The client runs on an iOS device and doesn't need to download any blocks/headers from bitcoin network. The client just needs to download its transactions from server into its local wallet. NO PRIVATE DATA OF BTC IS SENT TO SERVER.
The client signs on its sending transaction LOCALLY and then sends to server which relays/broadcasts it to bitcoin network. The server pushes transactions to the involved clients (sender and receivers) .

MIT Licensed open source: https://github.com/fingster/BTC-Express
UI partially based on: https://github.com/udibr/bitcoinApp
More Details: http://forum.bitcoin.org/index.php?topic=31362.0
Beta version download: http://www.megaupload.com/?d=9RX93T9V

any suggestion is  welcomed, ;p

Best regards
1711696756
Hero Member
*
Offline Offline

Posts: 1711696756

View Profile Personal Message (Offline)

Ignore
1711696756
Reply with quote  #2

1711696756
Report to moderator
1711696756
Hero Member
*
Offline Offline

Posts: 1711696756

View Profile Personal Message (Offline)

Ignore
1711696756
Reply with quote  #2

1711696756
Report to moderator
You can see the statistics of your reports to moderators on the "Report to moderator" pages.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1711696756
Hero Member
*
Offline Offline

Posts: 1711696756

View Profile Personal Message (Offline)

Ignore
1711696756
Reply with quote  #2

1711696756
Report to moderator
1711696756
Hero Member
*
Offline Offline

Posts: 1711696756

View Profile Personal Message (Offline)

Ignore
1711696756
Reply with quote  #2

1711696756
Report to moderator
1711696756
Hero Member
*
Offline Offline

Posts: 1711696756

View Profile Personal Message (Offline)

Ignore
1711696756
Reply with quote  #2

1711696756
Report to moderator
dinox
Full Member
***
Offline Offline

Activity: 126
Merit: 100


View Profile
July 24, 2011, 07:45:14 PM
 #2

Great idea, indeed.

Can you put this on Appstore/Cydia?

blockchain.info/fb/1dinox - 1Dinox3mFw8yykpAZXFGEKeH4VX1Mzbcxe
Active trader on #bitcoin-otc - See here - Proof that my nick is dinox here
fingster (OP)
Newbie
*
Offline Offline

Activity: 20
Merit: 0



View Profile WWW
July 25, 2011, 09:56:58 AM
 #3

submitted to App Store today :-)

samr7
Full Member
***
Offline Offline

Activity: 140
Merit: 430

Firstbits: 1samr7


View Profile
July 26, 2011, 01:39:18 PM
 #4

Watching this thread -- this looks really promising!

It must have been quite a job to get the original bitcoin client running on iOS!
EhVedadoOAnonimato
Hero Member
*****
Offline Offline

Activity: 630
Merit: 500



View Profile
July 26, 2011, 07:43:45 PM
 #5

Congratulations for your great work!

You say no private data is sent to the server. How can it be? I mean, the client must at least ask the server how much money it has on its addresses, what means the server will know which are your addresses, thus it will know how much money you've got on your wallet and how you spend them. Your "private data" is entirely known by the server.

Or by "private data" you meant only the private keys to the addresses? If that's the case, maybe you should correct your statement to make it clearer?

Thanks.
fingster (OP)
Newbie
*
Offline Offline

Activity: 20
Merit: 0



View Profile WWW
July 27, 2011, 11:23:55 AM
 #6

Congratulations for your great work!

You say no private data is sent to the server. How can it be? I mean, the client must at least ask the server how much money it has on its addresses, what means the server will know which are your addresses, thus it will know how much money you've got on your wallet and how you spend them. Your "private data" is entirely known by the server.

Or by "private data" you meant only the private keys to the addresses? If that's the case, maybe you should correct your statement to make it clearer?

Thanks.

“the client must at least ask the server how much money it has on its addresses”, correct, but in bitcoin system, the btc addresses are not private data. Every transaction a user made, is seen by all the other peer, including involved addresses and amount of coins and where from/to. Check http://www.blockexplorer.com to see more details.
So, it means that the "private data" you quoted is entirely known by every one in bitcoin network not only the server.
However, that is safe for everyone. Even you known an btc address and track it from the past to the future, you can't tell who is behind the btc address. Bitcoin ensures everyone is anonymous and safe. It's very difficult to know which person owns what amount. See https://en.bitcoin.it/wiki/Introduction , "Anonymity" section.

"private data" here is only referred to the private keys to the addresses.
EhVedadoOAnonimato
Hero Member
*****
Offline Offline

Activity: 630
Merit: 500



View Profile
July 28, 2011, 07:47:33 AM
 #7

“the client must at least ask the server how much money it has on its addresses”, correct, but in bitcoin system, the btc addresses are not private data. Every transaction a user made, is seen by all the other peer, including involved addresses and amount of coins and where from/to. Check http://www.blockexplorer.com to see more details.
So, it means that the "private data" you quoted is entirely known by every one in bitcoin network not only the server.

I know how it works, and no, my private data is not entirely known by everyone because you can't know a priori which are all my address. You can't even know whether two particular addresses belong to the same person or not.
In a client server solution like yours, the server can link together all the address of one client wallet. Okay, if it doesn't ask anything more, it will only know the IP of the owner, not his identity. But it adds some risk anyway.
I know it's not a major problem, mainly because people should not put all their wealth in a smartphone, but I'd suggest you not to keep any logs in your server that could link together different addresses, just for precaution. If you keep such logs and they leak, that could be bad, since anyone that has ever done one single transaction with one of your clients could then know every other transaction that this client ever did using your app.
fingster (OP)
Newbie
*
Offline Offline

Activity: 20
Merit: 0



View Profile WWW
July 28, 2011, 11:01:42 AM
 #8

“the client must at least ask the server how much money it has on its addresses”, correct, but in bitcoin system, the btc addresses are not private data. Every transaction a user made, is seen by all the other peer, including involved addresses and amount of coins and where from/to. Check http://www.blockexplorer.com to see more details.
So, it means that the "private data" you quoted is entirely known by every one in bitcoin network not only the server.

I know how it works, and no, my private data is not entirely known by everyone because you can't know a priori which are all my address. You can't even know whether two particular addresses belong to the same person or not.
In a client server solution like yours, the server can link together all the address of one client wallet. Okay, if it doesn't ask anything more, it will only know the IP of the owner, not his identity. But it adds some risk anyway.
I know it's not a major problem, mainly because people should not put all their wealth in a smartphone, but I'd suggest you not to keep any logs in your server that could link together different addresses, just for precaution. If you keep such logs and they leak, that could be bad, since anyone that has ever done one single transaction with one of your clients could then know every other transaction that this client ever did using your app.

Right. I understand what you worry about.
There are NO such logs keeping relations between addresses and clients or wallets. And even the bitcoin original logs are scheduled to be deleted from disk ( to reduce storage charges of vps ). The btc logs grow quickly at a speed of nearly 120MB/day. In fact, we can't afford that storage charge in a long run.
Kris
Donator
Hero Member
*
Offline Offline

Activity: 640
Merit: 500


View Profile
August 14, 2011, 01:29:17 PM
 #9

Are you using json-rpc calls to talk with the server? and if so can it talk with a remote bitcoind?

If this is the case it would be perfect for my iPhone, since I already have an json-rpc interface for WalletBit for it to interface with!

Kind regards
Kris
fingster (OP)
Newbie
*
Offline Offline

Activity: 20
Merit: 0



View Profile WWW
August 21, 2011, 02:06:23 PM
 #10

Are you using json-rpc calls to talk with the server? and if so can it talk with a remote bitcoind?

If this is the case it would be perfect for my iPhone, since I already have an json-rpc interface for WalletBit for it to interface with!

Kind regards
Kris
First, btc express talks with the server by extending bitcoin Protocol specification, not json-rpc calls.
Second, btc express disables json-rpc calls to a remote bitcoind daemon for security considerations. There will be a configuration for users to re-enable remote json-rpc functions at their own risks in future.
Of course, you can add your json-rpc interface to btc express by modifying the open source code, see https://github.com/fingster/BTC-Express
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!