Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Transaction (and block) inputs need only include the commitment #3378

Closed
antiochp opened this issue Jul 7, 2020 · 0 comments · Fixed by #3419
Closed

Transaction (and block) inputs need only include the commitment #3378

antiochp opened this issue Jul 7, 2020 · 0 comments · Fixed by #3419
Milestone

Comments

@antiochp
Copy link
Member

antiochp commented Jul 7, 2020

We currently include the following in a transaction input -

  • output features
  • commitment

So spending (plain, C) is different to spending (coinbase, C).

We currently enforce uniqueness on output commitments in the utxo set.
So this is not of material concern other than this being redundant data in a transaction.

If/when we support "duplicate outputs" then things get a little more complicated.
We want to build a transaction that spends the most recent commitment C, regardless of output features.
We do not plan to support granular selection of the output being spent based on specific output features. The rule will simply be "last-in-first-out" and will be strictly enforced. The specific instance of multiple duplicate outputs (based on output commitment) will be the one with the highest output MMR position (right-most).

Related #3271.

We should consider simplifying transaction and block serialization sooner rather than later to simplify this and remove the output features on inputs.

Ideally we would remove the features bytes on all inputs.
We may want to consider enforcing a zero features byte if necessary as an interim solution.
We do not want to simply ignore the feature byte as this would introduce potential malleability.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
1 participant