# Combining Asynchrony Resilliance with Sub-Committees
Currently, LMD-GHOST (the dynamically available protocol used in ethereum proof of stake consensus) can undergo re-org attacks where an honest proposers block might not be included in the canonical chain.
To solve this issue, GoldFish was developed with the concepts of vote buffering an vote expiry. It is able to prevent re-orgs by only considering the votes from the previous slot so that no one can withhold votes beyond the slot.
The problem it triggers is that the network won't work in periods of asynchrony where due to network delays, honest attester votes might get expired while being gossiped in the p2p network.
RLMD-GHOST is modification which relaxes the vote expiry period from one slot to n slots. To prevent reorgs still, the protocol needs to let go of sub committees.
Is it possible to have a algorithm that can choose which protocol to use as fork choice rule by detecting periods of asynchrony?
### Rough Idea
Ethereum validators are divided into sub committees as they are today. They cast votes to the tip of the chain according to Goldfish.
We can assume that the number of votes received in each slot probably does not change drastically from slot to slot. Right now it's around 30,000 votes casted in each slot.
During periods of asynchrony some votes might get delayed and because of vote expiry, they will be discarded. So if suddenly the nuber of votes casted on a block decreases significantly (say 10 to 20%) it's possible that the network may be asynchronous. (Q: is this a current assumption?)
Other methods to detect asynchrony could be heartbeats and message latency monitoring, (can or will faulty nodes intentionally withhold messages to cause asynchrony?)
A validator seeing the number of votes casted in a slot, can declared the network as asynchronous and switch to use RLMD as it's fork choice rule. USing RLMD probably increases the slot time drastically because of the increase in number of validators but still we can have the chain progress during period of asynchrony.
Every 12 seconds, validators can take snapshots of the accumalated votes and if after some time, the number of votes for each time slot increase to orignal amounts, validators can assume a return to synchrony and switch back to Goldfish.
### Background reading
- LMD-GHOST: https://eth2book.info/capella/part2/consensus/lmd_ghost/
- Goldfish: https://www.paradigm.xyz/2022/09/goldfish
- Reorg resillence: https://ethresear.ch/t/reorg-resilience-and-security-in-post-ssf-lmd-ghost/14164
- ex-ante attacks: https://ethresear.ch/t/change-fork-choice-rule-to-mitigate-balancing-and-reorging-attacks/11127
- RLMD: https://arxiv.org/pdf/2302.11326