<!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>Smart-contract based Access Control on Distributed Information in a Smart-City scenario</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Francesco Buccafurri</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Cecilia Labrini</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lorenzo Musarella</string-name>
          <email>lorenzo.musarella@unirc.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University Mediterranea of Reggio Calabria</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>In the smart-city paradigm, data sharing is one of the pillars needed for its full implementation. Among the other aspects, we refer to the opportunity for users (citizens, companies, organizations) of exploiting data sources managed both by institutional parties and third parties involved in the smart-city life. Open-data is an answer to above need, but, sometimes data cannot be disclosed publicly, coming to the concept of closed data. In this case, access control takes a fundamental role. The problem is not trivial, since we deal with a highly open and dynamic environment, and, at the same time, that a certain level of accountability should be guaranteed to contrast misbehaviour and solve possible legal controversies. In this paper, we propose a solution based on the combination of Ethereum smart contracts, eIDAS-based attribute and identity management, and the distributed le system IPFS.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>problem are described. Then, in Section 4, we explain the architecture of our proposal and
the actors involved in it. We brie y analyze, in Section 5, the most important security aspects
and properties of our solution. In Section 6, some features of the implementation phase of the
proposal are described. In Section 7 we survey the related work. Finally, in Section 8 we draw
the conclusions and the we sketch future works.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Background</title>
      <sec id="sec-2-1">
        <title>1. Ethereum</title>
        <p>In this section we present some background concepts to better introduce, later, our proposal.</p>
        <p>
          Ethereum is a public blockchain-based platform that allows the development of
decentralized applications (Dapps) able to interact with each other in a secure and fast way [
          <xref ref-type="bibr" rid="ref13 ref29">13, 29</xref>
          ].
