Introduction to Blockchain and Smart Contracts | ITEC.807
While most of the hype around blockchain has centered on cryptocurrency, the promise of blockchain technology is much broader. A blockchain is a distributed system with a distributed shared datastore, sometimes called a distributed ledger, supporting cryptographically verifiable transactions. When paired with smart contracts, blockchains provide a way of creating a distributed web of trust for specific applications where cooperation is needed between participants who may not have reason to trust each other in general.
In this course, we’ll take an introductory look at blockchains, smart contracts, and distributed identity management.
- Fundamental technologies underlying blockchain systems, including cryptography and distributed consensus
- How technologies come together to make a blockchain
- Smart contracts and how they turn blockchain into a platform for constructing distributed applications (dapps)
- Permissioned and permissionless distributed ledgers: What they are and what classes of application they best support
- Solidity and the TruffleSuite development environment: How to develop a dapp on top of the Ethereum blockchain platform
- Distributed identifiers and verifiable credentials: Leveraging blockchain technology to identify and assign cryptographically verifiable attributes to people and things
- A good use case for blockchain: Examples of applications on permissioned and permissionless distributed ledgers
- Explain what a blockchain is, the underlying technologies, and what makes it different from a centralized database
- Compare three major blockchain platforms: Bitcoin, Ethereum, and Hyperledger
- Understand what a dapp is, how Solidity programming language is used to construct dapps, and how to write a simple “Hello world!” dapp
- Explain what a distributed identifier and verifiable credential is and how they can be used in applications
- Provide appropriate use cases for implementing with blockchain technology
Students should have a basic understanding of cryptographic hashes, encryption, authentication, asymmetric (public key) cryptography, and shared key cryptography, as well as how these algorithms are typically applied to solving security problems in systems. Some familiarity with public key infrastructure and distributed systems will also be helpful. These topics will be reviewed at the beginning of the course.
Course Availability Notification
Please use this form to be notified when this course is open for enrollment.