College of Science & Engineering
This project investigates scalable distributed consenus protocols for blockchain services. Bitcoin’s blockchain technology is emerging as an important approach for decentralized management of digital assets ownership. A blockchain is a replicated ledger maintained in a decentralized manner, without requiring a central authority. A consensus protocol is used to ensure a globally-agreed total order on the blocks in the chain. For this, Bitcoin uses a technique called Proof-of-Work (PoW) which requires each node wanting to append a new block to solve some hard cryptographic puzzle. This PoW-based mechanism provides probabilistic guarantees for consensus. This leads to several inherent difficulties in scaling its performance. The PoW-based consensus technique also requires an inordinate amount of computing and electrical power. Thus, there are several issues that need to be overcome for the future generation of blockchain systems for their mainstream adoption.
This project will investigate several approaches for building scalable blockchain services. The research would investigate the use of classical consensus protocols with Byzantine Fault Tolerance (BFT), sharding for parallel execution of validation tasks, alternate data models in place of a linear chain, and use of other trust models and mechanisms in place of the PoW model.
The researchers have developed a parallel programming framework called Beehive that uses an in-memory distributed key-value based storage system. The Beehive model utilizes this key-value based distributed global storage together with the transactional data management primitives for parallel programming for supporting optimistic execution of data parallel tasks on different parts of the input graph. The researchers have programmed and evaluated the performance of the Beehive system for several graph problems such as maximum-flow, graph coloring, single-source shortest paths, all-pairs shortest paths, k-nearest neighbors, minimum weight spanning tree, and PageRank. Previously, work focused on improving the scalability of Beehive and the researchers have achieved close to 50-fold performance scaling of this system. This has required a multi-pronged approach to overcome many of the issues which arise due to the use of Java RMI serialization costs in remote data access, memory footprint, and garbage collection overheads ofJava. The current system supports a hybrid model using both Thrift and Java RMI because Thrift performs better than Java RMI but does not support object-class hierarchy in communication. With the current version the researchers have programmed graph problems of 100 million vertices.
Utilizing Beehive, the group has developed incremental computation techniques in large dynamic graph structures. They also investigated a graph-based model of building scalable publish/subscribe services on cluster platforms.