Ethereum provides a decentralized and Turing-complete virtual machine able to execute
scripts and code. In Ethereum, there are two di erent kinds of accounts: the Externally
Owned Account (EOA) and the Contract Account (better known as Smart Contract). The
former is controlled by a private key (like an account of the Bitcoin blockchain), while
the latter is controlled by its code, which is executed by every peer of the blockchain so
that the output of the execution is well-known to them. Moreover, a smart contract can
be written easily thanks to Solidity, a high-level programming language that implements
the Ethereum Virtual Machine bytecode [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
        </p>
        <p>Smart contracts are used also as agreements between users that do not trust or do not
know each other and, for these reasons, they de nitely represent the killer feature of
Ethereum. Furthermore, everything that is on a smart contract is permanently stored in
the Ethereum blockchain to guarantee the traceability of actions.</p>
      </sec>
      <sec id="sec-2-2">
        <title>2. Attribute-Based Access Control (ABAC)</title>
        <p>Access control is one of the hottest and trend topics of the last decades in the IT world.
Indeed, to guarantee a right, secure and non-invasive mechanism that enable or not the
access to the resource is always necessary. In particular, an access control mechanism
should satisfy, among the others, the following properties: it does not have to allow
nonauthorized people to access the resource and it does not have to deny authorized people
not to access the resource. The type of access must be subject of authorizations as well.
There exist many families of access control, such as Mandatory Access Control and
Discretional Access Control, for what concerns the exibility of authorization rules, Role-Based</p>
      </sec>
      <sec id="sec-2-3">
        <title>Access Control, Context-Based Access Control, Attribute-Based Access Control, etc., for</title>
        <p>what concerns the way to associate authorizations to subjects.</p>
        <p>In particular, Attribute-Based Access Control (ABAC) is de ned as an access control
mechanism in which authorization is computed evaluating the ful llment of one (or more)
required attribute. The National Institute of Standards and Technology (NIST) de nes</p>
      </sec>
      <sec id="sec-2-4">
        <title>ABAC as follow [17]: \An access control method where subject requests to perform operations on objects are granted or denied based on assigned attributes of the subject, assigned attributes of the object, environment conditions, and a set of policies that are speci ed in terms of those attributes and conditions."</title>
        <p>As a matter of facts, after some decades of supremacy Role-Based Access Control (RBAC),
ABAC is emerging as de nitely more suitable than RBAC to large environments, in which
de ned roles must be set by the management and associated with people, resulting in what
is known as role explosion. In our context (i.e., smart city), ABAC is the elective choice.</p>
      </sec>
      <sec id="sec-2-5">
        <title>3. Smart City</title>
        <p>
          Nowadays, cities face di erent problems and challenges to improve their citizens' quality
of life [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ]. Governments, communities, and businesses increasingly rely on technology
to overcome the problems that arise daily [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ]. Smart cities can make an intelligent
response to di erent kinds of needs, including public safety and services, industrial and
commercial activities, transportation, and healthcare [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ]. In detail, a city becomes a
smart city when it combines the usage of network infrastructure, software systems, server
infrastructure, and client devices to better connect critical city infrastructure components
and services. Smart cities are an e ective integration of smart planning ideas, smart
development approaches, and smart management methods. On the other hand, a city
cannot be de ned as smart if it adopts limited and sectorial improvements.
Indeed, a smart city must involve di erent elements such as smart governance, smart
economy, smart mobility, etc. Smart cities make use of new types of information and
communications technology to support common sharing which is one of their most
important characteristics. It is well-known that the features of blockchain technology may
contribute to smart city development through sharing services.
        </p>
      </sec>
      <sec id="sec-2-6">
        <title>4. InterPlanetary File System (IPFS)</title>
        <p>
          IPFS is a peer-to-peer distributed le system that connects all computing devices with the
same system of les [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ]. It provides a high-throughput content-addressed block storage
model, with content-addressed hyperlinks. IPFS employs content-addressing to uniquely
identify each le in a global namespace connecting all devices. Furthermore, it identi es,
veri es and transfers les relying on the cryptographic hashes of their contents [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]. It also
integrates technologies such as self-certifying namespaces, an incentivized block exchange,
and distributed hash tables (DHT), etc. IPFS is built around a decentralized system of
user-operators who own a portion of the total data, creating a resilient system of le
storage and sharing. As a consequence of this decentralized approach, IPFS has not a
unique point of failure, and nodes do not need to trust each other as well.
The IPFS user, when uploads a le to the system, will have back a unique
cryptographichash string (IPFS-identi er of the document) through which she/he can retrieve the le
every time and everywhere. Indeed, it is not required that the user stores the original
le in her/his devices, but it is enough to know the IPFS-identi er of the document to
obtain it. The hash string can be seen as a Uniform Resource Locator (URL) of the
World-Wide-Web.
3
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Scenario and Motivation</title>
      <p>
        In the widest interpretation of the concept of a smart city, one of the main challenges is to
guarantee a secure, trusted and fast data sharing. This may have a signi cant impact both
in open-government policies that are crucial in smart cities [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ], and in the smart fruition of
information to deliver complex services that need multiple data sources.
      </p>
      <p>In this scenario, it is fundamental to implement an access control mechanism that is able
to decide who can read what, by taking into account the fact that we operate in an open
environment, in which interested subjects cannot be predetermined. It is worth noting that,
although smart cities should provide open data, which are accessible with no limitation, also
closed data are relevant for the full implementation of smart-knowledge-based communities.
Therefore, access control becomes necessary.</p>
      <p>To better explain, consider the following example. Suppose that some closed data are
produced by a smart city entity like a hospital or a court. Since we are talking about sensitive
data, it is reasonable to think of some policies for which only people belonging to the medical
board (in the case of healthcare data) or lawyers (in the case of law data) can access.</p>
      <p>As seen above, there are many access control models but, among all, due to the open nature
of our scenario, Attribute-Based Access Control (ABAC) seems the most suitable one because
neither identities nor roles are able to capture all the conditions which should be satis ed by
subjects to access information. Moreover, ABAC allows us to implement anonymous-credential
mechanisms to avoid that sensitive data of subjects are disclosed to possibly untrusted parties
and, thus, to preserve privacy.</p>
      <p>Obviously, if we think about a smart city and its data it is clear that it is necessary to
ensure properties like accountability, privacy, trust and non-repudiability (among the others).
In this sense, Ethereum blockchain perfectly ts with these requirements. Another motivation
that led us to choose Ethereum is that the mechanism of veri cation of attributes must be
trusted. Furthermore, the usage of an Ethereum smart contract enforces the attribute-based
access control mechanism without any privacy leakage, since attribute-based authorizations are
anonymous and prevent any disclosure of personal, sensitive, and not required information.</p>
      <p>
        Anyway, Ethereum, as every blockchain, is not the most suitable platform for sharing and
storing large les since the blockchain is replicated on many nodes and a lot of storage space is
required without serving an immediate purpose [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. Moreover, the blockchain becomes bloated
with data that has to be propagated within the network and the price of operating blockchain
nodes increases because more data needs to be processed, transferred and stored. File sharing
platforms can be leveraged to solve these problems. Users can easily share large les and still
bene t from the blockchain.
      </p>
      <p>
        InterPlanetary File System (IPFS) is a particularly interesting protocol peer to peer le
sharing platform that combines le sharing and hashes. Cryptographic hashes serve to securely
identify a le's content. IPFS makes it possible to store and share large les more e ciently and
it is based on cryptographic hashes that can easily be stored on a blockchain. Unlike existing
cloud storage, IPFS has the advantage that data is distributed and stored in di erent parts of
the world and not on a central server [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]. Finally, a solution exploiting IPFS guarantees data
availability.
4
      </p>
    </sec>
    <sec id="sec-4">
      <title>Our Proposal</title>
      <p>In this section, we propose our solution regarding the scenario discussed above.</p>
      <p>First, we de ne all actors involved in it, then we present all the steps needed to reach our
goal.</p>
      <p>Our idea is the following. Suppose that the smart city produces, owns and provides data
that it wants to share not to everybody but only to who ful lls some requirements. To be
more concrete, but without loss of generality, we describe our solution in the healthcare setting,
although it can be easily extended to every typical context of smart cities (e.g., transport,
commercial and law data, etc.). In our proposal, we assume that documents stored on IPFS
are already encrypted and, for this reason, objects of our access control authorizations are keys
instead of nal resources.</p>
      <p>In our solution, we de ne the following actors:</p>
      <sec id="sec-4-1">
        <title>User U , a citizen that asks for data;</title>
        <p>Identity Provider IP , whose task is the management and veri cation of user identities;
Attribute Provider AP , whose task is the management and veri cation of user attributes;</p>
      </sec>
      <sec id="sec-4-2">
        <title>Access Service Provider ASP ;</title>
        <p>Publish Smart Contract P SC, an Ethereum Smart Contract used for the publication of
documents on IPFS;
Access Smart Contract ASC, an Ethereum Smart Contract used for verifying the policy
and, where appropriate, for granting the key for the decryption of the document;
Oracle O, that is used by ASC for checking the validity of the certi cate of U ;
Content Manager CM , who is in charge of encrypting documents, publishing them on
IPFS, associating them to the right policy and addressing the key-request when U ful lls
its requirements;</p>
      </sec>
      <sec id="sec-4-3">
        <title>IPFS, used for storing data in a distributed way;</title>
        <p>Ethereum, a public blockchain allowing the development of smart contracts.
Once de ned all entities involved in our proposal, let's describe the steps of our solution:</p>
        <sec id="sec-4-3-1">
          <title>1. Policy Setup</title>
        </sec>
        <sec id="sec-4-3-2">
          <title>2. Encryption</title>
        </sec>
        <sec id="sec-4-3-3">
          <title>3. Publication</title>
          <p>In this rst phase, the CM associates the document di with the policy p^. If p^ does not
exists, CM will generate it compliant with the XACML standard.</p>
          <p>In particular, every category has a set of attributes related to and, as a consequence, a
di erent policy. In our scenario, we refer to the category of healthcare data, where, for
the sake of presentation, the attribute to be ful lled is to be a doctor.</p>
          <p>CM encrypts di with a symmetric encryption function (such AES) by using the key
related to the policy associated with healthcare data. Indeed, in accordance with the
above, every category (and every policy) has a di erent encryption key. Let us denote by
k^ the key associated with the policy p^. Now, CM obtains the encrypted document ei.
The goal of this step is to publish on IPFS the encrypted document ei and the related
policy p^. This could be achieved through di erent ways. Indeed, CM could simply publish
it directly with an IPFS client. Anyway, accordingly to the accountability features aimed
by our proposal, we allow the publication only trough the Ethereum smart contract.
In detail, CM calls a function of the P SC through her/his Ethereum address ET HCM
with ei as input obtaining as output the IPFS-hash hi related to ei. At the same time,
CM calls another function of the same smart contract P SC to publish on IPFS the policy
p^, if it still does not exist in the Ethereum environment, thus obtaining the IPFS-hash
hp^.</p>
          <p>At this point, CM maps hi with the corresponding policy hp^ on the P SC. The result is
a mapping between the policy p^ and the list of documents associated with. Furthermore,
there is a mapping between the area of interest (in this case, healthcare) and p^.</p>
        </sec>
        <sec id="sec-4-3-4">
          <title>4. Attribute Veri cation</title>
          <p>
            In this phase, the user U requests to ASC the policy that she/he has to satisfy related
to healthcare, obtaining hp^. Now, similarly to the Publication phase, U could obtain the
document directly with an IPFS-client, but again, our protocol enforces U to get it only
via ASC. At this point, U knows p^ and she/he can see that the attribute required is to be
a doctor. For the assessment of the attributes owned by users, we apply an eIDAS-based
approach [
            <xref ref-type="bibr" rid="ref26">26</xref>
            ], in which a SAML-2 authentication process is established to involve both
an Identity Provider and one or more Attribute Providers which are institutional entities
responsible for providing information (like title, licences, quali cations, age, etc.) about
digital identities. To be compliant with real-life regulations, we cannot imagine that every
user plays the role of the service provider in an eIDAS authentication loop. Therefore,
we introduce an intermediate service, called Access Service Provider (ASP ), needed to
perform the authentication request and to obtain the valid corresponding assertion. In
detail:
          </p>
          <p>U goes to ASP to request, by playing the role of Service Provider the assertion in
which there is the information certifying the attribute to be a doctor;
through a SAML2-compliant schema, ASP forwards the request to the Identity
Provider IP ;
after that, IP contacts the Attribute Provider AP (in the use case, the medical
board) asking for the certi cation of the attribute being a doctor;
now, AP sends the reply to IP , which will contact ASP to communicate the
information obtained through an assertion. Finally, ASP returns to U the assertion and
the nonce related to. In particular, the nonce allows applications to correlate the
identi er of the assertion with the initial authentication request and it is used also
to avoid replay attacks (see Section 5).</p>
          <p>ET HU sends a transaction to ASC calling a function in which she/he puts the hashed
identi er of the assertion and the nonce as input. The smart contract, now, has to verify
the validity of the assertion and, as a consequence, the real possession of the attribute
required by the policy p^. To do that, ASC invokes the Oracle O, that is in charge of
checking the overall validity of the previous steps with IP .</p>
          <p>If the check succeeds, ASC emits an event in which it con rms the satisfaction of the
policy.</p>
        </sec>
        <sec id="sec-4-3-5">
          <title>5. Key Granting</title>
          <p>In this step, CM sees the event of success on the blockchain (it can be done via a client
application that is able to show, and possibly lter, events) and CM sends a
transaction blockchain to ET HU with the information about k^. Obviously, before to send the
transaction, CM should encrypt the key to prevent from its disclosure to all blockchain.
To reach this goal, CM encrypts k^ with U 's public key, obtaining EpUk(k^). The result is
an ethereum transaction from CM to ET HU through the ASC having as input data
EpUk(k^). We remind that input data is an optional eld of an ethereum transaction that
can be used to share other information.</p>
          <p>Finally, U is the only one who can decrypt, with her/his private key, the chipered key
EpUk(k^). After the derivation of k^, U is able to dechiper also ei, thus obtaining di.
5</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Security Aspects</title>
      <p>In this section, we brie y analyze the main security aspects that are involved in our proposal.
This paper, indeed, can be view as a position paper presenting some results obtained in an
industrial research project still alive. A more detailed analysis is then forwarded to the next
steps of our work.</p>
      <p>
        Let us begin with the de nition of the adversarial model, that is particularly relevant for our
proposal because by modeling the role of attackers, with their capabilities and goals, we could
help to improve the cyber defense [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] and, since we are facing the case of closed data in the
smart city scenario, it is necessary to ensure that some fundamental security evaluations are
valid. In detail, in our proposal, we assumed that the Content Manager, the Identity Provider
and the Attribute Provider are trusted parties and that the attacker can be either a user or the
Access Service Provider.
      </p>
      <p>In particular, the Access Service Provider could operate in a malicious way since it could
give the wrong assertion to the wrong users. Anyway, this attack is contrasted by using the</p>
      <sec id="sec-5-1">
        <title>SAML-2 standard because the Authentication Request and the Authentication Response must</title>
        <p>coincide, so the ASP is not able to give the wrong response to the wrong applicant.</p>
        <p>In sum, we do not require the ASP more trust then that one required by the eIDAS
regulation. In addition to the standard security properties and assumptions, such as those ones
related to the Ethereum blockchain and IPFS protocols, we assume that user's secret
information and data are not disclosed to the public world and that users do not collude each other as
well.</p>
        <p>The goal of the attacker is to break, at least, one of the following secure properties:
availability, non-repudiation, accountability, integrity and con dentiality.</p>
        <p>In our proposal, data are stored on IPFS while their identi ers are stored on the Ethereum
blockchain. This combination of these two technologies contrasts attacks on availability. Indeed,
the usage of IPFS avoids the central and unique point of failure, since data are duplicated on
multiple and random IPFS peers. Moreover, the DoS attack, in which the attacker oods the
Ethereum network with a huge amount of requests, would be very expensive because every
Ethereum transaction and every call to a function of an Ethereum smart contract has a cost in
terms of gas.</p>
        <p>Non-repudiation is obtained. In fact, every action is logged into Ethereum and it can be
veri ed at any time and, in addition, Ethereum transactions are not editable after been mined.
They are also signed by the Ethereum private key, that is known and kept only by the owner
of the address. Furthermore, non-repudiation is ensured by our protocol also during the phases
involving the publication of documents and policies on IPFS and the downloading of such les
from IPFS. In particular, although these operations could be carried out by using a standard
IPFS client application, we implemented an alternative approach, based on smart contracts,
enforcing the non-repudiability of the overall protocol.</p>
        <p>We can distinguish two di erent domains of interest: that one on the blockchain and the
other one o -chain. Concerning the former, accountability is ensured similarly to the
nonrepudiation property. Instead, if we think to the o -chain side of our proposal, accountability
is reached because only the Identity Provider and the Attribute Provider(s) know exactly the
link between the identity of the user and its related Ethereum address. So, if for any reason
it is necessary to reveal this mapping, it could be done by merging information from di erent
parties.</p>
        <p>Data integrity is, again, reached thanks to IPFS by the usage of the
IPFS-cryptographichash that is carried out for every document published on the InterPlanetary File System.
Con dentiality is obtained as well, because sensitive and closed data are chipered by the Content
Manager and the decryption key is given only to those users that ful ll the policy associated
with them. Furthermore, the Content Manager, before sending to the user the key, encrypts it
with the ethereum public key of herself/himself, that can be easily derived from the Ethereum
address. So, even if the Content Manager sends the key by using Ethereum, nobody can actually
understand it excepts for the interested user.</p>
        <p>Finally, our protocol reaches the goal of privacy requirement, since the Content Manager
is not aware of personal and sensitive information about users except for their attributes and
their Ethereum addresses. In this case, the level of protection of these data is that one related
to the pseudonymity provided by the Ethereum blockchain itself, that is not full. However, if
the user wants to preserve better her/his privacy, she/he can generate a new Ethereum wallet
for every operation, making attacks on pseudonymity not realizable anymore.</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>6 Implementation Issues</title>
      <p>To implement our proposal, we used many di erent technologies and framework to integrate
IPFS and XACML with ethereum smart contracts.</p>
      <p>In particular, these are, among the others, the most relevant ones:</p>
      <p>
        RemixIDE [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], an online IDE for the development of ethereum smart contracts;
Tru e Suite [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], a suite of tools useful for interfacing smart contracts (e.g., Ganache);
Metamask [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], a browser extension that allows us to run dApps on the browser without
running a full Ethereum node;
Web3.js [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], a lightweight JavaScript library for integration with Ethereum clients;
      </p>
      <sec id="sec-6-1">
        <title>Provable (ex Oraclize) [2], the most known oracle used for Ethereum.</title>
        <p>For the sake of presentation, we show only the most interesting details we faced during the
implementation of our solution and we miss some other details.</p>
        <p>First, we developed a JavaScript web-page containing a form allowing the submission of les
on IPFS that interfaces with the smart contract showed in Figure 1 in a transparent way.
1 pragma s o l i d i t y 0 . 5 . 8 ;
2
3 contract SimpleStorage f
4 string ipfsHash ;
5
6
7
98 g
10
11
12 g
13 g
function s e t ( string memory x ) public f</p>
        <p>ipfsHash = x ;
function get ( ) public view returns ( string memory) f
return ipfsHash ;
Moreover, the web-page returns the IPFS-cryptographic-hash identi er of the document
submitted and all this operation is permanently stored in Ethereum. This is done thanks to
the JavaScript code shown in Figure 2.</p>
        <p>In particular, after the connection with the library web3js, captureFile is the function to
bu ering the le once submitted on IPFS and onSubmit is used for the acquisition of the hash
computed by IPFS. The operation carried out for the submission of the policy on IPFS via
smart contract are the same. In Figure 3 there is the portion of the smart contract that is in
charge of mapping the IPFS-hash of the document and its related IPFS-hash policy.
1 address content manager ;
2 mapping( string =&gt; F i l e ) public f i l e M a p ;
3 string [ ] public f i l e P o l i c y ;
4
5 constructor ( ) public f
6 content manager = msg . sender ;
78 g
9 modifier onlyCM ( ) f
10 require ( content manager == msg . sender ) ;
11 ;
1123 g
14 function createMapping ( string memory ipfsHash , string memory p o l i c y H a s h ) public onlyCM
f
f i l e M a p [ i p f s H a s h ] . i p f s H a s h = p o l i c y H a s h ;
f i l e M a p [ i p f s H a s h ] . p o l i c y H a s h = p o l i c y H a s h ;
f i l e P o l i c y . push ( i p f s H a s h ) ;</p>
        <p>It is worth noting that the function createMapping can be called only by the Content
Manager (in this case, the deployer of the smart contract) thanks to the modi er onlyCM.
Indeed, the modi er is a function of Solidity that, when it is added to the declaration of a
function, limits the access to the function itself to those users who satisfy its requests.</p>
        <p>Another interesting aspect about the implementation regards the request of the policy from
the Ethereum smart contract to the IPFS network because the policy is written with XACML,
an XML-like language and there is need to parse the result. This has been solved as shown in
Figure 4.
1 pragma s o l i d i t y 0 . 5 . 8 ;
2
3 import " ./ O r a c l i z e . sol " ;
4
5 contract P o l i c y i s u s i n g O r a c l i z e f
6 bytes32 public o r a c l i z e I D ;
7 string public r e s u l t s ;
8 event L o g O r a c l i z e R e s u l t ( string r e s u l t ) ;
9
10
11
1123 g
14
15
function i p f s ( ) payablef</p>
        <p>OAR = O r a c l i z e A d d r R e s o l v e r I ( " a d d r e s s " ) ;</p>
        <p>Now that the smart contract has obtained the attribute (or attributes) required by the
policy, it compares it to the attribute that is in the certi cate presented by the user to the same
smart contract. If the information completely overlaps, then the Content Manager generates
a transaction to the user in which she/he speci es the key associated with the policy after
encrypting it with the user's ethereum public key.
7</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>Related Work</title>
      <p>In this section, we investigate the state of the art regarding data access control on distributed
information in a smart city environment.</p>
      <p>
        For smart cities, cloud computing has become an important infrastructure as it can provide
secure and reliable data storage and sharing. However, in the cloud storage system, the cloud
server cannot be considered completely reliable. Therefore, several studies have focused on
access control for smart city data using the cloud. In particular, the study [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] proposes a
revocable access control scheme of cloud data for smart cities. They design a proxy-assisted
access control framework for multi-authority cloud storage system and they construct a new
multi-authority Chipertext-Policy Attribute-Based Encryption (CP-ABE) scheme with e cient
decryption to realize data access control in the cloud storage system, and design an e cient
user and attribute revocation method for it.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] an advanced solution is proposed, which is based on Virtual EnviRonment (CLEVER)
enabled for CLoud. The purpose of this proposal is to regulate user access to certain areas
and to provide useful data for business intelligence oriented to multipurpose management. In
particular, it aims to collect data on people's access and electricity consumption to provide
information and services for public, private or governance use. The study [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] presents an
Integrated Component for Cloud Services (ISCS) that enables secure and trusted access to
data and related services in the cloud. The ISCS controls and handles access-related aspects
such as authentication, authorization and registration. It is realized using OAuth and OpenID.
      </p>
      <p>
        Always in the context of smart cities, several studies were carried out relating to access
control and IoT. The IoT protocols must provide data security, in particular, they must guarantee
data updating, integrity, con dentiality, authentication, and access control. The access control
is perhaps the most important aspect of intelligent cities since the unauthorized access to critical
infrastructures can endanger the inhabitants of smart cities (i.g. unauthorized access to tra c
lights can cause accidents and tra c congestion and cause huge nancial losses). Access control
also faces several challenges such as limited resources of IoT devices, often with a limited power
budget. Furthermore, access control must provide a high degree of scalability. The study [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]
analyzes use cases of smart city and de nes requirements of access control for the smart city
IoT platform. Attribute-based access control is also analyzed to satisfy the requirements. The
requirements of internal access control of smart city IoT platform are analyzed in-depth and an
access control mechanism based on information ow history is proposed to control information
ow between components of the platform. The most promising work in this area is on Delegated
CoAP Authentication and Authorization Framework (DCAF) [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] and Capability Based Access
Control (CBAC). CBAC as proposed by Hernandez-Ramos et al. solves the scalability issue of
access control by decentralizing the validation of permissions, yet the AS remains a single point
of failure and a possible bottleneck. The study [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] proposes an e cient format for capacity
tokens that is used completely without status and decentralized. This allows deploying access
control in scenarios of previous CBAC implementations and DCAF are impossible.
      </p>
      <p>
        Unfortunately, the data collected and processed by IoT systems are vulnerable to threats of
availability, integrity, and privacy. The work [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] takes advantage of the blockchain technology
for the protection of privacy and the secure IoT data sharing in smart cities. The blockchain
network is divided into various channels to preserve data privacy; each channel includes a nite
number of authorized organizations and processes a speci c type of data such as health, smart
car, smart energy or nancial details. Access to users' data is controlled by embedding access
control rules into smart contracts and data within a channel is further isolated and protected
using private data collection and encryption respectively. A reward system in the form of a
digital token is also proposed for users who share their data with interested parties / third
parties.
      </p>
      <p>
        Many studies have focused on the use of blockchain technology as an access control manager
for distributed systems. In [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] an approach based on blockchain technology is proposed to
publish the policies that express the right to access a resource and to allow the distributed
transfer of such right among users. Each user can know the policy associated with a resource
and the subjects who currently have the rights to access the resource because the policies and
the exchange of rights are publicly visible on the blockchain. This solution allows distributed
auditability and a possible working implementation based on XACML policies is also shown.
The authors of [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] use a modi ed version of the InterPlanetary Filesystem (IPFS) that exploits
Ethereum's smart contracts to provide le-controlled access to les. IPFS interacts with the
smart contract whenever a le is uploaded, downloaded or transferred.
      </p>
      <p>
        Moreover, the authors of [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] proposed a solution based on Attribute-Based Encryption
(ABE) and the Ethereum blockchain for facing the problem of service delivery with
accountability and privacy requirements.
      </p>
      <p>
        In the paper [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] the authors propose a blockchain-based framework, called Ancile, that
allows safe and e cient access to medical records by patients, suppliers, and third parties,
while preserving the privacy of patients' sensitive information. Ancile uses smart contracts in
an Ethereum-based blockchain for greater access control and obfuscation data, and employs
advanced cryptographic techniques for added security. The document shows how blockchain
technology can be exploited in the health sector to achieve the delicate balance between
privacy and accessibility of electronic health records. In [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], the authors integrate the Ethereum
blockchain and the Identity-Based Solution (IBE) by using the Public Digital Identity to
overcome the blockchain limitation regarding the fact that the recipient of transactions must be
signed up to the blockchain before using it. Indeed, in this work, authors allow transaction
between subject not yet registered to the system.
      </p>
      <p>To the best of our knowledge, our proposal is the only one that tries to exploit the advantages
of both smart contracts and ABAC into a smart city scenario with distributed information.
8</p>
    </sec>
    <sec id="sec-8">
      <title>Conclusions</title>
      <p>In this paper, we propose a solution based on Ethereum smart contracts for the access control on
distributed information in a smart city scenario. In general, enforcing access control via smart
contracts has the drawback that, although in pseudonymous form, the logic of access control
is part of the smart-contract storage. Therefore, it is public, and this could be in general
a serious threat to privacy of users and organizations. This drawback does not regard our
approach, because the scenario we consider is that of access control policies attribute-oriented,
of public utility for proper categories of users. Thus we can obtain the advantages in terms
of transparency, veri ability, trustworthiness, accountability given by smart contracts. The
integration with the eIDAS ecosystem for attribute certi cation, contributes to make concrete
our approach, together with the state-of-the-art technologies used in our solution that are,
besides Ethereum, XACML for the implementation of the enforcement into smart contracts
and IPFS as distributed le system. As a position paper, this work does not include a careful
security analysis. This is planned as future work, together with a full implementation of all the
components of the solution.</p>
    </sec>
    <sec id="sec-9">
      <title>Acknowledgement</title>
      <p>This paper is partially supported by the project \SecureOpenNets-Distributed Ledgers for
Secure Open Communities", funded by Ministry of Research and Education (MIUR), project id
ARS01 00587. The authors are grateful to Laura Manganaro for her suggestions regarding the
implementation aspects of our proposal.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Metamask</surname>
          </string-name>
          . https://metamask.io (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Provable</surname>
          </string-name>
          . https://provable.xyz/ (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Remix - Solidity IDE</surname>
          </string-name>
          . https://remix.ethereum.org (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4] Tru e Suite. https://www.trufflesuite.com/ (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5] web3js. https://github.com/ethereum/web3.js/ (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Buccafurri</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Angelis</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lax</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Musarella</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Russo</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>An attribute-based privacypreserving ethereum solution for service delivery with accountability requirements</article-title>
          .
          <source>In: Proceedings of the 14th International Conference on Availability, Reliability and Security</source>
          . p.
          <fpage>24</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Buccafurri</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lax</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Musarella</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Russo</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Ethereum transactions and smart contracts among secure identities</article-title>
          .
          <source>In: DLT@ ITASEC</source>
          . pp.
          <volume>5</volume>
          {
          <issue>16</issue>
          (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Buschsieweke</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , Gunes, M.:
          <article-title>Securing critical infrastructure in smart cities: Providing scalable access control for constrained devices</article-title>
          .
          <source>In: 2017 IEEE 28th Annual International Symposium on Personal, Indoor, and Mobile Radio Communications (PIMRC)</source>
          . pp.
          <volume>1</volume>
          {
          <issue>6</issue>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Clarke</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Margetts</surname>
          </string-name>
          , H.:
          <article-title>Governments and citizens getting to know each other? open, closed, and big data in public management reform</article-title>
          .
          <source>Policy &amp; Internet</source>
          <volume>6</volume>
          (
          <issue>4</issue>
          ),
          <volume>393</volume>
          {
          <fpage>417</fpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Dagher</surname>
            ,
            <given-names>G.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mohler</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Milojkovic</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marella</surname>
          </string-name>
          , P.B.:
          <article-title>Ancile: Privacy-preserving framework for access control and interoperability of electronic health records using blockchain technology</article-title>
          .
          <source>Sustainable Cities and Society</source>
          <volume>39</volume>
          , 283{
          <fpage>297</fpage>
          (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Dannen</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          : Introducing Ethereum and Solidity. Springer (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Do</surname>
            ,
            <given-names>Q.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Martini</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Choo</surname>
            ,
            <given-names>K.K.R.</given-names>
          </string-name>
          :
          <article-title>The role of the adversary model in applied security research</article-title>
          .
          <source>Computers &amp; Security</source>
          <volume>81</volume>
          ,
          <issue>156</issue>
          {
          <fpage>181</fpage>
          (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13] ethereumWiki:
          <article-title>Ethereum project</article-title>
          . https://github.com/ethereum/wiki/wiki (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Fan</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yang</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Proxy-assisted access control scheme of cloud data for smart cities</article-title>
          .
          <source>Personal and Ubiquitous Computing</source>
          <volume>21</volume>
          (
          <issue>5</issue>
          ),
          <volume>937</volume>
          {
          <fpage>947</fpage>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Gerdes</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bergmann</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bormann</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Delegated coap authentication and authorization framework (dcaf). draft-gerdes-ace-dcafauthorize-02</article-title>
          . Work in progress
          <volume>66</volume>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Giacobbe</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Coco</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , Pulia to, A.,
          <string-name>
            <surname>Scarpa</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>A cloud-based access control solution for advanced multi-purpose management in smart city scenario</article-title>
          .
          <source>In: 2014 International Conference on Smart Computing Workshops</source>
          . pp.
          <volume>35</volume>
          {
          <issue>40</issue>
          (Nov
          <year>2014</year>
          ). https://doi.org/10.1109/SMARTCOMPW.
          <year>2014</year>
          .7046680
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Hu</surname>
            ,
            <given-names>V.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ferraiolo</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kuhn</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schnitzer</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sandlin</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Miller</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , Scarfone:
          <article-title>Guide to attribute based access control (abac) de nition and considerations</article-title>
          .
          <source>NIST special publication</source>
          <volume>800</volume>
          (
          <issue>162</issue>
          ) (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18] Lammel,
          <string-name>
            <given-names>P.</given-names>
            ,
            <surname>Tcholtchev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            ,
            <surname>Schieferdecker</surname>
          </string-name>
          ,
          <string-name>
            <surname>I.</surname>
          </string-name>
          :
          <article-title>Enhancing cloud based data platforms for smart cities with authentication and authorization features</article-title>
          .
          <source>In: Companion Proceedings of the10th International Conference on Utility and Cloud Computing</source>
          . pp.
          <volume>167</volume>
          {
          <fpage>172</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>Maesa</surname>
            ,
            <given-names>D.D.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mori</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ricci</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Blockchain based access control</article-title>
          .
          <source>In: IFIP international conference on distributed applications and interoperable systems</source>
          . pp.
          <volume>206</volume>
          {
          <fpage>220</fpage>
          . Springer (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Makhdoom</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhou</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Abolhasan</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lipman</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ni</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          :
          <article-title>Privysharing: A blockchain-based framework for privacy-preserving and secure data sharing in smart cities</article-title>
          .
          <source>Computers &amp; Security</source>
          <volume>88</volume>
          ,
          <issue>101653</issue>
          (
          <year>2020</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>Sasaki</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Morita</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jada</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Access control architecture for smart city iot platform</article-title>
          .
          <source>In: 2019 18th IEEE International Conference On Trust, Security And Privacy In Computing And Communications/13th IEEE International Conference On Big Data Science</source>
          And Engineering (TrustCom/BigDataSE). pp.
          <volume>717</volume>
          {
          <fpage>722</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>Steichen</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fiz</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Norvill</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shbair</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>State</surname>
          </string-name>
          , R.:
          <article-title>Blockchain-based, decentralized access control for ipfs</article-title>
          .
          <source>In: 2018 IEEE International Conference on Internet of Things (iThings)</source>
          and
          <article-title>IEEE Green Computing and Communications (GreenCom) and</article-title>
          IEEE Cyber,
          <article-title>Physical and Social Computing (CPSCom) and IEEE Smart Data (SmartData)</article-title>
          . pp.
          <volume>1499</volume>
          {
          <issue>1506</issue>
          (
          <year>July 2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>Steichen</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fiz</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Norvill</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shbair</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>State</surname>
          </string-name>
          , R.:
          <article-title>Blockchain-based, decentralized access control for ipfs</article-title>
          .
          <source>In: 2018 IEEE International Conference on Internet of Things (iThings)</source>
          and
          <article-title>IEEE Green Computing and Communications (GreenCom) and</article-title>
          IEEE Cyber,
          <article-title>Physical and Social Computing (CPSCom) and IEEE Smart Data (SmartData)</article-title>
          . pp.
          <volume>1499</volume>
          {
          <fpage>1506</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <surname>Su</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fu</surname>
          </string-name>
          , H.:
          <article-title>Smart city and the applications</article-title>
          . In: 2011 International Conference on Electronics,
          <source>Communications and Control (ICECC)</source>
          . pp.
          <volume>1028</volume>
          {
          <issue>1031</issue>
          (Sep
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <surname>Sun</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yan</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , Zhang, K.Z.:
          <article-title>Blockchain-based sharing services: What blockchain technology can contribute to smart cities</article-title>
          .
          <source>Financial Innovation</source>
          <volume>2</volume>
          (
          <issue>1</issue>
          ),
          <volume>26</volume>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <surname>Union</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          :
          <source>Regulation EU No 910/2014 of the European Parliament and of the Council (23 July</source>
          <year>2014</year>
          ), http://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX%
          <fpage>3A32014R</fpage>
          -
          <lpage>0910</lpage>
          &amp; from=EN
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , Zhang,
          <string-name>
            <given-names>Y.</given-names>
            ,
            <surname>Zhang</surname>
          </string-name>
          , Y.:
          <article-title>A blockchain-based framework for data sharing with ne-grained access control in decentralized storage systems</article-title>
          .
          <source>IEEE Access 6</source>
          ,
          <issue>38437</issue>
          {
          <fpage>38450</fpage>
          (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <surname>Washburn</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sindhu</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Balaouras</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dines</surname>
            ,
            <given-names>R.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hayes</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nelson</surname>
            ,
            <given-names>L.E.</given-names>
          </string-name>
          :
          <article-title>Helping cios understand \smart city"</article-title>
          .
          <source>Growth</source>
          <volume>17</volume>
          (
          <issue>2</issue>
          ),
          <volume>1</volume>
          {
          <fpage>17</fpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <surname>Wood</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          , et al.:
          <article-title>Ethereum: A secure decentralised generalised transaction ledger</article-title>
          .
          <source>Ethereum project yellow paper 151</source>
          , 1{
          <fpage>32</fpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <surname>Yigitcanlar</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Velibeyoglu</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Martinez-Fernandez</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Rising knowledge cities: the role of urban knowledge precincts</article-title>
          .
          <source>Journal of knowledge management 12(5)</source>
          ,
          <volume>8</volume>
          {
          <fpage>20</fpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>