Roughly speaking, a Blockchain is a trustless distributed database that replicates and shares data through a peer to peer network. All peers will replicate every generated block to their local copy of the database. It is designed to permit any peer to reexecute every transaction to validate its correctness, and reject blocks if they include invalid transactions. Hence it allows mutually untrusted entities to interact in a distributed manner without the involvement of a trusted third party. The technology was originally introduced for Bitcoin (a peer-to-peer digital payment system), but then evolved to be used for developing a wide range of decentralised applications.
A smart contract is essentially a computer program that is stored, instantiated and executed on the blockchain. Conceptually, it is a trusted third party with public state and it lets parties execute a single program on a global stage without the need to trust each other. The human readable terms (the source code) of a contract are compiled into executable computer code that can run on a blockchain. Many kinds of contractual clauses may thus be made partially or fully self-executing, self-enforcing, or both.
My research in this aspect focuses on the scalability of blockchains, and on developing decentralized applications and security mechanisms based on smart contracts.
BlockchainContext-based consensus for appendable-block blockchainsIn IEEE International Conference on Blockchain, 2020
BlockchainToward a Decentralized, Trust-Less Marketplace for Brokered IoT Data Trading Using BlockchainIn IEEE International Conference on Blockchain, 2019
CCSBetrayal, Distrust, and Rationality: Smart Counter-Collusion Contracts for Verifiable Cloud ComputingIn ACM SIGSAC Conference on Computer and Communications Security, 2017