The Bitconch uses DAG directed acyclic graph. As shown in Figure 1(a), Tx0 is the Genesis transaction, that is, the first transaction of the entire network and the initial users are assigned Bus by a special address. Tx1, Tx2, Tx3, Tx4, Tx5, Tx6... Txn are subsequent transactions. Because each transaction has a time (Time) and an order (Order), the entire transaction history can be represented as a directed acyclic graph.
Fig 1（a）DAG Data Structure
Tx0 is a transaction record for recharging node N1, corresponding to the first user N1 in Figure 1(b). Tx1 is the second transaction N1àN2, that is, N1 transfers some Buses to N2, and users N1 to N2 in the social graph will add an edge, that is, N1 and N2 begin to establish a social relationship. As the number of transactions Tx increases, there will be more and more edges between the nodes in the social graph, and the social network tends to mature.
Fig 1（b）Social Graph
Figures 1(a) and 1(b) show the interaction between the DAG data structure and the social graph. 15 users generated 14 transactions from Tx0, Tx1 to Tx13, and built a social relationship as shown in (b).
Fig 2（a）New Transaction and Verification
As shown in Figure 2(a), new transactions Tx14 and Tx15 are generated. Where Tx14 indicates that N1 transfers n Buses to N4, and Tx15 indicates that N5 transfers n Buses to N1. If m>n, according to formula (3), the transaction amount is positively correlated with E value, for Reputation contribution, the weight of Tx14 is greater than Tx15. As transactions continue to increase, the links between the various nodes in the social graph continue to increase, providing more social data to feed reputation values.
Fig 2（b）New Transaction and Social Graph
Figure 2(a) also demonstrates the ability of the system to handle concurrent transactions. When Tx14 and Tx15 are generated simultaneously, the system can concurrently generate multiple Byzantine fault-tolerant processes to improve the efficiency of transaction verification.