Network change: Instituting fees on the Agoric chain to mitigate spam transactions

Over the weekend, several members of the Agoric community noted an increase in transaction times on the Agoric chain via Discord. Within a few hours of the initial observation, core developers began looking into the situation to identify the root cause, and noted that while block times did not increase, the time it took for a node to process a transaction did increase due to a backlog of transactions on the main RPC node. On Monday morning, the wider team began working on solutions to mitigate the impact of spam to the network and began reaching out to network operators to give them a heads’ up about impending changes to the network.

The Issue

Increased transaction times appeared to be the result of a high volume of automated transactions on the network. These transactions appear to be the work of attackers behind a social engineering campaign to compromise wallets, and these attackers are in a race with wallet owners to clear out tokens as they unlock.

Mitigation: Implementing Network Fees

For security and network resilience, it is important to raise the cost of a successful attack for an attacker. In the case of spam prevention, implementing fees on the Agoric network literally makes it more expensive to cause a traffic jam on the network. To balance the needs of token holders and achieve this goal, core devs have moved to implement a small anti-spam fee that is not intended to be a source of earnings for network operators, and could be diverted into a non-reward pool in the future.

In order to begin charging fees on the network, there are several actions required by different parties:

  • The default fee in Keplr must be changed from 0 to implement charging on the Agoric network. As of today’s update to the Keplr extension, a low fee of 3600 ubld or 0.001 IST will be charged for transacting on the Agoric network.
  • Validators should implement a minimum-gas-prices for gas to reflect these default Keplr changes. The Agoric OpCo team recommends that validators charge a minimum gas price, and will share the configuration details for gas recommendations in this thread for gas, though the final fee decision depends on validators.
  • All individuals transacting on the network must take network fees into account when making transactions, and should be aware that it is not possible to engage in 0 fee transactions.

Initially, fees on the network may be paid in BLD or IST. As there are more wallets holding BLD (thousands) on the Agoric network than IST (hundreds and growing!), it is important to ensure that this change supports the needs of everyone participating in the network and wider ecosystem. In particular, we do not want to block BLD stakers who may not be following network changes closely, and who may not be as comfortable operating the smart wallet and PSM dapp.

Next Steps

To date, IST is still the fee token for engaging with smart contracts like the PSM on the Agoric network. As IST becomes more established within both the Agoric ecosystem and wider Interchain, it will continue to be available as a secondary option for paying fees via a dropdown in the Keplr wallet.

1 Like

Validator Configuration Details

I successfully tested the following node configuration:

minimum-gas-prices = "0.01ubld,0.005uist"

Testing Details

I tested it with the default (not low) Keplr fee config; the transaction had…

gas_used: "110608"
gas_wanted: "300000"

      - amount: "7200"
        denom: ubld
      gas_limit: "300000"

and then I used the Keplr “advanced” option to choose IST and got:

gas_used: "110569"
gas_wanted: "300000"

      - amount: "2100"
        denom: uist
      gas_limit: "300000"

p.s. big thanks to our friends at Chainapsis for timely response to our Keplr change request, including rolling out a 0.11.17 release to the chrome web store.

I trust the mobile apps will be updated shortly.

We support the implementation of fees on Agoric chain