Development in Consensus Protocols: From PoW to PoS