Our proof of authority model utilize NATS as a gossiping layer and utilize the same VRF used in the private network in a more naive way, as the adversarial model is bent. This mode does not enforce spice pricing and assume misuse of the execution engine is accountable by the authority.
Validators are required to register their VRF public key in the
0x0000000000000000000000000000000000000001 contract but block validation can simply time out of now VRF proof arrived in a preset epoch. Using epochs for block sortition is convenient in such small networks but the coordination (and possibly filtering) of them are in the hands of the "master node".
The "difficulty" here is adjusted directly to the number of registered public keys in the contract, and block proposers simply produce a VRF output and proof for their blocks.
Validators take the transaction senders public key from the
0x00...1 precompile and verify the VRF proof. If it's valid, it checks whether the VRF output is lower than the difficulty (as in hashcash). The key point of this straw-man VRF consensus is that by staking to public keys and using VRFs one can only submit one vote to a block and this eliminates computational waste from standard PoW.