SlideShare a Scribd company logo
Proprietary and Confidential © 2019 1
Syahrul Nizam, Developer Advocate
Quorum meetup
How do private transactions
work on Quorum?
Proprietary and Confidential © 2019 2
Presented by
Syahrul Nizam
Developer Advocate
Blockchain enthusiast with experience
in creating & deploying Smart
Contracts on Ethereum
Proprietary and Confidential © 2019 2
Presented by
Syahrul Nizam
Developer Advocate
Blockchain enthusiast with experience
in creating & deploying Smart
Contracts on Ethereum
Proprietary and Confidential © 2019 3
The innerworkings of Ethereum
The Ethereum network is made up of nodes, each running an
Ethereum client like Geth
Miners
Ethereum Node
Blockchain Storage
Genesis
block
Block 1 Block (n-1) Block n
Interface
Developers
Proprietary and Confidential © 2019 4
What is Quorum?
1. Quorum is a Ethereum based blockchain, designed for use by
Enterprises.
2. It provides smart contract capability, much like Ethereum
3. What makes Quorum special is that it has support for private
transactions, which is impossible on Ethereum (somewhat)
Proprietary and Confidential © 2019 5
Transactions in Ethereum
A graphical representation of how transactions are propagated in a
regular Ethereum network
Application creates a
transaction payload
Transaction payload
is compiled into
solidity bytecode
Transaction payload
is sent via RPC or
Websockets to an
Etheruem node
Ethereum node
converts this solidity
bytecode to EVM
opcodes
Opcodes are a set of
instructions for the EVM
to execute
Stored on the Blockchain
Proprietary and Confidential © 2019 6
Quorum nodes
A quorum node consists of two things….
A minimalist Geth node to provide
EVM functionality
A Tessera node for private
transaction support
Public DB PrivateState DB Private DB
Connected Connected
Proprietary and Confidential © 2019 7
Let’s visualize the private transaction
Application Layer
Quorum transaction payloads are identical to Ethereum’s transaction payloads with an additional
privateFor parameter
Alice wishes to make a private transaction to Bob
She supplies Bob’s Tessera public key in the privateFor
parameter of the transaction payload:
Proprietary and Confidential © 2019 8
Sending the transaction payload
The application then sends the transaction payload to Alice’s Quorum node
Application Layer
Proprietary and Confidential © 2019 9
Quorum node
The Quorum node detects the presence of the privateFor parameter in the transaction payload.
Each Quorum node comes with it’s own paired Tessera Node ( Transaction Manager + Enclave )
Transaction Payload
Geth Client
Transaction Manager Enclave
Quorum Node
Geth Client Transaction Manager Enclave
Quorum Node
Tessera Node
Tessera Node
Proprietary and Confidential © 2019 10
Tessera node (Alice’s)
Transaction manager makes a
call to the Enclave with the
transaction payload
Enclave verifies the transaction payload
Enclave
Enclave generates a random nonce(an
arbitrary number) and a RMK (an
arbitrary password)
Transaction Manager
Enclave
Proprietary and Confidential © 2019 11
Tessera node (Alice’s)
Enclave
EncodedABI payload is
encrypted using the nonce and
RMK
Proprietary and Confidential © 2019 12
Tessera node (Alice’s)
Enclave
Alice’s Tessera Private Key and
Bob’s Tessera Public Key
(supplied in transaction payload)
and a random Number is used
to encrypt the RMK itself
Encrypted RMK and encrypted
payload sent back to Alice’s TMTransaction Manager
Proprietary and Confidential © 2019 13
Tessera Node (Alice’s)
Transaction Manager
The transaction manager (Alice) hashes
the encrypted payload, and uses the hash
as a key to store the encrypted payload &
encrypted RMK in the private database
This same information is sent to Bob’s
transaction manager and stores in his
own private database
Bob’s Transaction manager
acknowledges receipt
Alice’s transaction manager
then returns hash to Alice’s
Quorum node Bob’s Transaction
Manager
Proprietary and Confidential © 2019 14
Quorum node (Alice’s)
Alice’s Quorum node then replaces the data parameter in the transaction payload with the hash
received from Alice’s transaction manager
It also replaces the v value in the transactional receipt to tell other quorum nodes that it is a
private transaction, and not a normal transaction with nonsensical bytecode
Now the transaction can be propagated by the node into the blockchain normally as per standard
Ethereum protocol. Every quorum node will receive this private transaction.
Note the change in the data
parameter
Proprietary and Confidential © 2019 15
Quorum network
1. All parties will receive the private transactions
2. Everyone will try to decrypt it
How do nodes know that they are party to the private transaction??
Proprietary and Confidential © 2019 16
Quorum Node (Bob’s)
Bob is party to the private transaction
Bob’s quorum node receives a
transaction receipt with a V value
of 37 or 38.
Bob’s quorum node then obtains
the hash in the data parameter of
the transaction payload
Bob’s transaction manager will
do a lookup for this hash and see
if it exists!
Transaction ManagerQuorum Node
Proprietary and Confidential © 2019 17
Tessera Node (Bob’s)
Decryption
Since Bob holds the transaction,
he can obtain the encrypted
payload and encrypted RMK in
his private database
Using his Tessera Private
Key, he can first unencrypt
the encrypted RMK
Using this unencrypted RMK, he
can now decrypt the encrypted
transaction payload
The decrypted payload is valid bytecode
Bytecode sent back to Bob’s
transaction manager
Proprietary and Confidential © 2019 18
Quorum Node (Bob’s)
Using the unencrypted bytecode, the EVM can now do
computations as per normal.
Bytecode is discarded once it’s used and privateStateDB is
updated accordingly to the instructions in the opcodes
Proprietary and Confidential © 2019 19
Quorum Nodes (Candice)
Candice is not party to the transaction sent by Alice
Candice’s quorum node receives a
transaction payload with a V value of 37 or
38
Candice’s quorum node then obtains the hash
in the data parameter of the transaction
payload
Candice’s transaction manager will look up this
hash, and the corresponding encrypted data
does not exist.
Candice’s node skips this transaction.
Proprietary and Confidential © 2019 20
Demonstration & Code
1. Create a project on Chainstack
2. Download this repository :
https://github.com/chainstack/quorum-iot-tutorial
3. Install Node.JS
4. Enjoy!
Let’s spin up a Quorum network using Chainstack
Proprietary and Confidential © 2019 21
Summary
Transaction Payload Quorum Node Transaction Manager Enclave
TxPayload sent
Send txPayload to TM Send to Enclave
Return encrypted data
Update
PrivateDB
Returns Tessera Hash
Quorum Node Transaction Manager Enclave
Propagates transaction
with v value of 37/38
Send Encrypted data
Return decrypted data
as bytecode
Returns Bytecode
Checks
for hash PrivateDB
Send txPayload to TM
Returns Encrypted Data
(1)
(2)
(7)
(3)
(4)
(5)
(6)
(8)
(9)
(10)
(12)
(13)
(11)
Send to Bob’s TM
(14)
Proprietary and Confidential © 2019 22
What’s next?
1. Visit our documentation site to quickly create your own Dapp
platforms
https://docs.chainstack.com
2. Create an account on Chainstack (2 week trial)
https://console.chainstack.com
3. Have fun!
Get started with Chainstack
Proprietary and Confidential © 2019 23
Q & A
Proprietary and Confidential © 2019 24
Contact
syahrul.nizam@chainstack.com
Helpful links
https://docs.chainstack.com
https://console.chainstack.com

