Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ZIP-3 #14

Open
ansnunez opened this issue Feb 28, 2020 · 8 comments
Open

ZIP-3 #14

ansnunez opened this issue Feb 28, 2020 · 8 comments

Comments

@ansnunez
Copy link
Contributor

Comment tracker for ZIP-3

@Sajjon
Copy link
Contributor

Sajjon commented Mar 11, 2020

Hey Zilliqa team! Just finished reading ZIP-3 (and made a PR with some minor text fixes #21 ), super interesting read!

A have a few comments/suggestions.

Suggestions for change of ZIP3

Staking parameter

You proposed a Minimum stake amount per seed node of 10 mZil combined with Maximum number of seed nodes of 10.

Have and would you (re-)consider changing those numbers to 1 mZIL and 100 nodes? Or 2 mZil and 50 nodesor possibly even 5 mZil and 20 nodes?

As I see it increasing the number of seed node candidates by lowering min ZIL threshold would serve two purposes:

  1. It would further increase decentralization. Even though this whole improvement proposal will disregarding which parameters used, increase decentralization, I think people might react much more positively towards the number 100 or 50 nodes rather than 10. Not at all the same "kind of staking", but Cosmos have 100 validator nodes (and an unlimited amount of validator candidates. Once again, not the same thing, but 100 sounds much more decentralized than 10.)
  2. While I appreciate and understand the importance of having a not too low minimum stake (in order to have "enough skin in the game"), I think 10 mZil is pretty steep (of course it is derived from the number of nodes - and the other way around). The whole economics of any DLT (or 'traditional' economic system) is completely dependent on the underlying value of the ZIL (vs some other relevant currencies, may it be Bitcoin, USD or EUR). If the value of the ZIL would 10x vs USD, lowering the threshold to 1 mZil would make sense. Thus choosing parameters (primarily Staking Parameters) wisely to try driving up the price is and should be a goal in itself, do you agree? So if we were to chose 1 mZil, 2 mZil or 5 mZil makes it more feasible for token holders and new arrivals to the Zilliqa community to save up to this threshold. Whereas 10 mZil - I believe - is too big an amount for most people to dream of saving up to in a reasonable time. And also, only having "10 slots", makes it infeasible for most to try save up to the threshold and become a seed node, since all slots probably already are taken. Another thing to note is that, as of phase 0, there would be no slashing, and the staking does not directly affect consensus, therefor lowering the threshold from 10 mZil would not affect consensus. To conclude, I beleive more nodes, and lowered threshold would have a more positive affect on the price of ZIL in the near future, than the 10 mZil & 10 nodes, which if true, would be a self-adjusting change (as in, USD-ZIL price were to increase more - by using 1 mZil & 100 nodes - than price were to increase using values proposed here, then the min stake amount in USD would go towards the same min stake amount in USD).

H Min System Req

The mininum system requirements sounds a bit steep as well. The seed node would not be performing any ``Proof-of-Work` or similar CPU/GPU heavy work at all right? Quote from Background & Motivation section:

Seed nodes consolidate transaction requests and forward these to the lookup nodes (another type of nodes) for distribution to the shards in the network. As "archival nodes", they further maintain the entire transaction history and the global state of the blockchain which is needed to provide services such as block explorers.

So the seed node is responsible for receiving transactions, storing them on disc and re-broadcasting them? This should not require a Quad core processor? But actually now that I looked it up, a Macbook Pro from 2016 (that could be running Ubuntu), has a Skylake Quad core CPU. I was just curious.

Smart contract code

When can we expect to see the smart contract (Scilla) code? Or is it already up on Github for public review?

Have you done any TLA+ proof of the specification of this smart contract? Or does the Scilla "cashflow analyser" cover every possible corner case of what might possibly go wrong? :)

Related question about staking

Not directly related to this, but have you considered implementing another kind of incentive mechanisms for HODLing, in order to drive ZIL price up? I think what VeChain did with the X-node program was fantastic! An important thing to note here is that what VeChain calls a "node" is really just an address (a wallet), not a physical machine at all, which is at first glance really confusing. If you are not aware of VeChains X node program, please read up and come back and comment. Basically what they did is to make an excellent HODL incentive program which (before the great crash of 2018-2019) drived price up. I think a similar program for Zilliqa would be amazing, especially in combination with this ZIP3.

@AmritKumar
Copy link
Contributor

AmritKumar commented Mar 13, 2020

Thanks for the feedback and your notes @Sajjon!

  1. Max Number of Nodes: As you mentioned, validator nodes in Cosmos or other PoS/dPoS chains are very different from the seed nodes in Zilliqa. Seed nodes do not process transactions and therefore do not require the same security and decentralization as a consensus network and this is exactly why we felt that a 100 node network of seed nodes will probably be too much. Also, a 100 node network will have to be incentivized and since the reward pool is fixed, increasing the node count from 10 to 100 will reduce the reward that each node will get, probably making it not very attractive. However, a number like 20 is something that can definitely be considered. Our initial plan was to start with a low number first and see how it plays out then extend it to say 20.

  2. Min Stake: This is again very related to the previous parameter. If you lower the min stake, then you are basically allowing anyone to participate with the goal that anyone can become a seed node. However, given that the reward pool is very limited, it is not feasible to accommodate hundreds of seed nodes unless miner are willing to share a portion of their reward to seed nodes. We however would definitely like to revisit this number along the way.

  3. Smart Contract Code: The smart contracts to be used in the staking are almost ready. They will be open sourced very soon. We have not done any formal verification on it yet. But, we do plan to use TLA+ framework. We are currently using TLA+ to modal check a Crowdfunding contract. Cashflow analyzer can help for sure but it has its own limitations.

  4. Will check on VeChain's program.

@BaryGood
Copy link

5% Vs 15%

I commented on TG and was advised by Milan to get my views captured here. To recap, I raised that the key issue was the meagre 5% block reward that impacted decentralisation/community participation. It also dampened the excitement often seen with other platforms implementing staking. I proposed to start with 15% block reward to accommodate more seed nodes/community participation. The increased interest/excitement generated will have positive impact on the demand/value of zil thus indirectly benefiting miners. I was reminded Seed nodes are not consensus nodes. If 5% is already cast in stone then the Team should implement the Seed nodes staking as soon as possible. Team should also help Zillacracy setup their seed node. With limited rewards, I would not be surprised if seed node operators will be undersubscribed.

Staking for sybil preventing/identities allocation

I'm happy to note that Seed node staking is a precursor to better things to come, a.k.a staking of nodes to prevent sybil attack/identifying allocated nodes. This will definitely draw more community support/participation. Looking forward to seeing existing guard nodes converted to staking nodes soon.

Robust Look up nodes

Seed nodes are more special purpose compared to Lookup nodes which are more integral to Zilliqa. I would suggest that the Team review the requirements of look up nodes with a view of increasing redundancy.

@AmritKumar
Copy link
Contributor

AmritKumar commented Apr 13, 2020

Thanks for the feedback.

  1. 5% vs 15%: 5% is definitely very low when compared to PoS based consensus mechanisms where security comes from the deposited stake hence 100% goes to stakers.

    However, do note that the purpose of staking with seed nodes is not to build a PoS-like system but rather to provide incentive to support certain non-critical nodes in the ecosystem. This could also provide a revenue stream for certain community-backed initiatives such as wallets and explorers (e.g., Moonlet, ViewBlock) and even Zilacracy.

    Since moving from 5% to 15% (as you suggest) is going to impact the miners as they have to give up their share of rewards, we cannot unilaterally change the number in the protocol without getting miners involved in the discussion. To this end, we plan to reach out to miners and convince them that moving from 5% to say 15% is good for the broader ecosystem. And I am hopeful that they will agree with that.

    I do not agree with your argument on under-subscription. The reward is still 10.42% on the stake and hence very attractive compared to many other PoS chains. In fact, in theory it should be over-subscribed as only 700 million can be staked which creates a bit of scarcity.

    As far as implementation is concerned, Phase 0 is already live on Testnet. And there are a few parties who have already setup a seed node on the Testnet. So, yes, the implementation is already done. What is left is contract auditing and the seed node operators opening up the staking service to their end customers. Both are WIP.

    Meanwhile, we have already started the work on Phase 1 that will involve non-custodial staking. Non-custodial staking will be a requirement for Zilacracy as I assume they do not wish to custody other people's assets. Zilacracy is closely working with the Zilliqa team and the Moonlet team to get involved in Phase 1.

  2. Staking for sybil preventing/identities allocation: Yes, we do have plans to introduce staking for the shards as well. And this is planned in the next phases. As for guard nodes, we simply plan to get rid of them progressively. Our current plan is to reduce them by 100 in each release.

  3. Robust Look up nodes: As a part of Zilliqa 2.0, we are working on changing some of the network architecture that will change the way lookup nodes work.

@BaryGood
Copy link

Thanks for the update

It would be nice if Team could specify a launch date so that we could all be aware of the date that launch would take place regardless of the number of participating seed node operators.

Staking for shards will excite/unite the community in supporting zilliqa as billions of utility zils they collectively hold will instantly become useful. Team should put this as high priority task to be implemented asap.

@BaryGood
Copy link

BaryGood commented May 7, 2020

Staking is a high impact programme which will attract a lot of interest from the crypto community. As such, all staking related projects such as seed and shard nodes staking, as well as non-custodial/locked fund staking should be grouped and implemented under a single larger Zilliqa staking programme for ease of management and marketing leverage.

A big picture approach showing the full roadmap with proper milestones will facilitate tracking the progress of the overall Zilliqa staking development. With regular progress update, the community will be kept engaged and excited at all times. The increased exposure could potentially create greater demand for the crypto which would in turn generate greater community/developers interest. This positive demand-community interest cyclic effect could potentially create a critical mass of captive crypto community/developers to set off a sustainable network effect for the Zilliqa ecosystem.

Big picture publicity/marketing campaign for Zilliqa staking mechanism

A big picture publicity approach, with the planned total staking block reward of say 50% for both seed and shard nodes stated up-front, is more impactful and will attract/excite the larger crypto community. Piecemeal publicity approach, such as standalone seed node staking project of 5% block reward by itself, with no visibility of future expanded reward is not enticing at all.

The Zilliqa staking mechanism project with sizable block reward will be implemented in phases under WIP3. The first 5% of block reward will be up for grabs as soon as Q2 with the launch of Phase 0 of seed node staking.

WIP3 Phase 0 : Q2 2020 – Staking of the seed nodes. This should be launched as scheduled even with fewer than the desired 10 staking seed nodes. The team should even consider running its own staking seed nodes to cover some of the shortfall to allow greater participation from the community. WIP3 Phase 0 will provide great exposure for the team to learn and experiment staking with the view of building a better system for the shard node staking.

WIP3 Phase 1 : Q4 2020 – Enhanced seed node staking. Seed nodes staking based on non-custodial mechanism will be launched in Phase 1. This feature will also be implemented for the shard nodes in the hybrid POW-Staking sybil resistance system.

WIP3 Phase 2 : Q2 2021 – Staking of shard nodes. Phase 2 involves the full migration from POW sybil resistance to a hybrid POW-Staking sybil resistance system. This should be implemented as soon as possible to be quick to market and stay ahead of competition. Almost all new blockchain platforms are opting for the popular staking mechanism.

Marketing of the Zilliqa blockchain has gained significant momentum recently. The team should continue the effort and go all out to market the complete Zilliqa staking mechanism project now with scheduled milestones and progress updates. It’s more professional to provide regular progress update highlighting the technical difficulties encountered and report any potential delay early.
Zilliqa has planned to migrate to a Hybrid POW-Staking sybil resistance system in the long run. Its captive community would like the team to put the staking project at the highest priority as it would make the billions of utility zils that they collective hold instantly useful.

The tech team has made great progress and we are on course to achieve the all-time-high of 30k for single day transactions today. The marketing team should capitalise on this achievement as well as the high profile Zilliqa staking project to maximise publicity and provide significant boost to the value of zil.

@AmritKumar
Copy link
Contributor

AmritKumar commented May 10, 2020

@BaryGood Thanks for the feedback. Your latest post talks more about marketing and awareness and is less focused on technical feedback which is the main purpose of the Issue on GitHub. Let's keep it technical here.

Do note that we cannot commit to any ETA until proper feasibility research is done and a plan is drafted on how to solve the problem. The next staking ZIP will be focused on non-custodial with admin staking via seed nodes and will most likely not involve shard nodes and will be limited to seed nodes only. Once we have the ZIP, we will be able to give an ETA.

@BaryGood
Copy link

Ok fair comment.
The community would like the team to put high priority on migrating to a Hybrid POW-Staking for sybil resistance system as the current POW system may not be sustainable. It is not assured that Zilliqa will have a large number of captive miners if price collapsed to unprofitable level. For dual miners, their priority and loyalty stay with mining their Ethash platform of choice or other more profitable ones. Bad players may exploit the vulnerability to get into the network easily via renting hashpower. Hybrid POW-Staking sybil resistance system will alleviate the problem with support from a large number of loyal Zilliqa community forming captive Stakers. Some community see WIP3 Phase2 - Staking for shard nodes to secure the network as a necessity rather than nice-to-have feature and would like the team to put more resources to work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants