Archiving of Demos 2023

Part of the work of the C4DT Factory is the creation of demonstrators (proof of concepts) of technology coming out of the EPFL/IC labs. After two years we archive them and provide you with the means to easily run the demo on your computer instead. That way the demo remains accessible to you and you can continue to explore the technology.

A Fast and Lightweight Blockchain – Byzcoin

If you want to interact with other parties without having to rely on a trusted third party, a blockchain can step in to decentralize trust. The DEDIS lab at EPFL, led by Prof. Bryan Ford, built a novel blockchain based on their papers published in top-tier conferences, called ByzCoin. This blockchain has several advantages over previous blockchains: 

  • faster processing rate of data (transactions/second)
  • faster validation of the latest block: seconds instead of days for Bitcoin
  • scaling out, i.e. the more nodes are involved the faster the blockchain becomes

Using this blockchain the DEDIS lab and C4DT built several applications: proof-of-personhood to allow secure anonymous participation in online discourse, an e-voting application, as well as a login system that can be plugged into applications like WordPress or Matrix (chat application).

We also integrated the blockchain in our courses to illustrate the technical details of blockchains for the student. This helped them to better understand the challenges solved by this technology.

You can find the instructions for running this blockchain on your own computer here:

https://github.com/c4dt/byzcoin

Main application for interacting with the byzcoin network Blockchain explorer to follow transactions in the blocks A more programmatic blockchain explorer showing all details of blocks

Formal Verification of Smart Contracts – Stainless

Stainless is another demonstrator based on the ByzCoin blockchain and shows how to do formal verification for smart contracts. The demo is based on work of the LARA lab, led by Prof. Viktor Kunčak and  shows possible pitfalls when writing smart contracts. Surely the list of losses and thefts at Web3 is Going Just Great would be smaller would the the decentralized finance (DeFi) smart contracts in 2023 have applied formal verification to their development process!

Formal verification proves that a program works in all situations, and not only in the ones covered by tests. Our demo is available as a Docker image and includes an interactive tutorial to help you explore what formal verification can do:

https://github.com/c4dt/service-stainless 

Using the demo you can use pre-written contracts or write your own and test it. This is a successful test where the formal verification proves checks generally. If a test fails, there is detailed information as to what made it break.

Decentralized, Privacy-Preserving Machine Learning – Spindle

The third demo in this package shows how advanced mathematics can protect privacy and guarantee secrecy of training data in Machine Learning (ML). To train the ML models big amounts of data are required so as to ensure a good quality of results. Usually this is done by handing all the required data over to the entity running the training algorithm. 

But what if the owner of the data doesn’t want to share the data, but still would like to participate in the training?

This is where Spindle comes in: using homomorphic encryption, it can work with encrypted data during the training phase. This allows multiple participants to include their data in the training without ever actually revealing it. A common use-case is doing research on medical data from hospitals. But  banks and insurance companies can benefit from this technology as well to share their encrypted data for training ML models.

The startup  TuneInsight is an EPFL spin-off based on this research.

You can find the Docker image to test it out on your own computer here:

https://github.com/c4dt/service-spindle 

The initial screen shows an example of three hospitals with encrypted data. During the training, all data stays encrypted. You can adjust the # of rounds. Once the training is finished, you can check the performance of the model.