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

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

Open
pnowosie opened this issue Oct 21, 2020 · 3 comments
Open

Comments

@pnowosie
Copy link
Contributor

pnowosie commented Oct 21, 2020

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 pnowosie changed the title Change output identifier from utxo position to {tx_hash, output_index} Change output identifier to not contain on block number Oct 21, 2020
@pnowosie pnowosie changed the title Change output identifier to not contain on block number Change output identifier to not contain block number Oct 21, 2020
@pnowosie pnowosie changed the title Change output identifier to not contain block number Change output identifier to be independent of position in the block Oct 21, 2020
@pnowosie pnowosie changed the title Change output identifier to be independent of position in the block Change output identifier to be independent of the position in the block Oct 21, 2020
@boolafish
Copy link
Contributor

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.

@pnowosie
Copy link
Contributor Author

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)

@thec00n
Copy link
Contributor

thec00n commented Nov 9, 2020

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

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

No branches or pull requests

3 participants