-
Notifications
You must be signed in to change notification settings - Fork 5
/
intro.tex
68 lines (60 loc) · 3.74 KB
/
intro.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
\section{Introduction}
Blockchain technology has been attracting significant attention since Bitcoin
was proposed by Nakamoto~\cite{SN} in 2008.
Many blockchain platforms are being developed to serve the next generation of
applications. The novelty of the field provides an interplay between developers
offering new features, enabling new applications to be written by application
developers, and application developers therewith requiring additional features
or possibilities.
Aeternity~\cite{AE,UlfWigerCodeMesh2018} is an open source blockchain
platform aiming to be a development platform for advanced blockchain
applications that can be used by millions of users. Several key technologies
are put in place to meet these scaling requirements, most notably state
channels, the next generation of Nakamoto consensus algorithm and the very
efficient FATE virtual machine for smart contract execution.
The platform runs as a decentralized trustless distributed ledger using
Proof-of-Work (PoW)~\cite{dwork1992pricing,back1997hashcash,Tromp2015CuckooCA}
for leader election.
In Sect.~\ref{sect:mining} we explain how we improve the scalability of
original Nakamoto consensus~\cite{SN} by leveraging
Bitcoin-NG~\cite{Eyal:2016:BSB:2930611.2930615}. The result of this change
is a throughput of about 100 on-chain transactions per second with
low latency as opposed to the seven transactions per second of Bitcoin.
Further increases in transaction throughput, possibly thousands of
transactions per second, can be achieved via state channels (Sect.\
\ref{sect:channels}),
an off-chain encrypted peer-to-peer communication protocol. After
agreeing on-chain to collaborate in a state channel, parties communicate
mutually authenticated transactions to each other. These transactions don't
have to be recorded on chain and thus can be exchanged at much higher
speed. Closing the channel, with or without dispute resolution, is performed
on-chain again.
The \blockchain\ offers a variety of different transaction types
based on commonly used applications on other blockchain implementations.
For example, by identifying that many blockchains have a need to give human
readable, persistent names to objects on chain, the \blockchain\ provides a
set of transactions that make this easy for developers, without the need to
implement a smart contract for it (\ref{sect:aens}). Another example is a set
of transactions to register and query oracles, which provide data from outside
the blockchain.
These transactions are explained in more detail in Sect.~\ref{sect:transactions}.
Many features are yet to be invented, but can already be implemented
by users if they use the \aet\ smart contract language
\textit{Sophia}. Sophia is a Turing complete functional language
designed with security in mind. Many mistakes that one can make in
other contract languages are impossible to make or are easier to detect
when using Sophia. In Sect.\ \ref{sect:sophia} we present some key
ideas of the language.
Contracts are compiled to bytecode, which is executed on a highly
efficient virtual machine \textit{FATE}. Similar to other smart contract
languages every operation has a gas cost associated to it. This cost reflects
the amount of work needed to execute a contract. The FATE virtual machine is
specifically designed for
\aet\ to meet the high security and efficiency demands, which we
explain in more detail in Sect.~\ref{sect:fate}.
The reference implementation of the \aet\ protocol is written using the
functional language Erlang~\cite{Armstrong:2010:ERL:1810891.1810910}. This
language originates from the telecommunication industry and is used in large
distributed and concurrent systems (e.g.\ WhatsApp). However, the choice
of implementation language has no further implications for the techniques used
and described in this paper.