Network security
- Voter participation must not decrease
- Network must not be at increased risk
Code security
- Minimal system contract modifications
- No risk of loss of funds
- Code review should contain minimal code complexity
1.0 β Modify RAM increase rate to 0
Set RAM increase rate to 0 bytes per block.
eosio::setramratetobytes_per_block=0
1.1 π§ Deflationary RAM rate
Allow for signed integer for bytes_per_block RAM rate (allows deflationary virtual RAM supply)
VaultaFoundation/system-contracts#101
- Set
setramrate::bytes_per_blocktoint16_t(signed integer) - Set
global2::new_ram_per_blocktoint16_t(signed integer)
max_ram_sizecannot be belowtotal_ram_bytes_reserved
- system_contract
1.2 π§ Transferable RAM
New RAM system contract action to transfer RAM from one account to another without any fees.
VaultaFoundation/system-contracts#102
from {name}to {name}bytes {int64}
- Charges 0% fee to transfer
- Only uncommited RAM can be transferred
- Notify
receiverbyrequire_recipient
frommust have sufficientram_bytesprior to transferfromdecreaseram_bytesbybytestomust existstoaccount can be a contracttoaccount can have zero available RAM bytestoincreaseram_bytesbybytes- handle
ram_managedaccounts
- system_contract
- resource_limits_manager
- privileged
1.3 π§ RAM Notifications and Logging
Improve RAM logging by including additional inline actions and notifications via the use of require_recipient.
VaultaFoundation/system-contracts#103
- Add
require_recipient(receiver)onbuyram&buyrambytesactions
payer {name}receiver {name}quant {asset}bytes {int64}
2. βοΈ Removal of Deferred Transactions from System Contract
Deploy latest v3.2.0 system contract
- Within the system contracts the actions
system_contract::bidname,system_contract::buyram,wrap::execno longer issue deferred transactions. - This is a change for the
system_contract::bidnameaction, and failed bids will need an explict refund. For thesystem_contract::buyramaction the default behavior remains unchanged. - The
wrap::execaction has been rewritten to use send instead ofsend_deferred.
3. π§ Staking Rewards
Revamp REX with modified parameters, increased allocation by 2% & burn system fees.
- Burn mechanism for system fees (Name Bids, RAM fee, PowerUp fees, more...)
- All system fees are burned (sent to
eosio.null) - Could cause the network to be deflationary
- All system fees are burned (sent to
- REX to accept a portion of unallocated inflation
- modify
producer_pay::claimrewardsto supportrex::channel_to_rex - define new
rexparamstable withinflation_rex_factor=50000(50% of unallocated inflation)num_of_maturity_buckets=5(4 days)
- define new
setrexparamsaction to modifyinflation_rex_factor&num_of_maturity_buckets
- modify
- Increase +2% of unallocated inflation going to REX
- call
eosio::setinflationaction with the following parameters:annual_rate=500(previously 300)inflation_pay_factor=50000(previously 30000)
- call
- Remove
check_voting_requirementchecks frombuyrex- resolves circular dependencies between
delegatebw,voteproducer, andbuyrex. #51 - allows for neutral actors to participate in REX (ex: EOS EVM Bridge)
- resolves circular dependencies between
- Increase REX staking period
- modify
num_of_maturity_buckets=8to change staking period from 4 days to 7 days
- modify
- Prevent REX liquid staking
- modify
mvtosavingsandmvfrsavingsto be a requirement forbuyrex - matured REX loans should automatically trigger
sellrexaction
- modify
4. π§ Increase maximum transaction time
Deployment of Leap 5.0.0 (stable release)
- Assuming default of 30 ms for
max-transaction-time, that effectively raises the CPU time available by 5x to 150 ms. - Leap 5.0.0 brings the selective EOS VM OC feature which may increase some computations in EOS EVM by a similar multiplier.
- That is already getting us a significant gain in computation capacity per EOS transaction which should translate to higher overall gas limits per EVM transaction (assuming 1 EVM transaction per EOS transaction).
- There is no need at the moment to further raise
max_transaction_cpu_usagefor the purposes of EOS EVM.
5. π§π PowerUp technical improvements
Introduce an enhanced Powerup utility function designed to facilitate user interaction with the native Powerup action in a seamless manner.
- Make a payment using a set amount of EOS (ex: "I want to pay 1 EOS")
- Lease a specific duration of CPU time (ex: "I want 10ms of CPU")
- Make
powerupmsto do 1ms of CPU - Make
powerupcostto pay 1 EOS for CPU - Make
powerupkbto buy 1kb of NET
- Powerup CPU/NET ratios remain unchanged
6. π§π Cap EOS supply at 2B tokens
- Turn off inflation
- Mint ~818M EOS
- Cap EOS supply at 2B tokens
- Release newly minted tokens over period of time with aggressive release in the beginning tapering over time.
Dilute those not participating (~85% of EOS holders) rewarding those who are participating.
- Set
setinflationtoannual_rate=0 - Modify
eosio.token::max_supplyto2,000,000,000.0000 EOS - Call
eosio.token::issueto mint ~818M EOS - Implement vesting contracts for newly minted tokens
- Implement long term tiered staking system
- Implement new block producer reward mechanism (after BLS is activated)
- β deployed
- βοΈ ready to deploy
- π§ requires development & testing
- π requires additional research
