Decentralized Review System for Transparent and Accountable Governance
In Solana Network , data stored is maintained with accounts [ 11 ]. Typically , accounts need two sets of keys , a private key and a public key , to sign the transactions . Maintaining these keys is a cumbersome task and poses a security risk in case of a private key leak .
Solana provides an easy way to solve these problems in the form of Program Derived Addresses ( PDAs ) [ 12 ]. PDAs are designed to be controlled by a specific On-Chain Program . With PDAs , programs can programmatically sign for some addresses without needing a private key . With PDAs , we can ensure that no external user can generate a valid signature for the same account .
PDAs are generated from a combination of seeds and a program id . The seeds and program id are run through a sha256 hash function to find a valid PDA . We will find a number or bump in the range of 255 to 0 to use with the seeds and program id to generate a valid PDA , which is not a possible address of a typical account . With the same set of seeds and the bump , we can generate the same PDA , thus giving us access to desired account data .
One of the requirements for storing our reviews is that they should be stored in a decentralized way so that manipulating them will be difficult . IPFS provides one such environment . The InterPlanetary File System ( IPFS ) [ 13 ] is a peer-to-peer ( p2p ) storage network . It is a distributed system for storing and accessing files with peers worldwide . Instead of the traditional way where the storage location identifies the data , IPFS identifies the data by its content , known as content addressing . Content addressing has two main benefits ; firstly , we can fetch the data from any peer who stored it in the network as it uses content addressing ; and secondly , if anyone manipulates the content of the file , then its identification changes , and it will be identified as a different file , which provides us with a necessary functionality , verifiability .
IPFS uses Merkle Directed Acyclic Graphs ( DAGs ) [ 19 ], where each node has a unique identifier , the hash of the node ’ s contents . To build a Merkle DAG , IPFS splits the content into multiple blocks and stores them in the form of Merkel DAGs , meaning different parts of the file can come from various sources and be authenticated quickly . IPFS uses the SHA-256 hashing algorithm to generate the file ' s content addresses or CIDs .
Since IPFS uses CIDs instead of HTTP links , some browsers may not support IPFS natively . Gateways can facilitate the access of IPFS files with HTTP links .
This chapter discusses the architecture and design of the system . First , we will discuss a highlevel overview of the components of our system . Then , we will discuss the design of the blockchain-based decentralized application .
Journal of Innovation 55