A new crypto payment system cuts transaction times from minutes to seconds.

When Bitcoin was announced in 2008, I was incredulous. The concept of a decentralized, anonymous accounting system running on a shared public ledger (or blockchain) with no middleman was intriguing. Bitcoin does, in fact, work quite well as a system of account, but what I really wanted was a payment system. Bitcoin transactions take anywhere from 10 minutes up to an hour to finalize and consume enormous amounts of energy, which means paying for a cup of coffee is pretty hard to imagine.

A little over two years ago, when I was considering the problem of mobile payments, my thoughts again sprang towards cryptocurrency. To make something people could actually use to pay for a cup of coffee, all I could think was: “That sounds hard.”

About 12 hours later, with a lot of help from a very smart friend, I’d drafted the initial design for MobileCoin. The goal of MobileCoin was to make a payment system for the place people live and work today—mobile messaging apps. Solving for that use case meant it had to meet the extremely stringent standards of mobile applications. MobileCoin had to be exceptionally fast, privacy-protecting, and energy-efficient, all while providing a world class mobile-first user experience.

A security-rich environment in the IBM Cloud

Due to mobile device constraints for memory, computation, and network access, it was necessary to host the application remotely, or in the cloud. You simply can’t hold the entire ledger on a mobile phone.

For this application, security is essential. Users would need to be able to access the ledger remotely in a trustworthy fashion. This led us to choose a piece of technology called a secure enclave. Enclaves provide users with some strong safety guarantees for accessing the ledger on a system they don’t control.

Choosing to implement the Intel Software Guard Extensions (SGX) secure enclave, we selected IBM’s service for accessing confidential computing on demand: IBM Cloud Data Shield. This solution provides both the security and the cloud environment we needed; we consider it a crucial component of MobileCoin’s solution.

Our network users have keys on their phones that never leave their devices. They use those keys to construct and send transactions over a secure channel to the enclave. The enclave verifies the sender’s signature, then federates the transaction to all enclaves in the network for further verification before writing it to disk. The enclave doesn’t reveal the transaction amount or the identities of the sender or receiver, providing an unprecedented level of privacy.

Teaming up to take on technology challenges

The IBM team played an integral role in implementing the IBM Cloud Data Shield solution and getting SGX up and running. SGX is radically different from other systems. It’s a highly restrictive environment regarding memory and performance, and it lacks much of the tooling that comes ready-made with regular CPUs.

Due to these limitations, we initially spent a lot of time working with IBM Cloud Data Shield engineers to make it function. We chose to write our application in Rust to guarantee safety and speed. SGX is bleeding edge, meaning it doesn’t have much support in standard Rust, so we had to implement our system from scratch to ensure we could trust it. As such, we were very grateful to have the IBM team working alongside us.

Calling all testers

Our efforts paid off with the launch of a test network for MobileCoin on April 9, 2020. We’ve since gained thousands of users globally — exclusively via word of mouth — with excellent results to date.

Transactions complete in less than five seconds (as opposed to upward of 10 minutes for a Bitcoin transaction). We’ve had zero failed transactions, and energy consumption is negligible.

Based on our successful collaboration to overcome the many obstacles we initially faced, we’re thrilled with the level of support we continue to receive from IBM. We expect to continue using IBM Cloud Data Shield.

Learn more


More from Cloud

IBM Cloud VMware as a Service introduces multitenant as a new, cost-efficient consumption model

4 min read - Businesses often struggle with ongoing operational needs like monitoring, patching and maintenance of their VMware infrastructure or the added concerns over capacity management. At the same time, cost efficiency and control are very important. Not all workloads have identical needs and different business applications have variable requirements. For example, production applications and regulated workloads may require strong isolation, but development/testing, training environments, disaster recovery sites or other applications may have lower availability requirements or they can be ephemeral in nature,…

IBM accelerates enterprise AI for clients with new capabilities on IBM Z

5 min read - Today, we are excited to unveil a new suite of AI offerings for IBM Z that are designed to help clients improve business outcomes by speeding the implementation of enterprise AI on IBM Z across a wide variety of use cases and industries. We are bringing artificial intelligence (AI) to emerging use cases that our clients (like Swiss insurance provider La Mobilière) have begun exploring, such as enhancing the accuracy of insurance policy recommendations, increasing the accuracy and timeliness of…

IBM NS1 Connect: How IBM is delivering network connectivity with premium DNS offerings

4 min read - For most enterprises, how their users access applications and data is an essential part of doing business, and how they service those application and data responses has a direct correlation to revenue generation.    According to We Are Social’s Digital 2023 Global Overview Report, there are 5.19 billion people around the world using the internet in 2023. There’s an imperative need for businesses to trust their networks to deliver meaningful content to address customer needs.  So how responsive is the…

Kubernetes version 1.28 now available in IBM Cloud Kubernetes Service

2 min read - We are excited to announce the availability of Kubernetes version 1.28 for your clusters that are running in IBM Cloud Kubernetes Service. This is our 23rd release of Kubernetes. With our Kubernetes service, you can easily upgrade your clusters without the need for deep Kubernetes knowledge. When you deploy new clusters, the default Kubernetes version remains 1.27 (soon to be 1.28); you can also choose to immediately deploy version 1.28. Learn more about deploying clusters here. Kubernetes version 1.28 In…