Keywords

1 Introduction

Based on a study by Data and Society and the Knight Foundation, “The news is only what the majority wants to hear, its never the complete truth, and it may be false in some aspects. There is bias in the language. Its just the way media works” [1]. The main problem which needs to be addressed is making journalism transparent, thereby preventing the spread of fake news and ensuring authenticity of the literature for end readers. According to the 2018 Edelman Trust Barometer survey, 63% of people cannot distinguish good journalism from rumours, and 59% of people find it hard to distinguish whether news is coming from a respected news outlet or one that is not so trusted [2]. The fact that we now have access to millions of potential news sources is an incredibly positive thing for journalism as we can retrieve firsthand information from those directly involved in the news, making it more likely for the truth to be told. However, the lack of gatekeepers of mainstream media or journalism also means there is no consensus on who is telling the truth, and that means the situation is not improving. In addition to the difficulty of dealing with fake news, an even more prevalent issue is learning to deal with the social aspects of fake news such as the decrease in trust of the public regarding what to trust. With the decentralised news sharing platform, we aim to create far better signals for consumers to be able to know if a news is trustworthy and credible as it is made up by the people themselves, regardless of what other influential individuals may be saying. This essentially puts everyone at the same level. The goal is to provide a platform for authors with a strong will to reveal something anonymously and a proper crowd-based judging mechanism. It will help the readers gain true insights based on the rating of crowds rather than various altered stories, be it through mainstream journalism or social media.

The rest of the paper is organised as follows: In Sect. 2, the preliminaries are explained. Section 3 focuses on the proposed approach for the ecosystem, including the system architecture and the flow of system modules. Section 4 is concluding our proposed approach for this ecosystem.

2 Preliminaries

2.1 Journalism

The journalists and media houses, specifically the TV news is essentially reporting on oneself. It reports events in accordance with its own formats rather than understanding the facts and then communicating them in terms of the real-world scenario, considering the complexities and ambiguities associated with it [3]. During a time when there is clearly a declining trust in the news media, it is vital to create a platform to share news without any bias. Media is more prevalent today in our society than it ever was in our history, but journalism as it is today is failing to meet its expected standards of true accounts that are fact-based and validated by multiple sources. Mass media is corporate owned, and hence, most of it is scripted, spiced, and numbers driven [4]. This is the biggest disadvantage with journalism today. The public rarely gets a firsthand account of any news, i.e. direct access to events as they happened. Instead, they are exposed to rehashed second, or thirdhand accounts.

2.2 Blockchain

Blockchain is the technology used to update digital transaction records in the form of an incorruptible decentralised digital ledger in real-time [5, 6]. This allows maintenance of a permanent and tamper-proof record of transactional data [7]. Adding data to the chain and reviewing the data are possible by everyone, but changing the data on the blocks is not possible without 51% of the members agreeing to it which is almost computationally infeasible due to its proof of work mechanism [8, 9]. The technological advantages of blockchain are as follows:

  • Durability—As they are distributed networks, there is no single point of failure. This distribution of risk among the whole blockchain makes it more durable than centralised systems.

  • Transparency—Each node on the network maintains an identical copy of the whole blockchain. This level of transparency makes activities and operations highly visible, thereby reducing the need for trust [9].

  • Immutability—Due to the consensus mechanism, there is a need for validation by other nodes and a way to trace the changes. This gives users the highest degree of confidence that the chain of data is accurate and unaltered [9].

  • Process Integrity—As distributed protocols are executed as they are written because of the non-alteration property, users can trust the actions executed by the protocol. Moreover, there is no human intervention involved.

2.3 Miners

Adding transaction records to a public ledger containing the previous transactions is known as mining. The computation of the block hash is a difficult task and requires high computational power. Miners are those nodes that provide with the computational power to solve the mathematical problems of the proof of work (PoW). At every certain interval of time, they take a few of the transactions from the pending pool of transactions and start hashing. They are paid for in terms of digital currency as a return [10].

2.4 Ethereum

Ethereum is a platform for developing decentralised applications that run on smart contracts. These applications execute exactly as they are programmed without the possibility of third-party interference, service denial or censorship. Ethereums public blockchain enables developers to create decentralised applications without worrying about the infrastructure involved in creating the blockchain. It has its own digital currency ether associated with it for the transactions to occur [11, 12].

2.5 Smart Contracts

