dtr-org/unit-e

Deprecate intra-block chained transactions

Opened this issue · 0 comments

I open this issue to openly discuss this idea, I know it might be controversial, hence the "brainstorming" tag.

Is your feature request related to a problem? Please describe
Allowing intra-block chained transactions has some problems:

  • Makes it difficult to parallelize the validation of transactions in a block.
  • The validation logic itself is much more complex than it should, because we can't just rely on what's in the UTXOs set to know which prevouts are valid or not.
  • The main reason why they exist is that Bitcoin's blocks are created every 10 minutes, in our case we create blocks every 8 seconds.

Describe the solution you'd like
Stop allowing intra-block chained transactions, remove all the code supporting them, simplifying production & testing code.

Describe alternatives you've considered
No alternatives considered.

Additional context

  • Removing intra-block chained transactions would also help to implement things like the "compact transactions" proposed in #474 .
  • It will be harder to merge changes from Bitcoin into Unit-e if we follow this path.