plasma-contracts icon indicating copy to clipboard operation
plasma-contracts copied to clipboard

Change output identifier to be independent of the position in the block

Open pnowosie opened this issue 4 years ago • 3 comments

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

pnowosie avatar Oct 21 '20 07:10 pnowosie

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.

boolafish avatar Oct 21 '20 09:10 boolafish

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)

pnowosie avatar Oct 21 '20 14:10 pnowosie

Block/Tx position is unique. Tx hash might not be unique and create undesirable side effects.

thec00n avatar Nov 09 '20 06:11 thec00n