This project was submitted as part of my final year thesis for the MEng Degree in Computer Science at UCL. This contains an implementation and possible imporovements of the Ripple Consensus Protocol using a Python-Based Network Model.
This projects aims to investigate and evaluate the consensus protocol of a popular digital payment system, Ripple, now known as Ripple Labs. Ripple has recently been receiving some criticism for a certain assumption it takes for one of its building blocks that contradicts with their claim of being a decentralised payment system. In particular, Ripple assumes that their underlying network topology needs to be constructed in a certain restricted way for their consensus algorithm to prevent any forks in the system and achieve conflicting consensus results. Subsequently, the project models the ripple consensus protocol through an agent-based simulation approach and runs multiple implementations that look at gradually improving upon their existing simulation of this consensus protocol and probing the underlying assumptions used by the Ripple consensus protocol.
The complete thesis can be downloaded here - Ripple Consensus Protocol