Skip to content
This repository was archived by the owner on Jun 3, 2018. It is now read-only.
This repository was archived by the owner on Jun 3, 2018. It is now read-only.

Forkid change is ambiguous #61

@Steve132

Description

@Steve132

The forkid version change effects the replay protected sighash. The forkid change for the may 2018 hardfork is specified to "not be implemented for wallets". Does that mean that sighashes will be different based on whether the compiled code is a fullnode or a wallet? How will transactions verify? It seems that if I create a transaction and sign it using a wallet that is using the old forkid, then try to broadcast or relay the transaction using a Full node that has a new forkid, the signature hash will be different and the transaction will not relay or verify.

It seems like this requirement makes no sense/is ambiguous then, because if a wallet makes a different sighash than a node, then it will become incompatible.

How is this supposed to be implemented?

Side question: why is it necessary to update the forkid for the sighash at all here? It doesn't seem necessary for all hardforks. We needed to change the sighash for the btc hardfork because the hardfork was contentious and we were trying to achieve a chain split....but since we explicitly want to avoid a chain split in may2018 why wouldn't we just rely on Nakomoto consensus?

It seems unsustainable and buggy to continually update the forkid on every hardfork. It will introduce an exponential amount of work to maintain block explorers, wallets, and other libraries to compensate.
I'm concerned that it will tax engineering resources to develop the ecosystem or even could result in bugs that will lose user funds.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions