My question is possibly naive but since I am facing a similar problem, I would like to know how does ethereum really know which addresses are validator addresses without storing a 300k long array?
If it's done with some mapping I would also be curious to hear the details.