Using Blockchain Tech To Streamline The Cheque Clearance System

Ravinder Deol
Solidity Weekly
Published in
6 min readMay 19, 2020

👉 Interviews Are Now Only Available Via Our Newsletter.

Name: Shiv Sondhi

Role: Blockchain Developer Intern @ Scotiabank

Location: Ontario, Canada

Shiv is a Master’s student in a research-based Computer Science program in Canada. He’s currently working on his masters’ thesis, which is related to testing blockchain-based applications. Long-term, he’s intrigued by the merging of machine-learning and blockchain technologies.

1. When Was Your First Encounter With Blockchain Technology?

My first encounter with blockchain was back in 2016 at an internship with Ernst & Young in Mumbai, India. Looking back, the blockchain landscape was different then. Cryptocurrencies were only going mainstream and altcoins (coins other than bitcoin) had recently started gaining a lot of traction. In 2020, it feels like there is a new cryptocurrency created almost every few months. To put this all into perspective, I have listed out a few of the stand-out facts and events around 2016–2017 and how they have aged over the past four years.

  • Hyperledger — one of the leading blockchain institutions today — had just been created in late 2015.
  • R3’s Corda, another major player today, was also still in its infancy. There was a lot of speculation about what purpose Corda was going to serve — would it be a new coin, a new blockchain platform or something completely different? Spoiler — Corda is a consortium of banking, financial, and tech institutions that serves the purpose of connecting financial organizations using distributed ledgers.
  • There was only one Bitcoin. In 2017, after a hard fork, Bitcoin split into Bitcoin Cash and Bitcoin (sometimes referred to as Bitcoin Core).
  • The DAO, a Decentralized Autonomous Organization built on the Ethereum blockchain, had been receiving a lot of attention in 2016. A month after it went live it was hacked, resulting in a loss of around 50 million USD and the first major (and arguably most divisive) Ethereum fork, creating Ethereum and Ethereum Classic.

Much has changed over the years, but at the same time, not much has changed. The periodic attacks on cryptocurrencies and blockchain applications are still around. Still, we have taken some critical steps forward concerning identifying concerns and working towards certain benchmarks in the domain.

2. Which Industry Are You Implementing The Blockchain?

Currently, I am working as a research assistant on a project for Scotiabank. We are trying to use blockchain technology to find a way to streamline the cheque clearance system. So basically, I’m involved with blockchain in the finance.

Concerning my project specifically, the cheque clearance system is still mostly manual and paper-based — even in the developed or so-called first world countries. This leaves a lot of room for human error and is generally cumbersome.

To summarize the process, cheques submitted to each branch of a bank are collected at the end of the day and transported to a few common locations. Once together, the settlement process occurs (mostly manually) where the amounts of money different banks owe each other are simplified to the least number of possible transactions. These amounts are then recorded in a ledger, and the entire process repeats the next day. This is not the case in every country, but I wouldn’t be surprised if a similar system is in place in most.

Today, finance is one of the most apparent industries for blockchain to disrupt. It has the most straightforward use-cases for a blockchain, and the act of implementing the blockchain itself is relatively simple. The complications arise when you consider the considerable risk associated with large amounts of money and banking institutions’ reluctance to trust new technologies. I do think this is fair though; there is still a lot to be learned about blockchain and a lot of creases to be ironed out. It is up to developers and blockchain-enthusiasts to make the technology as robust as possible before it can be used more liberally.

3. What Type Of Blockchain Projects Have You Developed?

My experience with blockchain has mainly been research-based. However, to understand the concepts that I come across in my research, understanding code and some technical insight is required.

I did work with a few groups of students to create a few prototypes for a cheque-clearing system using distributed ledger technology.

The final prototype was reasonably basic; no fancy protocols and no cryptocurrency either. Although we did include a cryptocurrency with proof-of-work consensus in the first few iterations, towards the end, we decided that it was not required for our specific use-cases. I worked with a co-worker to study the emergence of software design patterns in blockchain implementations (from Ethereum and Bitcoin to simple Decentralized Applications or DApps).

Currently, we are trying to study the effect that these design patterns have on the performance of blockchain systems. We intend to use the prototypes we have built to verify any conclusions.

There is no real consensus on accepted performance metrics for blockchain-based applications yet. Whiteblock.io and Hyperledger have been the two stand-out organizations working on this issue amongst others. My current focus is on finding ways to test blockchain-based systems — mostly performance testing but also functional tests. This is an exciting project for me because blockchain testing is yet emerging as an issue within the domain. I feel like I am working close to the edge of our knowledge on the subject, and that is always exciting.

4. What’s The Biggest Challenge You’ve Faced With Blockchain?

One of the biggest challenges, I believe, while implementing a blockchain-based application is figuring out how the blockchain is going to fit into the application. Ideally, you’d want first to be sure that the application even needs a blockchain back-end. Once that’s been established, finding the aspects of your system where blockchains can offer improvements and then integrating them with traditional software components is the tricky bit.

Arguably a bigger challenge, however, is that of testing your blockchain-based application. There are a few problems with testing blockchains and the applications built around them. The first one that crops up is regarding the environment for conducting tests.

  • Do you create a separate test environment to test your implementation? The downside here is that the test environment will not accurately estimate real-world scenarios. This may lead to inaccurate or even incorrect test results.
  • You could create a second version of the application to be tested by real testers and developers around the world. This solves the problem to some extent; however, it can drive up the overall cost of testing and will still not mimic the real-world situations well enough. Additionally, with this option, if your application uses a monetary token, each transaction would require real money to be transferred for it to be stored on the blockchain, further increasing costs.
  • Finally, you could consider testing in production. This has some critical issues. For instance, if an error manifests itself into the transactions or data stored on the blockchain, these entries cannot be reversed. They will be stored permanently on the chain. This could be a nightmare in itself.

A possible solution could be to use a mixture of all three options for different types of testing. However, there is no correct answer to the question yet. There are several other issues related to the testing of blockchain applications. But then again, testing is a vast and critical topic, so this should come as no surprise.

5. What Types Of Blockchains Have You Implemented?

A lot of my work with blockchains has been research-based, so I haven’t implemented a whole lot of different types. However, I have tried my hand at a few.

I have implemented some actual smart contracts using Solidity to test out design patterns in blockchain applications. Apart from that, I have worked on a basic proof-of-work blockchain. This was based on a public network and had a functioning front-end in addition to the blockchain back-end. Finally, I worked on a blockchain-based on a private network. There was no consensus protocol because authorized users could only add new blocks, and the ordering was decided based on timestamps.

In reality, none of the implementations I have worked on is scalable. These were just projects for me to work on to extend my understanding of blockchains. But I guess everybody has to start somewhere. In the future, I hope to work on some real-world implementations, which are scalable and robust.

--

--

Ravinder Deol
Solidity Weekly

Every week, I sit down to write my newsletter in which I share a piece of work that has inspired, motivated and challenged me. Join me — ravinderdeol.com.