Bitcoin Forum
May 10, 2024, 06:55:08 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2]  All
  Print  
Author Topic: Merkle tree inside Block Headers for light client mode  (Read 3269 times)
Mike Hearn
Legendary
*
expert
Offline Offline

Activity: 1526
Merit: 1129


View Profile
April 21, 2011, 08:38:02 PM
 #21

I think I'm getting confused here. At first you talked about a lightweight client connected to a trusted node back at the office. Now it's untrusted. Also, I said it'd be possible to do transactions without internet access for buyers only - I agree there are no situations in which sellers would want to use BitCoin without internet access. And mostly both sides would have it so there's really no issue here. Client-mode can still be useful even for sellers, consider the case of you paying a restaurant bill and then asking your friends to contribute their share by tapping their phones to yours.

On lightweight clients. You could build a system in which only the wallet was hosted locally and it connected to a specially built server. The server would be given the output addresses, a list of every public key in the wallet and create a partially complete transaction which would be sent to the client. The client would sign it and send it back to the server, which would then relay it across the network for you. The client relies on the server to tell it the current balance.

That model is lower resource usage than even the 'simplified payment verification' model and might be worth investigating if client-mode is still too resource intensive for smartphones. The big downside is you lose all privacy. To build transactions for you the server needs to know all your public keys and thus, your entire balance and naturally gets to correlate them all together as a result. It can't spend your coins but it can track you pretty well.
1715324108
Hero Member
*
Offline Offline

Posts: 1715324108

View Profile Personal Message (Offline)

Ignore
1715324108
Reply with quote  #2

1715324108
Report to moderator
1715324108
Hero Member
*
Offline Offline

Posts: 1715324108

View Profile Personal Message (Offline)

Ignore
1715324108
Reply with quote  #2

1715324108
Report to moderator
1715324108
Hero Member
*
Offline Offline

Posts: 1715324108

View Profile Personal Message (Offline)

Ignore
1715324108
Reply with quote  #2

1715324108
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
MoonShadow
Legendary
*
Offline Offline

Activity: 1708
Merit: 1007



View Profile
April 21, 2011, 09:28:51 PM
 #22

I think I'm getting confused here. At first you talked about a lightweight client connected to a trusted node back at the office. Now it's untrusted.


A user of an independent, lightweight client can either have one trusted full client he intentionally connects to, such as his full client on his home PC; or can connect to a number of random untrusted peers.  The end result is the same, since your full client at home is ultimately connected to numerous untrusted peers itself.  The trust comes from polling multiple sources and comparing the results until it becomes statisticly remote that you have been spoofed.  The point of forcing the mobile client on your smartphone, lightweight or not, to connect to your single trusted client at home is so that you can move the resource consumption issue to the full home client and off of your wireless data plan.  Likewise, the lightweight client that only keeps the block headers locally does so to reduce local storage consumption; but for now, this really isn't an issue on the home PC.

Quote


Also, I said it'd be possible to do transactions without internet access for buyers only - I agree there are no situations in which sellers would want to use BitCoin without internet access. And mostly both sides would have it so there's really no issue here.


Perhaps I misunderstood.

Quote
Client-mode can still be useful even for sellers, consider the case of you paying a restaurant bill and then asking your friends to contribute their share by tapping their phones to yours.
Your freinds presumedly already have your trust, so there isn't really a need for the lightweight client to be able to verify that independently in real time.  Likewise for moving funds from your full home client to your mobile client, as you can presumedly trust yourself.  The lightweight clients still need to have copies of the blocks that contain your coins, so that they can properly create a spend transaction; so if two light cleints are connected ad-hoc so that one person can send the other funds, a copy of the referancing blocks can move in the same manner, but you had better be able to trust the person giving you the transaction.

Quote

On lightweight clients. You could build a system in which only the wallet was hosted locally and it connected to a specially built server. The server would be given the output addresses, a list of every public key in the wallet and create a partially complete transaction which would be sent to the client. The client would sign it and send it back to the server, which would then relay it across the network for you. The client relies on the server to tell it the current balance.

You could do this, but then the light client wouldn't really be independent, and it's practically the same as using a remote control client to tell your full client at home to do the transaction.

Quote
That model is lower resource usage than even the 'simplified payment verification' model and might be worth investigating if client-mode is still too resource intensive for smartphones. The big downside is you lose all privacy. To build transactions for you the server needs to know all your public keys and thus, your entire balance and naturally gets to correlate them all together as a result. It can't spend your coins but it can track you pretty well.


The privacy issue isn't an issue if you own the full client also, but the point of a lightweight client is to be able to transact sans Internet.

"The powers of financial capitalism had another far-reaching aim, nothing less than to create a world system of financial control in private hands able to dominate the political system of each country and the economy of the world as a whole. This system was to be controlled in a feudalist fashion by the central banks of the world acting in concert, by secret agreements arrived at in frequent meetings and conferences. The apex of the systems was to be the Bank for International Settlements in Basel, Switzerland, a private bank owned and controlled by the world's central banks which were themselves private corporations. Each central bank...sought to dominate its government by its ability to control Treasury loans, to manipulate foreign exchanges, to influence the level of economic activity in the country, and to influence cooperative politicians by subsequent economic rewards in the business world."

- Carroll Quigley, CFR member, mentor to Bill Clinton, from 'Tragedy And Hope'
pmarches (OP)
Newbie
*
Offline Offline

Activity: 8
Merit: 0


View Profile
April 22, 2011, 01:02:42 AM
 #23

Hello

Full always-on wireless Internet connectivity cannot be taken for granted everywhere in the world. Even in advanced countries you have internet outages, hardware breaks, inteference, lack of coverage, power outages.. Having a POS that can validate a transaction in a semi offline mode is very usefull. In real life, when power or the VISA card reader is broken, sellers can still make a carbon copy of your card to bill the transaction later. The bitcoin POS could indicate when it has been too long since the last block was received. The seller can then take action to sync with the network, or at least he knows there is a security issue.

I was hoping to validate transactions with only the block headers to reduce the CPU processing. The processing power of smartphones seems to be a bit low to handle full blocks, but I need to run some tests.

What I gather from this discussion;
- RPC-JSON is nice but is a complicated setup that requires a PC running somewhere in the seller's shop, plus a reliable connection between the POS and the PC. Maybe modifying the RPC-JSON client to allow forwarding a transaction would be enough for my use case.
- I will read about the balance sheet proposal


Thank you for all your inputs,

Philippe
Pages: « 1 [2]  All
  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!