plasma-contracts
plasma-contracts copied to clipboard
Change output identifier to be independent of the position in the block
Child-chain is facing scalability challenges because /tx.submit
returns in-flight transaction position in the future block.
This has a site-effect by allowing Unfinalized Transaction Chaining which we considered good to have (usability over security).
I can recall at the ALD implementation phase we're preparing for more generic output identifier, say {tx_hash, output_index}
Issue Type
[ ] bug report
[x] feature request
Current Behavior
Output identifier is described as a triplet {block_number, tx_index, output_index}
which is here often encoded as uint256
This approach benefits us in
- deposit discoverability (tell whether output is an deposit)
- exit priority
- canonicity game
- ... ❓
Expected Behavior
How hard is to express output id in terms independent of the block / position? Natural candidate is pair {tx_hash, output_index}
Motivation for Change
Main motivation is to free child-chain's transaction acceptance from block formation. Further it allows to identify in-flight transactions and their outputs. It allows for Unfinalized Transaction Chaining.
System Specs
- Plasma framework
I recall the previous push back was from elixir side complexity though. We have OutputId
in our contract now so that should be the replacement if we'd like to commit to this change.
I recall the previous push back was from elixir side complexity though.
This is indeed huge change in ch-ch(*) and Watcher (... wallets?, omg-js? what-else)
Block/Tx position is unique. Tx hash might not be unique and create undesirable side effects.