-
Notifications
You must be signed in to change notification settings - Fork 62
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
ecip-1105: becomes Ancestor Hash Appended proposal #485
Conversation
This strips off all proposed context types and their generic structure to instead propose only adding a field 'ancestorHash' which defines a dependency on some foregoing canonical block for a transaction.
nice one! Might be nice to make it a If enough transactions set this field, any chain mined without the required ancestorblock would have a very low cumulative difficulty unless they produced a much larger number of blocks than the cannonical chain. I'd imagine you would see overall far fewer less reorgs. |
@meowsbits , if you can resolve @BelfordZ 's comments (if anything needs resolving), I'll allocate the time for a review within the week. |
Yea, transaction-ordering seems like a logical next step (or adjacent abstraction), but... a.) With only block hash dependencies we get a kind of superset of transaction-ordering dependency, since a block's hash will change if its transactions are reordered (or otherwise edited)... the block becomes a new block. So a transaction's citation of a block already cites the existence and ordering of its transactions. b.) Transaction dependencies (vs. block dependencies) are generally less "strict." This feature is proposed in the context of 1108, which is interested in differentiating public vs. private chains, generally to mitigate the risk of large reorgs by increasing the cost of making them in independent isolation. An attacker in these circumstances can include any necessary transactions in their private chain more easily than blocks, which are impossible to reproduce.
As for the reorgs, I'm not 100% sure I follow here (at least in the context of this ECIP). But in the context of 1108, indeed, the more transactions that use relevant (~contemporary) block dependencies, the fewer transactions will be applicable to private chains, and the more balance/capital the attacker (building a private chain) will need to provide themselves to stay competitive with the public aggregate transaction-sender balance score (TABS). Will there be fewer (small) reorgs? Probably, but as I had understood it, that'll be because the TABS score (the 2nd-dimension consensus score value) for two competitive blocks (same parent), one of which is destined to become an ommer, the TABS score could be decisive around 50% of the time, breaking the consensus tie that otherwise difficulty alone would yield to a coin toss. |
Great, I'm going to process the ECIP editor review. It appears |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewed.
Appears to update ECIP for more clarity of proposal. removing unnecessary/not applicable copy. Nice read. Interesting proposal.
This strips off all proposed context types and their
generic structure to instead propose only adding
a field 'ancestorHash' which defines a dependency
on some foregoing canonical block for a transaction.