On the BitShares blockchain, witnesses serve a role of validating signatures and timestamping transactions by including them in blocks.
Stakeholders elect any number of witnesses to generate blocks. A block is a group of transactions which update the state of the database. Each account is allowed one vote per share per witness, a process known as approval voting. The top witnesses by total approval are selected.
Each time witnesses produce a block, they are paid for their services. Their pay rate is set by the stakeholders via the (unpaid) committee. If a witness fails to produce a block, then they are not paid, and may even be voted out.
The slate of active witnesses is updated once every maintenance interval (1 day) when the votes are tallied. The witnesses are then shuffled, and each witness is given a turn to produce a block at a fixed schedule of one block every 3 seconds. After all witnesses have had a turn, they are shuffled again. If a witness does not produce a block in their time slot, then that time slot is skipped, and the next witness produces the next block.