IEEE International Conference on Blockchain and Cryptocurrency
14-17 May 2019 // Seoul, South Korea

Tutorial 1. Blockchain and Smart Contracts – From Theory to Practice

Blockchain and Smart Contracts – From Theory to Practice

Bruno Rodrigues (University of Zurich, Switzerland) Eder John Scheid (University of Zurich, Switzerland), Roman Blum (HSR Hochschule für Technik Rapperswil – Switzerland), Thomas Bocek (HSR Hochschule für Technik Rapperswil – Switzerland), Burkhard Stiller (University of Zurich, Switzerland)


Blockchains and Smart Contracts are key concepts helping to build the foundation of a truly distributed digital society. As blockchain-based applications evolve beyond the financial market, many challenges toward its effective integration into existing systems are emerging. This tutorial will provide insights on two challenges in the development of blockchain-based applications. While the first is related to decisions concerning which application areas and use cases blockchains do provide an advantage beyond distributed databases and decentralized systems, the second is related to practical security considerations in the development of Smart Contracts. The audience will be guided through key characteristics that may influence the decision of adoption as well as how to manage on-chain and off-chain information. Then, use cases will be discussed exemplifying how to strike a balance between application requirements and blockchain characteristics. At the end of the tutorial, the audience will have gained insight on when and how to use blockchain and also on fundamental security considerations in the development of Smart Contracts.

Intended Audience

This tutorial is intended to an audience interested in how to explore blockchains and Smart Contracts in a new or existing applications. Therefore, an audience with a basic to intermediate knowledge about the subject  blockchain/distributed systems) is expected.


In the first module, the tutorial will recall briefly the main blockchain characteristics of its different deployment models (combinations of public/private and permissioned/permissionless), while describing how performance and security aspects are influenced. Depending on the performance or security requirements of an application, both the deployment model and the consensus mechanism may vary, providing greater or lesser performance, security and decentralization levels of the blockchain. The analysis of trade-offs involving application requirements and blockchain characteristics is fundamental to guiding the decision-making process regarding the use of blockchain concerning safety and performance aspects.

In the second module, the tutorial demonstrates examples of safe and unsafe contracts outlining the main concerns, bugs, and vulnerabilities in the development process. In this sense, it is assumed that the audience has a basic knowledge of blockchains and Smart Contracts development. This module is concluded by presenting best practices in the Smart Contract development.


The tutorial content is planned to be covered in 90 minutes including a 10 min break.

Proposed structure:

  1. Overview
    o 00-05: Introduction outlining the relevance of the tutorial
    o 05-15: Blockchain types, overview on consensus
  2.  Blockchain Deployment and Use
    o 15-20: Adoption decision process
    o 20-30: Information management aspects based on application needs
  3. Use Cases
    o 30-50: Discussed use cases
    Break (if required by the audience)
    o 50-60: 10 minutes’ break
  4. Security Guidelines
    o 60-80: Smart Contract Security Guidelines
  5. Considerations & Discussion
    o 80-90: Discussion/Questions


  • Bruno Rodrigues received the B.Sc. degree in Computer Science from the University of the State of Santa Catarina (UDESC), Brazil in 2013 and his M.Sc. degree in Computer Engineering from the Polytechnic School of University of São Paulo, Brazil in 2016. He joined the Communication Systems Group CSG at the University of Zürich UZH, Switzerland in September 2016 to obtain his Ph.D. degree. His interests include blockchains, measurements and monitoring, SDN, network and service management.
  • Eder Scheid is pursuing his Ph.D. under the supervision of Prof. Dr. Burkhard Stiller at the University of Zurich (UZH). He is also a Research Assistant at the Communication Systems Group (CSG) since December 2017. Eder holds an MSc. Degree in Computer Science from the Federal University of the Rio Grande do Sul (UFRGS), which he obtained in 2017 under the supervision of Prof. Dr. Lisandro Zambenedetti Granville. His master’s thesis was entitled “INSpIRE: an Integrated NFV-baSed. Intent Refinement Environment”. Eder is one of the teaching assistant of the Blockchains and Overlay Networks class for MSc students at the UZH. Also, in 2018, he organized practical classes in the Swiss Course for Advanced Studies (CAS) focusing on Blockchains and Cloud technologies.
  • Roman Blum is a blockchain researcher and teaching assistant for distributed systems at the University of Applied Sciences Rapperswil HSR, Switzerland. He received the B.Sc. degree in Computer Science in 2017 and is currently completing the M.Sc. degree in Engineering degree with specialization in Software and Systems at HSR.
  • Prof. Dr. Thomas Bocek is a professor for distributed systems and ledgers at the Hochschule für Technik Rapperswil HSR, Switzerland. He is also involved in AG, a blockchain start-up that combines IoT sensor devices with blockchains. Additionally, he works for (a) VETRI, a blockchain-based solution for user-controlled digital identities, (b) Dezos, a decentralized ownership, and (c) Topl, an open capital infrastructure for developing markets. Finally, he is a mentor at Iconiq Lab and is involved in the open source projects ICOnator, an ICO engine, and the research on blockchain Bazo.
  • Prof. Dr. Burkhard Stiller received the Informatik-Diplom (M.Sc.) degree in Computer Science and the Dr. rer.-nat. (Ph.D.) degree from the University of Karlsruhe, Germany in 1990 and 1994, respectively. He chairs the Communication Systems Group CSG at the Department of Informatics IfI, University of Zürich UZH, Switzerland, since 2004. Besides being a member of the editorial board of the IEEE Transactions on Network and Service Management, Springer’s Journal of Network and Systems Management, and the KICS’ Journal of Communications and Networks, Burkhard is Editor-in-Chief of Elsevier’s Computer Networks journal. His main research interests are published in well over 250 research papers and include  systems with a fully decentralized control (blockchains, clouds, peer-to-peer), network and service management (economic management), Internet-of-Things (security of constrained devices, LoRa), and telecommunication economics (charging and accounting).