More Related Content

PDF
3GPP LTE introduction 7 (Handover)
PPTX
NFVについて
PDF
ブロックチェーンPoCにおける開発リードタイム短縮のポイント
PDF
Why Microservice
PPTX
Reactive Streams に基づく非同期処理プログラミング 〜 Reactor を使ってみた
PPTX
最近のたまおきの取り組み 〜OpenStack+αの実現に向けて〜 - OpenStack最新情報セミナー(2017年3月)
PPTX
Devops ppt copy
3GPP LTE introduction 7 (Handover)
NFVについて
ブロックチェーンPoCにおける開発リードタイム短縮のポイント
Why Microservice
Reactive Streams に基づく非同期処理プログラミング 〜 Reactor を使ってみた
最近のたまおきの取り組み 〜OpenStack+αの実現に向けて〜 - OpenStack最新情報セミナー(2017年3月)
Devops ppt copy

What's hot (20)

PDF
鯨物語~Dockerコンテナとオーケストレーションの理解
PDF
IIJmio meeting #1 MVNOのネットワークインフラについて
PPTX
OpenStackで始めるクラウド環境構築入門 Havana&DevStack編
PDF
株式会社ディレクタス サービス紹介資料
PDF
AWS SDK for Android and iOS
PDF
知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月
PPTX
蓝鲸PaaS平台介绍.pptx
PDF
Wakamonog6 “ISPのネットワーク”って どんなネットワーク?
PDF
Hinemos Deep Dive~ジョブ編~
PPTX
Yarn resource-manager
PDF
クラウドネイティブトランスフォーメーションのススメ
PPTX
IBM Cloud Integration Platform Introduction - Integration Tech Conference
PDF
eBPFは何が嬉しいのか
PDF
20220224台中演講k8s
PDF
ビットコインとブロックチェーンを初めからていねいに(超基礎編)
PDF
Post-quantum zk-SNARKs on Hyperledger Fabric​
PDF
Kubernetes雑にまとめてみた 2019年12月版
PDF
Microservices architecture overview v3
PDF
Arquitectura de microservicios
PPTX
Hyperledger
鯨物語~Dockerコンテナとオーケストレーションの理解
IIJmio meeting #1 MVNOのネットワークインフラについて
OpenStackで始めるクラウド環境構築入門 Havana&DevStack編
株式会社ディレクタス サービス紹介資料
AWS SDK for Android and iOS
知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月
蓝鲸PaaS平台介绍.pptx
Wakamonog6 “ISPのネットワーク”って どんなネットワーク?
Hinemos Deep Dive~ジョブ編~
Yarn resource-manager
クラウドネイティブトランスフォーメーションのススメ
IBM Cloud Integration Platform Introduction - Integration Tech Conference
eBPFは何が嬉しいのか
20220224台中演講k8s
ビットコインとブロックチェーンを初めからていねいに(超基礎編)
Post-quantum zk-SNARKs on Hyperledger Fabric​
Kubernetes雑にまとめてみた 2019年12月版
Microservices architecture overview v3
Arquitectura de microservicios
Hyperledger
Ad

