\section{Introduction}
\label{sec: intro}
The paradigm shift entailed by blockchain's premise of decentralization envisages an eventual migration from the end-to-end principle to trust-to-trust principle \cite{ali2017trust}. According to this new design principle, a user should ideally have complete control over trust decisions particularly pertaining to user's data that powers a network application such as an online social network. This decentralization aspect forms the basis of the blockchain-based networks. This further paves the path for an era of distributed trust and consensus. This implies that large networks, in a peer-to-peer configuration, will guarantee the integrity of transactions (simply put interactions) among their peers without the involvement of any centrally trusted mediating third party. The provision of verifiable trust guarantees further entails that such networks can be audited in a trusted and transparent manner. This ability to audit is useful to hold a peer of a networked system accountable lest a dispute or malfunctioning of some other sort arises. Moreover, any application that requires interaction among various stakeholders for its operations in a mutually non-trusting environment (where the stakeholders do not have to or do not want to trust one another) can benefit from blockchain as it creates transparency and trust in interactions among the stakeholders without involving any third party. That is the reason why industries such as transport, energy sector, insurance, finance, and logistics have started to show their interest in blockchain technology to automate their solutions \cite{hamida2017blockchain, swan2015blockchain, mori2016financial, WEFReali3:online}.

It can be observed that although the onset of the Internet revolution heightened the societal collaboration among people, communities, businesses \cite{peters2016understanding}, however, many of the Internet applications (such as email and Domain Name System (DNS)) largely remain centralized as far as their management and core development are concerned. The centralized governing bodies are usually behind the trust guarantees associated with such online applications. Similarly, the issue of trust in cloud-hosted data storage is another contemporary challenge predicated on the inherent centralized nature of the Internet \cite{ali2017trust}. The clients of such online and cloud-based services, such as cloud storage and computation, usually put their trust in the claims put forward by the third party cloud providers. It raises the pressing need for \emph{verifiability} that the cloud is not tampering with a client's stored data and is always returning correct results in response to the requested computation. A single instance of a data breach in cloud storage or a faulty execution of a requested set of computations can lead to disastrous ramifications for such a business. As it has been seen in a recent data breach that calls the trust in central management of online services such as Facebook (an online social network) into question \cite{facebook_breach:online}. Blockchain, on the other hand, with its premise of immutability, transparency, and peer-to-peer consensus can provide the means for a trusted audit of networked systems while at the same time giving much of the control back to the edges of a network.

\subsection{Contribution of the survey}
\label{subsec: contribution}
In this paper we provide a broad ranging survey of the implications of blockchain on the future of the Internet with a comprehensive take on their legal and regulatory ramifications as well. Instead of limiting ourselves to one particular use case or application (such as the Internet of things (IoT) \cite{ali2018applications, ferrag2018blockchain}), we cover a wide range of use cases and try to observe the common patterns, differences, technical limitations so that a more informed decision can be made by someone interested in deploying a use case from ground up or translating one's use case to a blockchain-based solution. We provide a comparison of our paper with other recent blockchain-based surveys in Table \ref{table:comparison}. Apart from encompassing most of the issues covered by recent survey literature, a clear distinguishing feature of this paper is that we also discuss a few of the most important legal and regulatory challenges and ramifications of deploying a blockchain-based solution. This is particularly important given the development of new data protection regulations (such as the advent of the General Data Protection Regulation (GDPR) in Europe), and regular reports of data breaches and government mass surveillance stories coming to light.

\subsection{Structure of the survey}
\label{subsec: structure}

The  rest  of  the  paper  is  organized  in three main sections. In the section titled \textit{Background} (Section  \ref{sec: background}), we provide the necessary background to understand the big picture of how blockchain works by introducing distributed ledger technology, distributed consensus, smart contracts, and public and private blockchains. In the next section (Section \ref{app}) titled \textit{Blockchain-based Network Applications}, we provide examples of how blockchain can be used to evolve trust mechanisms for the decentralized Internet, email, Internet of Things (IoT), content distribution, distributed cloud storage, online social networks, cybersecurity, public key infrastructure, and other miscellaneous applications. Thereafter in the section titled \textit{Challenges and The Road Ahead} (Section \ref{sec: challenges}), we discuss the current challenges facing blockchain and their various technical, legal, regulatory ramifications: in particular, we discuss governance, operational, and regulatory issues; scalability issues; security and privacy concerns; sustainability concerns; anonymity; the use of artificial intelligence (AI) and machine learning (ML); and issues related to usability and key management. Finally the paper is concluded in Section \ref{con}.

\begin{comment}

Applications of Blockchain Technology beyond Cryptocurrency\cite{miraz2018applications}, Blockchain \cite{nofer2017blockchain}, Blockchain and Cryptocurrencies: Model,Techniques, and Applications \cite{yuan2018blockchain}, Blockchain challenges and opportunities: a survey \cite{zheng2016blockchain}, Blockchain application and outlook in the banking industry \cite{guo2016blockchain}, Trust in the Sharing Economy \cite{hawlitschek2016trust}, A Comprehensive Literature Review on the Blockchain Technology as an Technological Enabler for Innovation \cite{johansen2017comprehensive}, A Survey of Blockchain Technologies for Open Innovation \cite{de2017survey}, Where Is Current Research on Blockchain Technology?—A Systematic Review \cite{yli2016current}, Global Blockchain Benchmarking Study \cite{hileman20172017}, Blockchain Technology: Principles and Applications \cite{pilkington201611}, Economics of Blockchain\cite{davidson2016economics}
\end{comment}

\begin{table*}[!ht]
\centering
\scriptsize
\begin{tabular}{ |m{2.2cm} |m{0.5cm}|m{1cm}|m{.7cm}|m{.8cm}|m{.9cm}|m{0.65cm}|m{0.35cm}|m{.7cm}|m{1.0cm}| m{.9cm}|a |}
\hline
\textbf{Papers/Books \newline (Author)}
& \textbf{Year}
& \textbf{\tiny Blockchain \newline Fundamentals}
& \textbf{\tiny Challenges}
& \textbf{\tiny Smart \newline Contracts}
& \textbf{\tiny Blockchain \newline Applications}
& \textbf{\tiny Future \newline Trends}
& \textbf{IoT}
& \textbf{\tiny Blockchain \newline Types}
& \textbf{\tiny Blockchain \newline Characteristics}
& \textbf{\tiny Consensus \newline Algorithms}
& \textbf{Regulatory \newline Issues}
 \\ \hline

\begin{tabular}[c]{@{}l@{}}Zibin et al.\cite{zheng2016blockchain}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}2016\end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{a}\text{\ding{55}}{} \end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Ye et al.\cite{guo2016blockchain}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}2016\end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Jesse et al.\cite{yli2016current}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}2016\end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Marc et al.\cite{pilkington201611}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}2016\end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}\\\hline
\begin{tabular}[c]{@{}l@{}}Michael et al.\cite{nofer2017blockchain}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}2017\end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Zibin et al.\cite{zheng2017overview}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}2017\end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Iuon-Chang et al.\cite{lin2017survey}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}2017\end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Mahdi et al. \cite{miraz2018applications}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}2018\end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}\\\hline
\begin{tabular}[c]{@{}l@{}}Yong et al.\cite{yuan2018blockchain}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}2018\end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Muhammad et al.\cite{ali2018applications}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}2018\end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Karl et al.\cite{wust2018you}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}2018\end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{} \end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Salah et al. \cite{salahAccess} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}2019\end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}\text{\ding{55}}{}\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Our Survey\end{tabular}
&\begin{tabular}[c]{@{}l@{}}2019\end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;{} \newline(distinguishing feature) \end{tabular}\\\hline

\end{tabular}
\caption{Comparative analysis of our survey with the existing survey literature pool}
\label{table:comparison}
\end{table*}

\section{Background}
\label{sec: background}
In this section, we provide the necessary background to understand what blockchain is and how it works. Our discussion in this section follows an evolutionary approach which means we start with Bitcoin \cite{nakamoto2008bitcoin} (the first incarnation of a blockchain-based application) and discuss how the technology evolved giving rise to other concepts and systems along the way.
\subsection{Blockchain and distributed ledger technology (DLT)}
\label{subsec: bc_and_dlt}
The original premise of blockchain is to establish trust in a peer-to-peer (P2P) network circumventing the need for any sort of third managing parties. As an example, Bitcoin introduced a P2P monetary value transfer system where no bank or any other financial institution is required to make a value-transfer transaction with anyone else on Bitcoin's blockchain network. Such a trust is in the form of verifiable mathematical evidence (more details on it follow in Section \ref{subsec: consensus}). The provision of this trust mechanism allows peers of a P2P network to transact with each other without necessarily trusting one another. Sometimes this is referred to as the \emph{trustless} property of blockchain. This trustlessness further implies that a party interested in transacting with another entity on blockchain does not necessarily have to know the real identity of it. This enables users of a public blockchain system (see Section \ref{subsec: pub_vs_priv_BC} for more details on public and private blockchains), such as Bitcoin, to remain anonymous. Further, a record of transactions among the peers are stored in a chain of a series of a data structure called \emph{blocks}, hence the name blockchain. Each peer of a blockchain  network maintains a copy of this record. Additionally, a consensus, taking into consideration the majority of the network peers, is also established on the state of the blockchain that all the peers of the network store. That is why, at times, blockchain is also referred to as \emph{distributed ledger technology (DLT)}. Each instance of such a DLT, stored at each peer of the network, gets updated at the same time with no provision for retroactive mutations in the records.
\subsection{A clever use of hashing}
\label{subsec: hashing}
 \begin{figure*}[!ht]
