<blockquote>
  <p>I'm thinking, what if bitcoin was designed this way, or if someone created such hard fork, could it work? If yes, what drawbacks should be expected?</p>
</blockquote>

<p>There are two I can think of:</p>

<ul>
<li><p>No SPV</p>

<p>Right now, to trick an SPV client, you need to get 51% of miners to include an invalid transaction. However, if all miners include all transactions, then SPV is not possible.</p></li>
<li><p>No safe softforks</p>

<p>P2SH was a softfork that made it possible to send money to a hash of a script. If you didn't run P2SH enforcing code, enough miners ran it that your node would still agree with everyone else.</p>

<p>However, if rules are not miner enforced, then two clients running slightly different code can look at the same blockchain and get two entirely different pictures of who owns what.</p></li>
</ul>

CC BY-SA 3.0
2017-08-05T20:58:48.707Z
Last point is very solid, but I think bitcoin has or will have similar problem with fungibility: e.g. exchanges which don't want to share btc-e destiny will avoid accepting provably stolen money. OTOH, it doesn't actually mean the lack of consensus on blockchain.
modular
CC BY-SA 3.0
2017-08-05T21:34:07.650Z
I believe Peter Todd was talking about a model where transaction validity is not part of the consensus rules, and nodes simply ignore transactions that are in violation, rather than rejecting the chain entirely.
Pieter Wuille
CC BY-SA 3.0
2017-08-05T21:34:56.393Z
@PieterWuille Right. I think that's what he meant too.
Nick ODell
CC BY-SA 3.0
2017-08-05T20:29:13.137Z
2017-08-05T20:46:42.323Z
2017-08-05T20:46:42.323Z
Nick ODell
<p><a href="http://www.metzdowd.com/pipermail/cryptography/2016-August/029947.html" rel="nofollow noreferrer">Here</a> Peter Todd writes:</p>

<blockquote>
  <p>[A]s an optimization
  Bitcoin goes a step further and disallows invalid transactions to be published
  in the blockchain at all, but that's the thing: that's just an optimization
  that full-nodes don't actually need to operate.</p>
</blockquote>

<p>Maybe I'm misunderstanding this, but it seems to be an interesting idea: the blockchain can contain invalid transactions, but all validating nodes will ignore them. I'm thinking, what if bitcoin was designed this way, or if someone created such hard fork, could it work? If yes, what drawbacks should be expected?</p>

<p>Correct me if I'm wrong, but probably Counterparty already works in this way, since they use bitcoin blockchain.</p>

<blockchain><validation>
What if the miners allowed invalid transactions, and other nodes did validation?
modular
# What if the miners allowed invalid transactions, and other nodes did validation?

(Asked by: username_0 on 2017-08-05)

[Here](http://www.metzdowd.com/pipermail/cryptography/2016-August/029947.html) Peter Todd writes:

> [A]s an optimization
> Bitcoin goes a step further and disallows invalid transactions to be published
> in the blockchain at all, but that's the thing: that's just an optimization
> that full-nodes don't actually need to operate.

Maybe I'm misunderstanding this, but it seems to be an interesting idea: the blockchain can contain invalid transactions, but all validating nodes will ignore them. I'm thinking, what if bitcoin was designed this way, or if someone created such hard fork, could it work? If yes, what drawbacks should be expected?

Correct me if I'm wrong, but probably Counterparty already works in this way, since they use bitcoin blockchain.

**Tags:** blockchain, validation


---

## 1 answers

### Answer by username_1 on 2017-08-05. Score: 1 | Accepted answer

> I'm thinking, what if bitcoin was designed this way, or if someone created such hard fork, could it work? If yes, what drawbacks should be expected?

There are two I can think of:

* No SPV

  Right now, to trick an SPV client, you need to get 51% of miners to include an invalid transaction. However, if all miners include all transactions, then SPV is not possible.
* No safe softforks

  P2SH was a softfork that made it possible to send money to a hash of a script. If you didn't run P2SH enforcing code, enough miners ran it that your node would still agree with everyone else.

  However, if rules are not miner enforced, then two clients running slightly different code can look at the same blockchain and get two entirely different pictures of who owns what.

> **Comments:**
> **username_0**: Last point is very solid, but I think bitcoin has or will have similar problem with fungibility: e.g. exchanges which don't want to share btc-e destiny will avoid accepting provably stolen money. OTOH, it doesn't actually mean the lack of consensus on blockchain.  
> **username_2**: I believe Peter Todd was talking about a model where transaction validity is not part of the consensus rules, and nodes simply ignore transactions that are in violation, rather than rejecting the chain entirely.  
> **username_1**: @PieterWuille Right. I think that's what he meant too.  

---

