Enjoy our first light-weight post of Eli5 series covering a reward distribution in Tezos blockchain in the form of comic-strip style story.
John has some Tezos tokens and wants to receive rewards. He takes them to a baker*, P2P Validator.
John makes an agreement to delegate his tokens to P2P Validator and becomes a delegator.
The tokens remain in John’s wallet, but the staking balance of P2P Validator increases.
P2P Validator bakes John’s tokens for 7 cycles (typically 21 days).
After 7 cycles John can see on P2P Dashboard by how much his tokens have grown.
It worked! John started getting rewards on his delegator address as soon the 7th cycle was completed (typically 21-23 day). The delegating process continues afresh and compounds automatically, so John’s reward tokens work with his original stake to increase his rewards in the next cycle.
P2P Validator receives 9.95% validator fee and uses it to pay for:
P2P Validator is part of a tezos network, which is a decentralised one. There are many validators (bakers) in the network and each one makes their own decision on what fees to charge. If a fee is too low there is a risk to the baking process. We believe in charging a fair fee for a good service. Choose P2P Validator and get:
In our next story you will learn how to redelegate (change a baker) and how to stop the delegation.
Let’s stake together!
Stake XTZ with us: p2p.org/tezos
Get the latest posts delivered right to your inboxSubscribe
<h1 id="introduction"><strong>Introduction</strong></h1><p>Since the development of the first blockchain database named “Bitcoin”, complex transaction behaviour was a “Holy Grail” for people wondering how they could pay, bet, play, and even order pizza with such assets.</p><p>The first complex transaction logic implementation was made available right in “Bitcoin” with a stack virtual machine providing a limited set of operations for the end-user to make some fun with it. Fine example is an Omni-layer built on top of the operations set, which end-user intention is to provide a creation and usage of the custom user-defined assets. Such a system successfully fulfilled contemporary requirements for liquid asset transfer. Unfortunately, such an application logic usage rapidly overflowed the throughput available, so no mass adoption happened.</p><p>Another attempt to provide the customizable complex transaction behaviour was made with creation of “Ethereum”, which provided some created from scratch programming language called “Solidity” for creation of even more complex application logic, hoping it would not overflow the database throughput. Obviously this lead to another failure. Primal language and naive database architecture understanding did not survive the reality check - in 2017 the protocol was literally down with CryptoKitties hype.</p><p>The scalability troubles got up again, so another popular solution was rapidly proposed. It’s name was EOS. The solution was to split the computable transaction complex behaviour and to process it with the set of cluster nodes, which were called “Block producers”. This lead to the entrustment of an enourmous responsibility to these “Block producers”. They were now not only about data storage providers, but also computation providers. Now these guys not only store and process your data, but they even define the way your transaction behaves itself, define if they allow such a transaction to be written or not. Futhermore, such an “improvement” lead to the unacceptable database node hardware requirements, which made the support truly awful. Moreover such a split was not enough for building production-ready applications - who would like to find out if the upvote transaction, which was even payed for, was at first queued and then rejected?</p><h2 id="you-have-something-to-propose"><strong>You have something to propose?</strong></h2><p>Yeap. The following blog post series is about the CyberWay (<a href="https://cyberway.io/">https://cyberway.io</a>) - improved and refactored EOS fork.</p><h1 id="proposal"><strong>Proposal</strong></h1><p>So what is CyberWay particularily about?</p><h2 id="eos-compatibility"><strong>EOS-compatibility</strong></h2><p>First of all the backward compatibility is held. The code contains most of the tolerable EOS parts, but excludes the awful ones. So-called “Smart Contracts” API backward compatiblity is held too, but the insides have changed. That means every EOS application could easily become the CyberWay-based one and vice versa. Enough of that. Next.</p><h2 id="bandwidth"><strong>Bandwidth</strong></h2><p>EOS’s bandwidth distribution is closely related to the amount of asset the particular user owns. Furthermore, it requires for the user to hold the asset to be available for the usage at any time. That means the asset becomes a highly valuable, but also it becomes the non-available for the newcomers one. So no newcoming applications are welcomed to be built with EOS.</p><p>Striving to eliminate these inconveniences Cyberway introduces some changes.</p><p>The bandwitdh accounting is split to the couple of categories:</p><ol><li>Priority-based bandwidth allows a user to get required computational facilities according to the amount of core-asset available.</li><li>Shared bandwidth supplies users with the unused computational power according to the particular user activity.</li></ol><h2 id="state-storage"><strong>State Storage</strong></h2><p>EOS’s state storage is extremely unreliable and does not ensures that data is saved and restored after restart correctly. Futhermore EOS does not provide any convenient API, but supposes the data structure stored inside would be complex.</p><p>CyberWay solves these troubles. CyberWay uses the external DBMS for the state storage, which means the particular developer favourite query language can be used and the external well-designed replication and clusterisation mechanisms, done by real engineers and scientists, are also about to reduce the hardware costs and make life easier.</p><h2 id="event-engine"><strong>Event Engine</strong></h2><p>Because of the storage internals being factored out the separate service, the additional transaction contents-based event engine implementation is required. It is now impossible to alert the CyberWay executable from the various database if something happened or not, just like it was in EOS. Monitoring-purposed event engine, implemented as a part of updateable application, takes back the ability to track changes coming with every transaction, even if the data storage is completely outside.</p><h2 id="virtualization"><strong>Virtualization</strong></h2><p>Just like EOS, CyberWay requires for the transaction behaviour to be updated easier, than updating the whole cluster software. That is why the WebAssembly engine is used for the virtualization purposes and with C++ as primary language for the application development.</p><h1 id="separation"><strong>Separation</strong></h1><p>Why don’t just patch EOS?</p><p>Several troubles are about the data itself, and not the code:</p><ol><li>EOS’s architecture made the memory quant an expensive one: according to the <a href="https://eosrp.io/">https://eosrp.io</a> the cost of such a memory quant fluctuates from \$0.2 to \$0.5. That means any transaction-intensive application (e.g. some social applications) with even a quite small amount of active users (e.g. 2000-3000) would take at least 400MB per week, which would cost up to \$200,000.</li></ol><p>EOS’s custom transaction behaviour is stored inside the huge hash-table allocated over a shared memory and the access is provided with an interface, based on quite sofisiticated executable logic, which also costs.</p><p>The obvious solution - to make a cache service and process the data all inside it - is also quite a task because:</p><ol><li>The so-called “Constitution” of EOS defines the largest time interval available for the unused data to be stored with the same ownership as 3 years. This is quite unacceptable with some kind of applications (e.g. social ones) demanding data availability from the very beggining, but the changes are hard to make because lots of other application types are perfetcly fine with this.</li><li>EOS is made to produce replication packages as fast as it can - about half of a second. Such a frequency is fine for marketing purposes, but it significally reduces the complexity of custom transaction logic. This is also unacceptable.</li><li>Reduced amount of validators - only 21, and no significant increase is expected because of EOS protocol restrictions.</li><li>Censorship availability for validators implemented right in the protocol core.</li></ol><h1 id="applications"><strong>Applications</strong></h1><p>Applications are welcomed to use the following.</p><h2 id="shared-bandwidth"><strong>Shared Bandwidth</strong></h2><p>Shared bandwidth sets a limit for the user activity based on its’ staked asset amount, but no less than some basic threshold. This is required to prevent spam to database from the newcomers, and redistribute more computational resources to the succesful application developers.</p><p>Shared bandwidth is accounted separately for the network, RAM and CPU usage.</p><p>Coming to accounting - this is done with particular application bandwidth balance, which shares the convenient part for the user performing the transaction. That is why this is called “Shared” bandwidth. The application is a multisignature account, which requires at least one additional signature from the particular user, for its’ bandiwidth to be used.</p><p>This type of bandwidth allows CyberWay to provide applications with free on-boarding of users at early stages via CyberWay Acceleration Program. Later successful application could get CYBER tokens within Acceleration Program from special fund.</p><h2 id="priority-based-bandwidth"><strong>Priority-Based Bandwidth</strong></h2><p>Priority-based bandwidth is required for the user to surely write the transaction. It is formed with the amount of core asset staked by the particular user and guarantees the transaction gets written right at next replication time. The whole amount of staked core asset forms the bandwidth market.</p><p>Each account gets a share from the whole bandwidth market according to the amount of core asset the account has staked. Considering the case some user owned and staked the significant part of the whole bandwidth supply means the reduction of the resources available for other users. This is definitely not something requiring applications want.</p><p>That is why CyberWay introduces the prioritization of the bandwidth. That means the bandwidth gets split to a couple of categories:</p><ol><li>Guaranteed bandwidth, which works exactly as EOS’s one.</li><li>Priority bandwidth, which is defined according to the particular account priority.</li></ol><p>How do account earn the priority?</p><p>There are couple of ways:</p><ol><li>Perform less transactions using the currently available guaranteed bandwidth. The priority lowers as more transactions gets put inside with a single user.</li><li>Stake more core asset.</li></ol><p>The guaranteed/prioritized bandwidth split ratio is set by the cluster validators.</p><h2 id="memory-rent"><strong>Memory Rent</strong></h2><p>Cluster RAM is something the applications require to work. In contrast to EOS, CyberWay supposes the RAM to be rented from so-called block producers, but not to be owned. The rules are the following:</p><ul><li>Every block producer sets a price for 1Kb memory per month. The price begins from the median price value across all block producers.</li><li>Users place their orders for some particular memory amount rent per month.</li><li>The order is recognized as emplaced for a week, after that it gets evaluated in case the cluster-wide demanded memory is lower than the amount of proposed one.</li><li>In case the proposed amount of memory is lower than demanded, proposed memory gets auctioned.</li></ul><p>In case the memory rent time is up, but there is still some user data stored inside, the archive operation is introduced. Block producers are in charge of initiating such an archivation and the restore is available for the user for the price median-valued among block producers.</p><h2 id="dbms-based-state-storage"><strong>DBMS-based State Storage</strong></h2><p>Inspite of existing so-called “blockchain” databases, CyberWay does not intend to implement the database management software and uses the external DBMS as a state storage for more reliability. For now, only MongoDB is available, but in case of requirements, more are coming. Such a configuration considered to be troublesome for managing, but more reliable in long term.</p><p>Embedded state storage is also available in CyberWay. RocksDB is used for the in-memory and in-daemon storage management component that is faster than MongoDB.</p><h2 id="event-engine-1"><strong>Event Engine</strong></h2><p>As the state storage engine is incapsulated and factored out of the controller daemon, the event engine is implemented as a helper application, syncronizing and managing the data in external storages.</p><p>The input of such an application is a transaction set, each of which gets registered as “processed” and only after this the data are unpacked to state storage.</p><p>Such an approach allows to make sure the routine data operations are processed as required and to split the data managing daemon to single-responsibility micro-services.</p><h1 id="domain-names"><strong>Domain Names</strong></h1><p>Every created account is not identified with a key as other databases do, but it gets a unique 8 byte identifier encoded in base32. Also a human-readable 63 byte length unique names are available for the assignment for every user. In case of the amount of such names is greater than one, it gets charged and called a “Domain Name”.</p><p>Every domain name can be auctioned from base protocol or created by owner of a lower-level domain name. Domain names are transferable and reassignable. Therefore, a need for conversion between a domain name and account identifier gets satisfied with a newly introduced sufficient mechanism as much as need for domain transactions. Domain transactions are transactions which get applied to the data only related to the particular domain-name/application.</p><h1 id="protocol-properties"><strong>Protocol Properties</strong></h1><p>Protocol properties are also got changed comparing to EOS’s ones.</p><h2 id="block-generation"><strong>Block Generation</strong></h2><p>First of all, block generation time is increased for achieving more stable node replication. EOS’s 0.5 second block replication time is fine for most application in case of all the nodes are located in the same datacenter. But for truly distributed protocol, this requires to be increased due to increased network latency. CyberWay supposes the block replication time to be 3 seconds.</p><h2 id="block-producers"><strong>Block Producers</strong></h2><p>Block producers are the key members of a protocol. They keep the database safe and consistent and get rewarded for that.</p><p>Inspite of EOS’s 21 default block producers, in CyberWay the number of block producers is to be increased up to 101 in the future. This is required for more decentralization to be achieved.</p><h2 id="consensus-algorithm"><strong>Consensus Algorithm</strong></h2><p>CyberWay consensus algorithm is heavily inspired by Tezos’ and Cosmos’ one. So, active users are rewarded for voting and non-active users are punished for not voting.</p><p>Every account is allowed to vote for several validators with staked tokens.</p><p>Block producer’s weigh is determined as follows: w = m / sqrt(S), where m is a number of votes for any particular candidate, S is a total number of votes for any particular candidate (or number of stakes tokens as 1 vote is 1 token)</p><p>A particular block producer receives a reward from the emission and redistributes a share of it among his supporters. In case of misbehavior, e.g. a block omission, the block producer as well as his supporters are fined. The staked tokens are burned. This novelty makes block producers more responsible, and voters more careful and thoughtful.</p><p>The block producers get a share of emission. The share depends on the total amount of staked tokens. The more tokens are staked, the less inflation is. Thus, the CyberWay has in-built incentives for users to participate in governance via voting. Moreover, the passive users are diluted as they do not get any rewards from validators.</p><p>What if some user considers another user to understand better, which block producer is the best service provider? This gets covered by CyberWay with a proxy mechanism which ensures that some user could delegate his own assets to another user called “Proxy”. The proxy user gets fees for its service.</p><h2 id="censorship"><strong>Censorship</strong></h2><p>In contrast to EOS, CyberWay completely removes any inequality between the users. There are no privileged accounts, no so-called “Constitution”, no blacklists.</p><h2 id="workers"><strong>Workers</strong></h2><p>Workers are the mechanism first introducted in BitShares. These are users, who get their issuance share for making improvements for the protocol. The improvement can be registered and referenced by any user, particular improvement to resolve is selected via voting by validators.</p><h1 id="conslusion"><strong>Conslusion</strong></h1><p>CyberWay is one more fork of EOS, specified to handle more complex applications with more decentralization available. Workers are considered to be the most powerful tool for decentralized protocol improvements. The scalability and performance CyberWay introduces is fine enough for running complex social applications or financial service apllications or gaming applications. The absence of censorship and priveledged accounts makes CyberWay even more decentralized, which is coming in the next blog post.</p>
from p2p validator
<p>Currently, 6 validators control more than <code>33%</code> of Cosmos Hub voting power with <strong><strong>over 62 000 000 ATOM</strong></strong> at stake <strong><strong>(>313 000 000 USD)</strong></strong>. Their <a href="https://medium.com/@hector_89360/cosmos-hub-validators-rich-list-9ed69274e5e">monthly revenues</a> are sustainable and in most cases, are high enough to behave in interests of the Cosmos ecosystem even if they are technically able to collude. Their income is also sufficient to maintain reliable infrastructure, provide high level of security and upgrade their facilities. If we will look at validators from 80 to 100 we may notice that they have around <strong><strong>1 252 370 ATOM</strong></strong> at stake <strong><strong>(6 261 850 USD)</strong></strong>. Monthly revenues of a single validator in this group, in most cases, do not exceed <strong><strong>1000 USD</strong></strong>. Most likely, it is not enough to provide sustainable improvements, cover running costs, pay salaries to the employees and add value to the ecosystem. If we would broaden validators set and add 25 more, their revenues, probably, would be even less. Their ability to provide secure services in the long term is questionable as well as ability to compete and attract new delegators.</p><p>Situation with network decentralization will not change vastly, last 20 validators have total voting power less than <strong><strong>0,75%</strong></strong>. Taking that into consideration we suggest that additional 25 validators will not add more than <strong><strong>0,5%</strong></strong> creating state of the ecosystem where <strong><strong>36%</strong></strong> of validators have less than <strong><strong>1,25%</strong></strong> of voting power making power distribution even more irrational. This issue should be addressed before raising the threshold to establish fair distribution and define a bottom border of entering the validator's set.</p><p>These validators will have higher risk of slashing with lower cost increasing economic viability of such a harmful behavior. For example, the cost of double-sign for Polychain Labs is higher than <strong><strong>3 000 000 USD</strong></strong> while the average cost of double-sign for validators from 80-100 is close to <strong><strong>15 000 USD</strong></strong>. The cost for validator #100 is less than <strong><strong>10 000 USD</strong></strong>. This state of the ecosystem may undermine the overall trust of the Cosmos network affecting decentralization even more as delegators would not even consider to stake out of the top ten experiencing frequent slashing events.</p><h1 id="conclusion"><strong>Conclusion</strong></h1><p>To sum up everything written above, we suggest, that Cosmos Hub is still in the early stage and not mature enough to rise that number <em><em>as there does not exist strong necessity to do so and outcomes are not clear enough</em></em>. In our opinion, we should take more time to establish a healthier spirit of competition <em><em>inside the existing validator's set</em></em> and see if the smaller validators in the set are able to attract new delegators and provide sustainable services.</p><p>We understand that raising the threshold may bring new players in and final intentions are positive, but there may exist an opposite direction that has negative implications in the long run. In that case, our suggestion would be to collect more empirical data and increase the threshold based on the results of the first year as we do not need to rush forward. We already saw <a href="https://twitter.com/zmanian/status/1145072296723275776">double-sign slashing</a> and want to decrease the probability of such events being sure that the majority of validators are reliable and sustainable.</p><hr><p><strong><strong>P2P Validator</strong></strong> offers high-quality staking facilities and provides up to date information for educational purposes. Stay tuned for updates and new blog posts.</p><hr><p><strong><strong>P2P Validator</strong></strong> offers high-quality staking facilities and provides up to date information for educational purposes. Stay tuned for updates and new blog posts.</p><p><strong><strong>Web:</strong></strong><a href="https://p2p.org/"> https://p2p.org</a></p><p><strong><strong>Stake ATOM with us:</strong></strong><a href="https://p2p.org/cosmos"> https://p2p.org/cosmos</a></p><p><strong><strong>Twitter:</strong></strong><a href="https://twitter.com/p2pvalidator"> @p2pvalidator</a></p><p><strong><strong>Telegram:</strong></strong><a href="https://t.me/p2pvalidator"> https://t.me/p2pvalidator</a></p>
from p2p validator