\centering
\captionsetup{justification=centering}
\centerline{\includegraphics[width=.73\textwidth]{blockchain.pdf}}
\caption{Hashing chains the blocks together and renders them immutable}
\label{fig: blockchain}
\end{figure*}
Now we take a closer look at how hashing is used to \emph{chain} the blocks containing transaction records together and how such records are rendered immutable. A hash is defined as a unidirectional cryptographic function. A hash function usually takes an arbitrary input of an arbitrary length and outputs a seemingly random fixed-length string of characters. Each such output is unique to the input given to this function and can be considered the \emph{footprint} for an input. If the input is even so slightly changed then the output of the hash function almost always completely changes in a random fashion (there are, however, rare occasions where a \emph{collision} occurs when two distinct inputs to a hash function map to the same output) \cite{rogaway2004cryptographic}. This way hash of a piece of data can be used to check the integrity of it. As an example Secure Hash Algorithm 256 (SHA256) is a member of the family of SHA2 hash functions which is currently deployed by many blockchain-based systems such as Bitcoin\footnote{\url{https://web.archive.org/web/20130526224224/http://csrc.nist.gov/groups/STM/cavp/documents/shs/sha256-384-512.pdf}}.

A simplified version of a blockchain is shown in Figure \ref{fig: blockchain}. It can be observed that there are four main fields shown in the figure for each block. In the \emph{hash} field the hash value of all the contents (i.e., block number, \emph{previous hash}, shown as \emph{Prev} in Figure \ref{fig: blockchain}, and data) is recorded. The most important field is the \emph{Prev} field. This field, in each block, contains the hash value of the block that comes before it. This chains the blocks together. Now, if the contents of a block are changed then this change is reflected, in addition to the hash of the block under consideration, in the portion of the blockchain that comes after the block being mutated. This way, hashing and the distribution of blockchain copies among the peers of a P2P network makes the records stored in a blockchain immutable. It can be noted in Figure \ref{fig: blockchain} that the first block in a blockchain is sometimes referred to as the \emph{genesis block} indicated by its Prev field initialized to contain all zeros.
\subsection{A coin: Transaction chain}
\label{subsec: tx_chain}
A transaction chain is shown in Figure \ref{fig: tx_chain}. It should be observed here that there is a difference between a transaction chain and a blockchain. Each block in a blockchain can contain multiple transaction chains. Each transaction chain in turn shows the value transferred from one peer of the network to another. Each such transaction chain is also sometimes referred to as a digital \emph{coin} or more generally as a \emph{token} (as an example Ethereum, discussed later, allows one to define a custom token\footnote{\url{https://www.ethereum.org/token}}).
 \begin{figure*}[!ht]
\centering
\captionsetup{justification=centering}
\centerline{\includegraphics[width=.62\textwidth]{tx_chain.pdf}}
\caption{Transaction chain or a coin. Figure adapted from \cite{nakamoto2008bitcoin}}
\label{fig: tx_chain}
\end{figure*}

\subsection{Distributed consensus}
\label{subsec: consensus}
Blockchain systems, such as Bitcoin and Ethereum\footnote{\url{https://ethereum.org/}}, make use of different consensus engines. These engines enable peers of the blockchain network to have a say about the overall state of the records stored in the blocks of a blockchain network. In this section, we discuss the most popular and widely adopted consensus protocol called Proof-of-Work (PoW). We also briefly discuss Proof-of-Stake (PoS) and Proof-of-Authority (PoA) based consensus engines, which are mostly in development phases but are poised to eventually replace the PoW-based energy-intensive consensus mechanism.
\vspace{2mm}
\subsubsection{Proof-of-Work (PoW)}
\label{subsubsec: pow}
PoW-based consensus mechanism was mainly popularized by Bitcoin \cite{nakamoto2008bitcoin}. PoW's main goal is to prevent double spending of a digital asset by providing a verifiable trust guarantee to a payee. Such a guarantee is provided in the form of publishing an integer called a \emph{nonce}. Finding a nonce is a computationally intensive process and is often referred to as \emph{mining}. The peer of a blockchain network that finds a nonce is called a \emph{miner}. Specifically, a nonce is an integer which, when hashed together with the contents of a block, outputs a hash matching a predefined pattern. Depending upon the underlying system, such a pattern is usually defined to start with a predefined number of zeros. The larger the number of leading zeros the harder (in computational terms) it is to find a nonce that hashes to match such a pattern. Any peer node of a blockchain network can perform mining (i.e., collecting a set of transactions and finding the relevant nonce). PoW is a lottery-based consensus mechanism, which implies that in a given large network, the peer who finds a nonce at a given time is decided randomly. Once a miner finds a nonce (or mines a block), the network awards such a node with a set number of \emph{cryptocurrency tokens} (such as bitcoins). This is how cryptocurrency is minted in cryptocurrency networks and is put into circulation in such networks.

As the mining process involves randomness, which implies that it is computationally very hard for an attacker to tamper with the stored data in blockchain if the majority of a network (in terms of computational resources) is honest. However, if an adversary (or a group of adversaries) gains more computational power than the honest portion of the network then it can potentially alter the records stored in a blockchain. Such an attack is sometimes referred to as a \textit{$51\%$ attack}. Figure \ref{fig: mined_chain} shows a chain of blocks with an extra field labeled as nonce. It should be noted in this figure that the hash of all the blocks (apart from the genesis block) starts from a set number of zeros.
 \begin{figure*}[!ht]
\centering
\captionsetup{justification=centering}
\centerline{\includegraphics[width=.7\textwidth]{mined_chain.pdf}}
\caption{Mined blocks in a blockchain. Hash in each block now starts with \emph{five} zeros.}
\label{fig: mined_chain}
\end{figure*}
\vspace{2mm}
\subsubsection{Proof-of-Stake}
\label{subsubsec: pos}
Blockchain-based systems, particularly Ethereum\footnote{\url{https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQs}}, are considering to eventually shift to PoS from PoW. This is because of high computation, and in turn high energy, costs associated with finding a nonce through mining.

In the PoS mechanism, the nodes with the largest stake (in monetary terms) in the underlying network will have a greater say when it comes to proposing a block to be appended to a blockchain. The monetary worth owned by such nodes is put at stake in order for them to behave honestly. Since PoS is still in its development phase, it does come with its fair share of issues. Most notable is the mismatch between the actual interest of nodes with the same stake in the underlying network\footnote{\url{https://tinyurl.com/poa-network}}.

A variant of PoS is called Proof-of-Authority (PoA) which is mostly being used by the test networks mainly for experimentation (such as Rinkeby and Ropsten Ethereum networks). The idea of PoA is quite similar to PoS: in PoA  it is the identity of nodes that is put at stake instead of the monetary value owned by the nodes. This implies that PoA is mostly used to establish permissioned blockchains (see Section \ref{subsec: pub_vs_priv_BC}) where the identities of the peer nodes are known and they are given specific permissions to mine new blocks.
\subsection{Smart contracts}
\label{subsec: smart_contracts}
One important aspect of blockchains is its use in enabling smart contracts \cite{luu2016making}. Smart contracts can simply be viewed as algorithmic enforcement of an agreement among, often, mutually non-trusting entities. More technically, a smart contract is a program that executes on blockchain in a distributed manner and possesses unique identification. It contains functions and state variables. These functions receive input parameters of the contract and get invoked when transactions are made. The values of state variables are dependent on the logic developed in the functions \cite{ bahga2016blockchain}. These functions are normally written in high-level languages (such as Solidity or Python) \cite{ soliditydocs}. Compilers convert these programs into bytecode that is then deployed on blockchain network. These programs are invoked by receiving the user transactions for these smart contracts, which are posted by any user on the blockchain network \cite{ bahga2016blockchain}. Smart contracts help automate an arbitrary value transfer system in an immutable manner where conditional transactions are recorded, executed, and distributed across the blockchain network. These contracts not only reduce the legal and enforcement costs but also largely rule out the need for central trusted or regulating authority \cite{bargar2016economics}. Smart contracts can create an environment of trust among the members of several contrasting and diverse communities \cite{swan2015blockchain}.

\textbf{\emph{Ethereum}}\footnote{https://ethereum.org/}: is the signature project that introduced and popularized the concept of smart contracts \cite{wood2014ethereum} \cite{kosba2016hawk}. It is an open-source, blockchain-based platform that enables one to develop and execute decentralized applications. One of Ethereum's goals is to ease the process of developing the decentralized applications called dApps \cite{ ethereum5} \cite{kakavand2016blockchain}. Ethereum can be considered as the next step, after Bitcoin, in the evolution of blockchain-based systems. Before Ethereum, most of the blockchain-based system, mainly cryptocurrency-based projects, revolved around expanding on Bitcoin's core protocol and focusing on one specific application. Ethereum, however, generalizes and allows multiple such projects to coexist on a broader underlying blockchain-based compute resource.

Operations on Ethereum are performed by utilizing the Ethereum Virtual Machine (EVM). EVM is the implementation of the Ethereum protocol responsible for handling state transitions and carrying out computation tasks \cite{buterin2014next}. EVM provides the runtime environment for the execution of smart contracts \cite{bahga2016blockchain}. The EVM generated binary comprises smart contracts' (usually written in high-level languages such as Solidity\footnote{\url{https://solidity.readthedocs.io/en/develop/}} or Serpent\footnote{\url{https://github.com/ethereum/wiki/wiki/Serpent}}) opcode that gets deployed on the underlying blockchain.

\subsection{Public and private blockchains}
\label{subsec: pub_vs_priv_BC}
The underlying blockchains of Bitcoin, Ethereum and, in general, of most cryptocurrencies are open and public. This implies that anyone can join the blockchain network and transact with any other peer of the network. Moreover, such networks also encourage peers to stay anonymous. As an example in Bitcoin's network, peers are assigned addresses based on the hash of their public keys instead of based on their actual identities.

On the other hand, there are permissioned and private variants of blockchains as well. This concept was particularly popularized by Linux Foundation's Hyperledger Fabric (HLF) platform \footnote{\url{https://hyperledger-fabric.readthedocs.io/en/release-1.3/blockchain.html}}. This platform is proposed for business use cases where, in addition to data immutability and P2P consensus, transaction confidentiality is also required. Permissioned and private blockchain platforms such as HLF usually deploy a cryptographic membership service on top of their blockchain's immutable record keeping. Each peer in such a network can be uniquely identified based on its real-world identity. Proof-of-Authority (as discussed earlier) functions on the same principle of permissioned and private blockchains.

\newcommand{\makebox[0pt]{\textbullet}\hskip-0.5pt\vrule width 1pt\hspace{\labelsep}}{\makebox[0pt]{\textbullet}\hskip-0.5pt\vrule width 1pt\hspace{\labelsep}}
\begin{table}
\renewcommand\arraystretch{1.4}
\captionsetup{singlelinecheck=false,  labelfont=sc, labelsep=quad}
\caption{Timeline: Evolution of Blockchain}\vskip -1.5ex
\begin{tabular}{@{\,}r <{\hskip 2pt} !{\makebox[0pt]{\textbullet}\hskip-0.5pt\vrule width 1pt\hspace{\labelsep}} >{\raggedright\arraybackslash}p{5cm}}
\toprule
\addlinespace[1.5ex]
2018 &  Blockchains potential got revamped by more investments in wide range of use cases\cite{usfsi20111:online}\\
2017 & Seven European banks, announced their program to develop a blockchain-based trade finance platform in collaboration with IBM \cite{IBMNewsr71:online}\\
2016 & Ethereum DAO code was compromised and hacked \cite{tikhomirov2017ethereum}, Emergence of permissioned blockchain solutions \cite{zheng2016blockchain}\\
2015 & Blockchain trial was initiated by NASDAQ \cite{zhu2016analysis}, Hyperledger project was started \cite{jacobovitz2016blockchain}\\
2014 & With crowdfunding the Ethereum Project was started \cite{zavolokina2016fintech}, Ethereum genesis block was created \cite{ozyilmaz2017integrating}, \cite{Launchin35:online}\\
2013 & Ethereum, a blockchain-based distributed computing platform was proposed \cite{Historyo98:online}\\
2012 & Coinbase, started as brokerage for Bitcoin \cite{Coinbase59:online}\\
2011 & Silk Road launched with Bitcoin as payment method \cite{hendrickson2016political}, BitPay first Blockchain-based wallet \cite{bitpayAp82:online}, Emergence of other cryptocurrencies like Swiftcoin \cite{Cryptocu96:online, BNAKLaun81:online, bruno2017system}, Litecoin \cite{zhao2015cryptocurrency}\\
2010 & First Bitcoin cryptocurrency exchange Mt. Gox started working \cite{ron2013quantitative}, \cite{yermack2015bitcoin}\\
2009 & First Bitcoin block was created \cite{wang2015exploring}, \cite{Bitcoins11:online}\\
2008 & Bitcoin's whitepaper was published by Satoshi \cite{nakamoto2008bitcoin}\\
\end{tabular}
\end{table}

\section{Blockchain-based Network Applications}
\label{app}
Other than cryptocurrencies, blockchain finds its applications in various other fields, particularly those that require more transparency and trust in their record-keeping. Some blockchain-based network applications with their platforms are shown in Fig. \ref{fig:appp}.
\begin{figure*}[!t]
\centering
\captionsetup{justification=centering}
\centerline{\includegraphics[width=.7\textwidth]{block.png}}
\caption{Examples of blockchain-based network applications and their solutions}
\label{fig:appp}
\end{figure*}
\subsection{The Decentralized Internet}
\label{subsec: dist_internet}
The Internet has enabled the evolution of a number of applications such as mobile health, education, e-commerce, online social systems, and digital financial services. However many parts of the world are still deprived of the Internet's boons due to the existence of a digital divide \cite{gnangnon2017does, nekrasov2017limits, weidmann2016digital, park2017digital}. Moreover, the existing Internet infrastructure is predominantly centralized creating monopolies in the provision of services to its users \cite{klein2002icann, purkayastha2014us}. Distributed denial of service (DDoS) attacks on DNS servers\footnote{https://www.wired.com/2016/10/internet-outage-ddos-dns-dyn}, certificate authority compromises (as mentioned in Section \ref{Cert_Auth}), cybersecurity-related incidents \cite{jasper2017cyber, patrick2017need, karchefsky2017toward} and similar other service disruptions are rife mainly because of the largely centralized nature of the current Internet and the services that it provides \cite{Blocksta20:online}. Whereas, the decentralized approach to the online service provisioning gives more control to the users (or the edges of the Internet) and ensures fair participation and sharing of the resources. It is believed that decentralization of the communication infrastructure may bridge the gap of the digital divide and make the Internet services reachable to the remaining unconnected portion of the planet \cite{AmmbrWhi61:online}.

In this section, we try to re-imagine different components of the Internet through the perspective of Blockchain's premise of decentralization and distributed trust.
\vspace{2mm}
\subsubsection{Decentralized naming systems}
\label{subsubsec: naming_system}
 Domain name system (DNS) is an example of online namespace system. Its primary goal is to resolve each unique hostname to an IP address(es) and vice versa. Presently, the largely centralized nature of DNS raises the odds for single-point failures and makes such systems prone to malpractice and malicious activities by the main stakeholders and governments. In the past, the seizure of hundreds of domain names by governments or the regulatory institutions have turned scientists, activists, and enthusiasts to think about possible alternatives to this largely centralized namespace system \cite{WikiLeak85:online, FourRoun21:online, bendrath2011end, denardis2012hidden, kalodner2015empirical}.

Most applications place a demand for a namespace system that can ensure security during the provision of such identifiers. Blockchain can enable a namespace system by making use of global, tamper-resistant, and append-only ledgers and thereby guarantee the integrity, availability, uniqueness, and security of name-value pairs. While some challenges remain to be solved, the blockchain technology can successfully provide the essential basis for the construction and governance of secure and distributed naming services \cite{angieri2018experiment}. Such blockchain-based networks further encourage the inclusion of honest network peers since for a sufficiently large blockchain network, it becomes very difficult and costly for the adversarial elements to tinker with the blockchain records \cite{ali2016blockstack}.

In 2011, an experimental open-source startup called Namecoin came into being providing distributed DNS services based on blockchain technology with the aim of improved security mechanism, decentralization, confidentiality, and agility \cite{Namecoin94:online, Namecoin51:online}. Namecoin is designed to work on top of a blockchain and as an alternative to the existing conventional DNS root servers for the storage of registered domain names \cite{ali2016blockstack}. Being a blockchain-based system (with secretly held private keys corresponding to the registered domain names) it is immune to censorship or seizure of the registered domain name accounts. Similarly, any change in domain names, recorded on a blockchain, requires proof-of-work by the longest chain of honest network peers (see Section \ref{subsubsec: pow} for details), which in turn is in control of the highest computing pool \cite{kalodner2015empirical, back2002hashcash}.

Another blockchain-based namespace system called Blockstack, inspired by the Namecoin network, improves upon various performance limitations of Namecoin (for a detailed analysis of Namecoin, please see \cite{kalodner2015empirical}) most importantly security and scalability \cite{ali2016blockstack}. The aspect of security was particularly improved by Blockstack by migrating from Namecoin's blockchain to Bitcoin's larger blockchain. The reason being the bigger size of Bitcoin's network, which makes it harder (as compared to Namecoin's relatively smaller network) for a 51\% attack \cite{kroll2013economics} (see Section \ref{subsubsec: pow}). One of the distinguishing features of Blockstack system is the introduction of a \textit{virtualchain} \cite{kirkmanusing}. Virtualchain is a logical overlay layer that sits on top of a production blockchain such as Bitcoin. Virtualchain eases the process of modifying the underlying blockchain without requiring actual consensus-breaking changes to it. Blockstack system facilitates users to register unique human-readable usernames and employs the distributed PKI system to bind user identities with arbitrary data values. This new registration system thus functions without the requirement of any centrally trusted third party \cite{ali2016blockstack, Blocksta20:online}. Blockstack enables users to own and control their data and access to this data at all times.

\subsubsection{Routing in the decentralized Internet}
\label{subsubsec: routing}
The interoperability of many still distinct (and largely isolated and self contained) blockhain networks will pose a problem in future if they are to come together to enable a wide-spread adoption of blockchain-powered decentralized web. There is a need for a routing mechanism that can take into account different characteristics of different blockchain networks and route a transaction from one network to a potentially different one and back. The main problem in inter-blockchain network routing is of verification of blockchain records among different blockchain networks and the provision of communication between any two peers belonging to any two distinct blockchain networks. In a single network this problem gets trivial with all the peers agreeing to follow the same consensus protocol (for example PoW). The motivation to enable interoperability among different blockchain networks can be taken from the concept of a \emph{lightweight client} of a blockchain network. Such clients are able to verify the existence of a record of a transaction in a blockchain network without downloading the entire bulk of blockchain data. The lightweight clients do so by making use of a technique called Simple Payment Verficiation (SPV)\footnote{\url{http://docs.electrum.org/en/latest/spv.html}} \cite{nakamoto2008bitcoin} which allows a client to verify the existence of a transaction record only by downloading the, comparatively lightweight, block headers, in the form of a Merkle branch, in comparison to the entire blockchain data. Following a similar principle, \emph{Blocknet}\footnote{\url{https://blocknet.co/}} proposes a solution for inter-blockchain routing infrastructure \cite{blocknet:online}. Blocknet achieves interoperability by making use of two main components namely XBridge and XRouter. XBridge is responsible for implementing the \emph{exchange} functionality which implies enabling of atomic swaps of tokens between two blockchains. XRouter on the other hand implements \emph{communication} functionality and in unison with XBridge and making use of SPV a transaction can then be performed between two peers belonging to different blockchain networks.

Another project that proposes a solution to enable cross-ledger payments is called \emph{Interledger}\footnote{\url{https://interledger.org/}} \cite{interledger:online}. Interledger presents the concept of \emph{connectors} that act as decentralized exchanges between two distinct blockchain ledgers and route transactions (or \emph{packets of money} as per Interledger's vernacular). Interledger takes its inspiration from IP routing and instead of IP addresses it makes use of an ILP (Interledger packet) address. ILP packets differ from the \emph{best-effort} IP routing in the way that ILP packets can not be lost or stolen since in the case of ILP, funds with real monetary value are transferred instead of data. This is achieved by making use of Hashed Timelock Agreements (HTLA)\footnote{\url{https://interledger.org/rfcs/0022-hashed-timelock-agreements/}} in combination with SPV to settle cross ledger payment claims. HTLAs work across the ledgers and enable conditional transfers. Conditional transfers involve a \emph{preparation step} whereby a transfer is first prepared which implies that a sender's funds are put on hold by a ledger's contract until a condition is met which manifests itself in the form of a digest of a cryptographic hash function. Its incumbent on a recipient to present this digest in the form of a \emph{preimage} within a certain time window. If the time expires the funds are automatically released to the sender. This way, by making use of HTLAs the funds can not be lost in transit.

In conclusion, we see the problem of blockchain interoperability as akin to the Border Gateway Protocol's (BGP) routing problem where different Autonomous Systems (ASes) interoperate with each other with a mutually agreed upon control plane information. In our opinion these two problems seem to fit well together. Both domains (i.e., BGP routing and blockchain interoperability) can motivate solutions in each other. As an example, in our opinion, it would be beneficial if BGP attributes such as AS prefixes with corresponding control plane information (such as peering agreements) are stored in an immutable manner in a blocckhain-based database for routing checks. There will, however, be scalability and latency concerns as a blockchain's transaction rate must keep up with the dynamic nature of the changing network topologies in different ASes. Still, storage of network topological graphs with peering agreements will create an opportunity for a more trusted, transparent, and auditable routing decisions with a lesser chance for censorship and collusion.
\subsection{Decentralized Email}
\label{subsec: dist_email}
Today, electronic mail (email) is a common form of communication among many that usually consists of a mail client and an associated server.  There are various protocols such as SMTP, ESMTP, POP, and IMAP for formatting, processing, delivering, and displaying email messages by ensuring interoperability among different mail clients and servers. The security of an email system relies on a continuous process of planning and management. Email messages pass through the non-trusted external networks that are often beyond the control of an email provider's security system. These email messages, without appropriate security safeguards, can potentially be read, modified, and copied at any point along their path \cite{stine2010mail}.   Melissa, Sasser worm and other embedded hyperlinks and viruses have damaged millions of computers and their data \cite{ferguson2005fostering}. Email solutions (such as Yahoo) have suffered from data breaches in the past and have resultantly urged their users to change their password keys \cite{emailyahoo}. In order to improve on these centralized email systems to better safeguard the users' private and sensitive information, a radical change in the underlying technology seems imperative.

One of the solutions to address the vulnerabilities of the email system described above can be in the form of a blockchain-powered decentralized and distributed email system. Email addresses, in a similar way to DNS address assignment as discussed in the last section, can be assigned to the users over blockchain technology.  In this system, there is no centralized controlling server in order to gain access to personal data and records. Most importantly,
email communication using blockchain technology is not under the influence of government authorities that could exploit the centralized email providers such as ISPs and technology giants such as Google, Amazon, and Facebook, etc. John McAfee Swiftmail\footnote{http://johnmcafeeswiftmail.com/} is a blockchain-based email solution with $256$-bit end-to-end encryption for the protection of data. CryptaMail\footnote{http://www.cryptamail.com/} is another blockchain-based email service that claims $100\%$ security based on the decentralized system without third party involvement. Gmelius blockchain architecture is a hybrid system that offers a scalable and cost-effective framework that anchors email associated data into the Ethereum \cite{bersieremail}.

\subsection{Blockchain for the Internet-of-Things (IoT)}
\label{subsec: bc_for_iot}
The Internet of Things (IoT) broadly speaking is a network of everyday objects in which the IoT devices capture or generate enormous amounts of data and send it over the network \cite{xia2012internet}. This interconnection of a large number of IoT devices is known to cause many privacy and security issues \cite{dorri2016blockchain, ahmed2017comprehensive, oravec2017emerging,sicari2015security}. The IoT-based social, such as health-related, applications often end up monitoring and collecting sensitive personal information. When such information is exposed to third parties, such as health-care providers, the prospects of inadvertent or malicious privacy compromises become highly probable \cite{ukil2014iot}. Compliance with the privacy and security rules and policies for a particular application is a significant challenge in IoT-based systems \cite{pasquier2018data}. In such systems, blockchain-based solutions can help in addressing the issues related to security and privacy. Besides the by-design existence of some implementation constraints of energy, delay, and computation overhead in IoT devices, businesses have started initiatives to use blockchain into their various domains such as in production and supply chain management \cite{kshetri2017can, huckle2016internet}. For example, the IBM Watson IoT platform\footnote{\url{ibm.co/2rJWCPC}} empowers the users to put their data on blockchain ledgers, which can later be used in shared transactions among different members of an IoT-related business consortium. This way members of such consortium can take part in verifying transactions against IoT data, dispute resolution, and accountability mechanism in a trusted, transparent, and mutually agreed upon manner. The data collected from devices in an IoT network is formatted into such API formats that are understandable to blockchain smart contracts. The IBM Watson IoT platform enables a business solution to manage, analyze, and customize IoT data, according to a pre-agreed policy, to be shared among permissioned clients, members, and smart contracts \cite{kshetri2017can}.

The importance of IoT can be gauged by observing the manufacturing industry, which is increasingly adopting IoT-based solutions for machine diagnostics, manufacturing automation, and health management of industrial machines \cite{bahga2016blockchain}. Cloud-powered manufacturing systems along with IoT technology help in the provisioning of manufacturing resources to the clients as per the existing demand. This usually requires the involvement of a centrally trusted third party. A blockchain-based platform called Blockchain Platform for Industrial Internet of Things (BPIIoT) is a trustless P2P network where the exchange of services may take place without the need for a central trusted third party \cite{bahga2016blockchain}. BPIIoT provides a platform for the development of dApps pertaining to P2P manufacturing applications. BPIIoT improves on a similar project called Slock.it\footnote{\url{https://slock.it/landing.html}}, according to the authors of \cite{bahga2016blockchain}, being generic in terms of dApp development. BPIIoT's platform consists of a single-board computer that provides a bridge to both cloud and blockchain services. BPIIoT enables customer-to-machine and machine-to-machine transactions without the involvement of third parties. For more details on the applications of blockchain for the Internet of things (IoT), the interested readers are referred to a comprehensive survey on this topic \cite{ali2018applications}.

\begin{table*}[!ht]
\centering
\scriptsize
\begin{tabular}{ |m{2.4cm} | m{3.8cm} |m{10.9cm}|}
\hline
\textbf{Scope}
& \textbf{Example(s)}
& \textbf{Description}
 \\ \hline
\begin{tabular}[c]{@{}l@{}}Cryptocurrency\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Bitcoin, Bcash, Iota, OmiseGO, \\Litecoin, Ripple, Dash, Zcash, Monero\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Decentralized peer-to-peer electronic cash system for online payments.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Smart Contract\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Ethereum \cite{wood2014ethereum}, Ripple\cite{luu2016making}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Occurrence of certain events triggers transfers of different things, i.e., security deposit payment, \\saving wallets, decentralized gambling, wills etc. \end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Cloud Services\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Abuse Prevention\cite{szefer2013bitdeposit}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Defence to stop attacks and service abuses in cloud computing applications. \end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Message Exchange\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Bitmessage\cite{warren2012bitmessage}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Secure system to send and receive messages. \end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Identity and Privacy\end{tabular}
&\begin{tabular}[c]{@{}l@{}}ChainAnchor\cite{shrier2016blockchain}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Trusted, privacy-preserving, identity management system. \end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Voting System\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Electronic Vote\cite{noizat2015blockchain}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Electronic vote transaction system for a voter to spend the vote in favor of one or more candidate recipients. \end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Digital Content\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Content Distribution\cite{kishigami2015blockchain}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Decentralized and peer-to-peer digital content management system with rights management mechanism. \end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Health\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Patient Data\cite{peterson2016blockchain}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Patient data sharing system based on blockchain technology. \end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Transportation\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Vehicle Communication\cite{rowan2017securing}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Secure vehicle to vehicle communication system. \end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Agriculture\end{tabular}
&\begin{tabular}[c]{@{}l@{}}ICT E-Agriculture\cite{lin2017blockchain}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Distributed ledger system to safeguarded transparent data management. \end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Software\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Software Connector\cite{xu2016blockchain}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Software components states sharing system without trusting a central integration point.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Micro Finance\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Stellar\cite{mattila2016blockchain}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Creates services and financial products using blockchain architecture.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}E-Commerce\end{tabular}
&\begin{tabular}[c]{@{}l@{}}OpenBazaar\cite{OpenBaza43:online}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Provides trading platform for users where they can make free transactions among themselves.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Mobile Banking \end{tabular}
&\begin{tabular}[c]{@{}l@{}}Atlas\cite{Atlas85:online}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Atlas provides platform for mobile banking and connects world communities through it.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Storage \end{tabular}
&\begin{tabular}[c]{@{}l@{}}Sia\cite{Sia60:online}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}A cloud storage platforms, enables anyone to make money.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}DNS \end{tabular}
&\begin{tabular}[c]{@{}l@{}}Namecoin\cite{wei2017review}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}A blockchain-based domain name system.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Document Management \end{tabular}
&\begin{tabular}[c]{@{}l@{}}Blockcerts\cite{HomeBloc62:online}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Issue and verify certificates for academic, professional, workforce and civic records.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Storage \end{tabular}
&\begin{tabular}[c]{@{}l@{}}BigchainDB, MaidSafe,\\ Filecoin\cite{Bigchain57:online}\cite{MaidSafe99:online}\cite{Filecoin58:online} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}Scalable storage which supports diverse applications, platforms, industries and use cases.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Business and Economy\end{tabular}
&\begin{tabular}[c]{@{}l@{}}IBM Blockchain Platform\cite{IBMBlock70:online} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}Integrated platform designed for creation and acceleration of blockchain based businesses.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Internet of Things (IoT) \end{tabular}
&\begin{tabular}[c]{@{}l@{}}IBM Watson IoT\cite{IBMWatso80:online}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Accountability and security in blockchain-based internet of things.\end{tabular}\\\hline

\end{tabular}
\caption{Examples of blockchain-based applications}
\label{table: Apps}
\end{table*}

\begin{table*}[!ht]
\centering
\scriptsize
\begin{tabular}{ |m{2.4cm} | m{3.8cm} |m{10.9cm}|}
\hline
\textbf{Scope}
& \textbf{Startups}
& \textbf{Description}
 \\ \hline

\begin{tabular}[c]{@{}l@{}}IoT and Economics\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Chronicled\cite{Chronicl81:online}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Provides trusted data, ensures data provenence of IoT devices and helps in business process automation\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Security and Intelligence\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Elliptic\cite{Elliptic79:online}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Necessary intelligence information to security agencies and financial departments.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Data Security\end{tabular}
&\begin{tabular}[c]{@{}l@{}}LuxTrust\cite{LuxTrust43:online}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Provides security to customer's electronic data and digital identity.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Regulatory Compliance\end{tabular}
&\begin{tabular}[c]{@{}l@{}}GuardTime\cite{DataCent57:online}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Data protection regulatory compliance software.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Financial\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Augur\cite{Decentra22:online}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}A market forecasting tool to increase profitability.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Transportation\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Lazooz\cite{LaZooz5:online}\end{tabular}
&\begin{tabular}[c]{@{}l@{}} Real-time ridesharing services.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Property Records\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Ubiquity\cite{UBITQUIT21:online}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Provide service for secure ownership record of property.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Process Compliance\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Startumn\cite{Stratumn57:online}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Ensures process integrity and improves regulatory compliance.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Music\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Mycelia\cite{Myceliaf27:online}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Music industry online services.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Asset Management\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Gem\cite{Introduc12:online}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Secure identification of assets.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Data Security\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Tieriom\cite{TierionB18:online}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Data protection service.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Tracking and Ownership\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Provenance\cite{Provenan44:online}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Maintain digital history of things.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Music\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Ujo Music\cite{UJO40:online}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}An online music store.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Smart Contracts\end{tabular}
&\begin{tabular}[c]{@{}l@{}}SkuChain\cite{Skuchain28:online}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Offers services like: Smart contracts, provenance of things, Inventory Management.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Storage\end{tabular}
&\begin{tabular}[c]{@{}l@{}}Storj\cite{StorjDec1:online}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}A distributed storage platform.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}E-commerce \end{tabular}
&\begin{tabular}[c]{@{}l@{}}Gyft\cite{GyftBloc41:online} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}An online gift transfer platform.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Firearms\end{tabular}
&\begin{tabular}[c]{@{}l@{}}BlockSafe\cite{Blocksaf95:online} \end{tabular}
&\begin{tabular}[c]{@{}l@{}}A secure and privacy enabled firearm solution.\end{tabular}\\\hline

\begin{tabular}[c]{@{}l@{}}Health and Environment\end{tabular}
&\begin{tabular}[c]{@{}l@{}}BitGive\cite{BitgiveF58:online}\end{tabular}
&\begin{tabular}[c]{@{}l@{}}By using blockchain technology it works for the improvement of public health and environment worldwide.\end{tabular}\\\hline

\end{tabular}
\caption{Examples of blockchain-based startups}
\label{table: Appss}
\end{table*}

Another IoT project, managed by IBM in collaboration with Samsung, is the blockchain-powered and Ethereum-based Autonomous Decentralized Peer-to-Peer Telemetry (ADEPT) system. Ethereum is a blockchain-based generalized technology that can be considered as the compute framework for trustful messaging. Contracts authored under this framework endorse the rules designed for interaction between network nodes and thus are considered more secure. It also provides developers with a platform for building applications integrated with the Ethereum message passing framework \cite{wood2014ethereum}. ADEPT realizes a decentralized IoT solution by following the three principles: i) P2P messaging, ii) distributed file sharing, and iii) autonomous coordination among the devices of IoT network. ADEPT makes use of Telehash (an encrypted mesh networking protocol)\footnote{\url{http://telehash.org}}, BitTorrent, and Ethereum respectively to realize the three principles just described. Ethereum's blockchain enables device owners of ADEPT's IoT network to automate rules of engagement, the registration and authentication processes, and interactions among themselves in a decentralized and trusted manner. This can be achieved in one of two ways namely: i) proximity-based: taking into consideration physical, temporal or social distance and ii) consensus-based: taking into consideration selection, validation, or blacklisting criterion \cite{Empoweri53:online, Adepttec30:online, karstconnecting}.

Among other works is Filament, a blockchain-based technology stack that enables IoT devices to discover, register, manage, and communicate in a decentralized manner \cite{Filament18:online, worner2016bitcoin}. In \cite{bocek2017blockchains}, a system named modum.io\footnote{\url{https://modum.io}} has been presented, which utilizes blockchain-based IoT devices to ensure the immutability of the transactions related to physical products and facilitates in the regularization of the supply-chain management process in the various fields.

\subsection{Blockchain-based Content Distribution}
\label{subsec: bc_cdn}
Content distribution networks (CDNs) are an effective approach to improve Internet service quality by replicating the content at different strategic geographic locations in the form of data centers. Users can request and access data from the closest replica server instead of always fetching it from the data-originating server. Generally, large companies such as Netflix and Google's YouTube service, have their own dedicated CDNs, while smaller organizations can rent CDN space from other companies like Akamai. BitTorrent is a P2P content distribution protocol that enables the propagation of data using networks of computers for downloading and uploading simultaneously without a central server \cite{pouwelse2005bittorrent}. BitTorrent's network consists of a large number of peers, which complicates the task of traffic management. The other major issue with the current CDNs is that the content creators receive an inadequate share of the revenue, especially in digital content distribution sector \cite{CDNIssus}. Similarly, the media sector is also significantly suffering because the content can be easily copied and distributed.

Blockchain technology can be the solution with the necessary ingredients to significantly resolve the challenges related to content distribution. It can stabilize the rights management related issues for studios and artists by providing a better way of content control. This can enable a more agile method for content delivery with a more trusted, autonomous, and intelligent network. In a blockchain-based CDN, the participants can independently verify a record and its origin without the need for a centralized authority for verification. Blockchain can store all the record related to the content (e.g., its origin), and share over the network in an immutable form along with the provision of enabling a monetization system to empower the content creators.

DECENT\footnote{https://decent.ch/}, as an example, is a blockchain-based CDN that provides secure content distribution and maintains the reputations of the content creator with a  mechanism for the payment between authors and client nodes also in place. Content (e.g., ebooks, videos, and audio) is released cryptographically over the global DECENT network and other nodes can then purchase them with DECENT tokens. SingularDTV\footnote{\url{https://singulardtv.com/}} is a media industry initiative in which an Ethereum-based entertainment studio is developed that can enable rights management as well as P2P distribution to empower artists and creators.

\subsection{Distributed Cloud Storage}
\label{subsec: dist_cloud_storage}
Today, consumers and enterprises face the storage and management problems caused by an ever-increasing volume of data on non-volatile data storage systems. Despite the popularity of cloud storage solutions (such as Dropbox and Google Drive), the control, security, and privacy of data remain major concerns \cite{crosby2016blockchain}. It is largely due to the current model being adopted by the cloud storage systems that often puts them under a centralized institutional authority. In this model, data is transferred over TCP/IP from a client to the host servers in the legacy client-server model \cite{wilkinson2014metadisk}. The information thieves, censorship agencies and spies can potentially tamper with or copy the stored confidential files from hosting servers through technological means, legal tactics and political strategies \cite{kaufman2009data,kandukuri2009cloud,subashini2011survey,wang2009enabling,wang2010privacy}.

Such problems, mostly caused by central and identifiable points in the current cloud storage systems\footnote{\url{https://newsroom.fb.com/news/2018/09/security-update/}}, can potentially be solved using decentralization and (transparent and trusted execution in the form of) automation based on a trust agreement between a client and a host service provider. There exist some storage solutions such as MaidSafe\footnote{\url{https://maidsafe.net}} and Tornet\footnote{\url{https://github.com/bytemaster/tornet}} that outline possible alternatives for a decentralized cloud, but security, scalability,
and cost efficiency of these solutions still remain in question. Therefore, a cloud storage system with trusted and verifiable security guarantees, high redundancy, and scalability, is required that should be economically viable while being practical at the same time. Blockchain-based cloud storage solutions inherit characteristics such as decentralization, anonymity, and trusted execution of transactions among the members of a trust agreement and can pave the way for a verifiable and trusted cloud computing era.

Storj\footnote{\url{https://storj.io}} is a blockchain-based P2P distributed data storage platform that enables users to tailor their data sharing and storage as per individual agreements with other network peers and the third party service providers. Entities can earn cryptocurrency-based micro-payments by sharing the unused disk space and Internet bandwidth of their computing devices. In the context of distributed cloud, Dong et al. \cite{dong2017betrayal} proposed a  game-theoretic, smart-contract-based verifiable cloud-computing framework. This enables the clients to analyze collusion between two different clouds by making them perform the same computing task. In this framework, the users use smart contracts to simulate distrust, tension, and betrayal between the clouds to detect, and in turn, avoid cheating and collusion. Similarly, Sia\footnote{\url{https://sia.tech}} is another blockchain-based cloud storage platform. Sia platform automates trusted service level agreements (SLAs) between a user and storage provider using smart contracts. It is an open source platform that splits users' data into encrypted fragments and distributes them across a P2P network that increases network resilience and reduces downtime. Unlike the traditional storage solutions, the data in this scheme becomes more secure in the sense that one can only access this data if in possession of associated cryptographic keys. Another important work is Filecoin \cite{filecoinWhitepaper}. Filecoin realizes the concept of distributed storage network in terms of an algorithmic marketplace for storage. Filecoin is built as an incentive layer on top of another distributed file system called Inter-Planetary File System (IPFS). The miners in Filecoin host the storage space with the mining capability determined by the storage capacity a miner possesses. Filecoin enables verifiable markets, which dictates how and where data is written to and read from. Each read/write transaction is powered by the underlying cryptocurrency called Filecoin.

\subsection{Applications in Online Social Networks}
\label{dist_OSNs}
The engagement of people with online social networks (OSNs) has increased greatly in recent years \cite{Numbero75:online}. Users often put trust in these OSNs and share their personal details with their online social community. Privacy and security concerns however still remain an issue with many OSNs. Any breach of trust has the potential to detriment a user's virtual and, often in turn, real-world identities \cite{fire2014online}. As an example, in one of the biggest data breaches\footnote{https://www.nytimes.com/2018/03/19/technology/facebook-cambridge-analytica-explained.html}, a data firm named Cambridge Analytica got the access to personal information of more than 50 million Facebook (an online social network) users during 2016 US presidential campaign. The firm provided software tools to analyze/predict American voters' behavior/personalities and influenced their choices of the ballot\footnote{https://www.theguardian.com/news/2018/mar/17/cambridge-analytica-facebook-influence-us-election}.

Decentralization, transparency, and P2P consensus gives blockchain the potential to address most of these aforementioned security and privacy concerns prevalent in OSNs  \cite{mitblock86:online}. As an example, a blockchain-based social media platform named ``Steem''\footnote{https://steem.io} gives online community an opportunity to have a say on the nature of the  content that gets popular on a social network. Steem enables users to earn rewards on the basis of votes received by the community against their contributions \cite{SteemWhi91:online}. This encourages an honest participation of community peers in maintaining the quality of the overall network. Such OSN systems can further be made self-healing by a blockchain-based ``reputation system'', such as the one proposed by Dennis et al. \cite{dennis2015rep}. This system keeps records of users' reputation based on their transaction history. In our opinion, such techniques, while not being free of some ethical concerns, greatly reduce the snooping and policing by the centralized authorities such as governments\footnote{\url{https://www.theguardian.com/world/2013/jun/06/us-tech-giants-nsa-data}}.

\subsection{Cybersecurity}

A study on cybercrime \cite{2017Cost74:online} conducted on some organizations, says that information loss remained the major cost component and increased from 35\% in 2015 to 43\% in 2017.  Blockchains in particular can be a costly target for cyberattacks \cite{IECBlock59, myers2017block}. As an example, DDoS attacks on a blockchain system can take the form of flooding the network with small transactions. Still such transactions must be paid for (in the units of gas) in order for them to be confirmed by the network \cite{IECBlock59}. The operations that require very (disproportionately) low gas costs are vulnerable to exploitation by attacker\footnote{\url{https://www.coindesk.com/so-ethereums-blockchain-is-still-under-attack/}}. However, when it comes to the execution of smart contracts then there is a large attack surface area. This is because, often, a set of smart contracts is deployed to automate an application with all of its members working in unison. If one member of such a set malfunctions it can then trigger a domino effect rendering the whole set malfunction \cite{IECBlock59}. As an example an ambitious ethereum-based project implemented called decentralized autonomous organization (DAO) got hacked resulting in the theft of about $60$M Ether\footnote{\url{https://tinyurl.com/DAOattack}}. Such attacks can further be avoided by providing further trust guarantees for the code and logic of the smart contract itself. For instance, Tezos proposes the concept of a \emph{self amending ledger} and to make the deployment of a smart contract more trusted it provides formal proofs of the code of a smart contract in order to secure the trust of all the parties interested in the execution of this smart contact \cite{tezosWhitePaper}.

Based on blockchain technology, REMME\footnote{https://www.remme.io} is a password authentication system for safeguarding the confidential credential information from cyberattacks and at the same time disregarding the need to remember passwords \cite{WhitePap7:online}.

Estonian cryptographer Ahto Buldas co-founded an information security company named Guardtime\footnote{https://guardtime.com} in 2007. This company has been working to secure sensitive records using blockchain technology. The company has designed a Keyless Signature Infrastructure (KSI) \cite{KSIdatas0:online} against the commonly used Public Key Infrastructure (PKI). In this new infrastructure, centralized Certificate Authority (CA) uses asymmetric encryption and manages public keys. Thus helping in reducing the risk of informational asset loss from cybersecurity-related incidents.

Obsidian\footnote{https://obsidianplatform.com} is also blockchain technology based platform for secure message exchange without any provisioning of centralized management mechanism. In this system, the meta-data about the undergoing communications is spread out in distributed ledgers and cannot be collected at centralized locations. Hence, in the context of cybersecurity, it decreases the chance of surveillance or tracking and in this way addresses privacy issues \cite{Obsidian56:online}.

\subsection{Public Key Infrastructure (PKI): Certificate Authority (CA)}
\label{Cert_Auth}
Public Key Infrastructure (PKI) establishes a link between identities like domain names to a cryptographic public key with help of certificates \cite{polyzosblockchain}. Among traditional approaches to PKIs, the most common choice is the use of Certificate Authority (CA) that serves as a trusted third party and manages the distribution digital certificates over the network. This creates a single point of failure in such PKIs in practice \cite{fromknecht2014decentralized}. There have been many incidents when these centralized CA's have been compromised---e.g., the DigiNotar attack: 531 fraudulent certificates issued \cite{prins2011diginotar} \cite{fisher2012final}; Trustwave's issuance of digital ``skeleton key'' for surveillance \cite{Trustwav26:online}; Debian's predictable random number generator in the OpenSSL package \cite{DebianSe99:online}; Stuxnet malware: compromise on code-signing certificates \cite{w32stuxn78:online} \cite{seltzer2013securing}; Duqu malware: stealing of digital certificates along with the private keys \cite{bencsath2011duqu, bencsath2012cousins, bencsath2012duqu, faisal2012stuxnet}; and the console hacking of Playstation 3 with compromised private keys \cite{schmid2015ecdsa}.

Developing a blockchain-based PKI is a feasible alternative to the existing PKIs, which can provide the required security properties \cite{axon2015privacy}. In a blockchain-based implementation of the PKI system, the user identities are bound to public-keys using distributed public ledgers \cite{ali2016blockstack}.
A blockchain-based decentralized PKI system called ``CertCoin'' for secure identity management and retention has been in use. This system trusts the majority of peer network users instead of any central trusted party. It has two different mechanisms for verification of the known public key and the lookup for a new public key, which are supported by decentralized efficient data structures \cite{fromknecht2014decentralized}. In \cite{qin2017cecoin}, another blockchain-based distributed PKI scheme has been proposed that resolves the single point failure issue. This scheme ensures validity and ownership consistency of public-key certificates by miner's proof-of-work. It uses Merkle Patricia tree (see for details \cite{Patricia69:online}) for efficient accessibility of certificates without relying on any central trusted third party. Similarly other blockchain-based PKIs have been discussed in \cite{axonpb,al2017scpki,tewarix509cloud,matsumoto2016ikp}.
\subsection{Other Applications}

Using the blockchain technology, a company named Factom has started a land registration project with the Government of Honduras to ensure integrity and correctness of the information. Using the same technology, they have engaged in projects related to smart cities, document verification, and the finance industry \cite{underwood2016blockchain}.

In another application, a blockchain-based startup Everledger is working on bringing transparency to the supply chain of diamonds, which was previously perceived as complex, risky and prone to carrying false and incomplete information. Everledger has been designed to reduce fraudulent modifications in the records to help financial institutions, businesses, and insurance companies with actual details of information \cite{yeoh2017regulatory}.

A bitcoin-based startup Abra for transferring money to anyone with minimal charges of transaction. No intermediate party gets involved in this transaction \cite{AbraBuyS84:online}. Blockchain is being considered as a novel software connector, which can provide a decentralized alternative to existing centralized systems resulting in quality attributes. For example, Xu et al. \cite{xu2016blockchain} found that blockchain can improve information transparency and traceability as a software connector.

Openchain\footnote{https://www.openchain.org} is a distributed ledger based system, which helps in the management of digital assets while ensuring their robustness, security, and scalability. AKASHA\footnote{https://akasha.world} provides people with a platform to publish and share their content online. Participants of this system get rewarded for their content based on the votes against their entries.

OpenBazaar\footnote{https://www.openbazaar.org} is a blockchain-based platform, which facilitates people to make transactions freely among themselves. Users of this system cannot censor the transactions or freeze the payments. Users also enjoy the flexibility of sharing information as much as they want. However, the buyers and sellers can engage intermediate moderators to resolve any dispute that may arise between the involved parties \cite{mattila2016blockchain}.

\section{Challenges and the Road Ahead}
\label{sec: challenges}
The blockchain is expected to drive economic changes on a global scale by revolutionizing industry and commerce by redefining how digital trust mechanisms through distributed consensus mechanisms and transparent tamper-evident recordkeeping. The disruption of blockchain is evident, and people are beginning to adopt this distributed ledger technology. There are, however, various hurdles that are slowing down the rate of blockchain's adoption. Some of these challenges are discussed below and with pointers to how these challenges might find a solution in the future.

\subsection{Governance, Operational \& Regulatory Issues}
\label{subsec: governance}
Blockchain has great potential to enable efficient and secure real-time transactions across a large number of industries by providing financial services visibility along a supply chain and streamlining government authorities and consumers. Blockchain technology is still far from being adopted en masse due to some unsolved challenges of standards and regulation. Although it’s hard to regulate the development of the blockchain technology itself, blockchain-based activities (such as financial services, smart contract, etc.) should be regulated \cite{cermeno2016blockchain}.  To support its emergence and commercial implementation, the development of standards and regulations are required to establish market confidence and trust. These regulations can also be used for law enforcement to monitor fraudulent activities e.g., money laundering.

In May 2016, a complex set of smart contracts named Decentralized Autonomous Organization (DAO) was built on top of Ethereum blockchain. It was a crowd-funding platform for defining organization rules\footnote{https://www.coindesk.com/understanding-dao-hack-journalists}. After this smart contract's creation, there was a period of funding during which users could earn its restrictive ownership by purchasing Ether (i.e., the underlying cryptocurrecy). After the completion of that funding period, the DAO started its operation in which the restrictive owners (also called members) casted their votes for the usage of collected funds. Initially, this operation was very successful and raised over \$150M from 11,000 members within a one month duration \cite{bharadwaj2016blockchain}. In June 2016, almost \$70M were drained after a hack making use of a recursive call exploit. The hackers used this exploit to get Ether back from DAO repeatedly before its actual balance update\footnote{https://www.cryptocompare.com/coins/guides/the-dao-the-hack-the-soft-fork-and-the-hard-fork}. Another such incident happened in May 2017, when the WannaCry ransomware cyberattack targeted computers, encrypted their data and demanded the ransom money in cryptocurrency. In total, an amount higher than \pounds 108,000 was paid in Bitcoin cryptocurrency by the victims. The impact of this cyberattack was reportedly seen in 150 countries worldwide\footnote{https://www.theguardian.com/technology/2017/may/12/global-cyber-attack-ransomware-nsa-uk-nhs}.

If blockchain is to get widely adopted, centralized regulatory agencies, such as governmental agencies and multinational corporations, may be unable to control and shape the activities based on blockchain technology \cite{wright2015decentralized}. Because blockchain has no specific location and each node may subject to a different geographic jurisdiction and therefore different applicable laws and legal requirements. There is no central administration for each distributed ledger, therefore, territorial regulations constitute a problem \cite{sebastian2016blockchain}. As a result, there is an increased need to focus on the regulation of this cross-border nature of technology.

In the \textit{Roadmap for Blockchain Standards Report} \cite{Roadmapf79}, it has been emphasized that there is a need to establish international standards regarding blockchain terminology, interoperability (between blockchain systems), user privacy, security, user identity, governance and risk related issues so that people's confidence in blockchain-based businesses may be developed. The report has further highlighted the need for collaboration among committees and experts in order to further strengthen the regulated use of the blockchain technology.

In \cite{de2017understanding}, it has been described that there are many interpretations of the blockchain technology in literature and formal blockchain terminologies are yet to be defined, i.e., permissioned blockchains vs. private distributed ledgers are few of those used interchangeably. In this \cite{deshpande2017understanding} literature, the importance of standards in paving the way for interoperability between multiple blockchain platforms and applications, have been discussed. The author is of the view that developing such standards for ensuring interoperability can help in minimizing the risk of fragmented blockchain systems.

At first, the organizations who have been governing the Internet, considered blockchain technologies as beyond their scope but this opinion changed later \cite{tapscott2016blockchain}. The World Wide Web Consortium (W3C) has been discussing online payments by utilizing the blockchain's potential\footnote{https://goo.gl/NjVLri}. The Internet Governance Forum (IGF) has been arranging sessions on blockchain technology to devise a distributed governance framework\footnote{https://goo.gl/9pPeiQ}. The Her Majesty's Revenue and Customs (HMRC) issued a policy paper describing the tax treatment for the income earned from Bitcoin (blockchain-based cryptocurrency) and other cryptocurrencies-related activities \cite{Revenuea86}. The Financial Crimes Enforcement Network (FinCEN) has recommended that decentralized currencies should follow the money laundering regulations \cite{network2013application} \cite{guadamuz2015blockchains}.

The European Securities Market Authority (ESMA) has issued a paper\cite{2016773d76} in which the benefits and risks of the blockchain technology in securities markets have been discussed. The UK Treasury has issued a report \cite{walport2016distributed}, which has emphasized the need for Government to make efforts for the necessary regulatory framework in parallel to new blockchain-based developments. Moreover, other US regulatory authorities and agencies like Securities and Exchange Commission (SEC), Commodity Futures Trading Commission (CFTC), Internal Revenue Service (IRS) and Federal Trade Commission (FTC) have been working to make regulations pertaining to blockchain-based businesses and applications \cite{kakavand2016blockchain}.

\vspace{2mm}
\subsubsection{Blockchain and GDPR}
\label{subsubsec: bc_gdpr}
The European General Data Protection Regulation (GDPR) was adopted in 2016 by the European Parliament and the European Council \cite{GDPRdoc}. Since then, two years were given to the businesses to prepare themselves to comply with the regulation. In this section, we discuss where does the compliance with GDPR put the blockchain technology? Will the original premise of decentralization and immutability be able to sustain under the GDPR ramifications particularly when we consider the \emph{right to be forgotten} clause of GDPR? In what follows we first provide a brief overview of the GDPR, the duties it puts on businesses, the rights it gives to the users', and finally what are its ramifications on the blockchain technology in general?

After its legislation, the GDPR came into effect on May 25, 2018, and is applicable to any kind of information that can be associated with an either identified or identifiable living person\footnote{\url{https://gdpr-info.eu/art-4-gdpr/}}. Some of the examples of identifiable information include names, unique code number, IP address, single or multiple identifying characteristics. Further, GDPR applies throughout the lifecycle of personal data i.e., from data collection, to data processing through to the ultimate disposal of this data. GDPR-compliant businesses are bound to collect only data for the clearly stated purposes and process it with the users' consent. After the use of personal data for the said purpose, according to GDPR, the businesses are incumbent to delete the personal information from their local storage. However, this excludes data pertaining to a deceased person and processing of such data is at the disposal of local policies in place at a particular geographic region \cite{GDPRdoc}.

GDPR gives users certain rights when they interact with businesses which provide a service based on their personal data collection and processing. These rights include:

\begin{enumerate}
\item \textbf{Awareness:} This entails that the users' must be informed about how their personal data will be used;
\item \textbf{Access:} The users must be able to access copies of their data collected by a business or a service provider free of charge;

\item \textbf{Correction:} If a user finds some inaccuracies in her data held by a company then she must be able to flag it as disputed;

\item \textbf{Deletion:} A user must be able to make a company delete all the information pertaining to her whenever she chooses. (This right is sometimes referred to as the \emph{right to be forgotten});

\item \textbf{Restriction:} If a user is in a process of assessing the accurateness of her data use she must be able  to restrict the access to her data during the process;

\item \textbf{Objection:} A user must be able to object to the uses of her data if she disagrees with some of the automated decisions involving her (such as marketing ads or shopping recommendations).
\end{enumerate}

It can be observed that many of these rights seem to fit quite well with the blockchain's premise of decentralization, tamper-evident record keeping, transparency, and auditability. There are however a few nuances which we discuss next.

There are two important terms that GDPR defines namely \emph{data controller} and \emph{data processor} which require special attention when dealing with blockchain-based projects. Both of these entities take part in users' personal data processing with their specific consent. There is, however, a nuance in the way these two entities function. Controller is an entity which sets the purposes and means for data processing. Controllers can take the shape of a natural or legal person, authority, or an agency. Data processors, on the other hand, is similarly a natural or legal person, authority, or an agency that processes personal data on a controller's behalf strictly following the rules specified by the corresponding controller. There should also be an agreement between a controller and a processor clearly defining their roles and functions \cite{bacon2017blockchain}. Given the users' rights, as mentioned above, one of the underlying principles of GDPR is auditability which provides the provision to hold the process and the entities  involved in personal data processing accountable for their responsibilities, functions, and actions\footnote{\url{https://thenextweb.com/syndication/2018/07/26/gdpr-blockchain-cryptocurrency/}}. In the decentralized environment of blockchain the important issue is related to specifying who gets to be a data controller and who a processor \cite{bacon2017blockchain, cnil:online}.

In terms of blockchain, we consider a number of scenarios (self open, self private, open, private, consensus protocols) to answer the questions related to deciding the roles of controllers and processors. First, an entity (a business for instance) can choose to make use of the open and permissionless blockchain. In this scenario, such an entity can potentially write the core blockchain protocol and make it open source. Further, such entities can also deploy a set of smart contracts defining data processing rules and interactions among nodes of the network. We conjecture that this way such an entity can assume the role of data controller. Further, anyone can download the client software and become a node in the overall blockchain's P2P network. It has been a common practice that the open and public blockchains make use of PoW-based consensus mechanism. This implies that any node in the network can process transactions and validate them by including them in a mined block and ultimately appending that block to the overall blockchain. As we discussed earlier that PoW-based mining is a lottery-based process which means that it is a random event that a node in a network finds a nonce hence mining and ultimately appending this block to the blockchain. In this scenario, it is not a trivial task to decide who is the processor. Since potentially all the nodes in such a PoW-based network process data at the same time. We conjecture, either the whole network should be considered as a processor or the responsibility of being a processor should be weighted as per the processing power of either individual nodes or pool of such nodes (which are sometimes referred to as mining pools).

The second scenario is of private and permissioned blockchain. In this scenario, a number of entities can come together to form a consortium and then automate the dynamics of such a consortium using a permissioned version of blockchain. In this setup the entities can make use of a PoA-based consensus mechanism or Hyperledger's channel-based permissioned blockchain \footnote{\url{https://hyperledger-fabric.readthedocs.io/en/release-1.3/channels.html}}. Further, such entities can rent storage and computational resources from a third party cloud provider and hence rendering them as data processors. On the other hand, the consortium as a whole can assume the role of a data controller. Again, we conjecture, if the consortium makes use of a consensus mechanism such as PoS then as far as accountability is concerned then each node can be held accountable according to the stake value that such node holds in the overall network.

\subsubsection{Right to be forgotten}
\label{subsubsec: RTBF}
Although many of the principles outlined in GDPR such as data auditability fit quite well with blockchain's premise, the main bone of contention, however, in the way of making blockchain-based decentralized solutions in compliance with GDPR is the so called \emph{right to be forgotten}. This right dictates that a user must be able to instruct a business at any time to remove personal data pertaining to her. Further, as discussed above, the businesses are incumbent to delete personal data after a set duration of time. This right seems at odds with the blockchain's data integrity guarantees. The situation gets worse as blockchain-based solutions are usually distributed with multiple copies of the records stored at different nodes of the network.

As paradoxical as deletion and integrity seem at first glance there are, however, proposals to reconcile these two seemingly opposing principles\footnote{\url{https://thenextweb.com/syndication/2018/07/26/gdpr-blockchain-cryptocurrency/}}. One of the solutions could be to encrypt each data entry in blockchain with a key pair and only store the ciphertext on a blockchain. This way deletion can be achieved by simply deleting the corresponding private key while still preserving the ciphertext on blockchain. In some geographical jurisdictions (such as in Britain\footnote{\url{https://bit.ly/1VBf6Y8}}) the interpretation of GDPR does recognize such methods of digital deletion. However, such techniques do not provide a future-proof guarantee since with the advent of new and faster technologies and techniques such as quantum computing, such encryption methods pose a risk for future data breaches\footnote{\url{https://www.bundesblock.de/wp-content/uploads/2018/05/GDPR_Position_Paper_v1.0.pdf}}.

Another proposal is to only store hashes of data on blockchain while storing the actual data in an off-chain storage. This way the deletion can be achieved by deleting the off-chain stored record while keeping the hash of it intact on blockchain. An argument against this technique is that the hash of a blob of data can still qualify as personal data since if an entity possesses this blob then she can easily reconstruct the hash and decipher what was stored on blockchain in the first place. To get around this problem, we can use \emph{hash peppering} whereby a random and secretly kept nonce is appended to the blob of data before taking its hash and storing it on blockchain. This, however, implies keeping the nonces well protected and secret and does imply some level of trust on third parties that are responsible for peppered hashing of data.

Another way can be to make use of a technique similar to the way \emph{channels} are implemented in Hyperledger Fabric\footnote{\url{https://hyperledger-fabric.readthedocs.io/en/release-1.3/channels.html}}. Channels can be understood as confidential and permissioned islands of smaller blockchain instances on top of a larger blockchain infrastructure. A blockchain instance pertaining to a channel can be audited in the same way a public and open blockchain opens itself to auditing. However, the actual contents of transactional records are encrypted and one can not decipher the nature of the business being automated in a channel's instance of blockchain. This way by deleting the cryptographic information related to such a channel the whole instance of the corresponding blockchain can be rendered redundant.
\begin{comment}

GDPR: More transparency for the users' about the their data held by different companies: -> Althgouh it seems to fit quite well with the transparent and auditable/immutable record keeping by blockchain in the first place.
Explain a bit about data controllers and data processors \footnote{\url{https://ico.org.uk/media/for-organisations/documents/1546/data-controllers-and-data-processors-dp-guidance.pdf}}. When explaining hashes do elaborate point number five at \footnote{\url{https://gdpr-info.eu/art-4-gdpr/}}. The point 6 at the same link seems quite relevant to blockchain's record keeping. There will also be the biggest question of who gets to be the controller when talking about e.g., a dApp built on top of a blockchain with a set of smart contracts. Also pseudonymised personal data can also fall under the law (if such a data eventually leads to the actual person i.e., the information should not be personally identifiable) -> very critical to elaborate this point -> huge ramifications for blockchain!
Data breach: GDPR enforces 72 hours period within which companies are obligated to report this incident to the appropriate regulator.
Race between policy and tech \footnote{\url{https://www.weforum.org/agenda/2018/05/will-gdpr-block-blockchain/}}. Policy needs to be flexible with a layered approach. You could mention a bit about Tezos: cooperative and auditable policy making/enforcement.
Could talk a bit about monetizing data as well.
GDPR action date: May 25, 2018.
Decentralization and GDPR and network size: If a company has more than 250 employees then a data protection officer is imperative. Where does this leave blochain then? Where it specifically advocates the absence of such third parties?
Also talk a bit about longevity and making two disparate system harmonious or interoperable with each other.
Immutability and right to be forgotton. Salil's paper: It gets even more complicated when users'use multiple keys for different transactions -> key storage/management becomes an issue. Describe briefly the concept of GV and see if there are any shortcomings?
Child pornography example who to blame if someone downloads a copy of the chain?
Storage is an issue as well and Right to be forgotton can potentially solve this issue.
Investigate: Is storing data hashes alright? Jat said otherwise.
Cite decentralizing privacy and talk about returning computation you could also talk about zero knowledge proofs as well.
Cite Salil's paper: The concept of data ageing seems quite lucrative.

Immutability and the right of forgotten is imperative to discuss. See if this very strong and sweeping claim of 'GDPR effectively banning blockchain technology in Europe ...' is true and if so then up to what extent?

See if you could talk a bit about monetizing personal data if a conset is ultimately given to third parties processors.
\end{comment}
\subsection{Scalability Issues}
\label{sec: scalabilityIssues}
Scalability is one of the major concerns in the way of wide spread adoption of blockchain-based technological solutions. We discuss this concern with following three different perspectives.
\vspace{1mm}
\subsubsection{Transaction throughput}
\label{subsubsec: throughput}
Although the Bitcoin is a popular blockchain-based global cryptocurrency, scaling it to handle the large transaction volumes worldwide raises some concerns. Among other things, the transaction processing rate of Bitcoin is affected by (1) the available network bandwidth, and (2) the network delay affects. Miners with high bandwidth and with less network delay can broadcast their blocks among peer nodes with ease and speed, while on the other hand low bandwidth miners with limited computational resources possess less probability of getting their fair share in a successful execution of proof-of-work \cite{sompolinsky2013accelerating}.

Bitcoin has seen an increasing interest, which has raised questions about its scalability. Scalability was one of the reasons that led to the creation of Bitcoin Cash\footnote{\url{https://www.investopedia.com/tech/bitcoin-vs-bitcoin-cash-whats-difference/}}; a forked version of Bitcoin but with a larger block size to allow more transactions per block.

The blockchain-based systems are usually self-managed and accept transaction blocks after approximate intervals of time. The throughputs of these transactions are mainly based on block interval and maximum block size \cite{croman2016scaling}. It has been predicted that if the blocks size were to continue to grow at the same rate then it might attain a value close to its maximum capacity level by 2017 and this could be a significant scalability concern \cite{BlogTrad16:online}.

Increasing the block size does imply a higher transaction throughput, however, this will also mean that the larger blocks would require more time to reach to the peer nodes of the network resulting in higher latency when it comes to proposing new blocks or reaching consensus on the state of a blockchain. On the other hand, the latency would decrease with decreased block interval but at the cost of potential disagreement in the system \cite{eyal2016bitcoin}. Similarly, other consensus protocols such as PoS-based consensus (as meniotned in Section \ref{subsubsec: pos}) are in development phase which are aimed to addressed the scalability and energy concerns
\vspace{1mm}
\subsubsection{Storage}
\label{subsubsec: storage}
In addition to the block size scalability concern, the storage capacity of peer nodes is another issue. The transaction rate has a direct relation with the storage capacity of the participating nodes. With more nodes joining the network, the transaction rate would likely be higher and will require more storage space on the peer nodes, which might be seen as a limitation from the perspective of the consumers \cite{wattenhoferfast}.

It has been identified that blockchain technology is not limited to cryptocurrencies, but there are various blockchain-based prototype applications that are being used in domains such as IoT, Botnet, P2P broadcast protocols, smart property, and others. This shows the potential of blockchain technology for various other industries. Currently, the size of blockchain-based applications, in terms of their user base, is relatively small. Bitcoin is the largest solution based on the blockchain, but the transaction rate in bitcoin's network in comparison to the traditional digital payment solutions is considerably lower. However, in future, blockchain-based solutions could be used by millions or trillions of individuals and the number of transactions would increase drastically. Because of the distributed storage characteristic inherent in blockchains, it will put increasing pressure on storage nodes, which could result in increased synchronization delay, power consumption, and server costs. We believe that more research is required in order to address these these scalability issues.

\subsubsection{The Lightning Network and Sharding}
\label{subsubsec: lightNetSharding}
The scalability issue can, up to some extent, be addressed by distributing the transaction execution process into multiple steps. To ensure scalability, the execution of transactions can be performed outside the blockchain, whereas the validation should take place within the blockchain network. This would decrease the transaction confirmation time.  For example, the Lightning Network is able to perform 45000 transactions per second by executing the transactions outside the blockchain \cite{scal}.

Another possible solution could be a decentralized database that can be used by both public and private blockchain and deploying sharding (which implies horizontal partitioning of records given large databases) and then merging the shardes at regular intervals\footnote{\url{https://medium.com/edchain/what-is-sharding-in-blockchain-8afd9ed4cff0}} \cite{databasesss, luu2016secure}. A decentralized database would be able to process millions of writes per second with the storage capacity of petabytes and latency in sub-seconds. This will also allow more nodes to be added to the platform, which would increase the performance and make the capacity scalabile.

\subsection{Security and Privacy Concerns}
\label{subsec: securityConcerns}
Besides security being in the system by design of the blockchain-based transactions, privacy remains a concern in applications and platforms \cite{davids2016research}. The blockchain technology has been considered as privacy-preserver and rated well in this context \cite{duffield2014darkcoin}\cite{de2016interplay}\cite{wang2016maturity}. However, third-party web trackers have been observed deanonymizing users of cryptocurrencies. These trackers fetch user's identity and purchase information from shopping websites to be used for advertisement and analysis purpose. Normally, these trackers have sufficient information required to uniquely identify the blockchain-based transaction along with user's identity \cite{goldfeder2017cookie}.

It has been widely believed that blockchain is safe as its transactions are executed with generated addresses instead of real identities \cite{zheng2016blockchain}. Besides this, in \cite{meiklejohn2013fistful} \cite{kosba2016hawk}, it has been shown that the blockchain transactions do not ensure privacy since the transaction balances and values against public key(s) remain available for all.

\begin{figure*}[!ht]
\centering
\captionsetup{justification=centering}
\centerline{\includegraphics[width=.7\textwidth]{selfish.png}}
\caption{Workflow of selfish mining attack}
\label{fig:selfish}
\end{figure*}

In addition to the privacy-related issues, there are some security concerns related to blockchain technology. There are certain scenarios that may affect the expected behavior of the blockchain system. Consider the case where a miner-A successfully generates two blocks but does not disclose it to the peer honest network nodes, instead withholds these. We may call these as secret/hidden or private blocks. The miner-A releases these secret blocks when some honest nodes complete mining of a new block (say grey block). After the release of secret blocks, the miner-A successfully adds his two secret blocks in the blockchain network (since the miner-A holds the the longest chain of honest network nodes), whereas the newly added grey block does not remain a part of honest blockchain because the grey block does not hold the longest chain of honest network nodes \cite{pass2017fruitchains} \cite{eyal2014majority}. This type of attack is called selfish mining attack (see Figure \ref{fig:selfish} ) and this results in the undermining of the fair share of the block mining rewards

51\% attack \cite{bradbury2013problem, bastiaan2015preventing, yli2016current} is another type of attack on blockchain systems. In this attack, a miner having more than half (i.e, 51\%) of network node's computational resources dominates the blockchain system in terms of transaction generation, approval, and verification and thus paves the way for fraudulent transactions generation \cite{xu2016blockchains}.

\subsection{Sustainability Issues}
\label{subsec: sustainabilityIssues}
Blockchain has attained an extraordinary amount of interest and attention and a large number of industries are adopting this virtual digital ledger.  However, it is still unclear that any particular solution of blockchain can attain a certain level of adoption for their sustainability. As a new technology, blockchain still facing operational, technical and its adoption-related issues. Similarly, there are also some aspects of blockchain technology that may need further modification or development to attain its anticipated potential. For example, although blockchain does provide a reliable cryptocurrency mechanism, it also adds latency to the network since the verification of the transaction requires consensus, which requires a certain amount of computation and a certain amount of time.

The sustainability of blockchain is still uncertain for international development projects, especially in developing countries. These projects require a very large infrastructure and involve various stakeholders, cross-border organizations, governments, and public or private parties. In these scenarios, the practicality of blockchain is unclear and it is the time to explore how blockchain will facilitate and sustain in such projects. Therefore, sustainability scientists and blockchain developers must discuss problems and solutions. More research is needed to find energy efficient approaches for Bitcoin mining. Behavioral and psychological research is required to attain people's trust in technology for cryptography. Most importantly, lawyers and programmers must collaborate to formulate smart contracts and dictionaries will be necessary that connect computer codes and legal languages.

\subsection{Anonymity}
In a blockchain system, the users utilize generated addresses, which are mostly in the form of public keys, for their unique identification over the blockchain network. The blockchain users can generate their multiple addresses in order to avoid the revelation of their real identities. These addresses are generated in the form of cryptographic keys. The said keys are then used to send and receive blockchain based transactions \cite{koshy2014analysis}.

Moreover, there is no central storage system for preserving the user's private identification details in the blockchain network. By this way, the privacy in blockchain system is maintained up-to certain extent, however, the user's privacy protection is not guaranteed since the transaction amount details and the blockchain-based cryptographic keys (i.e., used for user identification) along with their respective balances, are publicly visible \cite{zheng2016blockchain}.

The blockchain-based applications still do not completely guarantee the preservation of transactional anonymity.
The transactional transparency is impacted due to the lack of strong anonymity support for the end users \cite{de2016interplay}. In \cite{meiklejohn2013fistful}, the author showed that the movements of blockchain-based transactions are traceable and thus do not possess enough anonymity \cite{herrera2015research}. Few other anonymity tracing techniques are discussed in \cite{reid2013analysis} \cite{ron2013quantitative}.

\subsection{Use of Artificial Intelligence and Machine Learning}

Recent advancements in blockchain technology are making new ways for the involvement of AI and machine learning (ML) that can help to solve many challenges of blockchain with several important future applications. Blockchains is a technology that is being used to verify, execute and record the transaction. AI can help in understanding, recognizing, assessment decision making in the blockchain. Whereas ML techniques could help to find ways to improve decision making and smart contracts. For instance, AI can help to build an intelligent oracle without the control of the third party. This would learn and train itself to make the smart contract smarter \cite{zheng2016blockchain}. The integration of AI and ML with blockchain will potentially create a new paradigm by accelerating the analysis enormous amount of data. Examples include automation of tokens creation, recommender systems, security enhancement, etc.

\subsubsection{Use of Big Data Analytics}
\label{subsubsec: BD}

Recently, many companies are focusing to adopt the blockchain technology in their frameworks. This is creating new types of data for analysis by the powerful tools of big data. There are a huge number of blocks---increasing rapidly and constantly throughout the globe. Each block is full of information (i.e., details of every financial transaction) that can be used for analysis to explore thousands of patterns and trends. The blockchain is a technology that provides integrity, but not analysis. By using big data, it will be possible to detect nefarious users with whom business would be dangerous. Big data can also provide real-time fraud detection based on the users' records and history. The risky transactions or malicious users can be detected quickly by using big data analytics. This will result in cost reduction for real-time transaction \cite{bigdata}. Further, user trading patterns can also be used to predict trading behaviors and potential partners for trade with the help of big data analytics \cite{zheng2016blockchain}. A good resource to conduct big data analysis on (real-time updated) data related to Ethereum and Bitcoin's blockchain is by using Google's BigQuery\footnote{\url{https://cloud.google.com/blog/products/gcp/bitcoin-in-bigquery-blockchain-analytics-on-public-data}},\footnote{\url{https://cloud.google.com/blog/products/data-analytics/ethereum-bigquery-public-dataset-smart-contract-analytics}}. For more details on the applications of blockchain for enabling AI, the interested readers are referred to a comprehensive survey on this topic \cite{salahAccess}.

\subsection{Usability and Key Management}

One of the primary challenges that any new technology faces is the usability. This issue is more acute in blockchain because of new architecture and high stakes. The transaction flow should be visible to users to analyze the whole transaction flows. This will improve the usability and help the individuals to understand and analyze the whole blockchain network \cite{yli2016current}. There are some systems such as Bitconeview \cite{di2015bitconeview} and  Bitiodine \cite{spagnuolo2014bitiodine} that proved to be very effective for the detection and analysis of blockchain-related patterns. These systems also help to improve security and privacy-related concerns.

It has also been reported in the challenges and limitations of blockchain that the bitcoin API is difficult to use for the developments \cite{swan2015blockchain}. Bitcoin users have to deal with public key cryptography that differs from the password-based authentication system. The usability of bitcoin key management also presents fundamental challenges for end users \cite{eskandariusability}. This requires more research in the future to provide more ease to the end users and the developers.

\section{Conclusion}

\label{con}
 In this paper, we provide a study on blockchain-based network applications, discuss their applicability, sustainability and scalability challenges. We also discuss some of the most prevalent and important legal ramifications of working with blockchain-based solutions. Additionally, this paper suggests some future directions that will be helpful to support sustainable blockchain-based solutions. At the time of writing, we believe that, blockchain is still in its infancy implying there will be sometime spent before it gets ubiquitous and widely adopted. However, the aim of this study is to provide a guiding reference manual in a generic form to both the researches and practitioners of the filed so that a more informed decision can be made either for conducting similar research or designing a blockchain-based solution.