-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathpaper.tex
58 lines (40 loc) · 4.6 KB
/
paper.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
\newif\ifuniversity
% \universitytrue
\documentclass{report}
\usepackage{preamble}
\begin{document}
\bibliographystyle{plainurl}
\input{title.tex}
\newpage
\thispagestyle{empty}
\null
\begin{abstract}
Cryptocurrencies have seen a meteoric rise in popularity in the last 10 years since the invention of Bitcoin. It is typical for cryptocurrencies to require every participant to keep a record of all the history. As usage skyrocketed this solution obviously did not scale. The Bitcoin paper includes a solution called SPV, which reduces the amount of information a participant needs to know, however the information is still linear in chain size. NIPoPoWs (Non-Interactive Proofs of Proof-of-Work) are a new advancement, providing an improvement to logarithmic in chain size instead of linear, however the model assumed by NIPoPoWs is not directly compatible with any of the popular cryptocurrencies.
In this work we explore the implementation of NIPoPoWs on Bitcoin-based cryptocurrencies. We study how a chain can be augmented with a crucial data structure called the interlink via a User-Activated Velvet Fork. We design software called the \textit{interlinker}, which creates such a fork on a given chain. We provide two implementations of an interlinker, one which requires a full node and one which requires a lite node, both released as open-source software. We deploy our solutions on the Bitcoin Cash testnet, and produce reliability metrics for our deployment. Furthermore, we introduce a new approach for encoding interlink commitments in blocks, called \textit{interlink compression}, which reduces proof sizes even further.
Finally, we provide a working implementation of a \textit{prover}, also released as open-source. The prover enables users to generate suffix and infix proofs on any Bitcoin-based chain which has been velvet forked using our method, including the Bitcoin Cash testnet, where our fork has been deployed. The proofs generated can then be used for super-lite clients, cross chain transactions, and more.
\end{abstract}
\ifuniversity
\chapter*{Acknowledgements}
Two people were key in getting me interested in algorithms, programming and computer science when I was still in high-school: Aleksis Brezas and Dionysis Zindros. I am indebted to both of them for the time they spent teaching me back then, and I couldn't have asked for more sincere and capable people to surround myself with. Our friendship has helped me grow both as a scientist and as a person. I also wish to thank Dimitris Glezos for believing in me when I was younger and indirectly introducing me to these two.
The topic of this thesis was suggested by Dionysis, who is also one of the authors of the NIPoPoWs paper that this thesis builds upon. He graciously spent time with me navigating the complex proofs of that paper, which gave me a much deeper understanding of the topic. He also made sure that I felt welcome in Decrypto, the research group he is in, which I joined and subsequently completed this work in.
During my studies I worked for 4 months as an intern for Bloomberg in London, where I was incredibly lucky to have Hang Xu as my mentor, who really helped me solidify my confidence as a software engineer. I was also lucky to have great co-workers who too made my time there really special.
I also want to thank my friends who have been by my side all these years. My friends who I've worked with and my friends who always had the patience to listen to my rantings and bad jokes. You all know who you are but I will name a few: Marios Balamatsias, Giannis Goulioumis, Kostas Krommydas, Christos Porios, Themis Papameletiou and Dimitris Lamprinos.
I am grateful to have had some great professors to teach me during my time as an undergraduate. I am even more grateful to have had professors who sincerely were there for me during hard times and always had time to talk. I will mention two of them: my supervisor, Leonidas Palios and Christos Nomikos. I feel incredibly fortunate to know them and to have been taught by both of them.
Finally, I thank my family for raising me and for continuously supporting me during my studies. It goes without saying that I would not be where I am today without them.
Thank you all. It has been an incredible journey and it would not be the same without any one of you.
\else
\fi
\thispagestyle{empty}
\newpage
\addtocontents{toc}{\protect\thispagestyle{empty}}
\tableofcontents
\thispagestyle{empty}
\newpage
\setcounter{page}{1}
\input{chapters/introduction.tex}
\input{chapters/background.tex}
\input{chapters/interlinker.tex}
\input{chapters/prover.tex}
\input{chapters/conclusion.tex}
\bibliography{bibliography}
\end{document}