This is from the 44 whitepaper report :
Consensus in Steem
Conceptually, the consensus algorithm adopted by Steem is similar to the consensus
algorithm adopted by companies throughout the world. People with a vested interest in the
future value of Steem vote to select individuals responsible for including testimony in the
public record. Voting is weighted proportional to each individual's vested interest.
In the world of cryptocurrencies, the public record is commonly referred to as a blockchain.
A block is a group of signed transactions.
With Steem, block production is done in rounds. Each round 21 witnesses are selected to
create and sign blocks of transactions. Nineteen (19) of these witnesses are selected by
approval voting, one is selected by a computational proof-of-work, and one is timeshared
by every witness that didn’t make it into the top 19 proportional to their total votes. The 21
active witnesses are shuffled every round to prevent any one witness from constantly
ignoring blocks produced by the same witness placed before.
This process is designed to provide the best reliability while ensuring that everyone has the
potential to participate in block production regardless of whether they are popular enough
to get voted to the top. People have three options to overcome censorship by the top 19
elected witnesses: patiently wait in line with everyone else not in the top 19, purchase
enough computational power to solve a proof of work faster than others, or purchase more
SP to improve voting power. Generally speaking, applying censorship is a good way for
elected witnesses to lose their job and therefore, it is unlikely to be a real problem on the
Steem network.
Because the active witnesses are known in advance, Steem is able to schedule witnesses to
produce blocks every 3 seconds. Witnesses synchronize their block production via the NTP
protocol. A variation of this algorithm has been in use by the BitShares network for over a
year where it has been proven to be reliable.