As I understand, the Algorand Foundation plans to update the AVM in Q1 of 2022. This update is going to allow inner transactions to perform application calls.
Question:
How are the devs planning to deal with circular transactions? Given the nature of ApplicationCalls being more computationally intensive than regular PaymentTxns, there could be a scenario where Smart Contract A sends an ApplicationCall to Smart Contract B, which triggers a transaction to Smart Contract A… kind of like an infinite loop of transactions. Of course, they would need to pay for the fees, but could a scenario emerge where the network can get clogged by these types of transactions down the line? Right now we are at around 22 tps, but as the tps increase close to the current capacity of 1,000, could the network slow down at some point or maybe fees increase to deal with this?
The developing strategy for the AVM is: starting with very strict limitations and then removing or “relaxing” those limits step-by-step while being careful to preserve the equilibrium that ensures Pure PoS throughput and scalability. This is why the AVM has grow incrementally from purely stateless to stateful to even more powerful applications.
This being said, the Contract-2-Contract calls will still have some safe-limitations in place to prevent those kind of thing to happens, like:
Limitation on op-code costs;
Not allowing self calls (or any re-entrant calls);
Restrict the “callable” Apps to those one specified in Foreign Apps array;