Rethinking the requirements for subnet validators #10
Replies: 8 comments 49 replies
-
Frankly, I think paying 2000 AVAX for projects that build subnets in the network is a good way to ensure that the projects in the subnet are elite. I think the main thing to focus on is that the current validators in the network why stayed away from being a subnet validator. Because subnet projects want astronomical investments in their own projects and they do not take into account the expectations of validators. |
Beta Was this translation helpful? Give feedback.
-
I personally agree that the 2k AVAX requirement is burdensome to new developers looking to spin up their own networks. In a world where appchain stacks are becoming more prevalant, it makes little sense for Avalanche to try to gate its superior tech offering. I wrote a thread here highlighting these thoughts but IMO replacing the 2k AVAX requirement with a continuous fee would lower the Capex of starting a subnet and actually bring more utility to AVAX. |
Beta Was this translation helpful? Give feedback.
-
[Draft Proposal] The Path to 100k Subnets: Overhauling the Relationship between the Avalanche Primary Network and SubnetsOver the last few months, I've spent a lot of time thinking about what changes could be adopted on the Avalanche Network to make Subnets even more attractive to developers (especially new startups/ecosystems just getting started). I think that the most impactful change to consider right now, as you alluded to, would be overhauling the relationship between Subnets/Subnet Validators and the Primary Network. I typed up some background on this topic for those unfamiliar and shared a three-step rollout plan that IMO would better position Subnets in the increasingly competitve "launch your own blockchain" space (could be cleaned up and turned into an ACP). It is worth noting that I also think native interoperability with the Primary Network is critical to attracting developers to Subnets but didn't feel it was worth elaborating on because that functionality will be provided shortly via the Avalanche Warp Messaging (AWM) integration with the C-Chain and the launch of Teleporter. TL;DR, this will allow Subnets to use $AVAX or $USDC as their native token without a trusted intermediary. BackgroundEach node operator must stake at least 2000 $AVAX (~$20k at the time of writing) to first become a Primary Network validator before they qualify to become a Subnet Validator. All Subnet Validators, to satisfy their role as Primary Network Validators, must also allocate 8 AWS vCPU, 16 GB RAM, and 1 TB storage to sync the entire Primary Network (X-Chain, P-Chain, and C-Chain) and participate in its consensus, in addition to whatever resources are required for each Subnet they are validating. Although the fee paid to the Primary Network to operate a Subnet does not go up with the amount of activity on the Subnet, the fixed, upfront cost of setting up a Subnet Validator on the Primary Network deters new projects that prefer smaller, even variable, costs until demand is observed. Unlike L2s that pay some increasing fee (usually denominated in units per transaction byte) to an external chain for data availability and security as activity scales, Subnets provide their own security/data availability and the only cost operators must pay from processing more activity is the hardware cost of supporting additional load. Regulated entities that are prohibited from validating permissionless, smart contract-enabled blockchains (like the C-Chain) can't launch a Subnet because they can't opt-out of Primary Network Validation. This deployment blocker prevents a large cohort of Real World Asset (RWA) issuers from bringing unique, valuable tokens to the Avalanche Ecosystem (that could move between C-Chain<>Subnets using AWM/Teleporter). Elastic Subnets enable projects to secure their Subnet and incentivize Subnet Validators with a custom staking token. However, there is no way for the broader Avalanche Community to augment the security afforded by these custom tokens with $AVAX to help bootstrap new ecosystems (which may otherwise not have enough value at stake to secure meaningful TVL). Proposed Rollout of Subnet ImprovementsStep 1: Subnet-Only Validators + Subnet $AVAX Bonding
Without the requirement to validate the Primary Network, the need for Subnet Validators to instantiate and sync the C-Chain and X-Chain can be relaxed. Subnet Validators will only be required to sync the P-chain to track any validator set changes in their Subnet and to support Cross-Subnet communication via AWM (see “Primary Network Partial Sync” mode introduced in Cortina 8). The lower resource requirement in this "minimal mode" will provide Subnets with greater flexibility of validation hardware requirements as operators are not required to reserve any resources for C-Chain/X-Chain operation. The value of the required "bond" (X) is open for debate. To avoid impacting network stability, I think it should be at least 250-750 $AVAX. To set this "bond" lower, I think the PlatformVM should be futher optimized (assumes that lower fees lead to a corresponding increase in Subnets). Step 2: Improve PlatformVM Efficiency + Pay-As-You-Go Subnet Validation Fees
To increase the P-Chain capacity for processing Subnet reward distributions (which should allow fees to be parameterized more aggressively), we first should replace Proposal Block-based voting (1 Subnet reward votes per block) with BLS Multi-Signature voting (N Subnet reward votes per block). In a future state, this mechanism may allow Subnets to implement arbitrary reward mechanisms by adding an "amount" to this signed message instead of relying on the $AVAX reward curve that is currently used by all Elastic Subnets. @StephenButtolph has a number of ideas about this approach 👀. Once this vote processing change is implemented, it would be possible to just transition to a lower required "bond" amount, but many (myself included) think that it would be more competitve to transition to a dynamically priced, continuous payment mechanism. This new mechanism would target some $Y nAVAX fee that would be paid by each Subnet Validator per Subnet per second (pulling from a "Subnet Validator's Account") instead of requiring a large upfront lockup of $AVAX. The rate of nAVAX/second should be set by the demand for validating Subnets on Avalanche compared to some usage target per Subnet and across all Subnets. This rate should be locked for each Subnet Validation period to ensure operators are not subject to suprise costs if demand rose significantly over time. All fees would still be paid to the network and burned, like all other P-Chain, X-Chain, and C-Chain transactions. The optimization work outlined here should allow the min rate to be set as low as ~512-4096 nAVAX/second (or 1.3-10.6 $AVAX/month). Step 3: $AVAX-Augmented Subnet Security
Currently, the only way to secure an Elastic Subnet is to stake its staking token. Many have requested the option to use $AVAX for this token, however, this could easily allow an adversary to takeover small Elastic Subnets (where the amount of $AVAX staked may be much less than the circulating supply). $AVAX-Augmented Subnet Security would allow anyone holding $AVAX to lock it to specific Subnet Validators and earn Elastic Subnet reward tokens for supporting honest participants. Recall, all stake management on the Avalanche Network (even for Subnets) occurs on the P-Chain. Thus, staked tokens ($AVAX and/or custom staking tokens used in Elastic Subnets) and stake weights (used for AWM verification) are secured by the full $AVAX stake of the Primary Network. $AVAX-Augmented Subnet Security, like staking, would be implemented on the P-Chain and enjoy the full security of the Primary Network. This approach means locking $AVAX occurs on the Primary Network (no need to transfer $AVAX to a Subnet, which may not be secured by meaningful value yet) and proofs of malicious behavior are processed on the Primary Network (a colluding Subnet could otherwise chose not to process a proof that would lead to their "lockers" being slashed). This approach is comparable to the idea of using $ETH to secure DA on EigenLayer (without reusing stake) or $BTC to secure Cosmos Zones on Babylon (but not using an external ecosystem). Security Considerations
AcknowledgementsThanks to @luigidemeo1, @StephenButtolph, @aaronbuchwald, @dhrubabasu, and @abi87 for their feedback on these ideas. |
Beta Was this translation helpful? Give feedback.
-
Draft improvement proposal for Avalanche further decentralisation.
a) Set up the implementation process that depends on the subnet/network growth.
a) This keeps the validators honest. |
Beta Was this translation helpful? Give feedback.
-
@zybk70 Seems like Benqi's ignite product is about halfway there |
Beta Was this translation helpful? Give feedback.
-
If you don't mind me thinking out loud: if the P-chain becomes the "primenet" but still requires X and C to be validated in the same set, these two would, in my opinion, feel "bolted on" for legacy purposes rather than actually being relevant. While the P-chain provides clear value to validators (specially if the PAYG AVAX is partially distributed as rebates rather than just burnt), there has to be some use for X/C-chain to justify their existence moving forward. I thought about a few things that could help each chain pull their own weight by making them all work in tandem: P-chainThe P-chain probably doesn't need any justification to exist, as it already kind of exists as the "primenet". It's what helps coordinate all validators of all networks, including itself, which is pretty cool, but I digress. Its role in the "triad" that is the Primary Network should be keeping relevant data about every node in the network, and I think that is all it should do. Maybe my information on the docs is outdated, but AFAIK, it can also handle the emission of assets created on the X-chain, which is kinda weird. It also "custodies" assets that were previously held in the other two chains (at least that's my understanding of what "exporting" AVAX or similar does). In my opinion, it should do only one thing and do it well, and for that, we would need to modify the other two chains so they have a more relevant roles inside of the Primary Network, which I will discuss in the following paragraphs. X-chainThe idea of the X-chain was neat, but it didn't work all that well in practice. I still think it would have added something "unique" to the network with the DAG architecture, but now that it's been linearized it is pretty much a "worse" C-chain, but with the ability to issue assets for the rest of the network. In the new model, I think the X-chain should be the sole authority issuing (save for maybe $AVAX, which is a special case) AND CUSTODYING assets. This means that, instead of the current model where you transfer your assets to the other subnets by burning and minting on the other chain, it should allow for smart escrows or bonds where you give authority to other subnets to use those assets within some previously agreed parameters. For example, you could issue a 2000 $AVAX X-chain bond for the P-chain to use for your validator, and then generate a recipe via AWM of the existence of that bond to be used by the P-chain. But how to handle complex emission schemes or potential slashing via the X-chain when all you have is a bond? We will need the C-chain for that. In addition, the X-chain could also work as a way to broadcast and/or pin AWM messages from different subnets by storing them as an NFT. It's the eXchange chain, after all. C-chainThe C-chain is excellent for general computation. In this scheme of the "triad", the C-chain could be the bespoke CPU of the Primary Network: both P-chain and X-chain should know intimately about it, and may specify that some parameters of their computations depend on the results from a C-chain call. Say, for example, instead of specifying emission rates by either contemplating every single possible parameter of a curve or allowing people to upload their own formulas, the emissions field of a subnet in the P-chain could simply have a pointer to a payload for the C-chain to emit an AWM-signed message for the results of that computation (i.e. calculate MaximumSupply depending on the results of a smart contract call). For this to work correctly, though, the C-chain should also feature some way for subnets to have their own accounts in the C-chain and have some way to pass on the gas fees to the subnet account, either via some special precompile or by implementing a "reverse charge call" EVM opcode to have full account abstraction in smart contracts. The C-chain could also act as a mediator on how to resolve bonds from the X-chain by aggregating AWM with special logic and deciding on how to spend the UTXO (i.e. the P-chain emits the statistics of the validators as an AWM, and the C-chain determines if the validator has to be rewarded or slashed, and how). In additionAll these measures would make the Primary Network tightly coupled, working in tandem, where no chain is a "legacy dead weight". It would also encourage burning/redistribution of AVAX by charging for these computations, either by requiring subnets to pay AVAX to generate AWM or by burning gas with the C-chain hooks. As an addendum, I propose that Primary Network validators be able to validate Elastic Subnets and earn rewards by letting them opt-in to tying their entire Primary Network staking rewards to correctly validating all the Elastic Subnets the node is part of. This way, the security of a subnet can be kickstarted without requiring the validators to make a huge upfront investment (or a token at all!), and it would also make more sense than requiring validators to pay for the privilege to give themselves work. |
Beta Was this translation helpful? Give feedback.
-
I'll just add my thoughts that I like the direction this is going in. Having more of our hardware available for validating just DFK Chain would allow us to scale better. I also think this would lead to more subnets in the future. |
Beta Was this translation helpful? Give feedback.
-
This conversation is now locked. Any future discussion should occur here: #14. |
Beta Was this translation helpful? Give feedback.
-
Context: I want to continue the discussion that has happened in various places in the avax community.
It's clear that the current subnet requirements are holding back the growth of subnets. Specifically:
These requirements are too burdensome in terms of cost and computation. With the latest developments of cross-subnet communication, it should be reasonable to start considering dropping these requirements.
web3 has a golden rule: value should accrue to the network of participants based on the value of their participation.
The primary network should accrue value based on the value of a subnet validators participation.
If all a subnet validator wants to do is register with the P-chain to be part of the network and validate the blockchain running their dapp, why is the primary network asking so much value accrual to happen back to itself (in the form of 2k avax requirement)?
What are the downsides to allowing subnets to join the network through registering through the p-chain, not validate the primary network, and pay a fee in accordance to their participation in the overall network?
Beta Was this translation helpful? Give feedback.
All reactions