Blockchain-based Accounting

On a lookout for more insights on blockchain-based accounting? Well, you have come to the right place. In this article, Hamman Schoonwinkel, a Chartered Accountant (SA), lecturer at the University of Stellenbosch, and student of our Global Master’s in Blockchain Technologies, shares with us an overview of his final project that will be dedicated to the topic.  

History of Accounting

Accounting started out as a method to record the resources owned by you. In the below example, Alice and Bob will both use single-entry accounting to record money held. Alice began with $50, and Bob with $80. Then they transact, during which Bob gives Alice $20. They both record this transaction in their separate records, and now their accounting records will reflect new balances of $70 and $60 respectively.

There is however one major drawback of this single-entry method of accounting: We have no idea what Bob paid Alice for. Did Alice sell a product to him? Or did she deliver a service? Did Bob loan money to Alice, which she must pay back later?

This limitation was later resolved by the introduction of double-entry accounting by Lucas Pacioli, who is considered the father of accounting. Under this system, documented already in 1494, each journal requires two entries: a debit and a credit. This was revolutionary, as, for the first time, the rationale for each journal entry had to be provided.

blockchain-based accounting

In this example, Alice sells a product to Bob. By observing the debits and the credits, we can see that this was sold via credit to Bob at $20, and this inventory cost Alice $12 dollars originally, resulting in a profit of $8. For the first time, Accounting was telling a complete story. Also, when the “books balance”, there is confidence in the transactions recorded, as each entry (for example the debit) is backed by its counterparty (the credit). This created internal consistency within a set of financial statements.

There is however one key element missing: external consistency across separate sets of financial statements. The double entry system does not create any link between the two separate books of the parties that entered into the same transaction. It would not pick up if Bob recorded the transaction at a different amount, or maybe even not record it at all!

Blockchain technology could enable us to create the required external consistency across a separate set of financial transactions, by creating an accounting consensus that verifies that both parties agree to the details of the transaction.

Using Blockchain to reach accounting consensus

In the traditional system, Alice will issue two source documents: an invoice, which stipulates the amount owed by Bob for the product sold, and a delivery note, which Bob will sign as proof that he received the product. Alice will use the signed delivery note as a source document to record the transaction in her accounting records. Bob will use the invoice as a source document to record the transaction in his accounting records.

External auditors will then audit transactions by drawing a sample of journal entries and trace them back to the source document, to test that the transaction did in fact occur and was recorded accurately. The auditor will also draw a sample of source documents, and trace it to the accounting records, to test that it was recorded completely.

In blockchain-based accounting, things would work a bit differently. Alice would present her suggested accounting treatment for the transaction. Bob will sign this with his private key, thereby approving her suggestion. Bob will also present his suggested accounting treatment for the transaction. Alice will sign this with her private key, thereby approving his suggestion. This will create accounting consensus, which replaces source documents as proof of occurrence and details of the transaction. The nodes in the network will validate this consensus and add the transaction to the blockchain.

Smart Contracts

When recording a transaction in a manual traditional system, accountants of both parties will record the transaction in their own separate records, using the source documents as a reference. The creation of the source document and the journal entry in the accounting records are thus two separate events. There is a risk that not all events that occurred are recorded, or that journal entries are recorded for events that did not actually take place or are recorded at details that differ from the source document.

We need a new system that automatically records a transaction as it happens, that ensures that the actual details of the event agree to the disclosure thereof in the accounting records. Smart Contracts should automatically enforce an accounting entry once an event is triggered. The event could be the accounting consensus manually created, as seen earlier, or it could be an external event that is picked up by an oracle. Accounting entries would no longer be posted manually based on source documents, but rather becomes the source document itself.


The respective parties would still maintain their own accounting software packages. The blockchain would not replace it, but rather serve as an additional tool to link them. A wallet would be created for each general journal account as found in the accounting system. Dai & Vasarhelyi suggest in their 2017 paper titled ‘Toward Blockchain-Based Accounting and Assurance’ that tokens are transferred between these wallets to represent debit and credit entries.

