Waves
Symbol
WAVES

Descrption:Gain access to the Waves platform’s solutions for storing, trading, managing and issuing your digital assets, easily and securely.Waves NG is making the platform easier and faster. It allows us to handle hundreds of transactions per second and means we are the fastest blockchain in the world.

77
evaluation
Information
WebSite https://wavesplatform.com/
GitHub wavesplatform/Waves
Update Date 2018 Aug 31 08:08:15
Market
Circulating Supply 100,000,000
Total Supply 100,000,000
Max Supply 0
Price $2.1387472
Volume 24h $6,675,343
Market Cap $213,874,720
Change 24h -4.98%
Update Date September 26th 2018, 1:29:37 am

Waves

v1

Principle and design goals

Waves Platform is an open blockchain platform which is designed for ease of use and mass adoption.

  • It's a comprehensive blockchain ecosystem that provides all necessary features for business adoption.
  • Fully functional exchange that is as fast as a centralized one but does not suffer from the same security issues.
  • Smart contracts include account and token controls, which provide functionality to implement features such as multi-signature wallets, atomic swaps, 2-factor authorization. Waves also introduces a new transaction type which is called “Data Transactions”. Data Transactions is a way to post Oracle data to the blockchain all within the smart contract code.

  • It's decentralized multi-purpose exchange platform (fully decentralized, transparent and auditable)

  • It provides the services of launching, distributing and trading crypto token (creation, issuance, transfer, exchange of assets and custom or fiat tokens).
  • Bitcoin, cryptos, fiat currencies, and all types of real-world commodities and assets can be issued, transferred and exchanged in a fully decentralized manner.
  • The fiat-crypto problem is solved through Waves fiat gateways.
  • Built on top of the Scorex framework.
 

Technology implementation

Consensus mechanism

Any blockchain requires a mechanism allowing to decide which chain of blocks is valid and to ensure there are no double-spending (e.g. sending same money to different parties in separate chains). There are several approaches to achieve this.
Waves use so-called Proof-of-Stake consensus algorithm. Here we'll describe it and compare with widely used Proof-of-Work algorithm which used, for example, in Bitcoin.

Since each Blockchain is a system of decentralized “nodes” (or computers confirming transactions occurring on the network and maintaining a decentralized consensus across the system) it is important for these nodes, also known as “miners” in the Proof-of-Work system, or “validators” in the Proof-of-Stake system, to be incentivized to keep confirming transactions. The way in which “miner” or “validator” nodes confirm transactions and how those nodes are incentivized to do so - is the main distinction between Proof-of-Work and Proof-of-Stake.

Proof-of-Work (PoW)

Proof-of-Work is a consensus algorithm which requires a block generator to perform an expensive computer calculation, also called mining, that needs to be performed in order to create a new group of trustless transactions (the so-called block) on a distributed ledger called blockchain.

