Bitcoin Forum
November 13, 2024, 12:53:46 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Stratised chain-services are secure  (Read 1727 times)
genjix (OP)
Legendary
*
expert
Offline Offline

Activity: 1232
Merit: 1076


View Profile
June 22, 2012, 01:02:51 AM
 #1

Stratising is where you connect to multiple chain-services and only accept the common shared history that they give your client (Electrum .etc).

Assume that you connect to n chain-services controlled by different organisations/individuals. There is an average expected risk r per service that they are compromised by a single attacker. Not that each service gives false info, malfunctions, but that they are compromised by the /same/ attacker. We assume this to be an independent probability.

The chance of being cheated, p

p = r^n

The more services you connect to, p drops exponentially very fast because r < 1

I suspect users would choose the services or they are bundled with the client.
maaku
Legendary
*
expert
Offline Offline

Activity: 905
Merit: 1012


View Profile
June 22, 2012, 01:15:54 AM
 #2

Assume that you connect to n chain-services controlled by different organisations/individuals.
Show me why that is a valid assumption in a hostile environment, please.

I'm an independent developer working on bitcoin-core, making my living off community donations.
If you like my work, please consider donating yourself: 13snZ4ZyCzaL7358SmgvHGC9AxskqumNxP
Bitcoin Oz
Hero Member
*****
Offline Offline

Activity: 686
Merit: 500


Wat


View Profile WWW
June 22, 2012, 01:24:40 AM
 #3

Isnt that the dns system ?

gmaxwell
Moderator
Legendary
*
expert
Offline Offline

Activity: 4270
Merit: 8805



View Profile WWW
June 22, 2012, 01:33:54 AM
Last edit: June 22, 2012, 02:09:09 AM by gmaxwell
 #4

Assume that you connect to n chain-services controlled by different organisations/individuals.

A very tall assumption on the internet when identities are fairly cheap.  The question of interest is for a given definition of "organizations" how much does it cost me to make your P as low as I like?  If your definition would let you include individuals the answer is very low.

These sorts of assumptions can also fall down if the attacker has the ability to influence your routing unless you have a good way to validate the identities— and most ways of having good authentication and good ability to distinguish control work against having a lot of peers.

Bitcoin could have been created as 'one peer one vote' system under the logic given here but it would have been trivially exploited if it did.

[Edit: Oh, maaku said this all pretty succinctly, so succinctly that I missed it]
marcus_of_augustus
Legendary
*
Offline Offline

Activity: 3920
Merit: 2349


Eadem mutata resurgo


View Profile
June 22, 2012, 02:18:31 AM
 #5


Assume that you connect via the namecoin dot-bit dns to n chain-services controlled by different organisations/individuals .

(fixed)

gmaxwell
Moderator
Legendary
*
expert
Offline Offline

Activity: 4270
Merit: 8805



View Profile WWW
June 22, 2012, 03:42:30 AM
 #6

Assume that you connect via the namecoin dot-bit dns to n chain-services controlled by different organisations/individuals .
(fixed)

