Skip to content

NEO Virtual Machine Dynamic Gas Fee Charging Proposal #3510

@Jim8y

Description

@Jim8y

Summary or problem description
Propose a dynamic charging mechanism for Neo virtual machine when executing transactions, specifically for operations on types such as Buffer, Array, Struct, and Map. The charges should be based on the size (quantity) of data elements within these types, rather than a fixed fee.

Do you have any solution you want to propose?
Implement a dynamic charging mechanism as follows:

  • For operations on data types such as Buffer, Array, Struct, and Map, calculate fees based on the number of elements or the size of data they contain.
  • Set a base fee, then increase the fee linearly or in tiers according to the data volume.
  • Different charging standards may need to be established for different types to reflect the computational resources required to process these types.

Expected outcomes:

  • Users will pay lower fees for operations with small data volumes, improving the economic efficiency of small-scale transactions. (it should be expected that all normal users will pay lower, but attackers will pay his lifesavings.)
  • Fees will increase correspondingly for operations with large data volumes, effectively preventing resource abuse and potential DoS attacks.
  • Enhance network security and stability by increasing the cost of attacks.

Where in the software does this update applies to?

  • Consensus
  • Ledger
  • VM

Metadata

Metadata

Assignees

No one assigned

    Labels

    DiscussionInitial issue state - proposed but not yet accepted

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions