add genesis_validators_root for domain/chain separation#1638
Conversation
…separation as well as fork separation
One must be concerned about isolating all subsequent fork versions after contentious fork. Do we want to take care about that? An alternative solution could be as follows:
This solution is suitable if we want to take care of domain isolation after contentious fork from the very beginning. Otherwise, it merely makes things more complicated. |
|
Hm, I see isolation from a contentious fork as a much simpler problem than isolation from different chains in general. A contentious fork can just flip a high-order bit and increment versions as normal. My gut is that your proposed solution might be overly complicated. One of my goals here is to also minimize changes to the phase 0 consensus while getting relatively good properties |
Truth. With this alternative we would not need to do an explicit separation. It seems to be the only gain that we get. In general contentious fork will be eager to isolate their fork versions.
Agreed, let's keep it simple. Moreover, it's not that clear how to mix a list of fork versions that are likely placed in a config with genesis fork version from the state. |
|
This looks good to me! |
[based on PR #1614]
Add
genesis_validators_roottoBeaconStateand utilize for better signature domain separation as well as ENR/chain separation. This strengthens chain separation such that one must only be concerned about isolating fork version from a different chain when a contentious fork. Networks such as testnets and completely different chains with different genesis conditions can reuse fork versioning with no worryI currently favor this approach and suggest we adopt it for the coming
v0.11release. The consensus level changes are very minimal for a solid gain in sigs and peer discovery