Abstract: Popularly known for powering cryptocurrencies such as Bitcoin and Ethereum, blockchains is seen as a disruptive technology capable of impacting a wide variety of domains, ranging from finance to governance, by offering superior security, reliability, and transparency in a decentralized manner. In this tutorial presentation, we first study the original Bitcoin design from an academic perspective. We then take a comprehensive look at all aspects related to blockchains by deconstructing the system into 6 layers: Application, Modeling, Contract, System, Data, and Network. We will review potential applications which can benefit from blockchains, and describe the associated research challenges. Finally, we will conclude with a report on ongoing research, providing a decentralized messaging service using blockchains.