Post
Topic
Board Development & Technical Discussion
Re: Segwit details? N + 2*numtxids + numvins > N, segwit uses more space than 2MB HF
by
JorgeStolfi
on 27/03/2016, 17:46:27 UTC
Would that software accept as parent a block mined by some other miner that contains them?

Yes it would as it assumes that whoever has mined them did know that they were valid.

That sounds bizarre if you say it that way: it would mean that a miner *cannot* verify the validity of the parent block, and has to trust the previous miner.

But perhaps what you should have said is: "Yes, it would validate that block fully -- with his (old) validity rules, in which those opcodes are NOPs, hence it would accept the block as valid."  Is that so?  

That is what I have always understood...

Quote
Does the current version of the Core mining software accept transactions with those NOPs, for inclusion into the candidate block?  

No - it would not (as it could not know whether or not they are valid).

This is not wrong, since a miner can exclude any transactions, by any criterion.  However, given that old miners will accept blocks with those opcodes as valid, its seems rather pointless.  There is no way to ensure that all (or any) miners will abide by this rule.  Any miner could create and mine blocks that use those opcodes; and other old miners would accept those blocks;  Correct?

By the way, are those NOPs really NOPs, or do they mean "terminate the verification with success"?  

Quote
Also without relaying you actually wouldn't have a P2P network at all (so it is an essential part of the system not some optional thing)

In the original design, the propagation was supposed to occur among the miners, who have incentives to keep the network running and to keep clients happy.  The original design depended on those incentives to argue that even simple clients would have adequate security.

The non-mining relay nodes were added later, without any justification.  They break that security argument.

A miner may be offering his services for two possible reasons: 1. to get the reward and fees, or 2. some other motive.  Bitcoin is based on the assumption that motive 1 is fairly likely, so if you contact N random miners it is quite likely that you will get at least one such "selfish greeedy" guy.  

A non-mining relay node cannot have motivation 1, so his motivation can be only 2, "some other motive".  What security can you derive from that?

Quote
and there are expectations that a node will not relay invalid txs or blocks (and any node that does will be banned by your client).

If the party that receives a tx or block checks some rule, then nothing is gained by having the relay to check that rule too.  If the receiver does not check some rule, then he will not notice when the relay sends data that does not satisfy it; and will not ban the relay.