In our example, an accounting token would be transferred between the inventory wallet of Alice to her debtor wallet. Note that this token has no economic value – it is used for recording purposes only. An accounting token would also be transferred from Bob’s creditor wallet to his inventory wallet. Lastly, each party would also create an ‘overall’ wallet, which would record rights and obligations between the parties. Alice would send a ‘right’ token to Bob and Bob would send an ‘obligation’ token to Alice, thereby creating a link between their accounting records.

User interface

The blockchain would be accessed via the standard accounting software. Additional to being able to add accounts the standard way, one would also be able to add smart contracts.

Of the two types of smart contracts, one would be able to add. This would be the one that automates adjusting entries or pulls information from off-chain oracles. The first type of adjusting entry that smart contract one would be able to create is the cost of sales. This smart contract would calculate the cost price of inventory sold. The smart contract would automatically account for it using the method chosen by the user, such as first-in-first-out, or weighted average.

Smart Contracts could also assist in automatically calculating the tax payable by entities. Tax authorities could consider using “tax tokens” that automatically pay the tax once certain conditions are met. They could even consider enforcing the payment of tax on a transactional basis, rather than annually, as the technology would enable this. The last type of smart contract automatically calculates value adjustments, such as depreciation or other fair value adjustments.

The next type of smart contract pulls information from oracles. It could read data from bank statements. A smart contract could be set up that requires both parties (the sender and recipient) to achieve accounting consensus (and automatic posting to accounting records) as soon as a flow of money in the bank account is picked up by the oracle.

Other technologies could also be utilized to enhance the automation of the accounting process. Internet of Things (IoT) could be embedded in physical stock with IoT devices and record the movement of inventory automatically as it travels. Big Data could assist in accurately accounting for the allowance for credit losses, by being able to assess credit risks more effectively with data available on the blockchain. Artificial Intelligence (AI) could assist in determining the fair value of assets or liabilities of which the value is determined by an estimation of the probability of future uncertain events.

Transactions that are not automated by smart contracts, can be posted manually. An option would be given to request accounting consensus from the other party via the blockchain, rather than posting the traditional way based on a source document.


There are limitations and challenges to blockchain-based accounting.

Privacy: The public viewing of all transactions would give away sensitive information to competitors. Private blockchains could be used to keep the information confidential, but, as Coyne and McMickle point out in their 2017 paper titled ‘Can Blockchains Serve an Accounting Purpose’, this would require that all customers and suppliers adopt the same blockchain technology. Public blockchains have higher integrity, as everyone observes and validates every transaction. Zero-knowledge proofs can be incorporated on a public blockchain to keep information private.

Cost: Wallets would be acting as general ledger accounts. The transfer of tokens would represent accounting entries. Therefore, a transaction with a higher value would require the transfer of more tokens, thereby making the recording thereof more expensive. The design of the protocol should favor cheap transfer costs, to make blockchain-based accounting feasible.

Network requirement: Blockchain-based accounting would only work if customers and suppliers also utilize it. This could create a loop of lack of adoption, as a company would be deterred to adopt it if their customers and suppliers are not utilizing it.

Audit of smart contracts: Smart contract code is unforgiving. As it cannot be easily modified, a mistake in the code could have catastrophic effects. Oracles that the contract is connected to should also be trusted. An audit of the smart contracts that are being made available in libraries is therefore pivotal.


It should be noted that blockchain-based accounting is at this stage only a vision. Actual implementation thereof might take a while. But the potential benefit is clear: by bringing accounting consensus to the system, by utilizing blockchain technology, the reliability in financial statements is less dependent on trust, and more on cryptography, making financial statements more reliable and therefore more useful for decision-making.

Tap into the potential of blockchain to make a difference in your industry!


Hamman Schoonwinkel
Alumnus of the Global Master’s in Blockchain Technologies
Chartered Accountant (SA) and lecturer at the University of Stellenbosch

micro operations managementdivide and conquer for cybersecurity