Bitcoin without mining - what needs to be implemented I have read this related question - Bitcoin without mining and I am trying to understand the very basics of Bitcoin network and the blockchain.

I wonder, if we take the mining out of Bitcoin, what would we need to implement in order to make it a working system again.

So far, I am aware of these components that rely on mining:


new coin generation - without mining, we would need to implement a new way of introducing new coins to the system
bitcoin mining is used to create and validate blocks which contain transactions that are to be included in the immutable blockchain - so, without mining, we would need to create another system of creating new blocks that all the nodes will accept (i.e. consensus)


My questions are: 


Is there anything else that would need to be done? In this question I assume everything else we would like to work like Bitcoin.
What are the alternatives of building blockchain? If we think about Bitcoin as a currency scheme only (and disregard other aspects of having blockchain) - do we really need a chain that stores all the history? Can't we just have accounts and their balances and update them? I.e. what are the other options of solving the double-spend problem besides having a full history in a chain.
Mining is not essential for coin creation. New coin introduction can be tied to new block creation, or be time based. Even if you don't use proof of work, you will still have blocks (even if you don't call them that way anymore; they may be called "database updates"). More interesting however, if you don't use proof of work, you don't even need your own currency (but you still could).

Validation is done by full nodes (the "auditors"). Miners also validate, but it is not their primary function. They do so because otherwise their blocks - which indirectly provides their income - could unknowingly be invalid, and not be accepted by the rest of the ecosystem.

Mining has one and only one purpose: providing a decentralized, permissionless mechanism for determining which version of history to accept, in case there are multiple valid competing versions. These competing versions are inevitable when there is not a single party coordinating their creation. This is because communication speed across the planet is not infinite, so one may create a block without having heard about a competing block elsewhere.

So to answer your question, if we want a block chain without proof of work, the only thing you need to do is replace the criterion for choosing between different versions of history. The simplest is using digital signatures instead of proof of work. There could be a known central party that signs blocks instead of grinding a nonce, and any chain with its signature would be accepted. No more reorgs, electricity and hardware costs, confirmation times, concerns about propagation, ... the system would work better in every way possible, apart from the fact that it now needs a trusted central party who has the right to censor.

This can be extended. Instead of one known central party, there can be multiple. For example, there could be 10 known parties, and every block is required to have a signature from 7 out of those 10. This requires a significant number to conspire, but if they do, they can still censor transactions. In fact, this system is a modern incarnation of Byzantine Fault Tolerance, a distributed consensus system that long predates Bitcoin. The only downside is that there is no recourse when the security assumption (7 out of those 10 are honest) is false. In a proof-of-work setting, one can join the mining landscape in that case, even without telling anyone else.