## 4 Experiments and Results Discussion
### Security Analysis  
Identity or code theft. Some people attempt to use others' community account links to pass OSCMS authentication. Unless they hack a community account and modify the profile, identity theft cannot pass oracle verification. The submission of OI with others' code warehouse links will also fail because OSCMS verifies whether the community account to which a link belongs is bound to the submitter. Some people may copy others' codes to their code warehouse and submit them to the OSCMS for reputation or reward. These behaviors cannot be avoided at present, but the reputation will be offset by the objective ratings of others, and strict timestamps will prove who submitted the code to the warehouse first.  
Figure 19: Average CPU utilization and P2P network traffic under different consensus algorithms.  
Figure 18: Average number of temporarily forked blocks in an epoch.  
Destroy the meaning of reputation. If reputation in the OSCMS is vulnerable to overgrowth or defamation, it will lose the meaning of incentive and reference. Some possible destruction means have been analyzed in Section 3.1.2. In addition, whitewashing means registering a new OSCMS account to re-enter after having a bad rating that cannot be tampered with. As the initial reputation is zero, the user would not gain much from re-entering. However, a bad rating is worse than no rating, so there could be an incentive for doing so. Community account links that have been bound can no longer be used for authentication, even if they are replaced. Users can still reuse them by changing domain names, but it costs money. These restrictions urge users with a certain reputation not to submit bad OI, which cannot be whitewashed.  
Bad behaviors of delegates within the rules. Delegates may exploit loopholes in the rules described in Section 3.5 for bad behavior. The first behavior is to intentionally ignore someone's transactions when producing blocks, such as reward solutions, but they will be processed by other honest delegates in a round and final results will not be affected. The second is to intentionally conduct different production frequencies in different blockchains, which will block the faster blockchain during epoch switching and affect system availability. Such behavior brings no benefits and greatly reduces this delegate's block rewards. Delegates who are too slow in a blockchain may be voted out by others. The third is double production, which refers to a delegate producing blocks in every temporarily forked chain. Honest delegates will eventually gather on the longest chain. Double production ensures that this delegate's block will be added to it, but this harms the system's ability to quickly recover stability. Honest delegates should monitor perpetrators according to cryptographic evidence and vote them out.  
Double spending and 51% attack. Double spend occurs when an attacker benefits from a normal transaction that has been processed by the blockchain, creates a conflicting transaction and pushes it into a new forked fraudulent chain in an attempt to revert the previous transaction [57]. In DPoS, as delegates can only produce blocks within their own time windows, a minority of dishonest delegates cannot create a longer forked chain to replace the previous one. However, an attacker who has more than 50% of the power in the blockchain can control blockchain forks and which transactions are processed. In an OSCMS, this power comes from tokens for voting and accounts that can vote. There is a limit to the number of voting tokens for each account, and account authentication also has costs, so it is hard to achieve a 51% attack.  
Sybil attack. In this attack, an attacker attempts to create/control as many fraudulent identities as required to exert influence on a P2P network [56]. In an OSCMS, the identity is bound to OS community accounts, which always require some type of trust, such as email/SMS. Meanwhile, a fraudulent identity without enough tokens cannot influence consensus and non-developers cannot be candidates.