About this course
Study distributed ledgers, consensus, and smart contracts, and the security properties and limits of decentralized systems.
Built a minimal but complete decentralized system, layering a simplified PBFT agreement module, Merkle-backed block integrity, proof-of-work mining, deployed Solidity contracts, ERC-20 or ERC-721 token flows, an IPFS-backed DApp interface, a hierarchical deterministic multi-signature wallet, and an automated market maker, then audited and hardened it against reentrancy, oracle, and flash-loan attacks.
HIT catalogue documents
Download the Word package prepared for the institutional catalogue process.
Expected outcomes
- Explain Byzantine fault tolerance, the two-generals problem, and the safety-vs-liveness trade-off in distributed consensus; compare Proof of Work and Proof of Stake security arguments including hashrate, validator staking, slashing conditions, and Nakamoto probabilistic finality.
- Construct Merkle tree proofs of inclusion and analyze the EVM execution model: opcode gas table, EIP-1559 base fee burn, stack-based execution, and ABI encoding for UUPS and Transparent proxy patterns.
- Write, deploy, and test Solidity smart contracts on Ethereum testnets using Hardhat and Remix IDE, applying OpenZeppelin Contracts for upgradeable and access-controlled architectures with Ganache for local chain development.
- Identify and exploit smart contract vulnerability classes (reentrancy, integer overflow, access control, tx.origin misuse) using Slither static analysis and manual audit, and produce structured findings reports with proof-of-concept exploits verified on Etherscan.
- Analyze DeFi primitives including constant-product AMMs (x*y=k), collateralized lending and liquidation mechanics, and flash loan atomicity; assess price oracle manipulation via Chainlink feed analysis and cross-chain bridge trust models.
- Derive BIP-32/39/44 HD wallet key hierarchies using ethers.js, manage keys with MetaMask, and evaluate zero-knowledge proof systems (Groth16 zk-SNARK, zk-STARK) for on-chain privacy and proof generation vs verification cost trade-offs.
Key topics
- Consensus mechanisms
- Smart contracts
- Wallets & key management
- DeFi security
Theoretical foundations
The concepts and results this course rests on.
- distributed ledger and Byzantine fault tolerance: two-generals problem, BFT assumptions, and the safety vs liveness trade-off
- Proof of Work vs Proof of Stake: hashrate mining, validator staking, slashing conditions, and Nakamoto probabilistic finality
- Merkle trees and cryptographic integrity: Merkle root construction, proof of inclusion, and tamper-evident block headers
- EVM execution model and gas economics: opcode gas table, EIP-1559 base fee burn, stack-based execution, and gas limit
- smart contract programming model: storage slots, calldata vs memory, ABI encoding, proxy patterns (UUPS, Transparent)
- common smart contract vulnerabilities: reentrancy (checks-effects-interactions), integer overflow, access control, and tx.origin misuse
- DeFi primitives: constant-product AMM (x*y=k), collateralized lending and liquidation mechanics, and flash loan atomicity
- wallet security and HD key derivation: BIP-32 hierarchical paths, BIP-39 mnemonic entropy, and BIP-44 account levels
- zero-knowledge proofs on-chain: zk-SNARK (Groth16), zk-STARK, proof generation vs verification cost, and privacy use cases
- cross-chain bridges and oracle security: price oracle manipulation attacks, bridge trust models, and decentralized proof-of-reserve mechanisms
Prerequisites
Course-specific prerequisites:
- Cryptography fundamentals
- Distributed systems and computer networks
Weekly schedule 13 weeks · lecture + practice
Students use AI assistants throughout the decentralized-system build: scaffolding and refactoring Solidity contracts, DApp clients, token flows, IPFS metadata handling, and the off-chain ledger code, generating Foundry and Echidna test suites and invariants, and explaining Slither static-analysis output. They vibe-code exploit proofs of concept, prompting the assistant to write a reentrancy, oracle-manipulation, or flash-loan attack against their own AMM and then to propose the checks-effects-interactions fix or an oracle hardening strategy. AI helps interpret EVM traces in Tenderly, derive HD-wallet and multi-signature logic, compare ethers.js and Web3.js calls, and turn an audit pass into a structured findings report, and students drive deployment tooling and wallet libraries through it, but they re-run every AI-proposed fix through the fuzzer and on-chain tests, because a contract that merely looks safe can still lose funds.
Student project
Teams design, implement, test, and audit a DeFi protocol in Solidity: a simplified lending or AMM protocol with core business logic, a comprehensive Hardhat test suite covering unit and invariant tests, Slither static analysis, a manual audit targeting at least three vulnerability classes with proof-of-concept exploits, and a front-end integration with ethers.js deployed on an Ethereum testnet.
Requirements
- Build a working system, not a set of disconnected exercises.
- Be original: a new system that solves a real problem, not a re-implementation of a tutorial or course demo.
- Show real depth: real data, real users or realistic load, and engineering trade-offs that are measured rather than assumed.
- Carry one running project from specification to a deployed, defensible result across the whole term.
- Work in a team of three or four and defend the design at each of the three presentations (weeks 5, 8, and 13).
Example projects
Assessment & grading
Grading is project-based, with no written exam. Teams of three or four present one running project three times.
| Component | What it covers | Weight |
|---|---|---|
| Project · Specification | Presentation 1 (week 5): problem, objectives, and architecture | 20% |
| Project · Interim | Presentation 2 (week 8): the working system demonstrated live | 30% |
| Project · Final | Presentation 3 (week 13): end-to-end demo with oral defense | 50% |
Tools & platforms
- Solidity: smart-contract programming language
- Foundry: contract development, testing, and fuzzing
- Hardhat: Ethereum development and deployment environment
- Remix: browser-based contract IDE and debugger
- OpenZeppelin Contracts: audited ERC-20, ERC-721, access-control, and security libraries
- Slither: static analysis for Solidity vulnerabilities
- Echidna: property-based smart-contract fuzzing
- Ganache: local Ethereum test chain
- ethers.js: blockchain interaction and wallet library
- Web3.js: blockchain interaction library for legacy and browser-based DApps
- MetaMask: wallet and key-management client
- IPFS: decentralized content-addressed storage for DApp metadata and assets
- Chainlink: oracle network for studying external data dependencies
- Tenderly: transaction simulation and debugging
Free online courses
Existing free, video-based courses this course can build on, for self-study or as a teaching basis.
In Hebrew · בעברית
- YouTube, סדרת קורס בעבריתקורס קריפטו מלא בחינם (סדרת פרקים)
Primary literature
Seminal works for advanced study.
References
Books and resources link to an online or publisher page.
- TextbookMastering Bitcoin, 3rd Edition
- TextbookMastering Ethereum
- PaperBitcoin: A Peer-to-Peer Electronic Cash System
- PaperEthereum: A Next-Generation Smart Contract and Decentralized Application Platform
- PaperThe Bitcoin Backbone Protocol: Analysis and Applications
- PaperPractical Byzantine Fault Tolerance
- DocumentationSolidity Documentation
- TextbookBitcoin and Cryptocurrency Technologies
Role in each concentration
| Concentration | Role |
|---|---|
| Intelligent Software Systems | Elective |
| Networking & Cyber Security | Core · Semester 2 |
| AI & Robotics | Elective |
| AI and Quantum Computing for Finance | Core · Semester 2 |
| Immersive Systems & Game Development | Elective |
| Defense Technologies & Autonomous Systems | Elective |