Similar to How do private transactions work on Quorum (20)

PPTX
Building Blockchain Application with Corda
PPTX
Ethereum Tutorial - Ethereum Explained | What is Ethereum? | Ethereum Explain...
PDF
How to run ethereum smart contracts on hyperledger fabric
PDF
Ivy Block - technicals.pdf
PDF
Introduction to Ethereum Smart Contracts
PPTX
Blockchain Tokenization
PPTX
EthereumBlockchainMarch3 (1).pptx
PDF
Network Enhancements on BitVisor for BitVisor Summit 12
PDF
Learn The Fundamentals of Corda Development at 101Blockchains
PDF
The Bitcoin Lightning Network
PPTX
BC-M5 optional subject for mca 3rd semq
PPTX
The Foundation of Smart Contract Development on Ethereum
PDF
An introduction to blockchain and hyperledger v ru
PDF
Cloud Native SDN
PPTX
CCS339 Unit IV is explained in detail for easy understanding
PDF
The Next Era of L2s: Scalable zkRollups with Polygon CDK & Zeeve RaaS
PDF
WHAT IS CRYPTOCURRENCY EXPECTED APPLICATIONS.
PPTX
DevDay: Mike Hearn Keynote, R3
 
PDF
Ethereum in a nutshell
PDF
Ethereum Solidity Fundamentals
Building Blockchain Application with Corda
Ethereum Tutorial - Ethereum Explained | What is Ethereum? | Ethereum Explain...
How to run ethereum smart contracts on hyperledger fabric
Ivy Block - technicals.pdf
Introduction to Ethereum Smart Contracts
Blockchain Tokenization
EthereumBlockchainMarch3 (1).pptx
Network Enhancements on BitVisor for BitVisor Summit 12
Learn The Fundamentals of Corda Development at 101Blockchains
The Bitcoin Lightning Network
BC-M5 optional subject for mca 3rd semq
The Foundation of Smart Contract Development on Ethereum
An introduction to blockchain and hyperledger v ru
Cloud Native SDN
CCS339 Unit IV is explained in detail for easy understanding
The Next Era of L2s: Scalable zkRollups with Polygon CDK & Zeeve RaaS
WHAT IS CRYPTOCURRENCY EXPECTED APPLICATIONS.
DevDay: Mike Hearn Keynote, R3
 
