SlideShare a Scribd company logo
Banking on a Blockchain
Mark Simpson, Distinguished Engineer
Innovation Engineering @ RBS
Key points:
How RBS is approaching Research and Innovation
What we have looked at in the distributed ledger space
Example - building a digital wallet on Hyperledger Fabric
What we’ve learnt about Hyperledger and other DLs.
The challenges we face as a bank and as blockchain
developers
Some thoughts for the future
What is a code spike?
Identity a disruptive technology
Find a specific use case
Find some experienced engineers and give them four days
Build an MVP or fail fast
What distributed ledger technology
have we looked at so far?
Could we build a digital
wallet on blockchain?
Requirements for building a
digital wallet
Move money from ‘real’ account to wallet
Make multiple transfers between accounts in wallet
Make payments out of the wallet to payment systems
Query wallet balances
Detect transaction errors
Query history of transactions
Obfuscate fields in transactions for certain users
Where to start?
use the example !!
https://github.com/hyperledger/fabric/tree/master/exa
mples/chaincode/chaintool/example02/src/chaincode
Extending the contract for multiple
transfers - complex types!
go - chain code
type Transfer struct {
From string `json:"from"`
To string `json:"to"`
Amount float64 `json:"amount"`
}
type DigitalWalletBlockChainTransaction struct {
Transfers []Transfer `json:"transfers"`
RequestedAt string `json:"requestedAt"`
Reference string `json:"reference"`
Description string `json:"description"`
Action string `json:"action"` // "action": "deposit | reserve | unreserve",
Notes []string `json:"notes"` // "for reserve, the from is 'userid ' and to is 'userid-reserve'",
}
We can easily send complex types into
the fabric from javascript
//Build the payload
var transferPayload ={ "transfers":[
{"from": "billy", "to": "greg", "amount": 1000.0 },
{"from": "billy", "to": "mark", "amount": 1000.0 }
],
"requestedAt": "2016-01-03T10:00:00.000Z",
"reference": "dispersals",
"description": “billy sends greg and mark some cash",
"action": "transfer",
"notes" : [“enables rollback of whole transaction on fail" ]
};
//Function to call it
function transfer(transferpayload){
var request = require('request');
request({
url: blockchainServer+'/devops/invoke', //URL to hit
method: 'POST',
json: {
"chaincodeSpec":{ "type": "GOLANG", "chaincodeID":{ "name":chainCodeStatic,
},
"ctorMsg": {
"function":"transfer",
"args":[transferpayload]
}
etc….
Querying account balance is then quite
easy
function queryit(account){
var request = require('request');
//Lets configure and request
request({
url: blockchainServer+'/devops/query', //URL to hit
method: 'POST',
//Lets post the following key/values as form
json: {
"chaincodeSpec":{
"type": "GOLANG",
"chaincodeID":{
"name":chainCodeStatic,
},
"ctorMsg": {
"function":"query",
"args":[account]
}
}
}
What about Errors ??
You get an error if you send a bad payload or call an
invalid chaincode
(back in February) Errors did not propagate out of chain
code even if you returned an error. There was no error
code on the transaction in the block
But, state is rolled back if your chain code returns error.
You can now detect transaction errors using the following
code:
https://github.com/hyperledger/fabric/tree/master/example
s/events/block-listener
How did we do against
our requirements?
Move ‘money’ from real account to wallet √
Make multiple transfers between accounts in wallet √
Make payments out of the wallet to payment systems √
Query wallet balances √
Detect transaction errors √ (nearly)
Query history of transactions X
Obfuscate some fields in transactions from certain users X
Transaction history - single version
of the truth ?
https://github.com/hyperledger/fabric/wiki/Next-
Ledger-Architecture-Proposal#pointintime
What did we learn?
Writing and calling contracts is straight forward.
Asynchronicity is a challenge.
Maintaining a single version of the truth is a battle.
Tooling is work in progress.
Devops - interesting….
<devops?>
Working with R3
‘ There is only so much fun you can have
with blockchain on your own’ - Richard
Crook - head of innovation Engineering.
We are active members of the R3 group.
R3 gives us the ability to openly collaborate
with other banks under non disclosure
agreements.
key challenges
collaborating with each other
security - data at rest
scalability
bad press / building understanding
contract safety
integrating ‘safely’ with the existing banking systems
(http://bankofapis.com)
managing change
usability / consumerability
Some thoughts for the
future
When will we see banks use ledgers in production?
Will contracts be used as legal language?
How de-centralised could the banking system
become?
Why don’t google, facebook, amazon appear to be
interested in blockchain?
Does blockchain give people the opportunity to secure
their own personal data?
Could a blockchain be run entirely on mobile devices?
QUESTIONS ?

More Related Content

PPTX
Kathleen Breitman at the Hyperledger Meetup
PPTX
Blockchain in banking bucharest meetup
PDF
Blockchain for the Enterprise
PDF
1. ibm blockchain explained
PDF
Blockchain Technology and Its Application in Libraries
PDF
Blockchain: The New Technology and Its Applications for Libraries
PDF
Blockchain and Supply Chain
PPTX
Introduction to Blockchain and Recordkeeping
Kathleen Breitman at the Hyperledger Meetup
Blockchain in banking bucharest meetup
Blockchain for the Enterprise
1. ibm blockchain explained
Blockchain Technology and Its Application in Libraries
Blockchain: The New Technology and Its Applications for Libraries
Blockchain and Supply Chain
Introduction to Blockchain and Recordkeeping

What's hot (20)

PPTX
The Quest for Enterprise Blockchain Solutions.
PDF
Blockchain and Smart Contracts (Series: Blockchain Basics)
PDF
Why Blockchain is seen as the new Internet and what SAP is doing
PDF
Blockchain notes b tech aktu by krazy kreation (kulbhushan)
PDF
Blockchain Use Cases: Think of a "Public" Pub/Sub Queue
PPTX
DOCX
Blockchain tutorial
PDF
Introduction to Blockchain
PPTX
Blockchain
PPTX
Blockchain 101
PPTX
Security and privacy with blockchain
PPTX
Deja vu Security - Blockchain Security Summit - Adam Cecchetti
PDF
Introduction to Blockchain and Smart Contracts
PDF
Blockchain, smart contracts and use cases for the Legal Hackers
PDF
Blockchain technology amplify your enterprise / IBM
DOCX
Use case of block chain unit 4 AKTU
PDF
Blockchain Application Design and Development, and the Case of Programmable M...
PDF
Demystifying Blockchains
 
PPTX
Blockchain: The New Technology of Trust
PDF
Distributed Ledger Technology (DLT) beyond blockchain #BlockchainSubmit
The Quest for Enterprise Blockchain Solutions.
Blockchain and Smart Contracts (Series: Blockchain Basics)
Why Blockchain is seen as the new Internet and what SAP is doing
Blockchain notes b tech aktu by krazy kreation (kulbhushan)
Blockchain Use Cases: Think of a "Public" Pub/Sub Queue
Blockchain tutorial
Introduction to Blockchain
Blockchain
Blockchain 101
Security and privacy with blockchain
Deja vu Security - Blockchain Security Summit - Adam Cecchetti
Introduction to Blockchain and Smart Contracts
Blockchain, smart contracts and use cases for the Legal Hackers
Blockchain technology amplify your enterprise / IBM
Use case of block chain unit 4 AKTU
Blockchain Application Design and Development, and the Case of Programmable M...
Demystifying Blockchains
 
Blockchain: The New Technology of Trust
Distributed Ledger Technology (DLT) beyond blockchain #BlockchainSubmit
Ad

Viewers also liked (19)

PPTX
A Perfect Cloud Foundry Engineer
PPTX
Blockchain Experiments in Trade Finance and IoT
PDF
BTCS - A blockchain Technology Company
PDF
ブロックチェーン実証実験から得られた知見
PPTX
Investment Thesis on Distributed Ledger Technology in the Financial System
PDF
How blockchain technology could revolutionise the insurance industry
PDF
How blockchain will defend iot
PPTX
Transforming Healthcare: The Promise of Innovation
PDF
Blockchain and Internet of Things
PPTX
Satoshi Nakamoto : a bank employee in 2016
PDF
Blockchain in Banking: A Measured Approach
PDF
lsrs15_ciandt
PPTX
Capturing Data and Improving Outcomes for Humans and Machines Using the Inter...
PDF
Discovering User's Topics of Interest in Recommender Systems
PPTX
Who Lives in Our Garden?
PDF
Image Recognition with TensorFlow
PDF
Python for Data Science
PDF
Introduction Machine Learning by MyLittleAdventure
PPTX
BLOCKCHAIN & THE HOLLYWOOD SUPPLY CHAIN
A Perfect Cloud Foundry Engineer
Blockchain Experiments in Trade Finance and IoT
BTCS - A blockchain Technology Company
ブロックチェーン実証実験から得られた知見
Investment Thesis on Distributed Ledger Technology in the Financial System
How blockchain technology could revolutionise the insurance industry
How blockchain will defend iot
Transforming Healthcare: The Promise of Innovation
Blockchain and Internet of Things
Satoshi Nakamoto : a bank employee in 2016
Blockchain in Banking: A Measured Approach
lsrs15_ciandt
Capturing Data and Improving Outcomes for Humans and Machines Using the Inter...
Discovering User's Topics of Interest in Recommender Systems
Who Lives in Our Garden?
Image Recognition with TensorFlow
Python for Data Science
Introduction Machine Learning by MyLittleAdventure
BLOCKCHAIN & THE HOLLYWOOD SUPPLY CHAIN
Ad

Similar to Banking on a Blockchain (20)

PPTX
BlockChain for the Banker
PDF
Cto eng
PDF
Gateway and secure micro services
PDF
Blockchin architecture azure meetup
PDF
Doag 2018 eine_reise_durch_die_blockchain_applikationsentwicklung_final
PDF
Blockchain development 101
PPTX
Blockchain architected
PPTX
Blockchain Application Development 101
PPTX
Blockchain: use cases for the future
PPTX
A Lay of the Meta-land: A Systematic Approach to Dissect the Metaverse
PDF
Wwc developing hyperledger applications v4
PDF
How to Build Multi Chain Crypto Wallet in 2025.pdf
PDF
An introduction to blockchain and hyperledger v ru
PPTX
Blockchain analysis: 2016-11-23 MeetUp FinTech Marketpay.io - LemonPay.me
PDF
Crypto wallet app - Google Docs.pdf
PPTX
Practical Challenges for Public Blockchains
PPTX
Practical Challenges for Public Blockchains
PPTX
Blockchain Intro to Hyperledger Fabric
PDF
Everything you want to know about microservices
PPTX
Introducing flow the new blockchain for open worlds
BlockChain for the Banker
Cto eng
Gateway and secure micro services
Blockchin architecture azure meetup
Doag 2018 eine_reise_durch_die_blockchain_applikationsentwicklung_final
Blockchain development 101
Blockchain architected
Blockchain Application Development 101
Blockchain: use cases for the future
A Lay of the Meta-land: A Systematic Approach to Dissect the Metaverse
Wwc developing hyperledger applications v4
How to Build Multi Chain Crypto Wallet in 2025.pdf
An introduction to blockchain and hyperledger v ru
Blockchain analysis: 2016-11-23 MeetUp FinTech Marketpay.io - LemonPay.me
Crypto wallet app - Google Docs.pdf
Practical Challenges for Public Blockchains
Practical Challenges for Public Blockchains
Blockchain Intro to Hyperledger Fabric
Everything you want to know about microservices
Introducing flow the new blockchain for open worlds

More from Altoros (20)

PDF
Maturing with Kubernetes
PDF
Kubernetes Platform Readiness and Maturity Assessment
PDF
Journey Through Four Stages of Kubernetes Deployment Maturity
PPTX
SGX: Improving Privacy, Security, and Trust Across Blockchain Networks
PPTX
Using the Cloud Foundry and Kubernetes Stack as a Part of a Blockchain CI/CD ...
PPTX
A Zero-Knowledge Proof: Improving Privacy on a Blockchain
PPTX
Crap. Your Big Data Kitchen Is Broken.
PDF
Containers and Kubernetes
PPTX
Distributed Ledger Technology for Over-the-Counter Trading
PPTX
5-Step Deployment of Hyperledger Fabric on Multiple Nodes
PPTX
Deploying Kubernetes on GCP with Kubespray
PPTX
UAA for Kubernetes
PPTX
Troubleshooting .NET Applications on Cloud Foundry
PPTX
Continuous Integration and Deployment with Jenkins for PCF
PPTX
How to Never Leave Your Deployment Unattended
PPTX
Cloud Foundry Monitoring How-To: Collecting Metrics and Logs
PDF
Smart Baggage Tracking: End-to-End Sensor-Based Solution
PPTX
Navigating the Ecosystem of Pivotal Cloud Foundry Tiles
PPTX
AI as a Catalyst for IoT
PPTX
Over-Engineering: Causes, Symptoms, and Treatment
Maturing with Kubernetes
Kubernetes Platform Readiness and Maturity Assessment
Journey Through Four Stages of Kubernetes Deployment Maturity
SGX: Improving Privacy, Security, and Trust Across Blockchain Networks
Using the Cloud Foundry and Kubernetes Stack as a Part of a Blockchain CI/CD ...
A Zero-Knowledge Proof: Improving Privacy on a Blockchain
Crap. Your Big Data Kitchen Is Broken.
Containers and Kubernetes
Distributed Ledger Technology for Over-the-Counter Trading
5-Step Deployment of Hyperledger Fabric on Multiple Nodes
Deploying Kubernetes on GCP with Kubespray
UAA for Kubernetes
Troubleshooting .NET Applications on Cloud Foundry
Continuous Integration and Deployment with Jenkins for PCF
How to Never Leave Your Deployment Unattended
Cloud Foundry Monitoring How-To: Collecting Metrics and Logs
Smart Baggage Tracking: End-to-End Sensor-Based Solution
Navigating the Ecosystem of Pivotal Cloud Foundry Tiles
AI as a Catalyst for IoT
Over-Engineering: Causes, Symptoms, and Treatment

Recently uploaded (20)

PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Cloud computing and distributed systems.
PPTX
sap open course for s4hana steps from ECC to s4
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
cuic standard and advanced reporting.pdf
PPTX
Big Data Technologies - Introduction.pptx
PDF
Encapsulation theory and applications.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
KodekX | Application Modernization Development
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
The AUB Centre for AI in Media Proposal.docx
Per capita expenditure prediction using model stacking based on satellite ima...
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Cloud computing and distributed systems.
sap open course for s4hana steps from ECC to s4
The Rise and Fall of 3GPP – Time for a Sabbatical?
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
MIND Revenue Release Quarter 2 2025 Press Release
Chapter 3 Spatial Domain Image Processing.pdf
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Unlocking AI with Model Context Protocol (MCP)
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
cuic standard and advanced reporting.pdf
Big Data Technologies - Introduction.pptx
Encapsulation theory and applications.pdf
Review of recent advances in non-invasive hemoglobin estimation
KodekX | Application Modernization Development

Banking on a Blockchain

  • 1. Banking on a Blockchain Mark Simpson, Distinguished Engineer Innovation Engineering @ RBS
  • 2. Key points: How RBS is approaching Research and Innovation What we have looked at in the distributed ledger space Example - building a digital wallet on Hyperledger Fabric What we’ve learnt about Hyperledger and other DLs. The challenges we face as a bank and as blockchain developers Some thoughts for the future
  • 3. What is a code spike? Identity a disruptive technology Find a specific use case Find some experienced engineers and give them four days Build an MVP or fail fast
  • 4. What distributed ledger technology have we looked at so far?
  • 5. Could we build a digital wallet on blockchain?
  • 6. Requirements for building a digital wallet Move money from ‘real’ account to wallet Make multiple transfers between accounts in wallet Make payments out of the wallet to payment systems Query wallet balances Detect transaction errors Query history of transactions Obfuscate fields in transactions for certain users
  • 7. Where to start? use the example !! https://github.com/hyperledger/fabric/tree/master/exa mples/chaincode/chaintool/example02/src/chaincode
  • 8. Extending the contract for multiple transfers - complex types! go - chain code type Transfer struct { From string `json:"from"` To string `json:"to"` Amount float64 `json:"amount"` } type DigitalWalletBlockChainTransaction struct { Transfers []Transfer `json:"transfers"` RequestedAt string `json:"requestedAt"` Reference string `json:"reference"` Description string `json:"description"` Action string `json:"action"` // "action": "deposit | reserve | unreserve", Notes []string `json:"notes"` // "for reserve, the from is 'userid ' and to is 'userid-reserve'", }
  • 9. We can easily send complex types into the fabric from javascript //Build the payload var transferPayload ={ "transfers":[ {"from": "billy", "to": "greg", "amount": 1000.0 }, {"from": "billy", "to": "mark", "amount": 1000.0 } ], "requestedAt": "2016-01-03T10:00:00.000Z", "reference": "dispersals", "description": “billy sends greg and mark some cash", "action": "transfer", "notes" : [“enables rollback of whole transaction on fail" ] }; //Function to call it function transfer(transferpayload){ var request = require('request'); request({ url: blockchainServer+'/devops/invoke', //URL to hit method: 'POST', json: { "chaincodeSpec":{ "type": "GOLANG", "chaincodeID":{ "name":chainCodeStatic, }, "ctorMsg": { "function":"transfer", "args":[transferpayload] } etc….
  • 10. Querying account balance is then quite easy function queryit(account){ var request = require('request'); //Lets configure and request request({ url: blockchainServer+'/devops/query', //URL to hit method: 'POST', //Lets post the following key/values as form json: { "chaincodeSpec":{ "type": "GOLANG", "chaincodeID":{ "name":chainCodeStatic, }, "ctorMsg": { "function":"query", "args":[account] } } }
  • 11. What about Errors ?? You get an error if you send a bad payload or call an invalid chaincode (back in February) Errors did not propagate out of chain code even if you returned an error. There was no error code on the transaction in the block But, state is rolled back if your chain code returns error. You can now detect transaction errors using the following code: https://github.com/hyperledger/fabric/tree/master/example s/events/block-listener
  • 12. How did we do against our requirements? Move ‘money’ from real account to wallet √ Make multiple transfers between accounts in wallet √ Make payments out of the wallet to payment systems √ Query wallet balances √ Detect transaction errors √ (nearly) Query history of transactions X Obfuscate some fields in transactions from certain users X
  • 13. Transaction history - single version of the truth ? https://github.com/hyperledger/fabric/wiki/Next- Ledger-Architecture-Proposal#pointintime
  • 14. What did we learn? Writing and calling contracts is straight forward. Asynchronicity is a challenge. Maintaining a single version of the truth is a battle. Tooling is work in progress. Devops - interesting….
  • 16. Working with R3 ‘ There is only so much fun you can have with blockchain on your own’ - Richard Crook - head of innovation Engineering. We are active members of the R3 group. R3 gives us the ability to openly collaborate with other banks under non disclosure agreements.
  • 17. key challenges collaborating with each other security - data at rest scalability bad press / building understanding contract safety integrating ‘safely’ with the existing banking systems (http://bankofapis.com) managing change usability / consumerability
  • 18. Some thoughts for the future When will we see banks use ledgers in production? Will contracts be used as legal language? How de-centralised could the banking system become? Why don’t google, facebook, amazon appear to be interested in blockchain? Does blockchain give people the opportunity to secure their own personal data? Could a blockchain be run entirely on mobile devices?