Description
Learn about the blockchain platform's fundamentals. Create your own private blockchain and use blockchain identity to secure a digital asset. Investigate the Ethereum platform and create your own decentralized app using Solidity and smart contracts.
Syllabus:
Course 1: Blockchain Fundamentals
Blockchain Basics
- Explain core components that make a blockchain secure and powerful
- Define blockchain protocols and their key differences
Managing Blockchain Transactions
- Create and manage identity on the Bitcoin Blockchain and establish proof-of-ownership with blockchain transactions, without the need to provide sensitive information
Bitcoin core Testnet
- Explain the benefits of utilizing the Bitcoin Core testnet
- Describe the difference between the public testnet and regression testing
Blockchain Data
- Learn the relationship between different stages of transaction lifecycle using Bitcoin Core
Private Blockchains
- Explain the value of a private blockchain, and prepare for the course project
Digital Assets on Blockchain
- Encode and decode digital assets on a private blockchain, and publicly prove ownership of the assets using digital identity
Project: Create Your Own Private Blockchain
- A blockchain is a shared database with added immutability that serves as a secure and accurate alternative to existing data storage methods. You'll learn the fundamentals of the blockchain data model by building your own private blockchain with Node.js and leveldb.
- You will learn the fundamentals of architecting a collection of data into a blockchain data model in this project. You'll configure how each block stores data, validate blocks, add new blocks to the chain, and write methods to ensure the chain's integrity.
- You'll then build a back-end API web service and migrate your private blockchain to it. Throughout the process, you will learn how to use a RESTful web client to post new blocks to the blockchain. The unique digital collectibles will then be encrypted and decrypted on a private blockchain.
Course 2: Ethereum Smart Contracts, Tokens and Dapps
Ethereum Fundamentals and Development Tools
- Describe the fundamentals of Ethereum and how it is different from Bitcoin
- Build, compile, deploy, and test smart contracts using remix, ganache, truffle, and infura
Smart Contracts with Solidity
- Learn Solidity, a Turing complete smart contract language
- Learn about different token standards (ERC-721, ERC-20)
- Create a fungible (ERC-20) token on Ethereum using Solidity
Ethereum APP
- Develop, test and deploy a fully-functioning Dapp that allows users to create, buy and sell unique stars
Project: Build CryptoStar Dapp on Ethereum
With Project 2, your attention shifts from Bitcoin to the Ethereum blockchain. To begin, you'll create a decentralised app (Dapp) that allows you to create, sell, and transfer ownership of a unique star token (CryptoStar) on the Ethereum blockchain by utilising smart contracts and the non-fungible (ERC721) token standard. This service demonstrates how to claim and transfer ownership of a unique digital asset (for example, a document, deed, agreement, media, etc.) on the Ethereum blockchain. With a pre-developed front end, you will build CryptoStar's back-end infrastructure. This allows you to provide the service on any modern web client.
Course 3: Blockchain Architecture
Planning Blockchain Solutions
- Learn the correct technology stack to layer services and provide software solutions
- Design supporting visuals with Unified Modeling Language (UML)
Privacy
- Implement several techniques to enhance privacy of blockchain such as merkle trees, zero-knowledge proofs
Security & Maintenance
- Identify architecture security and maintenance risks
Distributed file system
- Create your own website and Dapp on the new decentralized storage protocol
Project: Ethereum Dapp for Tracking Items through Supply Chain
By the end of Project 2, you'll understand the significance of Proof of Existence, which is used to determine whether a digital asset is authentic and trustworthy. In this project, you will scale up to architect a solution that verifies a product's authenticity when multiple actors are involved.
You will create an Ethereum blockchain supply chain system that will allow users to verify the authenticity of an item as it passes through different hands. You will design a Dapp (Decentralized Application) authentication management system that will be supported by the Ethereum platform. To do so, you'll identify the needs of the various supply chain actors and develop smart contracts to track product origination and verify product authenticity. You'll then connect everything with a simple front-end that allows users to manage the product life-cycle as it moves through the supply chain.
Course 4: Dapp with autonomous smart contracts and oracles
Multiparty control and payments with smart contracts
- Build Dapp with secure, multi-sig smart contracts that autonomously receive, transfer, and pay funds.
ORACLES
- Utilize third-party data sources to inform autonomous smart contracts
Handing smart contract payments
- Create, and test, secure and cost-efficient smart contracts that handle, distribute, and test ETH payments to a smart contract
Project: Flight Delay Insurance Dapp
Many smart contracts in the real world take actions based on external triggers. These triggers can be caused by our actions or by data received from outside sources via so-called "oracles." Smart contracts must respond autonomously to these triggers in order to create real-world decentralised applications, making these applications more interactive.
In this project, you will create a decentralised application for a use case in which there are airlines that provide flight delay insurance and passengers who carry this insurance and are compensated if their flight is delayed. You will create a number of smart contracts that are autonomously triggered by external sources and handle payments based on flight delay scenarios.
Course 5: Capstone Project
ZK-SNARKS
- Learn how to implement ZK-SNARKs using Zokarates framework
Project: Capstone
You will use all of your new skills to create a decentralised property listing application.
In this project, you will use ZK-SNARKs to represent your ownership of the property, and then mint tokens to represent your claim to the property. You will then list these tokens for sale on a blockchain marketplace.