You are on page 1of 6

1

Yellow Paper
Version 1.0
2

ABSTRACT

Despite the undeniable growth of the Ethereum ecosystem and community of users and developers,
mass adoption still hasn’t happened. This is because there are various challenges to overcome affecting
the entire community specially the developers. This is, scalability or the lack of it which results in slow
and expensive transactions; usability limitations due to the low flexibility offered to developers, the
“one-size fits all” nature of the EVM as well as the lack of programming languages available which
greatly limit developers ability to customise the framework to the specific needs of their projects.
Moreover the lack of blockchain interoperability results in siloed blockchain ecosystems which cannot
communicate with each other.
Taking these factors into account we have built EtherLite to provide fast transaction finality and higher
throughput with lower gas fees and creating a developer friendly framework which is easily customis-
able to specific use cases. EtherLite aims to further enable mainstream adoption of the Blockchain
promoting decentralised community building.
3

1.0 INTRODUCTION 2.2 Smart Contract

EtherLite is a community driven application- A smart contract is code that lives on the
specific blockchain that is customized for the EtherLite Virtual Machine and runs exactly as
business logic defined by a stand-alone applica- programmed. Once a smart contract is de-
tion. EtherLite’s architecture leverages the ployed on the network it can't be changed. It is
Proof-of-Stake functionality and EVM resistant to fraud, censorship and third party
compatibility. interference. One of the characteristics of a de-
centralized application, as described above, is
EtherLite is fully compatible with Ethereum that it is controlled by the logic code written
meaning that any smart contract, DAO, and into the smart contract running behind that
decentralised applications will work on Ether- dApp which is what makes it decentralized as it
Lite. Not only it is fully compatible with is run by a contract, not an individual or a
Ethereum as well as it is faster, cheaper, and company.
more adaptable and it offers instant finality,
opening a new array of options for developers. 2.3 EtherLite Virtual Machine

Features of EtherLite EtherLite Virtual Machine works similarly to


Ethereum virtual machine however we are us-
• Web3 compatibility. ing an enhanced GETH library in it.
• High throughput.
• Fast transaction finality using a PoS The EtherLite Virtual Machine has the ability
consensus engine. to deploy and execute smart contracts on to the
• Ability to use existing smart contract and network. This is a program which is protected
tooling. and continuously running and it is not accessi-
• Compatible with existing tools like Clients, ble from any outside network. Smart contracts
Metamask, Remix, and Truffle etc. which are even have limited access to other smart con-
used in Ethereum Blockchain. tracts. The EVM module packaged inside
EtherLite blockchain can be used separately. It
can be added as a dependency to any EtherLite
2.0 ARCHITECTURE chain, which will allow for smart contract sup-
EtherLite uses a modular architecture which port.
gives developers an easier yet efficient system Using a predefined validator set and the EVM
to build various decentralized applications. module as a dependency, provides projects with
2.1 Blockchain Application scalability and interoperability as well as Proof-
of-Stake (PoS) consensus with fast finality.
A Decentralized application (dApp) is an appli-
cation built on a decentralized network that The EVM works similar to a mathematical
combines a smart contract and a frontend user function as once an input is given, it will pro-
interface. In EtherLite smart-contracts are ac- duce a deterministic output. The transition
cessible and transparent – like open source function describing Ethereum will also apply to
code – it is easy to customize them to any EtherLite:
application requirement, so any decentralized Y(S, T)= S’
application can even include a smart contract
that someone else has written. Given an old valid state (S) and a new set of
valid transactions (T), the Ethereum state tran-
sition function Y(S, T) produces a new valid
output state S’
4

2.4 Instruction Set Every account has a persistent key-value store


