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
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