We are embarking into a new era of Elastos and the Cyber Republic. Delegated Proof of Stake (DPoS) Supernode Voting and Elections are coming soon to a Wallet near you. There’s been a lot of chatter in the Telegram chat rooms, subreddit and CR Forum about Pooling for Supernodes and what the process is. As wallets are being tested for elections this week, the voting looks to start sometime this month.
The first round of elections will conclude in April, in which the Community Nodes will begin participating in DPoS Consensus. This article is meant to give the community a clear, in-depth look on important aspects of how DPoS works and also to suggest some ideas in which node groups can use in order to properly divvy out profits to each other and voters. Also, in order to protect the sanctity of the DPoS Consensus process, any malicious activity will result in penalties and potential dismissal of Supernode status.
First let’s break down the DPoS structure Elastos has devised. There will be 108 total nodes. 96 of the nodes will be democratically elected by the community, and 12 of the nodes will be voted in by the CR Consensus. Each of the 96 non-CR Supernodes will need to meet the requirement of having 5000 ELA locked-up, along with various hardware requirements needed to run a node.
Another terms for these non-CR Supernodes are “Participant Nodes”. 36 of these nodes will be “active”, with the 12 CR Nodes always running. The other 72 nodes will be “stand-by nodes”. The stand-by nodes with the most votes will take the place of any inactive Supernodes.
As CR Community Manager Nicola Zimmmerman (AKA Ghandi) eloquently explains: “There are 96 nodes which are voted in by the community and are getting rewards. The 36 Supernodes are called active nodes, the 72 stand by nodes become active nodes when one of the active nodes goes offline or when they get more votes in a voting round (every 72 minutes) than the active node with the least votes.”
In other words, 24 of the 36 Supernodes are in flux and voted on every 72 minutes. The nodes with the most votes in the Top 24 will be Active. Ultimately it’s those top 24 Supernodes that will get the most rewards because they are the most active and will be processing the majority of the transactions on the network.
Speaking of rewards, 25% are distributed to the 36 Supernodes; every active node gets the same amount. 75% of the rewards are distributed to the 96 nodes with the most votes–rewards are distributed proportionally to the number of votes. The 12 CR nodes don‘t get any part of the 75% of course since they don’t have to be voted in. The community will be making decisions on which Nodes are active and which will be on stand-by through voting. Ultimately, it’s up to the Cyber Republicans to choose the best and most reliable Supernodes. The network depends on the reliability of these Supernodes, so it is important to vote accordingly.
To understand what these nodes do, it’s important to know what happens before the DPoS process. Elastos uses a dual consensus mechanism: Proof of Work (PoW) and DPoS. Elastos uses Merge Mining on the Bitcoin blockchain. The PoW miners produce the blocks and as stated in the Elastos DPoS Supernode Election article: https://news.elastos.org/elastos-dpos-supernode-election-process/
“The 36 active nodes will confirm the blocks previously produced by PoW miners.”
Between the miners using PoW and the Supernodes using DPoS, this is how Elastos reaches full consensus for all transactions made in the ecosystem.
For those interested in running your own node on the Elastos network, you’re in for a treat. There are several different avenues available. Many in the community are congregating together to build teams that will run Supernodes. There have been a number of proposals on how the payouts will be properly structured and also ensure there isn’t any illicit activity between team members and voters.
The first method is the use of the multi-signature function in the Elastos wallet. Teams can set up a multisig wallet which requires a certain number of pool participants to sign the transaction. There’s a maximum of six and minimum of two owners to each wallet, and up to four required signatures to sign off on transactions. This ensures that multiple bad actors would be needed to betray the trust of a supernode team.
This may be the easiest method, but it may not be the most ideal. Gandhi explains a bit more why a multi-sig option may not be the best course of action: “A multisig wallet is the easiest solution in my opinion but it has some deficiencies. For example, if one of the pool participants wants to leave the pool, you have to make a new multisig wallet, transfer the 5k ELA to a new wallet and register again for the election.” The constant flux of changing team members and creating new wallets may cause some headaches and become somewhat time-consuming. Votes could be lost in the process. This brings us to a potential solution to this problem: creating smart contracts to streamline the process better.
Smart contracts are the method in terms of divvying up ownership of a node and distributing rewards to its voters. Gandhi continues: “With a smart contract, one could find a solution to sell their stake of the node without the node having to go offline. The smart contract (or a second one) could also be used to share the block rewards with the voters. For example, you create a smart contract and deposit 5k ELA in it as a pool. The node owners set how much of their block rewards they want to share with their voters (ie. 80% for voters, 15% for pool participants, 5% for running and maintaining the hardware). The smart contract detects automatically who is voting for your node and distributes the voting rewards. It doesn‘t make sense to do this in every block because this would be way too expensive, but let‘s say every 2 weeks and as a voter you only get rewarded when you voted for the node for the whole 2 weeks period. The smart contract automatically distributes the rewards to the pool participants”. The Supernode pools can essentially automate the process in distributing rewards amongst themselves along with their community voters through smart contract. This would give many interested parties peace of mind that everything is being controlled by code.
So how exactly does one go about creating a smart contract in order to compensate members of a Supernode pool or CR voters? Well, the answer isn’t simple yet. There are a few details to iron out in the process of enabling a fully-functional smart contract that distributes ELA funds to multiple parties. Software Development Relations Manager, Kiran Pachhai (KP) explains the creation of a smart contract in this specific Supernode context: “You can’t write a smart contract for ELA payments. Since that is done via main chain and main chain doesn’t run smart contracts. One option is maybe through smart contracts on Eth or Neo sidechain that keeps track of all the votes, rewards, etc. and based on certain triggers like a monthly date, it triggers another action which will auto distribute the ELA into a wallet. The handling of ELA payments itself could be done via scripting, same as how you would do BTC payments via scripting. The voting type transactions are different on main chain so you could write something based on that. A Supernode is just a machine that runs arbitrator code. You can’t write a smart contract for a supernode. You can only write logic onto a smart contract and put it on the Blockchain. After a certain event or trigger, it can execute the script that then auto-distributes ELA to people. Then again, you could possibly do the entire thing as scripting alone.”
As you can tell, though it would take an experienced developer in order to automate the process through smart contract and scripting, it looks to be the safest and most efficient path in order to assign payments to Pool members or voters.
But what about the prevention of bad actors in the ecosystem? Elastos Foundation has the proper rules and infrastructure in place in order to weed out the bad apples. As stated earlier in the article, the Participant Nodes need to lock up 5000 ELA. This stashed ELA acts as collateral in case any sketchy activity occurs or rules are broken. This is explained in the Elastos DPoS Supernode article when Supernodes don’t act accordingly: “…if the node is found to have violated the rules, the appropriate amount will be deducted from the ELA on deposit according to the situation and the remaining ELA will be returned to the wallet address linked to the public key that was provided at the time of registration.” There isn’t a set amount determined in terms of how much ELA would be deducted to such bad actors, but they will certainly be penalized. It’s good to know that there are certain rules and regulations to be followed for all Participant nodes without exception.
There are plenty of other DPoS Consensus blockchain projects out there, some like ARK which work well and are user-friendly with payouts to voters being as simple as voting for someone with the best reputation and rewards, and receiving those rewards in your wallet on a weekly basis. And others like Lisk which have a cartel running it which does not pay out any rewards to voters unless you vote for the entire cartel, and the rewards for doing so are generally inconsequential.
As you can tell, there are a lot of nitty-gritty details that come with the DPoS Supernodes. Most importantly, however, these Supernodes will be able to secure and confirm transactions to keep the reliability of the network fully intact. It’s up to the community to continue to vote for the Supernodes that represent the best interests of Elastos and the Cyber Republic Ecosystem.
Cyber Republicans, there’s a lot at stake with these Supernode Elections and Voting, no pun intended.