A blockchain-based transaction method, comprising: calculating a transaction amount commitment based on a commitment random number and a transaction amount; obtaining a first commitment random number ciphertext and a first transaction amount ciphertext by encrypting the commitment random number and the transaction amount separately based on a homomorphic encryption public key of a remitter account using a homomorphic encryption algorithm; obtaining a second commitment random number ciphertext and a second transaction amount ciphertext by encrypting the commitment random number and the transaction amount separately based on a homomorphic encryption public key of a remittee account using the homomorphic encryption algorithm, wherein the second transaction amount ciphertext is obtained by encrypting the transaction amount based on a first encryption random number and the homomorphic encryption public key of the remittee account using the homomorphic encryption algorithm; generating a first zero-knowledge proof, a second zero-knowledge proof, and a third zero-knowledge proof, wherein the first zero-knowledge proof is configured to verify that the commitment random number for calculating the transaction amount commitment is consistent with the commitment random number for calculating the second commitment random number ciphertext, and verify that the transaction amount for calculating the transaction amount commitment is consistent with the transaction amount for calculating the second transaction amount ciphertext, wherein the second zero-knowledge proof is configured to verify that the transaction amount is not less than 0, and wherein the third zero-knowledge proof is configured to verify that the transaction amount is not greater than the remitter balance; and submitting transaction data to the blockchain, the transaction data including the transaction amount commitment, the first commitment random number ciphertext, the first transaction amount ciphertext, the second commitment random number ciphertext, the second transaction amount ciphertext, the first zero-knowledge proof, the second zero-knowledge proof, and the third zero-knowledge proof, wherein the transaction data further includes signature data obtained before submitting the transaction by signing the transaction data using a signature private key of the remitter account, for the transaction amount commitment, the first commitment random number ciphertext, and the first transaction amount ciphertext to be recorded into the remitter account, and the transaction amount commitment, the second commitment random number ciphertext, and the second transaction amount ciphertext to be recorded into the remittee account. calculating a transaction amount commitment based on a commitment random number and a transaction amount; obtaining a first commitment random number ciphertext and a first transaction amount ciphertext by encrypting the commitment random number and the transaction amount separately based on a homomorphic encryption public key of a remitter account using a homomorphic encryption algorithm; obtaining a second commitment random number ciphertext and a second transaction amount ciphertext by encrypting the commitment random number and the transaction amount separately based on a homomorphic encryption public key of a remittee account using the homomorphic encryption algorithm, wherein the second transaction amount ciphertext is obtained by encrypting the transaction amount based on a first encryption random number and the homomorphic encryption public key of the remittee account using the homomorphic encryption algorithm; generating a first zero-knowledge proof, a second zero-knowledge proof, and a third zero-knowledge proof, wherein the first zero-knowledge proof is configured to verify that the commitment random number for calculating the transaction amount commitment is consistent with the commitment random number for calculating the second commitment random number ciphertext, and verify that the transaction amount for calculating the transaction amount commitment is consistent with the transaction amount for calculating the second transaction amount ciphertext, wherein the second zero-knowledge proof is configured to verify that the transaction amount is not less than 0, and wherein the third zero-knowledge proof is configured to verify that the transaction amount is not greater than the remitter balance; and submitting transaction data to the blockchain, the transaction data including the transaction amount commitment, the first commitment random number ciphertext, the first transaction amount ciphertext, the second commitment random number ciphertext, the second transaction amount ciphertext, the first zero-knowledge proof, the second zero-knowledge proof, and the third zero-knowledge proof, wherein the transaction data further includes signature data obtained before submitting the transaction by signing the transaction data using a signature private key of the remitter account, for the transaction amount commitment, the first commitment random number ciphertext, and the first transaction amount ciphertext to be recorded into the remitter account, and the transaction amount commitment, the second commitment random number ciphertext, and the second transaction amount ciphertext to be recorded into the remittee account.