-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathSoK-Scalability-of-Blockchains.tex
205 lines (130 loc) · 6.44 KB
/
SoK-Scalability-of-Blockchains.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
\documentclass{article}
\usepackage[utf8]{inputenc}
\title{SoK: Scalability of Blockchains}
\author{
\\ \small{Mechanism Labs} \\ \small{Maaz Uddin, ...}}
\date{September 2018}
\addtolength{\oddsidemargin}{-.47in}
\addtolength{\evensidemargin}{-.47in}
\addtolength{\textwidth}{.95in}
\addtolength{\topmargin}{-.95in}
\addtolength{\textheight}{.95in}
\newtheorem{theorem}{Theorem}[subsection]
\newtheorem{corollary}{Corollary}[theorem]
\newtheorem{definition}[theorem]{Definition}
\newtheorem{remark}[theorem]{Remark}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{claim}[theorem]{Claim}
\newtheorem{observation}[theorem]{Observation}
\newtheorem{fact}[theorem]{Fact}
\newtheorem{assumption}[theorem]{Assumption}
\begin{document}
\maketitle
\begin{abstract}
TODO
\end{abstract}
\maketitle
\section{Introduction}
On November 28th, 2017, innovation studio Axiom Zen launched a product whose goal was to help build a better onboarding system of the Ethereum network. Cryptokitties took the cryptocommunity by storm, demonstrating that there were viable applications for consumers that could be deployed on blockchains. But more importantly, the success of the game proved a long-held view of distributed ledger technology systems - they weren't ready for real world applications. Cryptokitties began to clog up the ethereum network, leading to a "sixfold increase in total network requests" \cite{ConsensysCryptokitties}. This made one thing clear, today's blockchains are not ready to scale for tomorrow's society.
\subsection{Problem Definition}
The emergence of blockchain technology has brought with it the ability to replace trusted third party intermediaries by disruping the current financial climate. Its potential applications offer a variety of uses that provide more accountability and require less trust to achieve. Blockchains put an emphasis on mitigating trust and giving power to the end-users through decentralization. They also stress strong tamper-evident and immutable characteristics via security implementations.
Current blockchains, however, are not scalable. The two most popular blockchains, Bitcoin and Ethereum, can only process upto 7tps and 15tps (transactions per second), respectively \cite{NeedCitation, ForBoth}. Whereas centralized entities today, like Paypal and Visa, can offer upto 450tps \cite{PaypalTPS} and 56,000tps \cite{VisaTPS} - magnitudes of order more than most blockchains. If blockchains are to replace the current antiquated systems, then we must find a way to allow them to match the increasing demand of transactions in our world today. This then poses the question: How?
There are a myriad of scalability solutions today: off-chain solutions, alternative consensus, network changes etc. This paper aims to give an understanding of the various popular scalability solutions and the feasibility of each. We analyze each possible solution by looking at which layer(s) in the blockchain the solution lies. This is a key forethought, because in order to truly scale public blockchains, we must implement solutions at each layer of a blockchain. It is insufficient to scale just one layer.
\section{Background and Related Work}
TODO
\section{Scalability Solutions From Different Perspectives - the Blockchain Stack}
Like the internet, blockchains are divided into different layers. Each layer deals with a series of tasks that are required for the blockchain to run. The layers operate within themselves, but rely on the layers beneath them to operate correctly. This separation of responsibility instills a common computing paradigm known as abstraction.
The beauty of abstraction is that you can reinvent different aspects of each layer independently without necessarily worrying about how it might affect the other layers (so long as the endpoints connecting the layers are still intact). This allows us to ignore lower layer dependencies by simply considering them as a "blackbox".
This is a key consideration when diving into the scalability problem. Because many of the layers of blockchains are partitioned in such a way, we can isolate certain problems to specific layers and work towards making them more efficient without complicating the process with extraneous factors\footnotemark. Below, we touch upon each layer of the blockchain stack starting from the bottom and moving up - Hardware, Network, Consensus, Sybil Control, and Application. We will then go into more detail about each layer in later sections, discussing the various solutions existing in each layer or how they may overlap over multiple layers.
\footnotetext{It is important to note that good scalability should consider scalable solutions at all layers and how they work in cohesion rather than in separation}
\subsection{Hardware}
TODO
\subsection{Network}
TODO
\subsection{Consensus}
TODO
\subsection{Sybil Control}
TODO
\subsection{Application}
TODO
\subsection{Non Blockchain Solutions}
TODO
\section{Hardware}
TODO
\section{Network}
TODO
\subsection{Block Size and Time}
TODO
\subsection{Segregated Witness}
TODO
\subsection{Light Clients}
TODO
\subsection{Sharding}
TODO
\subsection{Bitcoin-NG}
TODO
\section{Consensus}
TODO
\subsection{Alternative Consensus}
TODO
\subsubsection{Proof-of-Stake Based}
TODO
\subsubsection{Other Proof-of-X Protocols}
TODO
\section{Sybil Control}
TODO
\subsection{Proof-of-Work}
TODO
\subsection{Proof-of-Stake}
TODO
\section{Application}
TODO
\subsection{State and Payment Channels}
TODO
\subsubsection{Lightning and Raiden}
TODO
\subsubsection{Plasma}
TODO
\subsubsection{Truebit}
TODO
\subsection{Sidechains}
TODO
\subsection{Overlays}
TODO
\section{DAGs}
TODO
\subsection{GHOST, SPECTRE, PHANTOM}
TODO
\subsection{Avalanche}
TODO
\section{Gossip Protocol}
TODO
\subsection{Hashgraph}
TODO
\subsection{bloXroute}
TODO
\section{Discussion}
TODO
\subsection{Layer 2}
TODO
\subsection{Proof-of-Stake}
TODO
\subsection{Network}
TODO
\subsection{Non Blockchain Solutions}
TODO
\section{Conclusion}
TODO
\begin{thebibliography}{1}
\bibitem{ConsensysCryptokitties}
ConsenSys.
\textit{The Inside Story of the CryptoKitties Congestion Crisis}, February 20, 2018
\bibitem{PaypalTPS}
5 Things PayPal Holdings Inc Wants You to Know.
\textit{https://www.fool.com/investing/general/2016/02/04/5-things-paypal-holdings-inc-wants-you-to-know.aspx}
\bibitem{VisaTPS}
Visa Inc. at a Glance.
\textit{https://usa.visa.com/dam/VCOM/download/corporate/media/visa-fact-sheet-Jun2015.pdf}
\end{thebibliography}
\end{document}