electronic circuit board with processor

‘BitCache maintains a cache of your on-chain transactions’: Jad Wahab

Former BSV Blockchain Association (BSVA) Director of Technology Jad Wahab has been working on BitCache, a caching layer for your on-chain data. This caching layer seeks to solve issues such as scanning the blockchain for transactions linked to an address and vendor lock-in in terms of users and their wallet data. I caught up with Jad to learn more about the service.

Why did you decide to work on BitCache?

Jad Wahab: I have been working on and building Bitcoin wallets for a number of years now, and I literally saw no better way to get to a future of fully owning my own data and using it wherever I want and whenever I want—and that has to start with the lowest layer in the stack: the ‘wallet.’

Firstly, I want to be able to see every single one of my Bitcoin transactions in one place without being forced into one wallet garden like I am today with Web2. Also, it’s a security nightmare that you have to expose your master private key (by importing and exporting your seed) whenever you want to use a new wallet or app interface—not to mention the awful user experience.

Secondly, while doing work on the network infrastructure side with nodes and indexers, I saw how things get more complex and expensive at scale, and when looking at the system architecture as a whole, there’s no reason that you need to bear this external cost when you’ve got everything you need internally.

It’s just a different paradigm shift in thinking about how things work that will become obvious the farther along this road we go.

Why have BSV services defaulted to the walled garden approach in terms of users and their data instead of being interoperable?

Jad Wahab: Hindsight vision is 20/20. Things that seem obvious today were not before, especially in such a new industry like Bitcoin and ‘crypto.’

Additionally, some efforts have been made to develop using this open and interoperable approach, for instance, RelayX’s Order Lock. However, its potential for interoperability wasn’t fully realized since RelayX was its sole user. If multiple entities had collaborated and built interoperably on the blockchain, the advantages of such an approach would have been more immediately evident.

Unfortunately, we have had a history of people creating their own ‘new interoperable’ protocols rather than utilizing the existing ones, leading to the creation of separate network effects rather than expanding the existing networks.

How does BitCache help users and applications curate their data in relation to their Bitcoin wallet?

Jad Wahab: Technically, Bitcoin/blockchain itself is what helps users and applications
decouple data curation and data ownership (check here for a more detailed explanation). BitCache only helps you do this more easily and cheaply by adding a cache layer to the system architecture.

Using Bitcoin without a cache layer is like using a computer without a cache or RAM layer. The CPU has to read from and write to the hard disk (blockchain) without any ‘working memory,’ painfully slow and expensive.

How will the “Data Dashboard” work for users?

Jad Wahab: Using the data dashboard, you will have a never-before-seen user experience that will become second nature to every Bitcoin user in the future: the ability to view (but not necessarily control) every single on-chain transaction you’ve ever sent or received in one screen/interface.

This changes the paradigm from transactions being platform-based into being function-based. What this means is that since you can view and use your transactions from any interface, it doesn’t matter that these transactions are “HandCash” or “RelayX” transactions; it only matters what function they serve, such as payment or token or data transactions, etc. (also see Function-Based Wallets).

How can BitCache help users with owning their content, such as when new custom scripts start being used in the blockchain, such as locking coins?

Jad Wahab: Since users own their own data on the blockchain when they have it cached in a BitCache, it can be easily used across different apps or wallets as soon as the new wallets/apps add the integration for the new custom scripts or functionalities. The users don’t need to wait for indexers to implement the new functionality in order to use it.

For example, currently, with the lockup script (used by hodlocker), we are currently blocked by needing indexers to support this use case so that we can have interoperability and use locked scripts across multiple wallets so that we don’t end up with walled gardens of different use cases.

If people were using BitCaches, you could have one interface (hodlocker with RelayX) be used to view and lock up to on-chain posts and then any other interface (let’s say ElectrumSV connected to a hardware wallet) to unlock coins easily. That way, application developers (like zer0 developing hodlocker) can focus on developing the application while other more wallet-focused developers can work on the wallet aspects while complementing each other instead of competing across different walled gardens.

What are your thoughts on wallets implementing single addresses for application use (RelayX, 1 Sat OrdinalsPanda Wallet) vs. rolling address approaches like Simply CashHandCash, and (formerly) Twetch?

Jad Wahab: In a post-BitCache world, such a question is pretty much insignificant because it doesn’t matter whether you roll addresses or use the most complex scripts in the world; you are caching your transactions so you will not have issues finding them across different wallets/applications (or even within the same application) as you do now.

Right now, people are relying on indexers, so as your transactions get more complicated, you will need more complicated indexers in tandem. You shouldn’t need to rely on and be constrained by external indexers for your own transactions, and using BitCache, you don’t!

How does BitCache keep users’ data in sync as they interact with more new applications?

Jad Wahab: BitCache maintains a cache of your on-chain transactions (could also store off-chain transactions), with the key difference being that it caches the new transactions as they make their way to blockchain settlement instead of after settlement so that you don’t need to scan all on-chain transactions and filter to find the ones you want.

Your wallet needs to be connected to your BitCache so that it will send new transactions to the BitCache as they are created and broadcast to avoid the expensive and unreliable process of indexing and scanning through all transactions.

Users that use wallets and apps which are not connected to their BitCache will be unnecessarily putting themselves at risk of vendor lock-in, data loss with expensive recovery, and degraded user experience.

Can BitCache be used or leveraged in a web browser?

Jad Wahab: BitCache can be used and leveraged anywhere that you control your keys. It allows you to access and control your coins and on-chain data from anywhere you want.

For instance, you could view all your transactions and wallets from your admin dashboard, then move some coins from your cold storage/hardware/desktop wallet (ElectrumSV) to your bSocial wallet, which you use RelayX iOS app to access on mobile and then use that wallet to lockup coins on posts on hodlocker.com in browser through Panda Wallet (also connected to your bSocial wallet). Then if the coin price dips below $50, you use your exchange wallet (Rock Wallet) to buy some new coins for fiat and then, through your admin dashboard, do some internal accounting to move some coins to your hardware wallet, some to your bSocial wallet, some to your token wallet, some to your mobile wallet, etc.

Will the service be open-sourced?

Jad Wahab: Yes, it is open-sourced, but more important than being open-sourced is to be open-protocoled with a standard API so that anyone can even build their own BitCache version themselves. We will host an instance that people can use, but anyone can also run their own interoperable instance if they want to.

We also have reference libraries ready for integration in different languages, protocol documentation, as well as example test data for all compatibility cases which can be used to verify any custom or reference implementation is correct. The latest version of ElectrumSV already implements the ability to have a custom BitCache service or use the existing built-in one.

When will BitCache launch?

Jad Wahab: We are currently working on the most basic MVP (minimum viable product) with the main fundamental features and focusing only on the ‘must-haves’. At the moment, things are in Beta testing phases while we iron out edge cases and work through how things will look in the future.

Right now, I’m most keen on selfishly getting this to work for myself, and once we are happy with the state of things, we will move forward to roll it out for others.

Thank you, Jad, for taking the time to answer my questions. I hope the readers learned more about BitCache.

This article was lightly edited for clarity purposes.

Watch: Bitcoin wallets for individuals and businesses

YouTube video

New to blockchain? Check out CoinGeek’s Blockchain for Beginners section, the ultimate resource guide to learn more about blockchain technology.