We evaluated the sortition landscape for polkadot, with some notes at https://research.web3.foundation/en/latest/polkadot/BABE/sortition/ but ultimately selected a design that sorts preannouncments created with a ring VRF.
I’ve done the main deign write up at https://github.com/w3f/research/tree/master/docs/papers/habe (name will change so url is unstable). We’ve plans to adapt the Markov chain analysis of chain growth to the sortition scheme, better integrate the VDF, and the usual tweaks from the implementation.
We’ve started two ring VRF implementations, one using SNARKs that’s only waiting for subversion resistance check and some grunt work, and one using “Bootleproofs” that requires more basic work. Implementation should start once implementation for at least one of the ring VRFs finishes, but maybe sooner.
We envision another use besides the beacon/relay chain: Mimblewimble does not work because dandilon acts too much like a mempool and does not provide much mixing. We shall bind temporary public keys into the ring VRF so that anyone can encrypt to upcoming block producers without identifying them. We think replacing the memepool with messages encrypted to upcoming block producers and sending some blocks only to subequence block producers should give us mimblewimble-like shards/parachains that provide far better anonymity than existing mixer designs like mimblewimble. This is discussed in the above write up.