V

Veracious

Decentralizing Journalism at its core.

The problem Veracious solves

Currently, journalists belonging to different media houses have to find and write about content approved by the media houses, which are often manipulated and controlled by those in high power. These passionate journalists when trying to reveal the truth behind a scam, or corruption etc. which is affecting the masses, are suppressed and have to face harsh consequences by a person with high power. Even if they try to publish pieces of evidence through various centralized sources, they are tracked down and punished. The truth never sees the light.

We provide a Decentralized platform for Journalism providing anonymity to journalists who wish to relinquish the true facts behind the story involving war, spying, and corruption without facing harsh consequences by a person at a high post. We are using Decentralized storage with the help of IPFS and our platform is built on top of the Ethereum network (Rinkeby). Smart contracts are deployed with the help of truffle.

  1. The user uploads a document along with the description of the file (32 char).
  2. A real-time feed of the file uploads is available on the platform which is anonymous and stored using IPFS.
  3. A live preview of all the uploaded files and documents is visible on the portal.
  4. The person is also able to share a given document securely using a trustless platform with the help of public-private key encryption.
  5. We get the recipient public key corresponding to his/her private key.
  6. We encrypt the document using the receiver's public key and then send the cypher object to the recipient by any means of communication.
  7. The end-user is able to decrypt the corresponding document using his private key and no one in the middle can decrypt the 8. document even if he knows the cypher-text.
  8. The website is hosted using the following two options - one is a decentralized approach using IPFS wherein the website is Fully Decentralized and the second way is deploying using Amazon Web Services using S3 bucket.

Challenges we ran into

  1. Storing all of the IPFS hashes of files into our smart contract in order to get the feed for the users where they can see all the content that is uploaded by the other users. We optimized and reduced the gas consumption on a particular transaction by storing the IPFS hashes in form of Multihash where we convert the base58 encoded IPFS hash into hex and broke it into 3 parts:

struct Multihash {
bytes32 hash
uint8 hash_function
uint8 size
}

  1. Finding the CDNs/making methods/using Browserify for converting an object into different data types, cause we can't use modules directly in vanilla JS (like require function won't work).
  2. Setting up the IPFS http-client and integrating the web3js library with the metamask.
  3. Implementing encryption-decryption of IPFS hashes using RSA algorithm, where we used the ethereum private-public key, to securely share files.

Discussion