With the rise of Bitcoin, Ethereum, and other cryptocurrencies it is becoming apparent the paradigm shift towards decentralized computing. Computer engineers will need to understand this shift when developing systems in the coming years. Transferring value over the Internet is just one of the first working use cases of decentralized systems, but it is expected they will be used for a number of different services such as general purpose computing, data storage, or even new forms of governance.
Decentralized systems, however, pose a series of challenges that cannot be addressed with traditional approaches in computing. Not having a central authority implies truth must be agreed upon rather than simply trusted and, so, consensus protocols, cryptographic data structures like the blockchain, and incentive models like mining rewards become critical for the correct behavior of decentralized system.
This series of lectures will be a fast track to introduce these fundamental concepts through working examples and practical exercises, as well as a sneak peek into the future of decentralized applications and how they will impact our society.
- Distributed systems and their security model.
- Decentralized systems and how they are different from distributed ones.
- Consensus and Byzantine Fault Tolerance (BFT) to scale decentralized systems.
- Governance, Economics, and Proof-of-Work to achieve BFT.