## 7 Proof of Concept
### Transaction Costs  
Table 4 shows the transaction costs spent after deployment and after executing some methods. In the table, the Executor column pinpoints who has executed the transaction (a user account or a contract address); Operation type shows the type of transaction (a deployment, setter, or getter); Method or attribute shows the attribute name or method being executed; finally, the last two columns show the Transaction cost (User or Contract); User presents the cost when it is executed by a user account address and Contract shows the cost when an attribute or method is executed by another smart contract. The transaction costs of Tables 4-7 were executed using a blockchain based on the Ethereum Network. The equivalent currency used on the Ethereum network is: 1 ether \begin{table}
\begin{tabular}{l l l l l} \hline \hline
**Executor** & \begin{tabular}{l} **Operation’s** \\ **Type** \\ \end{tabular} & \
\begin{tabular}{l} **Method or** \\ **Attribute** \\ \end{tabular} &
\begin{tabular}{l} **Transaction Cost** \\ **User** \\ \end{tabular} \\ \hline \(C_{u}\) & Deploying & Constructor () & 2,801,010 \\ \hline \(G_{1}\) & Setter & registerUser (\(U_{1}\),0) & 1,404,589 \\ \hline \(*U_{1}\) & Getter & getCreator (\(U_{1}\)) & 3206 \\ \hline \(*U_{1}\) & Getter & getDigIdentityAdd (\(U_{1}\)) & 2963 \\ \hline \(*U_{1}\) & Getter & getType (\(U_{1}\)) & 5168 \\ \hline \(*U_{1}\) & Getter & government & 2531 \\ \hline \(*U_{1}\) & Getter & nameToken & 3479 \\ \hline \(*U_{1}\) & Getter & owner & 2508 \\ \hline \(*U_{1}\) & Getter & userExists (\(U_{1}\)) & 2924 \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Transaction costs of smart contract users. (ETH), which equals \(1\times 10^{18}\) Wei. Wei is the smallest denomination of ether (ETH). The transaction costs were generated using the Remix Integrated Development Environment (IDE). The formula of the transaction cost is:  
\[TransactionCost=gasUsed\ \times\ gasPrice\]  
\(gasUsed\) is the amount of computational effort required to process a transaction; in our calculus, the \(gasPrice\) was 1. The \(gasPrice\) is  
\[gasPrice=baseFee\ +\ priorityFee\]  
\(baseFee\) is the minimum network fee, and \(priorityFee\) is an optional extra fee used to prioritize a transaction. In our case, \(baseFee\) was equal to 1, and \(priorityFee\) was 0. Some executor cells in Tables 4-7 are marked by an asterisk, meaning that the cost only applies when called by a contract. Data \(d1\) was used to deploy the smart contract _BirthCertificate_:  
**d1 ={**  
\"name\": \"[PERSON]\",  
\"fLastName\": \"[PERSON]\",  
\"mLastName\": \"[PERSON]\",  
\"gender\":\"true\", // it is male  
\"day\": \"13\",  
\"month\": \"7\",  
\"year\": \"2010\",  
\"state\": \"Chiapas\",  
\"Municipalty\": \"Tuxtla Gutierrez\",  
\"ContractUsers\": \"0x1 AF...101\",  
\"Owner\": \"0x32d...4a83\" \begin{table}
\begin{tabular}{l l l l} \hline  & **Operation’s** & **Method or** & \multicolumn{2}{c}{**Transaction Cost**} \\
**Executor** & **Type** & **Attribute** & **User** & **Contract** \\ \hline \(SC_{u}\) & Deploying & Constructor (\(U_{1}\),\(SC_{u}\),\(G_{1}\)) & 1,203,000 \\ \hline \(\ast U_{1}\) & Getter & government & 2531 \\ \hline \(\ast U_{1}\) & Getter & nameToken & 3479 \\ \hline \(\ast U_{1}\) & Getter & numberOfLinkedTokens & 2484 \\ \hline \(\ast U_{1}\) & Getter & owner & 2527 \\ \hline \(U_{1}\) & Setter & linkToken (\(SC_{sc1}\)) & 148,575 \\ \hline \(\ast U_{1}\) & Getter & creatorIsGovernment (\(SC_{sc1}\)) & 8402 \\ \hline \(\ast U_{1}\) & Getter & getCreatorOfToken (\(SC_{sc1}\)) & 8423 \\ \hline \(\ast U_{1}\) & Getter & getNameToken (\(SC_{sc1}\)) & 8672 \\ \hline \end{tabular}
\end{table} 
Table 5: Transaction costs of smart contract digital identity. Data _a1_ was used to add a student's achievement, as illustrated in Table 7:  
a1 ={  \"id\": \"0001\",  \"title\": \"BSc Certificate in Computer Science\",  \"date\": \"May 15 2025\",  \"details\":\"Student graduated with honors\"  } ```