# Multi-Mobile Agent Trust Framework for Mitigating Internal Attacks and Augmenting RPL Security
## 3 Proposed Framework
### MA Distributor Module  
Trust Scrutineer Module  
Subjective logic (SL) [49] is a subset of logic that enables the manipulation of subjective beliefs or opinions. The degree of uncertainty of an opinion indicates the probability of it being true. SL specifies a collection of procedures that can be performed on opinions. It is an extension of the conventional belief function model. Additionally, this logic is distinct from fuzzy logic, which accurately uses imprecise propositions. Because SL is based on regression analysis, it is well suited for fog computing. Conventionally, SL-based trust is built on individual trust (i.e., the trust value of each node is calculated independently based on its behavior). Each node is responsible for computing the trust value of its neighboring nodes. Every node keeps an eye on the behavior of its neighboring nodesand shares trust-related data (i.e., trust parameters). If the calculated trust value for a node is less or greater than some threshold (depending upon the application design), it is identified as an attacker and isolated from the network. However, among other drawbacks, each node has to compute, analyze, and store all the trust values, which consumes quite a considerable amount of resources, including memory, computation, storage, and energy [50]. Therefore, in MMTM-RPL, trust is computed and analyzed by the control layer to minimize resource utilization. It uses the same SL features as a preventative method. However, not all evidence of trust may be accessible, making a judgment ambiguous. SL is founded on belief theory. At a given time, it trusts just one of the potential system states. The belief model indicates whether node \(N_{i}\) is genuine. It establishes the trust value for each node depending on how the node is perceived. This perspective comprises values for disbelief \(d_{s}\), belief \(b_{l}\), and unknown \(u_{n}\):  
\[b_{l}+d_{s}+u_{n}=1 \tag{9}\]  
Here, \(b_{l}\) indicates that the object is in the trusted state, \(d_{s}\) indicates that the object is not trustworthy, and \(u_{n}\) indicates that trust in this node is unspecified or unsure. A prior trust indication for each node that lacks explicit proof is stored using Equation (9). Additionally, the value is contingent upon whether a node is pre-trusted and recognized during the early phases of the system. Prior trust is critical for a node that has just entered the network [51]. It is dependent upon this criterion:  
\[\alpha= \begin{cases}1,&\text{if the node is trusted}\\ 0.5,&\text{if the node is distrusted}\end{cases}  \tag{10}\]  
where the base rate \(\alpha\) represents the uncertainty in the level of belief or disbelief. The level of trust in a node \(N_{i}\) is expressed as follows:  
\[w_{i}=(b_{l}^{i},d_{s}^{i},u_{n}^{i}) \tag{11}\]  
For positive (i.e., fair) and negative (i.e., a breach) experiences, the trust values can be evaluated as follows:  
\[b_{l} =\frac{p_{s}}{p_{s}+n_{g}+1} \tag{12}\] \[d_{s} =\frac{n}{p_{s}+n_{g}+1} \tag{13}\]  
where \(p_{s}\) is the number of positive or good experiences and \(n_{g}\) is the number of negative or bad experiences. SL aims to establish the trustworthiness of a node before any data are shared with it. Factors \(b_{l}\), \(d_{s}\), and \(u_{n}\) all impact whether or not our self-experience is accurate. It is a recommendation or suggestion, and the weight of the overall recommendation must be computed to confirm whether the advice is correct. It is determined using either the discounting or consensus method. In the discounting method, a discounting operator \(\oplus\) is used. If node \(X\) wishes to calculate the trust of node \(Y\), then it may use suggestions from the other network nodes. Consider that \(X\) has an opinion about \(Y\) and that \(Z\) needs this opinion. The overall trust for \(Y\) is a combination of the trust that \(X\) has in \(Y\) and the trust that \(Z\) has in \(X\).