In a time plagued by political partisanship and legislative turmoil, the truth has been blurrier than ever. Fake News runs rampant not only on no-name tabloids, but also well-known institutions who have begun to chase the next big story while sacrificing journalistic integrity. With emerging technologies making their way to the forefront of next-generation solutions, blockchain technology can be implemented effectively to address the scourge of Fake News. With increased transparency and the democratization of what media our citizens consume, Fake News will become a thing of the past.
What it does
Verifyre implements a blockchain solution to allow citizens to "vote" on whether or not recently published articles from well-known and reputable news sources can be considered the truth versus fake news. Each user is able to make a bid costing Ether on each news article to make the determination of truth. If over 50% of voters determine that an article is real or fake, then that article is officially designated as such. The voters who correctly determined the legitimacy of the article will receive a return on their investment PLUS a proportion of the bids from the incorrect voters. Therefore, there is a very strong incentive for the users to read the article properly to make effective determinations about the article's validity.
Then, once an article has been approved by the blockchain network of voters, it is posted to the general news feed for the public to read with the assurance that they're reading the TRUTH and not fake news.
How we built it
Verifyre comes in three parts: 1) The blockchain network built with Solidity and node.js, 2) The web3.js framework that pulls from the blockchain contract, and 3) The UI that allows for voters to engage in validating news articles.
The blockchain network is composed of two main parts: the smart contract and the node.js application that deploys the contract. The smart contract is the main database of article URLs and keeps track of the number of upvotes and downvotes for each article. It also conducts the calculations for awarding voters who correctly determined the validity of articles. The node.js application then compiles and deploys this smart contract, and connects to the Rinkeby Test Network to make use of test-Ether.
The web3.js framework pulls information from the smart contract's methods that allow for data analysis and to keep track of vote counts for the individual articles. This framework is also responsible for allowing voters to access the blockchain from their own browsers by linking with MetaMask and the Rinkeby Test Network.
The front-end UI finally allows for the voters to automatically use their MetaMask account to make the bids on the different articles in order to determine their validity. Furthermore, the additional general news feed from verified TRUTH articles allows for a more confident political education experience.
Challenges we ran into
The main challenge we faced was the connection between the Blockchain Network and the web3.js front-end. Although the end-points were fairly easy to create, Solidity has a very limited capacity for data manipulation. For example, when we wanted to return a list of URLs for articles to be validated, the process to concatenate strings was incredibly difficult. This was also caused by the inability of the web3.js framework to accept arrays of objects from the smart contract.
Accomplishments that we're proud of
We are very proud of our ability to create a real Blockchain application that functions across different devices and works towards a positive cause. The entire process from Smart Contract design to the deployment of the contract onto the Test Ether Network both challenged and amazed us.
What we learned
What's next for Verifyre
The next step for Verifyre is to automate the article collection from our existing RSS feeds to ensure the most recent and most relevant articles are being validated by the public and shared on the blockchain.