This course is designed for anyone new to Blockchain technology and Solidity programming. You will learn and use Solidity to write Smart Contract and deploy it on Ethereum as a Decentralized application – dApps.
DApp is a new trend of writing programs which is able to enforce the contract based on rules, logic and events; and execute automatically by transferring Ether payment based on those conditions.
DApp do not require intermediaries like banks or institutions as it is able to validate, authorize and settle transactions and record them on the immutable Blockchain. It’s essentially a ‘Trust Machine’ where transaction is open, verifiable and permanent on the blockchain.
Blockchain is the most promising technology of the future since the invention of the Internet.
What you will learn in this course:
•Ethereum Blockchain Technology
•Solidity Programming Language
•Development Tools for dApps
•Write Smart Contracts for ERC20, ERC721, ERC1155, and Escrow Services
•Smart Contract Security Issues and Solutions
•Write front-end Web3 application to interact with Smart Contracts and IPFS
The Blockchain technology that we are learning in this course was actually inspired by the innovative and successful implementation of Bitcoin system.
Bitcoin was invented by Satoshi Nakamoto in his / her paper titled “Bitcoin: A Peer-to-Peer Electronic Cash System“. ( 2009 ) Bitcoin is both a digital currency and direct peer-to-peer payment system. (i.e. no banks or governments involved in the transfer)
Interestingly, the word ‘Blockchain’ was not mentioned in the white paper. It was later discovered by developers and communities that this Bitcoin is running on a new technology (we call it Blockchain) which solved the ‘Double Spending’ problem where many earlier electronic cash proposal failed.
The Bitcoin Blockchain proposed and implemented by Nakamoto essentially fuse together the following technologies which were known at that time:
•Cryptographic hash function,
•Proof-of-work consensus protocol,
•Decentralized Network Architecture
The ideas and innovation was quite ingenious. Together with the participation of the Miners in the system, every block is inspected and validated and Miners compete to have the right to add the new Block by solving a cryptographic puzzle first.
The Miners who first solved the puzzle will broadcast to the Peers and a ‘Proof-of-Work” is demonstrated and verified by other Miners. The Miner who solved the puzzle got the right to add the new Block, receive Ether reward, and the process continue on.
So, every attempt by a malicious attacker to the Bitcoin network (ie. essentially attempting to re-write the transaction log) will need to compete with the entire network of Validators. It has been shown that it is very difficult to cheat or bring down the Bitcoin network.
With the success of this innovative Blockchain technology, the developers and corporations started to evaluate whether we can use Blockchain to decentralized other assets beside money.
Assets such as property title, certification, voting system, supply-chain system, artworks, health records, etc., becomes feasible as each of the asset requires recording system (i.e. a public Distributed Ledger System)
The idea of a trusted DLS where transactions are verified by the peer nodes continuously through cryptographic hash keys protection, and decentralized network architecture with no single point of failure – is an attractive proposition for new decentralized applications (dApps).
However, the Bitcoin blockchain has inherent limitation to be used for other more complex application as was discovered by Vitalik Buterin. Bitcoin system is not a ‘Turing Complete’ machine. (ie. you can write simple scripts on Bitcoin blockchain but it is limited to transfer of Bitcoin and not able to implement more complex applications )
In 2013/2014, Vitalik proposed and implemented Ethereum – a decentralized, open-source blockchain system with Smart Contract functionality.
The proposal is to build an EVM (Ethereum Virtual Machine) – a Turing Complete machine – that will run on each Node / Client computer on the network. And Smart Contracts are just programs written in Solidity – a programming language that target the EVM for deployment and execution.
With Ethereum blockchain system, developer can design Smart Contract, compile it, and deploy on the Ethereum network. This is quite an amazing innovation. The Ethereum blockchain thus become a Global, Open, Super Computer -where Smart Contract programs can be deployed and executed for various kind of decentralized applications.
We will be learning Solidity programming language for Smart Contracts development and examine the language, examples and application in detail during the course.
In short, Ethereum is a programmable Blockchain. A platform for running Smart Contracts (beside the ability to send / receive the native crypto currency Ether)
We will learn a range of Development Tools for writing Smart Contracts, compilation, deployment and testing in the course.
In a series of practical sessions, we will look at ERC20, ERC721 and ERC1155 as examples of industrial standard contracts and write our own tokens using those standards.
As Ethereum blockchain has a native crytocurrency (ETH Ether), the transfer and exchange of money is integrated with the Solidity programming code. Hence, it is possible to automate agreements and execute them based on verified events and rules of the contract to send monry (i.e. Ether) directly to each other – thereby eliminating the intermediaries (ie. Banks, Insurance company, (i.e. noteL a Smart Contract can hold Ether values as well beside EOA (Externally Owned Account) by users.
The possibilities and use cases of Smart Contracts are just endless and we are limited only my our imagination.
With the possibility of financial transactions that can be executed automatically by Smart Contracts – it opens up the risks of malicious Hackers to exploit errors or bugs in a Smart Contract. History had shown incidents of cybercrime where millions were stolen from Smart Contracts / Account Holders.
Therefore, every Smart Contract developer must have a good grounding on Smart Contract Security and know how to write code to protect the Owner and Contract itself. We will look at the classic attack of Smart Contract in the last session and how to overcome it.
Benefits to you for learning this course:
•Gain knowledge and skills of Blockchain technology and dApps development
•Prepare yourself for many high-demand job opportunities in Blockchain technology
•Kick-start your opportunities to launch Start-up projects using Blockchain and dApps
What’s the difference of this course with other courses on Blockchain:
•This course is designed with total beginner in mind and simplify complex topics
•We first cover the fundamental concepts of Blockchain and related topics before diving into coding
•We avoid confusion and courses which use outdated tools
•Learn by coding is the key to go in depth into the technology
Come, join us today!
Abel Choy, Software Engineer / Lecture in Computer Science