Subject: Re: [Bitcoin-development] Protocol extensions

From: Andy Parkins <[email-masked]>
Date: Thu, 22 Dec 2011 11:52:38 +0000

On 2011 December 22 Thursday, Michael Grønager wrote:

> But, there is in fact a subtle difference: If anyone can choose to verify
> at random, you will see lazy implementations where random means none, and
> as it is random you cannot, from the outside, judge if a node is taking
> part in the validation work or if it just benefitting from others
> announcements. In the hash space part, you can monitor peers and see if
> they did not tell you about a failed validation and then disconnect from
> them as they are either malicious or lazy.

Why should they have to?  Joining the network as a node is very low cost to 
the other nodes.  You can't force any node not to be lazy, since their option 
is to disconnect themselves.  As to maliciousness, that is defended against 
because when a node negative announces a transaction, that transaction is 
going to be checked (note that there is still no implicit trust) -- if a node 
is incorrectly negative-announcing then it can justifiably be kicked.

> Besides from that, I like a setup where we scream about failed
> verifications, but keep a low profile on things that actually verifies...

Me too.  It's important though to distinguish between "you must be verifying" 
and "if you do verify, you must be honest about it".  No node should be forced 
to do any work it doesn't want to; but they should be forced to be truthful 
about the work they choose to do.

Andy

-- 
Dr Andy Parkins
[email-masked]