The Waves Platform is getting more attention recently. A new client has been released, a fiat gateway for the Turkish lira was implemented, the Waves NG protocol will be activated shortly and many more news appeared. Especially the implementation of the NG protocol, which speeds up a very important part of the WAVES ecosystem, the blockchain, raises a lot of attention and also questions.
So is the Waves Platform representing one of the fastest blockchains on the market or are there other blockchains which got a better performance, like BitShares for example?
Especially on the Telegram Channels and on Twitter there are regularly discussions going on which blockchain may be the fastest one. BitShares users argue that they have the fastest decentralized blockchain and members of the Waves community do the same vice versa.
So I try to focus on the topic of performance instead of writing a whole analysis if Waves is better than BitShares or the other way around. Don’t forget, that every blockchain implementation has its special use-cases and targets a more or less specific type of customer/user. BitShares is quite focused on financial services for example while the Waves Platform tries to be “the blockchain of the people“.
One of the major tasks of a blockchain system is to secure and handle all of its transactions (Tx). Each transaction represents an atomic process and is part of the lifetime of the whole blockchain. Every time you send a token from your address to another one a certain type of transaction is initiated and will be processed by any of the systems that are maintaining the functionality of the blockchain (nodes for example). This process can be handled in a different way to achieve a specific distributed consensus. The consensus ensures that every user of a blockchain can see and validate all executed transactions of the blockchain at the same time. Further more those distributed transaction processing is handled by a certain framework that “chooses” the machine that is allowed to process the block, which contains a certain amount of transactions. For example Proof-of-Work, that is used by Bitcoin, Proof-of-Stake used by the Waves Platform and Delegated-Proof-of-Stake by BitShares. So much to the theory. I advice you to dig into the Wikipedia articles to understand the details probably.
So in reality those computations need a certain amount of CPU cycles, working memory, network activity and other factors depending on the software implementation on how the transactions are going to be processed. So a productive blockchain has a rate of processed transactions per second (Tx/s).
For example the Bitcoin blockchain can handle around 3 Tx/s, or up to 6 Tx/s if the block size is doubled. Sounds not much, right? Indeed it is. The VISA transaction system can handle around 24.000 Tx/s. Now you understand why it’s so expensive to use Bitcoin as a financial instrument in daily life (who wants to pay a bunch of Dollars for the transaction when you buy a simple pizza?).
The same fundamental limitations apply to Ethereum, Litecoin, Dogecoin, and all other currencies that share Bitcoin’s blockchain management protocol. So the university professor Emin Gun Sirer decided to develop a new protocol which is able to handle much more transactions than usual. This protocol was called Bitcoin-NG. But it was never implemented by the Bitcoin core development team.
In Bitcoin-NG the protocol is forward-looking: every 10 minutes, NG elects a leader, who then vets future transactions as soon as they happen. The former is necessarily limited by the block size and block interval, while the latter approach can run as fast as the network will allow. This approach has been adapted to Waves’ proof-of-stake model, theoretically enabling hundreds of transactions per second. I took this paragraph from the Waves Platform Wikipedia article.
So how fast is the Waves Platform with the implemented Waves-NG protocol?
The NG protocol is not live yet but when it was benchmarked on the test environment it reached 17.000 Tx/min maximum and about 2.000 Tx/min throughput in average. It is expected to reach an average of about 6.000 Tx/min on the productive environment. This is equivalent to 100 Tx/s. Still not even close to systems like VISA. But VISA is no public blockchain so it’s like comparing apples with pears. At least it’s definitely faster than the usual blockchain implementations.
And how fast is the BitShares blockchain?
On it’s technology section of the website the BitShares team states that the blockchain is capable of more than 100.000 transactions per second – more than VISA and MasterCard combined. That’s a very ambitious statement. It is described that they achieved that by using only single threaded specialised domain logic and keeping all objects needed for the processing of the transactions in memory. What kind of protocol implementation is being used to map this on a blockchain is not explained in detail.
However on the blog page there’s an article that explains how they came up with the huge number of 100.000 Tx/s. Here it’s getting a bit more interesting because the initial performance benchmark has been executed on a isolated blockchain hosted by “a two year old 3.4 Ghz Intel i5 CPU” which “performed at over 180,000 operations per second.” when 200.000 simulated accounts created 3 transactions each (2 transfers and 1 asset issuance).
Based upon these numbers we have concluded that claiming 100,000 transactions per second is well within the capability of the software.
So based on a set-up, without any real users, no network latencies (because they just used one server) in a theoretically perfect environment they concluded that 100,000 Tx/s will be manageable in a realistic internet environment with hundred of thousands of users. Yes, maybe they are right. But there’s no single benchmark proving any realistic circumstances. So for now it’s just an assumption.
Furthermore “the transaction throughput will be artificially limited to just 1000 transactions-per-second.” makes clear that they don’t trust their own assumption for now. Maybe they changed it in the meantime because the article is from mid 2015 but I couldn’t find any further information on that.
I’m quite sure that the BitShares blockchain can be quite fast. Maybe even the fastest one in world. But fully depending on the point of view and the set-up where a benchmark is providing a proof for the assumption. Currently there seems not to be any “proof” under realistic circumstances that BitShares can handle up to 100.000 Tx/s at all.
On the contrary the Waves Platform team proved in a decentralized test environment on the internet that their NG protocol implementation is capable to handle 4.6 million transactions, submitted by 3.000 real users within a time frame of 48 hours with a peak of 17.000 Tx/min or 283 Tx/s.
Of course this is still much less than the BitShares fact sheet provides but it is proofed and still more than any other decentralized blockchain can handle currently.
Thanks to lenn art from the Waves Community Telegram Channel who contributed to this article.