How does namecoin help you know that they're distinct?   How does namecoin— as it's used today— help you defend against an attacker who has control of your router?  How do you resolve namecoin without having a namecoin full node without trusting someone (resulting in the same problem you're trying to solve here)?
marcus_of_augustus
Legendary
*
Offline Offline

Activity: 3920
Merit: 2349


Eadem mutata resurgo


View Profile
June 22, 2012, 04:17:34 AM
 #7

Quote
How do you resolve namecoin without having a namecoin full node

Well obviously you would have to run a full node .... I thought you would know that?

The rest of the questions are based on the straw man of not running your own node ....

gmaxwell
Moderator
Legendary
*
expert
Offline Offline

Activity: 4270
Merit: 8805



View Profile WWW
June 22, 2012, 02:21:41 PM
 #8

Quote
How do you resolve namecoin without having a namecoin full node

Well obviously you would have to run a full node .... I thought you would know that?
The rest of the questions are based on the straw man of not running your own node ....

It seems kind of odd to me that you'd invoke running a full namecoin node as a means to avoid running a full bitcoin node— and only a partial means, since it doesn't do anything to tell you if the parties you're communicating with are actually distinct.
Nachtwind
Hero Member
*****
Offline Offline

Activity: 700
Merit: 507



View Profile
June 22, 2012, 02:28:16 PM
 #9

Wouldnt that also mean that with enough faked nodes you could "just" outnumber the correct ones?
marcus_of_augustus
Legendary
*
Offline Offline

Activity: 3920
Merit: 2349


Eadem mutata resurgo


View Profile
June 23, 2012, 09:10:20 PM
 #10

Quote
How do you resolve namecoin without having a namecoin full node

Well obviously you would have to run a full node .... I thought you would know that?
The rest of the questions are based on the straw man of not running your own node ....

It seems kind of odd to me that you'd invoke running a full namecoin node as a means to avoid running a full bitcoin node—


Not odd at all ... have you compared the overhead lately on the bitcoin network vs. namecoin network? E.g. there is no satoshi dice running on namecoin .. yet anyway.

Basically if you want to trust a server to do the heavy lifting for a lightweight bitcoin client (the topic of thread), which it is increasingly likely most people will have to do, then you want the best security possible to authenticate with that bitcoin node server .... with the merged-mining hash power of the bitcoin network behind it namecoin offers similar security of authentication as a full bitcoin node (which is basically the best going right now) without the overhead.

So it is a trade-off where you give up the absolute security of bitcoin, for a reduced overhead but piggy-back onto bitcoin hashpower to authenticate with a known good node on the bitcoin network .... I'd take that, it is the next best thing to a full bitcoin node.


Quote
and only a partial means, since it doesn't do anything to tell you if the parties you're communicating with are actually distinct.

Don't understand this part of your comment, before we go any further it maybe instructive to know how much you studied the namecoin system?

Meni Rosenfeld
Donator
Legendary
*
expert
Offline Offline

Activity: 2058
Merit: 1054



View Profile WWW
June 23, 2012, 09:34:53 PM
 #11

We assume this to be an independent probability.
This is a very strong assumption which I don't think is warranted.

1EofoZNBhWQ3kxfKnvWkhtMns4AivZArhr   |   Who am I?   |   bitcoin-otc WoT
Bitcoil - Exchange bitcoins for ILS (thread)   |   Israel Bitcoin community homepage (thread)
Analysis of Bitcoin Pooled Mining Reward Systems (thread, summary)  |   PureMining - Infinite-term, deterministic mining bond
marcus_of_augustus
Legendary
*
Offline Offline

Activity: 3920
Merit: 2349


Eadem mutata resurgo


View Profile
June 24, 2012, 08:29:16 AM
 #12

We assume this to be an independent probability.
This is a very strong assumption which I don't think is warranted.

I agree, that was the bit I had trouble with also ... bit of a "who knows" though, i.e. unquantifiable.

Mike Hearn
Legendary
*
expert
Offline Offline

Activity: 1526
Merit: 1134


View Profile
June 24, 2012, 12:03:13 PM
 #13

Stratising is where you connect to multiple chain-services and only accept the common shared history that they give your client (Electrum .etc).

As pointed out by others, you're just redesigning Bitcoin by doing this. Your next problem is that it's hard to know you are really connecting to independent nodes. Eg, if you have some kind of random node selection algorithm, you can't know that you're really talking to different nodes if your connection is compromised. For example, if you are at a Bitcoin conference and using the free wifi.

To solve that you can push the burden onto the user, by asking them to provide the public keys of servers that they "trust". However, this has a poor user experience (users start out by trusting nobody, why should they?) and that trust can be undermined by hacking a few of the nodes. As most users would never set up their own node relationships, operators would have a giant set of cross-hairs on their backs.

Given that "stratum servers" make a big deal out of advertising that they're secure because they don't hold your private keys, and they're all run by volunteers today, if reliance on them became common I'm sure hacking would start. Not to mention possible scaling issues.

So you can say, hey, why don't we define the common shared history by proof of work, which is harder to fake using sock puppets especially as the transition to specialized hardware and professional miners kicks off.

Now you have a client that downloads and verifies the shared proof of work, which is called an SPV client.

This is why I haven't put any effort into Stratum/Electrum type services. I think it's only somewhat more work to just use the block chain directly and the end result has better security and scalability properties.
gmaxwell
Moderator
Legendary
*
expert
Offline Offline

Activity: 4270
Merit: 8805



View Profile WWW
June 24, 2012, 07:02:36 PM
 #14

Not odd at all ... have you compared the overhead lately on the bitcoin network vs. namecoin network? E.g. there is no satoshi dice running on namecoin .. yet anyway.

Relative to the number of users namecoin is currently much more expensive to maintain. Or do you really think that namecoin has as many as 18% of the users as Bitcoin.

Quote
Don't understand this part of your comment, before we go any further it maybe instructive to know how much you studied the namecoin system?

I understand the namecoin system very well.

marcus_of_augustus
Legendary
*
Offline Offline

Activity: 3920
Merit: 2349


Eadem mutata resurgo


View Profile
June 24, 2012, 08:59:54 PM
 #15

Not odd at all ... have you compared the overhead lately on the bitcoin network vs. namecoin network? E.g. there is no satoshi dice running on namecoin .. yet anyway.

Relative to the number of users namecoin is currently much more expensive to maintain. Or do you really think that namecoin has as many as 18% of the users as Bitcoin.


"Relative to the number of users" huh?... and why would that be a relevant metric for anybody?

To the end user, using namecoin to ensure a secure connection to a full bitcoin node is way cheaper than running a full bitcoin node ... or are you disputing that point?

Obviously namecoin doesn't have as many users as the proportion of the hash power it commands, this is precisely the piggy-backing onto the bitcoin hashpower merged-mining allows ...  this is the second time you have thrown up an irrelevant arguments without pointing out exactly where the problem is you are complaining about. Third strike and I'll assume you are just trolling.

gmaxwell
Moderator
Legendary
*
expert
Offline Offline

Activity: 4270
Merit: 8805



View Profile WWW
June 24, 2012, 11:41:09 PM
 #16

"Relative to the number of users" huh?... and why would that be a relevant metric for anybody?

Because if namecoin was widely used the cost of running a full node would increase. It has _far_ less usage than bitcoin and already it's about 18% of the blockchain size.  Namecoin's design, unfortunately, doesn't enable lite resolvers (there can be no equivalent of a SPV node, like bitcoinj, for namecoin with its current design) of any kind which I think will probably doom its adoption.  I posted a sketch of a design to solve this last year, but other than the addition of merged mining namecoin development appears to be more or less completely dead.

I consider this to be fatal flaw which will ultimately prevent the adoption of namecoin unless it is resolved.

Quote
To the end user, using namecoin to ensure a secure connection to a full bitcoin node is way cheaper than running a full bitcoin node ... or are you disputing that point?

That makes no sense at all and doesn't follow from the technology.  Namecoin is fundamentally more computationally costly to maintain because you _must_ have multiple unspent outputs pending in order to have multiple registered names (whereas any amount of bitcoin can be represented by a single txout), and you must carry additional indexes on them in order to perform lookups. (bitcoin txn only require lookups by txid).

These aren't any terrible flaws, but they're reasons why a full namecoin node— if as widely adopted as bitcoin— shouldn't be expected to be less expensive to run.

A fully validating bitcoin node can actually be operated with less than 100 mbytes storage, though the code for this is not mainline yet.

Quote
Obviously namecoin doesn't have as many users as the proportion of the hash power it commands, this is precisely the piggy-backing onto the bitcoin hashpower merged-mining allows ...  this is the second time you have thrown up an irrelevant arguments without pointing out exactly where the problem is you are complaining about. Third strike and I'll assume you are just trolling.

Can someone please decode this for me— because I don't have an idea what you're talking about.  I can assure you that I'm not trolling.
 
To the contrary, you've still made no suggestion about how namecoin could do anything to address the fundamentally hard problem of this thread: Demonstrating the independence of weakly trusted central servers, as required for the exponential security model given in the OP to hold.
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!