## 5 Simulation Model with Human Behavior
### Simulation Model
#### 5.2.1 Transaction Decision Process  
The transaction action decision-making process is shown in Figure 10. First, the agent finds out whether there are any transactions in the confirmation queue. Then, for each transaction, it determines whether the queue is longer than the criterion for pending transactions \(t_{transactionPending}\). If the transaction is in the queue longer than the criteria, the agent decides to delete the transaction from the queue. Immediately afterwards, the agent performs the transaction action decision-making process again to replace the deleted transaction. If there is no pending transaction that exceeds the criteria, the agent checks the staking strategy that was assigned to it at the beginning of the game. The staking strategy refers to the three strategies defined in the previous section. In the case of the strategy in which the agent wants to significantly increase their stake in the blockchain network, the agent first checks the total amount of funds staked in the network, then calculates its relative stake and compares it to the staking weight \(w_{stake}\). If its current relative stake is lower than \(w_{stake}\), the agent decides on a staking action; otherwise, it decides on a trading action. In the case of a staking strategy where the agent does not want to change its stake in the network (stake strategy 2), the agent always decides to carry out a trading action. Finally, an agent that has a staking strategy to unstake funds from the network first calculates the minimum amount of funds it needs to be able to purchase the service; this means that the current maximum transaction fee is added to the lowest price of the currently offered service. If its balance is lower than the minimum amount multiplied by the unstaking weight \(w_{unstake}\), it decides on the unstaking action. Otherwise, it compares the relative stake with the staking weight \(w_{stake}\) and makes the same decision as in the case of staking strategy 1. All transaction actions are performed in two phases. First, the agent determines the values of the parameters for this type of transaction and determines the transaction fee value. The exception is a transaction delete action, where the agent only selects the transaction it wants to delete. The selection of a transaction for deletion is the same as in the transaction action decision-making process, where the agent checks which transaction(s) have been pending longer in the queue than the pending transactions criterion \(t_{transactionPending}\) and selects the first transaction that meets this condition. In the case of a trade action, the agent first selects the service offer. It determines the type of service it wishes to purchase by selecting a type of service it has bought less often in the past. If it has bought the same amount of services of each type, it selects service offers from both types of services. If there is currently no offer for the selected type of service, it checks the offer for the other type. For the selected type of service (or for both), it collects all the service offers on the market and arranges them according to the price of the service, from highest to lowest. If there are offers that are candidates for selection, the agent selects the service according to the price; the lower the price, the greater the chance of its being selected. Due to this strategy, the agents buy services that are on average cheaper than the average market price, as shown in the strategy analysis in the case of \(k_{b}\); however, there is a possibility that an agent may buy a more expensive service. In the strategy analysis, the \(k_{b}\) distribution shows that players in the experiment sometimes bought services at a higher price than was the current average price of the service. In a staking action, the agent must determine the amount of funds it wants to stake in the blockchain network. The agent selects a value between \(stake_{min}\) and \(stake_{max}\), which is the coefficient by which the agent's current balance is multiplied.