Mining serves have two purposes:

  1. To generate a chain of blocks which can be considered as the only one main chain (since it's too resource-consuming to create alternative one)

  2. To create new coins (increasing total supply) by rewarding miners for performing the previous task.

When you want to set a transaction this is what happens behind the scenes:

  • Transactions are bundled together into a block.

  • Miners verify that transactions within each block are valid.

  • Then miners should solve a mathematical puzzle to generate a valid block.

  • Block with solved puzzle considered as valid and broadcasted to all nodes in the network and stored in the public blockchain

  • A reward is given to the first miner who solves each blocks problem.

This “mathematical puzzle” has a key feature: asymmetry. The work, in fact, must be moderately hard on the requester side but easy to check for the network. This idea is also known as a CPU cost function, client puzzle, computational puzzle or CPU pricing function. All the network miners compete to be the first to find a solution for the mathematical problem that concerns the candidate block, a problem that cannot be solved in other ways than through brute force so that essentially requires a huge number of attempts. When a miner finally finds the right solution, he/she announces it to the whole network at the same time, receiving a cryptocurrency prize (the reward) provided by the protocol.

'51% attack' refers to an attack on a blockchain system. By controlling the majority of the computing power on the network, an attacker can release his new fork and regains his coins by executing a "double spend" attack which will allow his own coins to be spent multiple times. The attacker could spend coins in one place, allow the coins to enter the blockchain as normal until the required confirmations are met, then fire up their 51% of the miners to craft a fraudulent fork of the blockchain in which those coins were never spent, allowing them to re-spend the coins. This could theoretically be repeated for as long as the attacker maintained control of 51%.

The advantage of a Proof-of-Work network is that the majority of voting power when implementing important changes to the system is divided among miners, developers and other crucial members of the community. Meanwhile, in a Proof-of-Stake network, major stakeholders have a technical ability to make any changes they like without considering the will of the community, businesses, miners, and developers.

This centralization of voting power and, essentially, control of the network defeats the purpose of a distributed ledger-based cryptocurrency since it contradicts its entire principle of distributing all elements within the network to avoid the presence of a central authority.

Proof-of-Work downsides

  • Requires more electric power which in turn costs the miner.
  • High computing power hardware which is expensive.
  • Possibility of miners moving their hardware to mine a different coin if the reward is better there (loyalty).
  • With more and more coins (like more count of bitcoins) getting released, miner’s reward would come down as the coin becomes scarce to mine.

Proof-of-Stake (PoS)

Proof-of-Stake is a different way to validate transactions based and achieve the distributed consensus. The purpose is the same of the proof of work, but the process to reach the goal is quite different.

In PoW number of miner's blocks is proportional to the amount of hardware resources and energy he invested. In contrast, in PoSa person can mine or validate block transactions according to the amount of coins he or she holds. So unlike the Proof-of-Work, the creator of a new block is selected in a practically random manner, with greater amounts of stake increasing the likelihood of adding a block to the chain.

Usually, in the PoS system, there is no block reward, so, the miners take the transaction fees. That's why miners are often called block forgers or generators, instead, Figure 1.

With a PoS, the attacker would need to obtain 51% of the cryptocurrency to carry out a 51% attack. The proof of stake avoids this ‘tragedy’ by making it disadvantageous for a miner with a 51% stake in a cryptocurrency to attack the network. Although it would be difficult and expensive to accumulate 51% of a reputable digital coin, a miner with 51% stake in the coin would not have it in his best interest to attack a network which he holds a majority share. If the value of the cryptocurrency falls, this means that the value of his holdings would also fall, and so the majority stake owner would be more incentivized to maintain a secure network.

PoS has to constraints to avoid some kinds of attacks:

  • Minimum amount of WAVES to generate is 1000 WAVES
  • When a balance is increased generating balance will be increased after 1000 blocks.

Why we use Proof-of-Stake

  • Significant advantages of Poof-of-Stake include energy efficiency
  • Waves Implement the Proof-of-Stake method for a more greener and cheaper distributed form of consensus.
  • In Proof-of-Stake, forgers are always those who own the coins minted.
  • Figure 1, PoW vs PoS

    3. Leased Proof-of-Stake (LPoS)

    LPoS is an enhanced version of Proof-of-Stake. In a regular Proof-of-Stake system, each node that holds a certain amount of cryptocurrency is eligible to add the next block to the blockchain but in the LPoS system, on the Waves Platform, users can lease their balance to full nodes. WithLPoS, the user will have the ability to Lease WAVES form the wallet to different contractors which can pay a percentage as a reward. The larger the amount that is leased to a full node, the higher the chances of that full node being selected to produce the next block. If that full node is selected to produce the next block, the leaser will then receive a percentage of the transaction fee that is collected by the full node.

    In a Leased Proof-of-Stake environment, users can choose between running a full node or leasing their stake to a full node with receiving rewards. This system allows anyone to participate in the Waves network maintenance.

    User can leas his waves through leasing on any computer or mobile device that has an internet browser since Waves provides a lite client solution that does not require "Miners", that are leasing their balance to store the whole Blockchain or to have the wallet running, Figure 2.

  • Figure 2, LPOS System

    Benefits of leasing your WAVES

    Safety (your WAVES never leave your wallet):

  • Node operators can use your mining power to generate blocks without the user even having to send their WAVES at all.
  • Leasing is safe as the coins never actually leave your wallet.
  • The users can discontinue leasing with a click of a button and just wait for the cancel lease transaction to go through, Figure 2.
  • The only thing to consider when leasing is choosing the right node operator, as operator's node may work with different efficiency and send back different percentage of income.

Minimum Balance Required to Run a Node:

  • Operators don't need to put down a lot of capital to be able to operate a node.
  • The balance of the node can be empty until there are enough people wishing to lease to it by reaching together the generating balance of 1000 WAVES and create together a pool.

Get Rewards:

  • Miner may send leaser a part of rewards according to his conditions.
  • The more transactions that are made on the network, the more rewards leasers get.
  • These rewards mostly come in the form of WAVES but also can come in the form of different tokens with the unique Waves feature where different tokens can be accepted as a fee.

Accounts and transactions


Smart contract system

Cryptography

Distributed storage protocol


Cross-chain and exchange technology

Motivation

The need to convert and exchange between crypto tokens is increasing with the enlargement of cryptocurrencies number. One of the main features of the blockchain environment is decentralization, but until recently only centralized exchanges existed, even for cryptocurrencies such as Bitcoin or Etherium. Many exchanges support the buy and sale of cryptocurrencies, fiat currencies, and cryptocurrency tokens. Examples of such centralized exchanges are Coinbase, BTC-e, ShapeShift and Mt.Gox.The centralization experience in this sphere is lamentable, the cause of a single point of failure - the exchange. In this case, all users funds should be kept in one place for participation in trade. The user's funds are stored directly in the exchange, and it is responsible not only for matching orders and keep the current order book in the correct state but also for depositors' funds. The Mt.Gox collapse is the brightest example of why it is not reliable, the resulting loss after compromised it was about 650,000 BTC. Someone can hack into exchange system and all users will lose everything, cause their private keys are kept all together, like in one of version BTC-e fund's theft. And these are not the only exchanges that have lost the funds of depositors in this way. The use of a decentralized approach in the entity of an exchange helps to avoid the involvement of many users assets into problems caused by the danger of front running by intruders into the work of exchange.

1. Decentralized Exchange

The decentralized exchanges do not require users to trust them with their money: user's wallet is not controlled by a single entity. Orders are digitally signed directly by owners, as an authorization process. Users control their funds, but on-chain trading has the side effect of not real-time trading as at a centralized exchange.

Decentralized exchanges have some advantages over centralized, but also drawbacks.

If all components of exchange are decentralized there is no automatic matching of buy and sell orders, this operation also should be done by users. For example for a specific order, which is validated and put in an order book, any other user can add a digitally signed counterorder and send the complete transaction with a pair of orders to the blockchain. Then the assets are transferred between the buyer and seller.

Also with such lack of automatic matching and fast cancellation, there is vulnerability to miner front-running. The miner of the next block will always have the option to execute canceled orders with themselves as the counterparty, potentially profiting from such an order.

What if we decentralize not all components of exchange, but only the matcher part? This design eliminates two of the described problems above: the arbitrageur with already canceled orders, and miners front-running. Unlike centralized exchanges, the decentralized solution with centralized matcher won’t have the power to steal users’ deposits.

2. Waves DEX

Waves provides a decentralized exchange (DEX), which allows trading different assets back and forth between users, as a traditional exchange, with stronger security guarantees to end users due to its decentralized nature. An opportunity of creating some new assets, based on Waves, allows early trading of a crowdfunding stake, that provides liquidity for tokens. For this purpose, tokens should be sold in public locations, where buyers and sellers may post orders.

The real-time trading is achieved thanks to the only centralized design element of our DEX - the order book Matcher, which matches incoming orders and execute trades at high speed, typically within milliseconds. There is no need to wait for the next block to know whether a trade has been executed successfully, this provides speed at the level of centralized exchange and the security of the decentralized protocol.

The orders are linked in pairs by individual nodes, which work as Matcher. Before getting into Waves blockchain, exchange transactions are always checked by the nodes for matching the prices in orders so that the matcher cannot implement the "wrong" transactions. Then the Matcher creates Exchange Transaction, signs it with its signature and put it into blockchain for to fix changes in balances of users. The Matcher also can match orders partially, as at ordinal exchange. After the transaction is confirmed, Matcher's sign is validated by mining nodes and exchange transaction put into the blockchain, user account balances of assets are changed according to amount and order execution price. The important point is that the funds are transferred only after publishing in the blockchain. If the Matcher fails, the exchange will not take place, but the funds will not be lost, cause exchange does not own client's assets.

A user initiates his willingness to purchase or sell assets by creating, signing and sending a Limit Order request to the Matcher node. The Limit Order here is the same as at all exchanges: an order for a buy (sell) of a fixed number of a token at a price equal or better than specified. When a new Order is submitted to the DEX all its fields are checked for adequacy and a signature is validated by sender's public key. Then, the Order is validated, based on internal Matcher state: Order with such id should not exist already and the sum of all Order amounts for a particular asset should be less or equal to the balance of that asset on sender's account. The scheme of work with the DEX is shown in the Figure 1:

Figure 1

User can set an expiration time (maximum timestamp) to the order, and when the order expires it will be automatically canceled. One of the rules at DEX is that all orders older than 30 days will be canceled by default. An expiration time for each order is specified by the user at the time the order is signed. The expiration time is a long integer value that represents the absolute number of seconds since the UNIX epoch. When the order is unfilled and its expiration time is more than now UNIX timestamp, it can be canceled by the user. In this case, the order gets into blockchain as Cancelled order and nobody can fill it since that.

The full execution cycle for one order is following:

  1. If for a submitted order there is no counter-order matched by price, then the order would be put in the corresponding order book.
  2. If there is a counter-order that matches with the submitted order, then the order execution is performed. That means the counter-order is removed from order book and the matcher creates exchange transaction, signs it by matcher's private key and is sent to the Waves network for including in the blockchain.
  3. If an amount of a submitted order is a big enough to execute a few orders, Matcher creates several transactions. Created transactions have amounts equal to matched counter-order amounts. Matched counter-orders are chosen in order of their acceptance time (First In, First Out).

In every time of order's life, it has a certain state, depending on which stage of its life cycle it is now. When an order is in an order book, but not filled yet - it has "Accepted" state, also it can be "Filled", "Partially Filled" or "Canceled". Orders, which are not fully filled, can be canceled, after that the order will be removed from matcher's order book.

3. Matcher fee calculation

The fix full transaction fee now is equal to 0.003 waves for one order, whether buying or selling, regardless of the amount of the future deal. The exchange transaction contains two separate fields for Matcher's fee, which goes from buyer's order and seller's order. An order can be fully executed by some transaction, in this case, all matcher fee from it is included in that transaction.

If the order is partially executed by some deal-transaction, matcherFee is included in that transaction proportionally to the executed amount, i.e.

executedAmount * orderMatcherFee / orderAmount.

The remaining matcher fee for this order will be included in other transactions until order's full execution.

3.1 Example:

There are 3 different orders (Figure 2): two buy orders and one sell. For each full order, a user has to pay exactly 0.003 waves of a fee, and this fee will be written off as the order is executed. In our example:

  • the Order1 is fully matched with a 70% part of Order3 by Transaction1 and matcher's fee for this transaction is equal to 0.003 + 0.0021 - 0.003 = 0.0021 waves since Matcher pay to miners transaction fee which is also equal to 0.003 Waves.
  • The 50% of Order2 matches with 30% part of Order3 by Transaction2 and matcher's fee for this transaction is equal to 0.0009 + 0.0015 - 0.003 = -0.0006 waves.

Thus, the fee that the matcher gets from users for these transactions is0.0021 - 0.0006 = 0.0015 waves. And the fee that the matcher pays to miners is0.006waves.

Figure 2: example of matcher's fee work, TX1 - Transaction1, TX2 - Transaction2, Ord1 - Order1, Ord2 - Order2, Ord3 - Order3

Summary:

period matcher's fee miner's fee left for the matcher
last month 681.42336675 waves 569.721 waves 16.39%
all time 3476.01418346 waves 2824.771 waves 18.74%

To sum up, for all time the matcher keeps only 18.74% of fees and everything else it pays to miners for placing transactions in blocks (data for 8.02.2018).

4. Tradable balance

Tradable balance shows, how much you can spend in orders. It calculates by the formula:

tradable_balance(asset) = balance_of_asset - 
  spendings_of_asset_in_transactions_in_utx_pool - 
  reserved_balance_for_asset

balance_of_asset

The current balance in asset:

spendings_of_asset_in_transactions_in_utx_pool

The sum of all spending by the asset of unconfirmed transactions.

For example, if you are transferring WAVES and sending a data transaction and these transactions haven't yet forged, spendings_of_WAVES_in_transactions_in_utx_pool will be amount_of_transferred_waves + transfer_fee + data_transaction_fee.

Note: UTX pool of one node could not be the same as on other node.

reserved_balance_for_asset

Also known as open volume. The sum of all spending by the asset of all orders in pairs with this asset.

For example, you buy BTC by Bitcoin Cash (1) and sell Bitcoin Cash for WCT (2), and these orders are still active and haven't filled yet. Then spendings_of_Bitcoin_Cash_in_active_orders will be amount_of_spending_Bitcoin_Cash in (1) + amount_of_selling_Bitcoin_Cash in (2).

Note, for WAVES order's fees are included in reserved balance.

As you know, all orders in DEX requires WAVES as the fee. Because of this, there is an exception for the rule we spoke above. If you buy WAVES by other asset, reserved balance in waves in this order will be: max(fee - amount_of_received_waves_in_this_order, 0). So, you can buy WAVES for BTC even if you have no WAVES.

Special technology


Economic model and incentive

Governance mechanism

Applications

Contributors

No contributors information for the version. to see perfessional version!

Comment

comment/score
Whitepaper similarity
Rank Blochchain Similarity
1st

BitShares
BTS

22.428205000000002%
2st

Eidoo
EDO

19.430120000000002%
3st

OmiseGO
OMG

19.15412%
4st

Komodo
KMD

18.883772%
5st

Primecoin
XPM

18.7814666666667%
Related blockchains

No analysis results for the version. to see perfessional version!

Code similarity
Rank Blochchain Similarity
1st

OmiseGO
OMG

13.0969%
2st

VeChain
VET

12.7055%
3st

Nuls
NULS

11.186300000000001%
4st

THEKEY
TKY

8.5165%
5st

iExec RLC
RLC

7.8801%