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::setramrate
tobytes_per_block=0
1.1 π§ Deflationary RAM rate
Allow for signed integer for bytes_per_block
RAM rate (allows deflationary virtual RAM supply)
eosnetworkfoundation/eos-system-contracts#101
- Set
setramrate::bytes_per_block
toint16_t
(signed integer) - Set
global2::new_ram_per_block
toint16_t
(signed integer)
max_ram_size
cannot 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.
eosnetworkfoundation/eos-system-contracts#102
from {name}
to {name}
bytes {int64}
- Charges 0% fee to transfer
- Only uncommited RAM can be transferred
- Notify
receiver
byrequire_recipient
from
must have sufficientram_bytes
prior to transferfrom
decreaseram_bytes
bybytes
to
must existsto
account can be a contractto
account can have zero available RAM bytesto
increaseram_bytes
bybytes
- handle
ram_managed
accounts
- 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
.
eosnetworkfoundation/eos-system-contracts#103
- Add
require_recipient(receiver)
onbuyram
&buyrambytes
actions
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::exec
no longer issue deferred transactions. - This is a change for the
system_contract::bidname
action, and failed bids will need an explict refund. For thesystem_contract::buyram
action the default behavior remains unchanged. - The
wrap::exec
action 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::claimrewards
to supportrex::channel_to_rex
- define new
rexparams
table withinflation_rex_factor=50000
(50% of unallocated inflation)num_of_maturity_buckets=5
(4 days)
- define new
setrexparams
action to modifyinflation_rex_factor
&num_of_maturity_buckets
- modify
- Increase +2% of unallocated inflation going to REX
- call
eosio::setinflation
action with the following parameters:annual_rate=500
(previously 300)inflation_pay_factor=50000
(previously 30000)
- call
- Remove
check_voting_requirement
checks 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=8
to change staking period from 4 days to 7 days
- modify
- Prevent REX liquid staking
- modify
mvtosavings
andmvfrsavings
to be a requirement forbuyrex
- matured REX loans should automatically trigger
sellrex
action
- 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_usage
for 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
powerupms
to do 1ms of CPU - Make
powerupcost
to pay 1 EOS for CPU - Make
powerupkb
to 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
setinflation
toannual_rate=0
- Modify
eosio.token::max_supply
to2,000,000,000.0000 EOS
- Call
eosio.token::issue
to 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