Prior History

  • IEEE IFIP/IEEE International Symposium on Integrated Network Management
    (IM 2019 – Accepted): this tutorial will overview the key characteristics that may influence the decision of adoption and operation of a blockchain and outline the major opportunities and challenges for blockchain-based applications will be
    discussed, complemented with a critical review.
  • IEEE CNSM 2018 Tutorial on Blockchain and Smart Contracts: course to be presented at the IEEE CNSM conference where the audience will receive a fundamental basis and a practical introduction to major to Blockchains and Smart Contracts.
  • CAS (Course for Advanced Studies) 2018: discipline in the course where new topics on Cloud and Blockchain technologies are presented. The course is organized in two parts: theory and practice, while Prof. Burkhard guides the theory, Bruno and Eder are responsible for the hands-on.
  • Blockchain and Overlay Networks and Communication Systems Laboratory: these are, respectively, master degree and under graduation disciplines given at the UZH where their focus is to provide the necessary, theoretical and practical, knowledge of several networking areas, such as Peer-to-Peer systems, overlay architectures, distributed hash tables, communication protocols, network packets structure, networking security mechanisms, and the networking layers.
  • Lab session at the 11th International Conference on Autonomous Infrastructure, Management and Security (AIMS 2017): The introduction of this lab session will address the history and an overview of blockchains as well as their
    categorization. Blockchain basics are explained in terms of basic building blocks and how they work, including the essential consensus mechanisms. Thus, the Solidity language is introduced in terms of syntax and main constructs, combined with simple code snippets and examples.

Major References

  • Thomas Bocek, and Burkhard Stiller. “Smart Contracts–Blockchains in the Wings.” Digital Marketplaces Unleashed. Springer, Berlin, Heidelberg, 2018. 169-184.
  • Bruno Rodrigues, Thomas Bocek, Burkhard Stiller. “The Use of Blockchains: Application-Driven Analysis of Applicability.” in: Pethuru Raj, Ganesh Deka (Edt.), “Blockchain Technology: Platforms, Tools and Use Cases, Volume 111 (Advances in Computers)”, Springer, Waltham, MA, U.S.A, No. 111, September 2018, ISBN 978-0-128-13852-6, pp 1–22.
  • Thomas Bocek, Bruno Rodrigues, Tim Strasser, Burkhard Stiller: Blockchains Everywhere – A Use-case of Blockchains in the Pharma Supply-chain; 15th IFIP/IEEE International Symposium on Integrated Network Management (IM 2017), “15th IFIP/IEEE International Symposium on Integrated Network Management (IM 2017)”, Lisbon, Portugal, May 2017, pp 1–6.

Statement of Similarity

This tutorial has a similar content than the tutorials provided in IM 2019 (baseline for the adoption decision and information management) and CNSM 2018 (baseline for smart contracts security concerns). However, the proposed tutorial content will be adjusted to reflect the expected audience level at ICBC 2019. Once it is a specific blockchain conference, the authors expect the audience to have a basic/intermediate knowledge, allowing some analysis to be done in a greater depth