Course curriculum

  • 1

    0- Introduction

  • 2

    1- Understanding Public Blockchain Security

    • 1- Chapter Intro

    • 2- Security Scope - Inside Public Blockchain

    • 3- Communication Security

    • 4- Computation Security (Lack of Zero Knowledge)

    • 5- Wallet Security

    • 6- Smart Contract Security

    • 7- User Security - Mnemonic Phrase / Seed Phrase / Seed Words

    • 8- MetaMask exercise using Mnemonics and importing private keys

  • 3

    2- A bedtime story of Smart Contract ( DAO Hack )

    • 9- The DAO Story Intro

    • 10- What is Decentralized Autonomous Organization (DAO)

    • 11- The DAO Hack Story : (Part-1) An attack that has changed the Ethereum

    • 12- The DAO Hack Story : (Part-2) The Soft-Fork

    • 13- The DAO Hack Story : (Part-3) The Hard-Fork

    • 14- Result of the Hack and Fork

  • 4

    3- Unit Testing of Smart Contract

    • 15- Chapter Intro

    • 16- Unit Testing in Mocha and Chai

    • 17- Unit Testing Exercise Part-1

    • 18- Unit Testing Exercise Part-2

    • 19- Unit Testing Exercise Part-3

    • 20- Unit Testing Exercise Part-4

  • 5

    4- Contract Best Practices

    • 21- intro

    • 22- Traditional vs Blockchain - Don’t compare with existing languages and trends

    • 23- Be ready for any failure

    • 24- Simplicity and readable

    • 25- Secure Development Recommendations

    • 26- Avoid State Change in External call

    • 27- Handle errors in external calls

    • 28- Don't delegatecall to untrusted code

    • 29- Best Security Links for Ethereum

  • 6

    5- Security Patterns

    • 30- Patterns intro

    • 31- Re-Entrancy Attack and Checks-Effects-Interactions pattern

    • 32- Remix Exercise - Checks-Effects-Interactions pattern

    • 33- Restricting Access Pattern ( Modifiers and Functions )

    • 34- Time Based Restriction

    • 35- Time Based Restriction - Remix Exercise

    • 36- Cost Based Restriction

    • 37- Cost Based Restriction - Remix Exercise

    • 38- Account Based Restriction

    • 39- State Machine Pattern

    • 40- State Machine Pattern - Remix Exercise

    • 41- Circuit Breaker Pattern

    • 42- Speed Bump Pattern

    • 43- Ownable Pattern

    • 44- Self Destruct

    • 45- Self Destruct - Remix Exercise

    • 46- View functions and Gas Limits

  • 7

    6- Oracle (Service Providers)

    • 47- Oracle Chapter Intro

    • 48- What is Oracle - (Refresh Oracle Understanding)

    • 49- How Oracle retrieves data from the outside world?

    • 50- Oracle Service Provider - Introducing "Provable"

    • 51- Oracle Sample Code - How to get data from JSON based URL

    • 52- Some Known Issues related to Fake Ethers and Oracle Callbacks

    • 53- Oracle Exercise 1 - " Provable " Get USD value from JSON URL (Rest API Service)

    • 54- Oracle Exercise 2 - "Provable" Get Random number data from the Oracle

    • 55- Oracle Service Provider - Introducing " Chainlink "

    • 56- Oracle Exercise 3 and 4 - " ChainLink " get USD value without URL and get external data from JSON API

  • 8

    7- Fallback and Received Solidity Functions

    • 57- Chapter Intro

    • 58- Introduction to Fallback Function

    • 59- Ways to fallback function

    • 60- Fallback function - Exercise Part-1

    • 61- Fallback function - Exercise Part-2

    • 62- Introduction to Receive Function

    • 63- Receive Function - Exercise

  • 9

    8- Upgrade Patterns for Smart Contracts

    • 64- Upgrade pattern chapter intro

    • 65- Registry Pattern Introduction

    • 66- Registry Pattern - Exercise

    • 67- Registry Pattern Limitation

    • 68- Eternal Storage Pattern Introduction

    • 69- Eternal Storage Pattern- Exercise Part-1

    • 70- Eternal Storage Pattern-Exercise Part-2

    • 71- Eternal Storage Limitation and upgrade links

  • 10

    9- Final Thoughts on Role of Security

    • 72- The End