The excellent technical performance of the SARB’s Ethereum project

The South African Reserve Bank recently concluded a successful pilot with seven commercial banks to test an Ethereum-based interbank payments platform.

Called Project Khokha, the SARB dubbed the pilot a tremendous success.

The project offered banks an opportunity to understand distributed ledger technology. Its technical team also proved that functions of a complex settlement system could be replicated on a blockchain.

Currently, the SARB runs a system called the South African Multiple Option Settlement system to perform real-time gross settlements between local banks.

Project Khokha replicated the fund transfer functions of the system using Quorum, an Ethereum platform developed by ConsenSys.

South Africa’s pilot used Istanbul Byzantine Fault Tolerance, Pedersen commitments, and range proof techniques – and provided a mechanism for banks to come to consensus on the validity of transactions.

Several iterations of testing were conducted, with the SARB reporting the performance results of iteration three and four of the tests.

The results show that the typical daily volume of the South African payments system could be processed in less than two hours with full confidentiality of transactions and settlement finality.

This was done using messages which comply with ISO 20022, that were propagated within two seconds across a network of geographically-distributed nodes.

The results of the tests are below. Please note that the number of nodes shown in the tables is for participant banks, and excludes the ConsenSys and the SARB nodes.

Performance tests – Iteration 3

For iteration 3, the transactions are confidential and the SARB’s node approves all the transactions after it checks them.

Test results Test 1 Test 2 Test 3
Date 3 April 2018 6 April 2018 12 April 2018
Nodes (banks) 4 5 7
Transactions 70,000 90,000 90,000
Duration 1h 14m 21s 1h 15m 51s 1h 16m 00s
Processing speed 15.69 tx/s 19.78 tx/s 19.74 tx/s
Node 4 CPU cores, 16GB RAM

Performance tests – Iteration 4

Iteration 4 performed fully-distributed, confidential transactions.

The SARB had no operational involvement in approving the transactions, although it still had sight of all them.

This means the SARB’s node could be down, and the banks would still be able to pay each other.

Each transaction needed to generate range proofs to show the amount being transferred was positive and that the balance of the sending bank was still positive after the transaction.

These proofs have to be verified by all the nodes on the network, which introduces more computation per transaction.

As a result, the server specifications for bank nodes had to be increased. For the sake of comparison, a test was run using the original lower-specification machines before the servers were improved for the benchmark tests in iteration 4.

After the first benchmark test, the team optimised the code and blockchain configuration for the final test run.

Test results Test 1 Test 2 Test 3
Test Comparative benchmark test First benchmark test Second benchmark test
Date 20 April 2018 20 April 2018  20 April 2018
Nodes (banks) 6 6 6
Transactions 10,000 70,000 70,000
Duration 38m 23s 1h 54m 46s 1h 30m 41s
Processing speed 4.34 tx/s 10.71 tx/s 12 tx/s
Node 4 CPU cores, 16GB RAM 16 CPU cores, 64GB RAM

Now read: Why the Reserve Bank chose ConsenSys for its Ethereum project

Latest news

Partner Content

Show comments


Share this article
The excellent technical performance of the SARB’s Ethereum project