Blockchain and Smart Contracts from First Principle in Python
Saket Bhushan (~saket) |
Blockchain is one of the most revolutionary technologies of our times, which is still maturing and with immense potentials yet to be realised. In essence, it is a distributed public database of records which opens rooms for cryptocurrencies and smart contracts to be built on top of it.
While the internet is abuzz with blockchain, the concept is difficult to comprehend in its entirety. It lies at an intersection Game Theory, Cryptography, Network and Data Transmission, Economic and Monetary Value, and Trust Systems.
It becomes difficult to wrap one's head around each of these domains and get a 360 view of the subject. The workshop tries to help the audience build a comprehensive understanding of the subject, with Python being the programming language.
The attendees will leave with a complete picture of the moving pieces of the jigsaw puzzle that blockchain is, and by the end of it will be able to build their own blockchain, cryptocurrency and a smart contract POC on ethereum.
The workshop is divided into three parts :
- Context Building - 45 mins
- Blockchain fundamentals and principles - 90 mins
- Coding a smart contract in Vyper(pythonic solidity) - 30 mins
1. Context Building :
- Basic of Game Theory - Introduction and the Iterated prisoner's dilemma (IPD), creating matches and tournaments using Axelrod python library
- Cipher encryption and decryption in python
- Demonstration of network fundamentals and internet data handling
- Evolution of money and trust systems and why bitcoin is not a mainstream currency
- When blockchain should be avoided
- Why decentralisation matters
2. Blockchain with Python:
- Understanding mining, incentives, payment records, and ownership
- Programming a basic prototype of a blockchain
- Adding a proof of work to our prototype
- Putting our prototype on a database
- Doing transactions on unique addresses
- Adding decentralisation to our prototype by distributing it over a network
3. Coding a smart contract with Vyper
- Understanding what a smart contract is
- Programming one with Vyper on Ethereum
Intermediate understanding of Python
Saket is founder-techie at Sosio. Sosio caters to the large-scale data needs of enterprises in payments, supply-chain, Ad-Tech, and non-profits. He has been programming in Python for over 10 years and has been semi-active in tech-conferences attending and delivering talks across the globe. In his personal capacity, he has introduced Python to more than 500 individuals and conducted training sessions at corporate houses like Oracle. In his previous life, he spent a good chunk of his time optimising computational mechanics algorithms. He is implementing blockchain with one of his supply-chain partners and would like to share his learning experience in the workshop.