Ethereum in a nutshell
Ethereum Solidity Fundamentals
Ad

Recently uploaded (20)

PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Encapsulation theory and applications.pdf
PDF
Approach and Philosophy of On baking technology
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPTX
Machine Learning_overview_presentation.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
cuic standard and advanced reporting.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Unlocking AI with Model Context Protocol (MCP)
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Electronic commerce courselecture one. Pdf
Spectral efficient network and resource selection model in 5G networks
Building Integrated photovoltaic BIPV_UPV.pdf
Encapsulation theory and applications.pdf
Approach and Philosophy of On baking technology
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Machine Learning_overview_presentation.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Machine learning based COVID-19 study performance prediction
Programs and apps: productivity, graphics, security and other tools
cuic standard and advanced reporting.pdf
Encapsulation_ Review paper, used for researhc scholars
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Network Security Unit 5.pdf for BCA BBA.
Unlocking AI with Model Context Protocol (MCP)

How do private transactions work on Quorum

  • 1. Proprietary and Confidential © 2019 1 Syahrul Nizam, Developer Advocate Quorum meetup How do private transactions work on Quorum?
  • 2. Proprietary and Confidential © 2019 2 Presented by Syahrul Nizam Developer Advocate Blockchain enthusiast with experience in creating & deploying Smart Contracts on Ethereum Proprietary and Confidential © 2019 2 Presented by Syahrul Nizam Developer Advocate Blockchain enthusiast with experience in creating & deploying Smart Contracts on Ethereum
  • 3. Proprietary and Confidential © 2019 3 The innerworkings of Ethereum The Ethereum network is made up of nodes, each running an Ethereum client like Geth Miners Ethereum Node Blockchain Storage Genesis block Block 1 Block (n-1) Block n Interface Developers
  • 4. Proprietary and Confidential © 2019 4 What is Quorum? 1. Quorum is a Ethereum based blockchain, designed for use by Enterprises. 2. It provides smart contract capability, much like Ethereum 3. What makes Quorum special is that it has support for private transactions, which is impossible on Ethereum (somewhat)
  • 5. Proprietary and Confidential © 2019 5 Transactions in Ethereum A graphical representation of how transactions are propagated in a regular Ethereum network Application creates a transaction payload Transaction payload is compiled into solidity bytecode Transaction payload is sent via RPC or Websockets to an Etheruem node Ethereum node converts this solidity bytecode to EVM opcodes Opcodes are a set of instructions for the EVM to execute Stored on the Blockchain
  • 6. Proprietary and Confidential © 2019 6 Quorum nodes A quorum node consists of two things…. A minimalist Geth node to provide EVM functionality A Tessera node for private transaction support Public DB PrivateState DB Private DB Connected Connected
  • 7. Proprietary and Confidential © 2019 7 Let’s visualize the private transaction Application Layer Quorum transaction payloads are identical to Ethereum’s transaction payloads with an additional privateFor parameter Alice wishes to make a private transaction to Bob She supplies Bob’s Tessera public key in the privateFor parameter of the transaction payload:
  • 8. Proprietary and Confidential © 2019 8 Sending the transaction payload The application then sends the transaction payload to Alice’s Quorum node Application Layer
  • 9. Proprietary and Confidential © 2019 9 Quorum node The Quorum node detects the presence of the privateFor parameter in the transaction payload. Each Quorum node comes with it’s own paired Tessera Node ( Transaction Manager + Enclave ) Transaction Payload Geth Client Transaction Manager Enclave Quorum Node Geth Client Transaction Manager Enclave Quorum Node Tessera Node Tessera Node
  • 10. Proprietary and Confidential © 2019 10 Tessera node (Alice’s) Transaction manager makes a call to the Enclave with the transaction payload Enclave verifies the transaction payload Enclave Enclave generates a random nonce(an arbitrary number) and a RMK (an arbitrary password) Transaction Manager Enclave
  • 11. Proprietary and Confidential © 2019 11 Tessera node (Alice’s) Enclave EncodedABI payload is encrypted using the nonce and RMK
  • 12. Proprietary and Confidential © 2019 12 Tessera node (Alice’s) Enclave Alice’s Tessera Private Key and Bob’s Tessera Public Key (supplied in transaction payload) and a random Number is used to encrypt the RMK itself Encrypted RMK and encrypted payload sent back to Alice’s TMTransaction Manager
  • 13. Proprietary and Confidential © 2019 13 Tessera Node (Alice’s) Transaction Manager The transaction manager (Alice) hashes the encrypted payload, and uses the hash as a key to store the encrypted payload & encrypted RMK in the private database This same information is sent to Bob’s transaction manager and stores in his own private database Bob’s Transaction manager acknowledges receipt Alice’s transaction manager then returns hash to Alice’s Quorum node Bob’s Transaction Manager
  • 14. Proprietary and Confidential © 2019 14 Quorum node (Alice’s) Alice’s Quorum node then replaces the data parameter in the transaction payload with the hash received from Alice’s transaction manager It also replaces the v value in the transactional receipt to tell other quorum nodes that it is a private transaction, and not a normal transaction with nonsensical bytecode Now the transaction can be propagated by the node into the blockchain normally as per standard Ethereum protocol. Every quorum node will receive this private transaction. Note the change in the data parameter
  • 15. Proprietary and Confidential © 2019 15 Quorum network 1. All parties will receive the private transactions 2. Everyone will try to decrypt it How do nodes know that they are party to the private transaction??
  • 16. Proprietary and Confidential © 2019 16 Quorum Node (Bob’s) Bob is party to the private transaction Bob’s quorum node receives a transaction receipt with a V value of 37 or 38. Bob’s quorum node then obtains the hash in the data parameter of the transaction payload Bob’s transaction manager will do a lookup for this hash and see if it exists! Transaction ManagerQuorum Node
  • 17. Proprietary and Confidential © 2019 17 Tessera Node (Bob’s) Decryption Since Bob holds the transaction, he can obtain the encrypted payload and encrypted RMK in his private database Using his Tessera Private Key, he can first unencrypt the encrypted RMK Using this unencrypted RMK, he can now decrypt the encrypted transaction payload The decrypted payload is valid bytecode Bytecode sent back to Bob’s transaction manager
  • 18. Proprietary and Confidential © 2019 18 Quorum Node (Bob’s) Using the unencrypted bytecode, the EVM can now do computations as per normal. Bytecode is discarded once it’s used and privateStateDB is updated accordingly to the instructions in the opcodes
  • 19. Proprietary and Confidential © 2019 19 Quorum Nodes (Candice) Candice is not party to the transaction sent by Alice Candice’s quorum node receives a transaction payload with a V value of 37 or 38 Candice’s quorum node then obtains the hash in the data parameter of the transaction payload Candice’s transaction manager will look up this hash, and the corresponding encrypted data does not exist. Candice’s node skips this transaction.
  • 20. Proprietary and Confidential © 2019 20 Demonstration & Code 1. Create a project on Chainstack 2. Download this repository : https://github.com/chainstack/quorum-iot-tutorial 3. Install Node.JS 4. Enjoy! Let’s spin up a Quorum network using Chainstack
  • 21. Proprietary and Confidential © 2019 21 Summary Transaction Payload Quorum Node Transaction Manager Enclave TxPayload sent Send txPayload to TM Send to Enclave Return encrypted data Update PrivateDB Returns Tessera Hash Quorum Node Transaction Manager Enclave Propagates transaction with v value of 37/38 Send Encrypted data Return decrypted data as bytecode Returns Bytecode Checks for hash PrivateDB Send txPayload to TM Returns Encrypted Data (1) (2) (7) (3) (4) (5) (6) (8) (9) (10) (12) (13) (11) Send to Bob’s TM (14)
  • 22. Proprietary and Confidential © 2019 22 What’s next? 1. Visit our documentation site to quickly create your own Dapp platforms https://docs.chainstack.com 2. Create an account on Chainstack (2 week trial) https://console.chainstack.com 3. Have fun! Get started with Chainstack
  • 23. Proprietary and Confidential © 2019 23 Q & A
  • 24. Proprietary and Confidential © 2019 24 Contact syahrul.nizam@chainstack.com Helpful links https://docs.chainstack.com https://console.chainstack.com

Editor's Notes

  • #3: I’m Syahrul– developer advocate for Chainstack. I’m pretty much a blockchain enthusiasts and I love experimenting with blockchain technologies. It's fun because everything about blockchain is always changing. Hey maybe this tutorial might be outdated in 6 months and it will no longer work! The space is moving at lightspeed and whats nice is that you can always learn new things