The blockchain stack has five layers: decentralized applications, smart contracts, protocol, operating system, and network layers. This course focuses on the blockchain protocol layer, the support provided by the layers below it, and the algorithms and techniques supporting its design and implementation. Topics include Bitcoin and Ethereum blockchain protocols, state and storage management; consensus algorithms: scalability: side channel, block size, sharding, network-layer solutions; Universal digital identity; Confidentiality, security, and privacy methods: zero-knowledge proofs. Fungible and non-fungible tokens; Protocol improvement methods. This course is dual listed with CSE 409.