A method comprising: storing, by a computing device (106, 206), a set of entries representing a state of a platform smart contract in a blockchain network, the set of entries including at least: a first entry comprising a first public key associated with a first account, and a first ciphertext representing a first balance of the first account; a second entry comprising a second public key associated with a second account, and a second ciphertext representing a second balance of the second account; and a third entry comprising a third public key associated with a third account, and a third ciphertext representing a third balance of the third account; locking, by the platform smart contract executing on the computing device, at least the first, second, and third accounts to an application smart contract; executing, by the computing device, the application smart contract to perform one or more transactions causing the first balance to be decremented by a first amount and the second balance to be incremented by a second amount; unlocking, by the application smart contract executing on the computing device, at least the first, second, and third accounts from the application smart contract; updating, by the computing device, the first ciphertext by adding a first operand ciphertext to the first ciphertext, the first operand ciphertext being generated by encrypting a negative of the first amount using the first public key; updating, by the computing device, the second ciphertext by adding a second operand ciphertext to the second ciphertext, the second operand ciphertext being generated by encrypting the second amount using the second public key; and updating the third ciphertext by adding a third operand ciphertext to the third ciphertext, the third operand ciphertext being generated by encrypting zero using the third public key. storing, by a computing device (106, 206), a set of entries representing a state of a platform smart contract in a blockchain network, the set of entries including at least: a first entry comprising a first public key associated with a first account, and a first ciphertext representing a first balance of the first account; a second entry comprising a second public key associated with a second account, and a second ciphertext representing a second balance of the second account; and a third entry comprising a third public key associated with a third account, and a third ciphertext representing a third balance of the third account; a first entry comprising a first public key associated with a first account, and a first ciphertext representing a first balance of the first account; a second entry comprising a second public key associated with a second account, and a second ciphertext representing a second balance of the second account; and a third entry comprising a third public key associated with a third account, and a third ciphertext representing a third balance of the third account; locking, by the platform smart contract executing on the computing device, at least the first, second, and third accounts to an application smart contract; executing, by the computing device, the application smart contract to perform one or more transactions causing the first balance to be decremented by a first amount and the second balance to be incremented by a second amount; unlocking, by the application smart contract executing on the computing device, at least the first, second, and third accounts from the application smart contract; updating, by the computing device, the first ciphertext by adding a first operand ciphertext to the first ciphertext, the first operand ciphertext being generated by encrypting a negative of the first amount using the first public key; updating, by the computing device, the second ciphertext by adding a second operand ciphertext to the second ciphertext, the second operand ciphertext being generated by encrypting the second amount using the second public key; and updating the third ciphertext by adding a third operand ciphertext to the third ciphertext, the third operand ciphertext being generated by encrypting zero using the third public key.