The original proposal for the project can be found here: Basic Abstract
The central issue in proof of work algorithms used by cryptocurrency systems like bitcoin is the computational cost of using them for verification. One solution to this issue that makes similar guarantees to those made from proof of work algorithms is the proof of stake algorithm, which involves selection of a leader to generate the next block of the chain randomly with probability proportional to the stake that the leader has in the current blockchain ledger rather than the computational power of the electors themselves. Besides removing the need for (ultimately unnecessary) computational cost, use of this method can also defend against a series of typical attacks against block chains such as 51% attacks.
However, some security concerns have been raised in conjunction with the proof of stake process, one of which is the so-called "nothing at stake" vulnerability - the lack of cost of voting for multiple block chain histories can prevent consensus and allow attackers to double spend or gain control of the block chain by "grinding" through various potential block chain histories, publishing those that lead to them being the signer for the next block.
Cardano is a new block-chain (launched on September 29th, 2017) that runs the Ada cryptocurrency. It is designed in Haskell, and makes use of a provably secure wealth-based proof-of-stake algorithm called Ouroboros for transaction authentication in contrast with the proof-of-work algorithms used by Bitcoin and similar cryptocurrencies. I intend to study the Ouroboros algorithm used in the implementation of the Cardano block chain, and explore its efficacy in the context of the typical criticisms and weaknesses of proof-of-stake algorithms.
Following is a (tentative) table of contents for the project:
Following are links to the actual project:
Presentation Slides