<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Assessment Organization Service Based on Ethereum Platform</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Pavel I. Danilin</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Artur A. Lukin</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Elena N. Reshetova</string-name>
        </contrib>
      </contrib-group>
      <fpage>291</fpage>
      <lpage>294</lpage>
      <abstract>
        <p>This work is dedicated to the description of principles of construction a decentralized application designed for experts' assessment of different kinds of works based on Ethereum blockchain platform. The activity of experts' assessment is organized by generation and publishing a smart contract and generation of a web widget for interaction with it. We have developed a web service for the automatization of the process. The blockchain technology gives the opportunity to store reviews securely and exclude forgery.</p>
      </abstract>
      <kwd-group>
        <kwd />
        <kwd>blockchain</kwd>
        <kwd>cryptocurrency</kwd>
        <kwd>distributed ledger</kwd>
        <kwd>mining</kwd>
        <kwd>smartcontracts</kwd>
        <kwd>decentralized applications</kwd>
        <kwd>Ethereum</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>The developed service is a software module that can be used to organize assessment
activity. This module allows you to securely store reviews on various types of work in
electronic form, such as: innovative projects, essays, diploma and course works. The
blockchain technology will ensure the safety, immutability of these reviews. We have
identified three parties involved in the process of reviewing a work. These are the
author of the work, the expert assessing the work and the platform on which the work
was done or at which we work (hereinafter simply referred to as the "platform"). A
platform could be a university, an innovative projects competition, or a conference).
All these parties are interested in the introduction of the provided service. The author
of the work will be sure that his work will be preserved in the bockchain and correctly
assessed by the expert. For the expert, the blockchain keeps the history of his
assessments, that is, creates a kind of resume that confirms his competence. And for
platforms, this service will provide transparency in the assessment of works. This is a step
towards decentralization in assessment issues.</p>
      <p>In this article, we first describe the general concepts of the system. Then the
following subsystems for creating smart contracts and web widgets will be described.
Finally, the results of the project will be presented.</p>
    </sec>
    <sec id="sec-2">
      <title>Common concepts</title>
      <p>The organizers of the assessment process use their private solutions to automate it.
Usually this is a web portal, using which authors load projects, experts assess. In such
a case it might be possible to change the grade, because you cannot verify the
functionality of the private system the platform uses. Our solution, using the properties of
blockchain, allows to guarantee to a certain extent the transparency of the assessment
process.</p>
      <p>While working on a project it was necessary to decide on the blockchain platform
on which our solution will be based. The main criteria were as follows:
1. The possibility for creating and executing smart contracts
2. The availability of tools for interaction with the site and a smart contract
3. The size of platform capitalization
4. The size of the platform community
The first two criteria were necessary for the technical side of our project, the last two
were to ensure the reliability of the platform.</p>
      <p>
        After comparing the options, we chose the Ethereum platform[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ][
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] as the most
promising and popular blockchain platform, supporting smart contracts, we have
today.
      </p>
      <p>
        The user of our service is a platform administrator, on which the assessment takes
place. The administrator interacts with a web page, enters the necessary parameters
for the assessments and configures some properties of the smart contract. The service
creates a smart contract, loads it into the Ethereum network, and loads the archive
with the source files of the widgets to interact with the smart contract. To use the
widgets, it's enough to insert their contents into the source files of the site. To interact
with widgets, you need the Metamask[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] extension installed in the browser. This
extension allows you to interact with the Ethereum network, taking responsibility for
communication with an Ethereum network node.
      </p>
      <p>Administrator
Author
Expert
Viewer</p>
      <p>Assessment</p>
      <p>Web-site
Assessment
management</p>
      <p>widget
ProjectDownload</p>
      <p>Widget
Assessment</p>
      <p>Widget
Viewing</p>
      <p>Viewing Widget</p>
      <p>Ethereum blockchain</p>
      <p>network
Metamask</p>
      <p>Smartcontract
In the course of our work, we identified two subsystems of the product - a subsystem
for the generation of a smart contract and a subsystem for generating a widget.
Platform administrator</p>
      <p>Web UI Dapp parameters</p>
      <p>Smart contract
generation subsystem</p>
      <p>Smartcontract
generation
Smartcontract
deployment
Dapp</p>
    </sec>
    <sec id="sec-3">
      <title>Smart contract generation subsystem</title>
      <p>
        This subsystem is a Node.js[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] module that processes post requests that accept the
assessment parameters. Based on the received parameters, the module generates the
source code of the corresponding smart contract on the Ethereum smart contract
programming language of Solidity. The generated text of the smart contract is compiled
into a bytecode and placed on the Ethereum network using Metamask in the Ethereum
network block. The resulting address and smart contract interface are passed to the
web widget creation subsystem.
4
5
      </p>
    </sec>
    <sec id="sec-4">
      <title>Web widget generation subsystem</title>
      <p>
        This subsystem is a Node.js[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] module that processes post requests, accepts the
assessment parameters, the address and abi of the smart contract. The first query creates
a cache object that contains the widget templates. The module makes some
substitutions into the templates and forms the source code for the widgets, that are archived
and sent in response.
      </p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion</title>
      <p>In this paper, a description was given of the principles for constructing a decentralized
application designed to organize expert evaluation of various types of projects based
on the Ethereum platform blockchain platform. The mechanism of an expert
assessment based on blockchain was demonstrated in work. Now assessment processes can
be organised based on blockchain that allows to store securely the reviews and
excludes possibility of forgery</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>Ethereum</given-names>
            <surname>Project</surname>
          </string-name>
          .
          <article-title>Ethereum Blockchain App Platform</article-title>
          . https://www.ethereum.
          <source>org/ (Accessed</source>
          <year>2017</year>
          -
          <volume>06</volume>
          -25)
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Ethereum</given-names>
            <surname>White</surname>
          </string-name>
          <article-title>Paper</article-title>
          . White Paper https://github.com/ethereum/wiki/wiki/White-Paper (
          <year>Accessed 2017</year>
          -
          <volume>06</volume>
          -25)
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Metamask</surname>
          </string-name>
          . Metamask Brings Ethereum to your browser https://metamask.io/ (
          <year>Accessed 2017</year>
          -
          <volume>06</volume>
          -25)
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. Node.js. Node.js https://nodejs.org/en/ (
          <year>Accessed 2017</year>
          -
          <volume>06</volume>
          -25)
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>