In recent years, blockchain adaptation in IoT has received tremendous attention due to its salient features including distributed management, security, anonymity, and auditability. However, conventional blockchains are significantly resource demanding and suffer from lack of throughput, delay in committing transactions, and low efficiency. We recently introduced a novel blockchain consensus algorithm known as Tree-chain, that bases the validator selection on an existing feature in all blockchains: hash function. Tree-chain achieves a fast throughput while ensuring the randomness and unpredictability of the validators and thus protecting the security of the architecture. Tree-chain moves away from eventual consistency as in conventional blockchains, to near-immediate consistency as the validator of each transaction is always known.
The main objective of this project is to implement a Proof of Concept (PoC) implementation of Tree-chain to benchmark the performance including resource consumption, throughput, and delay in committing transactions. We are seeking motivated students with strong programming skills that are familiar with basic networking and security concepts and preferably socket programming. We will build a Tree-chain from scratch using Java programming language and test using Raspberry Pi devices. By the end of the project we expect to have a working prototype of Tree-chain on Raspberry Pi devices along with an evaluation of the performance.
- Understand the basics of Tree-chain algorithm
- implement Tree-chain using Java or C++
- run Tree-chain on a testnet comprises of Raspberry Pi devices
- benchmark the performance of Tree-chain and stress test throughput
- simulate various attacks to study the security of Tree-chain.
The main outcome of the project is a Proof of Concept implementation of Tree-chain along with benchmark and security analysis results. We are expecting a detailed documentation of the codes as well so that future researchers can employ the code in their research and start building on top of Tree-chain. The codes will be open sourced.
Skills and experience
- Strong programming skills (Java or C++)
- strong Socket programming skill (Java or C++)
- background in networks
- familiar with coding in Raspberry Pi devices
- knowledge of security and distributed algorithms.
You may be eligible to apply for a research scholarship.
Contact the supervisor for more information.