Smart contracts are built on the Ethereum platform. Smart contracts are essentially blocks of code or program snippets that are deployed on the nodes of the blockchain. They can be used to exchange anything of value such as money, shares, and property in a conflict-free way without the use of middlemen, i.e. banks in the case of money, brokers in the case of shares or property. They eliminate any third parties in a transaction. These transactions are traceable and irreversible. They must be deterministic, and therefore, each input should map to the same value or produce the same output every time. A non-deterministic smart contract implies that when it is triggered, it will result in random results being returned for every node on the network. Therefore, on its execution result, this would prevent the network from reaching a consensus. In addition, since smart contracts lie on the blockchain, they each have an address which is unique. A smart contract can be executed by using the address assigned to its transaction. Hence, it executes independently on each node in the network depending on the data in the transaction that triggered the node. A properly written smart contract should clearly list all the possibilities or outcomes of the contract. The smart contract of every node maintains the same state of variables, inputs, and outputs [6].

2.6 Ethereum Virtual Machine (EVM)

The EVM, or Ethereum Virtual Machine can solve any computational problem. Smart contracts are powered by EVM. Ethereum enables users to make their own operations and hence serves as a platform for decentralised blockchain applications. The EVM is used to read and execute the smart contract-specific programming language bytecode [11].

2.7 MetaMask

MetaMask is an extension available for Chrome, Firefox, and Brave which allows users to run decentralised applications (DApps) in their browser without running a full Ethereum node. DApps are essentially Ethereum decentralised applications. It includes a secure sign-in process with a friendly user interface that enables the proper management of identities on various sites and secure signature blockchain transactions. In essence, it is a self-hosted wallet to store, send, and receive ETH [13]. To use MetaMask, it must first be installed on a browser. After installation, an icon at the same level of the address bar would be visible. The icon then needs to be selected, and at this point, the user can proceed with logging in. Funding MetaMask with ether is done through the Ropsten Test Network. MetaMask does not support most synchronous Web3 API methods. Web3JS library and conditionals are used to manage the error states.

Fig. 1
figure 1

Client Ethereum interaction using Web3JS

2.8 Web3JS

Web3JS is a group of modules each with different functionalities for the Ethereum ecosystem. It enables interaction between the user and a local or remote Ethereum node, with the help of an HTTP or an IPC connection. This is shown in Fig. 1

Blockchain applications can be developed with Ethereum using the following aspects:

  1. 1.

    Solidity is used for developing smart contract code which is deployed on blockchain.

  2. 2.

    To develop clients to interact with blockchain to read and write data from the blockchain using smart contracts.

Web3JS allows the programmer to develop clients that will eventually interact with the Ethereum blockchain. It is also a library that provides user with the facility to transfer or transact the Ether between two different accounts. It also provides the facility to read/write from the smart contracts, or to create the smart contracts.

This communication takes place via JSON Remote Procedure Call protocol. Ethereum keeps a duplicate of the programs and data on the blockchain through a network of peer-to-peer nodes. JSON RPC is used to request an Ethereum node from Web3JS to read or write data to a blockchain network the same way jQuery is used to read or write data to a Web server by JSON API. [14].

To read data from smart contracts using Web3JS, the following things are necessary:

  1. 1.

    The smart contract, a JavaScript representation to interact with

  2. 2.

    A way to call the function on the smart contract during the process of reading the data

To retrieve the JavaScript representation of the smart contract, the function used is web3.eth.Contract(). Two arguments are passed to this function for the smart contract application binary interface (ABI) and for the smart contract address.

2.9 Blockchain Wallet

A software program which allows users to buy, sell, and check balance for their digital currency (or assets) is known as a blockchain wallet. It is used by users for exchange of cryptocurrencies, such as bitcoin and ether.

Blockchain wallets do not function as the way traditional wallets do, in that all the transactions are stored in the blockchain. Transactions in the blockchain involve the assigning of the cryptocurrency to the receiver’s wallet address. In addition, these transactions are stored in the distributed ledger [11].

Blockchain transactions are based on asymmetric cryptography which uses two types of keys:

  • Private key

  • Public key

The public and private keys are non-identical pairs of large numbers, of which the public key may be shared and the private key may not be shared. The private key helps in uniquely identifying the user in the network and can be considered as a personal, digital signature and becomes invalid if the signature is altered.

For example, Person 1 sends some digital currency to Person 2; Person 2 is assigned as the owner of that currency to the address of Person 2’s wallet. For verification of the transaction, Person 2’s private key should match the public key assigned to the currency by Person 1. Once the transaction is verified, the transaction is combined with other transactions to form a block. The block is then added to the ledger, i.e. it cannot be altered, and the changes are reflected in the blockchain wallet.

3 Proposed Approach

3.1 Traditional Approach

Figure 2 is the centralised system for any news/thought sharing application available today. The organisation/developer of the application has complete control over user registration, data management, content management, etc. This system has certain drawbacks:

  1. 1.

    Single point of failure

  2. 2.

    Ownership of data

  3. 3.

    Concentrated rules and regulation

  4. 4.

    Organisation is always correct

  5. 5.

    All profit going to the central authority

  6. 6.

    Fake news being publicised without any measures taken.