mapping 256-bit words to 256-bit words called
The instruction set of the EVM offer many op-
storage.
erations although these are kept minimal in or-
der to avoid incorrect implementations which Furthermore, every account has a balance in
could impact the consensus algorithm. All aETL (1 ETL = 1 x 10^-18 aETL) which can be
bytecode operations run on the basic data type, modified by sending transactions that include
256-bit words. The usual arithmetic, bit, logical ETL.
and comparison operations are present. Condi-
tional and unconditional jumps are possible. In
addition to this, the EVM can access relevant 2.6 Transactions
block information such as block number and
Transactions are cryptographically signed in-
timestamp or account information like address
structions from accounts. There are two types
and balance. Below are the operations the EVM
of transactions: those which result in message
offers:
calls due to containing code and those where if
• Stack-manipulating opcodes (POP, PUSH, the target account is not set, the code sent is
DUP, SWAP) executed and returns resulting in contract cre-
ation.
• Arithmetic/comparison/bitwise opcodes
(ADD, SUB, GT, LT, AND, OR)
• Environmental opcodes (CALLER, CALL-
Contract creation results in the creation of a
VALUE, NUMBER)
new contract account containing compiled
• Memory-manipulating opcodes (MLOAD,
smart contract bytecode. Whenever another ac-
MSTORE, MSTORE8, MSIZE)
count makes a message call to that contract, it
• Storage-manipulating opcodes (SLOAD,
executes its bytecode.
SSTORE)
• Program counter related opcodes (JUMP,
JUMPI, PC, JUMPDEST)
• Halting opcodes (STOP, RETURN, RE- 2.7 Gas in EtherLite
VERT, INVALID, SELFDESTRUCT) In order to limit the amount of work a certain
operation requires, each transaction is charged
2.5 Accounts with a certain amount of fee to execute. While
the EtherLite Virtual Machine executes the
The EVM has two types of accounts sharing transaction, the gas is gradually used up ac-
the same address space which are treated cording to specific rules.
equally:
The creator of the transactions sets the value of
2.5.1 External Accounts gas and has to pay it upfront gas_price*gas
from the sending account, in case any gas is not
Controlled by public-private keys (i.e humans).
used up, it will be refunded in the same
The public key determines the address.
manner.
2.5.2 Contract accounts
If the gas is used up at any point (i.e. it is nega-
Controlled by the code kept within the account. tive), an out-of-gas exception is triggered,
The creator’s address and amount of their which reverts all modifications made to the
transactions state in the current call frame.
5

Web3.js can be used to connect to the EtherLite


network via any EtherLite node that allows ac-
In essence, gas fees are paid in EtherLite's na- cess via HTTP.
tive currency, EtherLite (ETL). Gas prices are
Web3JS Example:
denoted in aETL, which itself is a denomina-
tion of ETL - each attoETL is equal to
0.00000000000000001 ETL (10-18ETL). For
example, instead of saying that your gas costs // New RPC Provider
var web3 = new Web3("http://localhost:8545")
0.00000000000000001 ETL, you can say your // or
gas costs 1 attoETL. var web3 = new Web3(new Web3.provider-
s.HttpProvider("http://localhost:8545"))

// change RPC provider


Unit Name Multiples Number of ETL web3.setProvider("ws://localhost:8546")
// or
1 DeciETL 1E-01 0.1 web3.setProvider(new Web3.providers.Web-
socketProvider("ws://localhost:8546"))
1 centiETL 1E-02 0.01
1 milliETL 1E-03 0.001 In order to use Web3.js to connect to EtherLite,
a programmer must specify a Web3 provider.
1 microETL 1E-06 0.000001 The code for this depends, of course, on the
1 nanoETL 1E-09 0.000000001 particular node to which the programmer wish-
es to connect.
1 picoETL 1E-12 0.00000000001
To interact with a deployed smart contract, the
1 femtoETL 1E-15 0.000000000001 contract’s address and the Application Binary
1 attoETL 1E-18 0.00000000000001 Interface (ABI) is required. The ABI is a de-
scription of the contracts public interface in the
1 zeptoETL 1E-21 0.0000000000000001 form of a JSON object.

4.0 WEB3 JSON-RPC LAYER 5.0 CONSENSUS MECHANISM

