The goal of this project is the implementation of a demo application which illustrates the concept of the consensus technique, e.g., proof-of-stake, QBFT proof-of-authority (but not the often used "proof-of-work" as, e.g., used in the Bitcoin Blockchain). For example, a possible application could be the implementation of the four-eyes principle (Vier-Augen-Prinzip) for officially approving documents by making use of two (or configurably more) signers acting as "proof-of-authorities". There are many other possible application scenarios feasible, e.g., the decision taking principles of a management board of an association or a company, board of managers, board of trustees or directors. The application scenario should be well-chosen to illustrate the general principle of proof-of-authority. It may be based on a generic, configurable implementation to show different variations of the proof-of-authority concept, e.g., 1 signer, 2 signers, N signers. The demo application has to be realized such that a short demonstration movie can be recorded, that will be published on the Lab's website. The technology stack intended to be used is as follows:
- contracts written in Solidity (>= 0.8.28),
- OpenZeppelin Contracts library (>= 5.0.0, https://docs.openzeppelin.com/contracts/5.x),
- Hardhat 3 (https://hardhat.org/) with Ignition deployment system (compiling, testing, deployment https://hardhat.org/docs/guides/deployment,
- chain interaction by ethers.js (>= 6),
- private (permissioned) blockchain running on Hyperledger Besu (>= 25.10.0, https://docs.besu-eth.org/private-networks) on Java (>= 21) with the QBFT proof-of-authority protocol (note: Hyperledger Besu fully supports Cancun and offers QBFT, recommended as the proof-of-authority protocol for new private networks https://docs.besu-eth.org/),
- web application based on React (>= 19) with TypeScript, Tailwind CSS, and DaisyUI,
- file encryption by the browser’s native Web Crypto API,
- off-chain data storage by self-hosted private IPFS network,
- Docker containerization (IPFS node and nginx web server, and maybe other components, run as Docker containers).
An interesting option might be to deploy the private blockchain network on Azure (using the Azure license of the University of Vienna) https://docs.besu-eth.org/private-networks/tutorials/azure.
The student is expected to use professional tooling for this project.
Technologies: Ethereum; Web technologies; Docker
Tags: Blockchain; Python; Web technologies; Klas