Fig. 2
figure 2

Traditional system

3.2 Proposed Approach

The proposed approach involves deploying a smart contract on the Ethereum blockchain rather than deploying a code to a central server. The smart contract would include the required functionality of login, article creation, upvote/downvote module, and reputation module. When the smart contract is deployed, it would behave as one code being replicated and run on each node independently.

Fake news can be tackled by the upvote/downvote system by the community. Since people will be charged and they risk losing cryptocurrency, they will not be downplaying news without solid reason to. If they do, the local community who knows about the news being fake will downvote it. Crossing a threshold will mark it fake. In this way, the system will tackle the spreading of fake news.

Fig. 3
figure 3

System architecture

3.3 System Architecture

System architecture essentially consists of the flow of the whole system and is as shown in Fig. 3:

  1. 1.

    Provide the user with user interface to interact with the smart contract.

  2. 2.

    The user would be able to login/logout with the Ethereum credentials.

  3. 3.

    Addition of news/article by any journalist would cost certain amount of ether.

  4. 4.

    This transaction would be broadcasted to every node on the network.

  5. 5.

    As soon as consensus is achieved, the news would become visible to all the users.

  6. 6.

    Users will be allowed to upvote/downvote the authenticity of news/article with a little cost.

  7. 7.

    Rewards the users based on their authenticity. The system can be divided into the following modules.

Fig. 4
figure 4

Sequence diagram: post module

3.4 Post Management Module

This module will be used by the user to post a news on the platform. The sequence flow of events that occurs when a post is posted is shown in Fig. 4:

  1. 1.

    User creates a post message request.

  2. 2.

    Browser interacts with the Web3JS which is injected via MetaMask.

  3. 3.

    Web3JS sends a transaction for execution of the post message function.

  4. 4.

    User signs the transaction using MetaMask, and the transaction is added to the pool of pending transactions.

Fig. 5
figure 5

Reputation factor calculation

3.5 Reputation Module

The sequence flow of events that occur when the reputation module is executed for each user after a post is accepted or declined by the system is shown in Fig. 5:

  1. 1.

    After all users upvote/downvote, reputation factor module is called.

  2. 2.

    Two reputation factors have to be calculated. Factor 1 represents the trust on an individuals post by calculating the probability of correctness of posts posted by an individual based on history of an individual on ecosystem. It is defined as the number of posts posted by an individual accepted. Factor 2 represents the trust on an individual by calculating the probability of acceptance of posts as truthful that were upvoted by an individual. It is defined as number of posts accepted for which the user upvoted.

    $$\begin{aligned} \text {Reputation Factor} = (\text {Factor}1 + \text {Factor}2)/2 \end{aligned}$$
    (1)
    $$\begin{aligned} \text {Normalised Reputaion Factor} = 5*(\text {Reputation Factor}) \end{aligned}$$
    (2)
  3. 3.

    The generalised factor is calculated by taking the mean of both the factors and then normalised using min–max normalisation. The final range is [0,5].

  4. 4.

    The reputation factor for all users is updated in Ethereum blockchain.

A user is identified by their Ethereum credentials rather than the wallet addresses, so user having multiple wallet addresses cannot falsify the reputation factor as all the addresses will be mapped to a single user.

Also, if the attacker uses various Ethereum accounts to falsify the reputation factor, they risk losing all the ether they used to falsify the news. This would be a lot of ether as it is difficult to beat the community and ensure 51% advantage in attackers favour. Hence, using reputation factor is secure.

Fig. 6
figure 6

Sequence diagram: upvote/downvote module

3.6 Upvote/Downvote Module

The sequence flow of events happening when user upvotes/downvotes a particular news post is explained in Fig. 6:

  1. 1.

    User upvotes/downvotes.

  2. 2.

    The interacting module, i.e. Web3JS, informs the blockchain about the transaction and initiates it.

  3. 3.

    As the transaction is added to the pool, the miner selects it and solves the mathematical problem while checking for user login status.

  4. 4.

    The block gets added to the Ethereum blockchain.

4 Conclusion

Through this application, we aim to create a novel solution to prevent news suppression. This would be the first step towards building a democratic ecosystem for journalism. The architecture described can be further implemented to achieve the goal of a democratic ecosystem. It would give power to the community rather than the media houses for writing and publishing stories. Readers would be able to gain true insight on news rather than the fabricated news that is often published these days to benefit the media houses. This would eliminate any dependency between journalists and publishers or journalists and ad agencies. Journalists would be able to exercise true freedom of press and be able to deliver and circulate content without the interference of a central authority. By using a blockchain ecosystem, no central authority would be able to filter articles based on personal bias, creating a platform where the right questions will be asked, and the right voices will be heard.