# Supervised Blockchain Anonymous Transaction Model Based on Certificateless Signcryption
## 4 System and Security Models
### System Model  
CLSC_SAT model mainly includes four participating entities: Key Generation Center (KGC), transaction user, miner, and regulators. The functions of each participating entity are as follows. Key Generation Center (KGC): As a semi-trusted third party, it initializes the system with the regulatory authority, generates system public parameters and public and private key pairs, generates part of public/private key pairs for transaction users. Transaction user: The main participants of the blockchain transaction system, including the transaction sender and the recipient, each user has an anonymous identity as an anonymous identity address, and a pair of transaction key pairs. Miner: The entity is responsible for verifying the legality of transactions, packaging legal transactions into blocks and adding them to the blockchain, and maintaining the blockchain ledger. Regulators: a semitrusted group with the functions of supervision and accountability. When abnormal transactions are found, it decrypts the ciphertext of the transaction, tracks the real identity of malicious users, and uploads the smart contract blacklist to prohibit them from initiating transactions again. The CLSC_SAT model consists of nine probabilistic polynomial-time algorithms:  
1. \(Setup(1^{k})\rightarrow(PP)\) : The algorithm is invoked by the KGC and the main regulator MR. It takes a security parameter k as input and outputs the system master key s, the tracking key \(r\), and the system public parameters PP. The KGC and MR secretly store s and \(r\), respectively, and publicly share PP. In subsequent algorithms, PP is implicitly input. 2. \(CreateAddr(EID_{i,1},\alpha_{i})\to addr_{i}\): The algorithm is invoked by users and regulatory agencies, inputting PP, the user's partially anonymous address \(EID_{i,1}\), and the user identity index \(\alpha_{i}\), and outputting the user's anonymous identity address \(addr_{i}\). 3. \(CreateRey(PP)\rightarrow(PK_{R},SK_{R})\): The algorithm is invoked by the regulatory authority, inputting PP and outputting the regulatory key pair \((PK_{R},SK_{R})\) and the public key \(PK_{R}\). 4. \(SetPartialKey(EID_{i})\rightarrow(PK_{G},SK_{G})\): The algorithm is invoked by the KGC. It inputs the user's anonymous identity address \(EID_{i}\) and outputs the user's partial public-private key pair \((PK_{G},SK_{G})\). 5. \(SetKey(EID_{i},(PK_{G},SK_{G}))\rightarrow(PK_{i},SK_{i})\): The algorithm is invoked by the transacting user. It inputs the user's anonymous identity address \(EID_{i}\) and the partial public-private key pair \((PK_{G},SK_{G})\), and outputs the user's anonymous address key pair \((PK_{i},SK_{i})\). 6. \(CreateTx(addr_{i_{1}},PK_{i_{1}},SK_{i_{1}},v_{0},addr_{i_{2}},PK_{i_{2}},PK_{R })\rightarrow tx_{send}\): The algorithm is invoked by the transaction sender. The inputs are PP, the anonymous account address of the transaction sender \(addr_{i_{1}}\), the anonymous address key pair \((PK_{i_{1}},SK_{i_{1}})\), the transaction amount \(v_{0}\), the anonymous account address of the transaction receiver \(addr_{i_{2}}\), the public key of the transaction receiver \(PK_{i_{2}}\), the supervised public key \(PK_{R}\), and then output transaction information \(tx_{send}\). 7. \(VerifyTx(tx_{send})\to b\): The algorithm is invoked by blockchain miner nodes. When input transaction \(tx_{send}\) is received, the miner node verifies the legitimacy of the transaction. If the verification is successful, it outputs \(b=1\), and the miner node records the transaction on the blockchain using a consensus algorithm and broadcasts it; otherwise, it outputs \(b=0\) and sends the transaction to the regulatory authority for auditing. 8. \(RenewalTx(addr_{i_{2}},PK_{i_{2}},SK_{i_{2}},tx_{send},PK_{R})\to tx_{ rec}\): The algorithm is invoked by the transaction recipient.