A blockchain-based transaction processing method, wherein a Nonce list corresponding to a user account is maintained in a blockchain, the Nonce list comprises a plurality of Nonce records, the Nonce record comprises a version identifier of the Nonce list and a Nonce value, and the method comprises: obtaining, by a client device, an available Nonce record for a target transaction initiated by a user through the user account from the Nonce list; adding, by the client device, the obtained available Nonce record to the target transaction; and publishing, by the client device, the target transaction in the blockchain; receiving, by a node device in the blockchain, the target transaction; determining, by the node device, whether a version identifier in the available Nonce record matches a version identifier of the Nonce list that corresponds to the user account and is maintained in the blockchain; if the version identifier in the available Nonce record does not match the version identifier of the Nonce list that corresponds to the user account and is maintained in the blockchain, returning, by the node device, prompt information indicating that the target transaction is an invalid transaction to the client device; and if the version identifier in the available Nonce record matches the version identifier of the Nonce list that corresponds to the user account and is maintained in the blockchain, further matching the available Nonce record with a Nonce record in the Nonce list to perform replay attack detection for the target transaction, and processing, by the node device, the target transaction when the replay attack detection for the target transaction succeeds, wherein if the available Nonce record matches the Nonce record in the Nonce list, monotonically increasing, by the node device, a Nonce value in the target Nonce record based on a predetermined amplitude; and returning, by the node device, a notification message indicating that the target transaction is processed to the client device. obtaining, by a client device, an available Nonce record for a target transaction initiated by a user through the user account from the Nonce list; adding, by the client device, the obtained available Nonce record to the target transaction; and publishing, by the client device, the target transaction in the blockchain; receiving, by a node device in the blockchain, the target transaction; determining, by the node device, whether a version identifier in the available Nonce record matches a version identifier of the Nonce list that corresponds to the user account and is maintained in the blockchain; if the version identifier in the available Nonce record does not match the version identifier of the Nonce list that corresponds to the user account and is maintained in the blockchain, returning, by the node device, prompt information indicating that the target transaction is an invalid transaction to the client device; and if the version identifier in the available Nonce record matches the version identifier of the Nonce list that corresponds to the user account and is maintained in the blockchain, further matching the available Nonce record with a Nonce record in the Nonce list to perform replay attack detection for the target transaction, and processing, by the node device, the target transaction when the replay attack detection for the target transaction succeeds, wherein if the available Nonce record matches the Nonce record in the Nonce list, monotonically increasing, by the node device, a Nonce value in the target Nonce record based on a predetermined amplitude; and returning, by the node device, a notification message indicating that the target transaction is processed to the client device.