In order for a web app to interact with the The nature of the blockchain, a distributed
EtherLite blockchain (i.e. read blockchain data ledger that records transactions across the net-
and/or send transactions to the network), it work requires validators to store and update
must connect to an EtherLite node. this ledger. These validators have a major role
which is to determine which transactions have
Web3JS is a popular library that allows pro- settled, therefore there must be an agreement
grammers to interact with the EtherLite across the validators, otherwise called, to solve
blockchain. It represents a JavaScript language the Byzantine General’s Problem or otherwise
binding for EtherLite’s JSON RPC interface, called consensus.
which makes it directly usable in web technol-
ogy, as JavaScript is natively supported in al- Satoshi (2008) solved the Byzantine General’s
most all web browsers. Problem implementing Proof-of-Work (PoW)
with the release of Bitcoin and this is the most
widely used consensus mechanism. PoW
requires validators in this case miners, to solve
6

a mathematical puzzle which is to find the If the network detects a fraudulent transaction,
nonce of the last recorded block and add that a penalty will be applied where a substantial
block to the blockchain. The miner who solves part of the forger’s stake, if not all, will be
the puzzle first is rewarded with a fraction of slashed and they will automatically lose their
the blockchain native coin turning PoW into a right to participate as a forger in the future.
competition to update the blockchain. This has
Proof-of-stake offers a solution to the above
proved to be an extremely secure and trustwor-
mentioned limitations of Proof-of-work. Firstly,
thy consensus mechanism. However PoW re-
it very much reduces the barriers to entry which
quires brute force only and no skill, hence it
were the huge initial hardware set up costs as
uses up immense computer power resulting in
well as the energy consumption. In terms of
high electricity consumption. On top of this,
decentralisation, there are less concerns about
miners incur huge set up costs and as more
energy consumption and it is relatively easy to
miners begin to run nodes on a blockchain, the
participate in PoS therefore a much larger
hash rate increases and so does the computation
group is able to participate and generate rev-
power required. Bitcoin alone uses more power
enue making this a far more decentralised
than an entire country such as Ireland (Vries
mechanism.
2018, p. 801) and on top of that as it gets more
difficult and expensive to mine, mining pools
are created to pool computational power to-
gether which in itself puts the entire decentrali- 6.0 Governance
sation concept at risk as there is a greater cen-
EtherLite is governed by its community of val-
tralisation of miners. Lastly PoW architecture
idators and delegators. Stakeholders can vote
limits scalability as each block can only contain
on proposals that change pre-set parameters of
a limited amount of data which in times of high
the system, organize upgrades or vote for
demand, can sometimes lead to long waiting
changes to the policies governing EtherLite.
for transactions which have to wait for the next
block to be processed.
In response to the issues with the PoW consen- 7.0 References:
sus mechanism, Proof-of-Stake (PoS) was cre-
ated. In a PoS system, the validators are also Ethereum:https://github.com/ethereum/wiki/
stakeholders as these people lock up a stake wiki/WhitePaper
inside the system. In contrast to PoW, PoS re- Ethereum Docs: https://ethereum.org/en/devel-
places competition (energy expend) by offering opers/docs/evm/
a randomly selected validator, who is also a
stakeholder, the authority to update the web3.js - Ethereum JavaScript API
blockchain. Once a node gets selected to forge https://web3js.readthedocs.io/en/v1.3.0/
the next block it will check if the transactions
in that block are valid, will sign and propose Blockchain Without Waste: Proof-of-Stake-
the block. Once enough nodes validate the https://papers.ssrn.com/sol3/Papers.cfm?ab-
block, it is added to the blockchain. Validators stract_id=3183935
receive a reward from the transaction fees for Saleh, F., 2018. Blockchain Without Waste:
both successfully proposing the block and for Proof-Of-Stake. [online] Available at: <https://
validating the blocks. The staking acts as an papers.ssrn.com/sol3/papers.cfm?
incentive to deter reward proper behaviour and abstract_id=3183935>
deter fraudulent validations or block creations.

You might also like