A blockchain consists of three elements: a contract, an immutable data structure, and cryptography. A wide number of variants of these three elements exist, and they can be combined in a variety of fashions in order to achieve an immutable record with as much of the information encrypted as the designers wish. This tutorial touches on variants of the contract and aspects of cryptography such as zero-knowledge proofs and quadratic span programs. It was previously given at ICSA 2018 and the 2017 International Conference on Software Security and Assurance.
See the slides.Watch the video.