1.1 Related Work
To our best knowledge, at this moment there is only
one solution that has the purpose of moving rating
systems into the blockchain. The solution is reported
in (Shaker et al., 2021), but it seems to reiterate the
ideas from (Buterchi and Arusoaie, 2020). Despite
the similar motivation, the authors approach decen-
tralized rating in a different manner. In the system
proposed by the authors, the users need to register
using their Ethereum addresses. It is worth noting
that the authors use these Ethereum addresses to vali-
date the rating process and, consequently, to test if the
users have already rated. Even though it seems to be
a suitable approach, in fact, it introduces vulnerabil-
ities. Given that the users can generate an unlimited
number of Ethereum addresses, they can register us-
ing multiple addresses. By expressing their ratings
multiple times, the users alter the integrity and the
credibility of the rating record. In the current paper
we address this problem by using an authentication
mechanism, which allows us to reduce the fraudulent
activities and to preserve the integrity of the rating
data. In the context of our solution, the Ethereum ad-
dresses are used only for the interaction with the smart
contract and for payment purposes (i.e., the users need
to pay for the rating operations). The authentication
mechanism will be discussed in detail in Section 3.3.
Another problem concerning the solution proposed in
(Shaker et al., 2021) is that the rating method does not
guarantee the relevance of the final ratings. Given that
it simply computes the average of the ratings (i.e., the
sum of the ratings divided by the number of raters),
the final ratings could drop considerably when the
users submit ratings close to 0. In the current paper,
we avoid this problem since we propose a like/dislike-
based rating system. The users have access to the final
ratings, which consist of the total number of likes and
dislikes for each rated resource.
Besides the aforementioned solution, decentral-
ized rating can be associated with decentralized vot-
ing (Bocek et al., 2009; Khader et al., 2012; Ayed,
2017; Hsiao et al., 2018; Khoury et al., 2018). In the
case of voting, the users express their vote for a spe-
cific candidate. The action of voting is irreversible
and the users cannot vote more than once. In the
case of rating, the users can rate internet resources and
their actions are not limited to only one rating opera-
tion. Despite the visible differences, voting and rating
are similar, since both systems need the same security
properties, including privacy (i.e., the identity of the
voter/rater should not be disclosed) and integrity (i.e.,
the voting/rating system should be fraud-resilient).
1.2 Contributions
In order to address the transparency issues of the
traditional rating systems, we propose a blockchain-
based decentralized application for rating.
Our solution provides a trustworthy and transpar-
ent rating system, given that the rating record is stored
on the blockchain and the smart contract’s codebase is
publicly available. The proposed rating system sim-
ulates the functionalities of a like/dislike-based rat-
ing system. The smart contract handles the rating op-
erations and prevents multiple rating situations (i.e.,
when a user attempts to submit multiple likes or mul-
tiple dislikes for a resource). Besides the smart con-
tract, our solution comes with an additional authen-
tication mechanism. The authentication mechanism
is helpful due to the following reasons: guarantees
the uniqueness of the users, reduces fraudulent ac-
tions (i.e., it does not allow unauthenticated users to
rate) and provides various authentication options. In
the current form of the application, the users can rate
resources from Google (e.g., YouTube), GitHub and
Spotify. The decentralized application comes with an
intuitive user interface, which is divided into three
sections: authentication, rating and data visualization.
1.3 Paper Organization
In Section 2, we present the concepts, the tools and
the technologies used in the current paper. Our con-
tribution, i.e., decentralized application for rating, is
detailed in Section 3. In Section 4 we present the
experiments that we have performed, along with an
overview of their execution costs. Finally, we con-
clude in Section 5.
2 PRELIMINARIES
This section contains a brief presentation of the
tehnologies, tools and programming languages that
we used in the development of our solution.
The blockchain is a new technology that records
data across a peer-to-peer network in a distributed
shared ledger. The technology was initially designed
for cryptocurrency trading (Nakamoto, 2009), and
nowadays it also supports smart contracts.
Ethereum (Wood, 2014; Buterin, 2013) is a pop-
ular blockchain platform, which enables the use of
smart contracts. Smart contracts can simulate real-
world agreements for different kinds of assets. Usu-
ally, they are written in high-level languages (e.g., So-
lidity, Vyper) and compiled into Ethereum bytecode
ICSOFT 2021 - 16th International Conference on Software Technologies
514