Understand synchronisation algorithms in distributed databases (Paxos, Raft) and how blockchain consensus algorithms (Nakamoto, Emmy+) differ from distributed databases.
Blockchains include a virtual machine to execute user programs (smart contracts) on their database. The virtual machine has to ensure the security of the system and be programmed from higher level languages. Various designs of VMs exist, the Tezos VM (Michelson) being characterized that it was designed with security in mind.
Bugs in smart contracts have already caused the loss of millions of dollars. Formal verification techniques allow proving mathematically some properties of the smart-contracts, this avoiding costly bugs. Typical formal verification tools used in Tezos include languages with complex type systems (F*, Coq), SMTs / model checking (Why3, Cubicle) and Abstract interpretation.
Anonymity is a desirable property for transactions but it is hard to achieve in a public blockchain. Zero-knowledge proofs allow the encryption of transactions in a way that is compatible with the accounting requirements of the blockchain but at the same time doesn’t provide any information to unauthorized third parties.
Updating a distributed software requires solving a coordination problem. Tezos solves this problem with voting and automated upgrades.
Blockchain technology brings many innovations to the banking system : portability of bank accounts across banks, programmability of transactions, automation of contractual agreements and easy access to tools like escrows.
Blockchains allow managing real estate property titles online : sales, exchanges, voting, and fundraising (STO). We will review the typical needs of real estate companies and some existing solutions on Tezos.
Blockchains allow managing shares online : sales, exchanges, and fundraising. Because stock markets are a highly regulated space, it is also necessary to ensure all regulatory requirements are properly enforced. Smart-contracts are an essential ingredient in the legal compliance of blockchain-based financial products. We will review the typical problems that arise and how they are solved in Tezos.
Blockchains allow creating digital twins of real life objects. These digital twins can keep a trusted an unfalsifiable trace of all actions performed on these objects like repairs or exchanges. Digital twins are used to trace product lifecycles and avoid counterfeits.
Blockchains can also be used to implement digital payment means, with all the benefits that smart contracts provide, from contractualisation to automation.
In a blockchain all that is organised as state and deltas - the name blockchain refering to the list of deltas to be applied over the initial state to obtain the current one. We will review how accounts, transactions and code are organized in Tezos
A block explorer is a software that computes the state of part of the blockchain from its deltas / blocks : the current balance of a contract, the data store of a smart contract a day ago, etc. We will learn how to find the relevant information in the blocks and apply it to a state, in order to compute the information we need.
A wallet is a software that creates transactions, signs them and sends them to the blockchain. These transactions can be transfers of funds, but also calls to a smart contract with data. We will learn how to create transactions and smart contract calls, and send them to a Tezos node
Smart contracts are pieces of code that run on the blockchain and can be called with transactions. We will learn how to write simple smart contracts and review the tools existing in Tezos to do so.
If time permits we will assemble all the components created (block explorer, wallet, smart-contract) into a simple application for Tezos