There are too many blockchain platform with different features implementing Smart Contracts and DApps. Which blockchain is the best for my DApp? cite:porru2017blockchain
Compare Smart Contracts Platforms to be able to recomend the best according with the purpose of the application.
- Analyze the requirements, design and impement for a loyalty program to have a point of comparison between different smart contracts platforms.
- Identify the metrics used in decentralized applications to be compared, researching in the literature.
- Extract the metrics of each loyalty program implementation to compare each smart contract platform running all the implementations.
- It will be implemented a loyalty program on Ethereum and Waves with interaccion with the user from sms
- This work does not include a website or phone application
- We wont lauch this to the market
- It will be developed for just one developer, so it will be a bias
- Implement a loyalty program in different blockchain platforms.
- Extract quantitative and qualitative metrics.
- A comparison between Ethereum, Waves and EOS Smart Contracts platforms
- Implementation of a loyalty program on Ethereum and Waves
- Benchmarking about features in each platform
- Background
- Methodology
- Experiment
- Results
- Discussion of the results
- Conclusion and Lessons Learned
- References
They are mechanisms to generate customer loyalty. Basically, businnes reward the customer loyalty by giving products or services
- Airlines' frequent fliers schemes 1981
- Hotel's rewards
- Banks
- Grocery Stores
- Membership has reached 1.3 billions (The COLLOQUY loyalty marketing census: sizing up the US loyalty marketing industry)
- The average US household belongs to 12 loyalty programs (The COLLOQUY loyalty marketing census: sizing up the US loyalty marketing industry)
- Only 4.7 yield active participation
It is a network of nodes conected each other via peer-to-peer, every node in the network has an exact copy of the blockchain.
Blocks saves the transactions of the users, and blocks are linked each other through the hash of the last block
Blockchain allows to generate transaction of value between users, the value sent between users is called cryptocurrency. Has been seen that capitalization in blockchain could be powerful.
- Bitcoin (2008) (Bitcoin: A peer-to-peer electronic cash system)
- Ethereum (2015)
- Fork: Ethereum and Ethereum Clasic (2016)
Bugs in history of smart contracts 1
- The DAO Attack ($60) cite:luu2016making
- King of the Ether Throne 2
- Multi-player Games
- Rubixi
- GovernMental
- Dynamic libraries
1 (The goal question metric approach)
2 (The second citation)
When a blockchain needs to insert a new node into the blockchain should be a consensus, this means, all nodes agree that the new block is correct.
There are some algorithms to archive consensus:
- POW (Proof of Work)
In a proof of work algorithm, the node that insert the new block in the blockchain is called "miner", the miner selection process is done solving puzzles, the first node in solve the puzzle will add the new block. Some of the blockchain platforms implementing proof of work algorithm are:
-
Bitcoin
-
Ethereum
-
POS (Proof of Stake)
In a Proof of Stake algorithm, participants have to stake some of cryptocurrency, the more cryptocurrency you stake the more probability of win you have
- Others
There are others consensus algorithms, but they are algorithms based on Proof of Work and Proof of Stake
Smart Contracts are programming script inside the blockchain, they are used to simulate real world contracts in a blockchain Smart Contracts can be Executed autamatically.
With Smart Contracts can be created new currencies called "tokens". Some blockchain platforms create tokens with standars (like ERC-20) to be compatible. You can use Wallets in which you can save tokens and cryptocurrencies. Also there are exchanges for tokens created by the blockchain users. (Waves)
You also can build "Decentralized applications" through Smart contracts. Decentralized applications are applications running inside a blockchain.
In 2008, Nakamoto presented Bitcoin as a peer-to-peer cash system, so, users can send payments directly each other, Bitcoin uses blockchain technology. As most of blockchain implementation, transactions in Bitcoin are validated by a consensus algorithm called Proof Of Work. Bitcoin is known as: cryptocurrency, system of transactions and blockchain Bitcoin as a currency can have a price, this price can
Such as Bitcoin, Ethereum is an implementation of blockchain concepts, but, it implement Smart Contracts. Users in Ethereum can create and run Smart Contracts inside, they run in the Ethereum Virtual Machine (EVM). EVM could be compared with a backend of a Web application.
Waves is a decentralized blockchain focusing on custom blockchain tokens operations (Waves white paper) Waves has a Decentralized Exchange (DEX) and a easy way to create tokens Leased Proof-of-Stake (LPoS) is a consensus algorithm used for Waves
Cardano is presented as the first blockchain implementing Proof-of-Stake consensus algorithm, this protocol is more efficient than Proof-of-Stake because it needs less computing power. Cardano uses two ways to create and run Smart Contracts and Descentralized Applications; Plutus (a functional programming language based on haskell), and Marlowe (an intuitive platform for developing Smart contracts)
General and small modules (among others) are Benefits of Plutus (a functional programming language) (Cite Why functional programming matters)
EOS is a blockchain platform that can scale to millions of transactions per second, eliminates user fees and allows for quick and easy deployment and maintenance of decentralized applications. Cite eos technical paper
Measurement is useful to answer some questions at the begining of a project. cite:caldiera1994goal
- How much will the project cost?
- What is the frequency of certain types of errors?
- What is the impact of technology X on the productivity of the project?
- Etc…
- Cost of transaction
Almost every blockchain platform collect a fee for making a transaction, it is called "Cost of transaction"
- Speed
Since blockchain is a distributed system in which every node has a copy of the database (blockchain), transactions tends to be slow. So, speed of transactions is a metric to take in count for decentralized applications.
- Halstead metrics
Due Decentralized applications are developed with smart contracts and smart contracts are programming scripts, we can use a static code metric, we decided to use the metric of complexity Halstead metric
- Configuration
Decentralized applications need configurations (e.g., run a node server)
-
Features
-
Consensus algorithm
We consider that consensus algorithm is a qualitative metric.
- Authentication methods
In blockhain platforms there are different ways to autenticate.
- Identify valuable metrics in DApps
- Analyze requirements and design a loyalty program
- Implement a loyalty program
- Ethereum
- Waves
- EOS
- Cuantify metrics of the implementations
- Compare metrics
- Discuss results
- Will design some User Stories
- Answering What? Who? and Why?
Will design with:
- Context diagram
- Sequence diagrams
Will design with:
- Context diagram
- Sequence diagrams
Will be compared
- Cuantitative
- Cost of transactions
- Speed of transactions
- Halstead complexity
- Cualitative
- Easy to develop
- Features
- Consensus algorithm
- Authentication methods
This is a blockchain metric, because (almost) every blockchain platform charges a fee to the users for making transactions
Another blockchain metric is the speed of transactions, this metrics is used because transactions in a blockchain are not immediat
We choose this metric because Smart Contracts are prograaming scripts and they contain code. Halstead metrics are metrics for lines of code.
We refer to "easy to develop" to the things that we have to do to develop some system.
Features are the thing that we will develop. Some implementations will have more features than others.
Consensus algorithm is a very important cualitative metric in blockchain platforms, this says how nodes agree to the creation of new blocks
We will compare the ways that every blockchain platform authenticate the users.
We are looking for the blockchain platform that:
- Has the lowest transaction fee
- Make transactions faster than others
- Has the lowest halstead complexity
- Is easy to develop
- Has the best consensus algorithm
- Has the best authentication methods
Only here it can have your personal opinions
bibliography:bibliography.bib