2. Bitcoin
• Released in 2009 via a niche mailing list
• Now world’s largest digital currency
• Six hundred trillion SHA256 computations
performed per second
• Worth over $1k per bitcoin – 24,000%
growth since launch
• Buy pretty much anything
3. Blockchain: What’s Special?
• Decentralized database maintaining a
growing list of records
• Peer-to-peer – not owned by a single
instance
• Any member can add it (if other
participants agree)
• State is distributed to all nodes
• Immutable, tamper-proof
• Trusted transfer of assets, value &
ownership
15. Implementation Pattern
Blockchain DB e.g.
BigchainDB
Client 1
Client
2
Admin
Client
10,000
Co-
Admin 1
Co-
Admin 2
Co-
Admin
21
control control
data
Distributed DB
MongoDB
Core DB
MongoDB
Client 1
Client
2
Client
10,000
data
16. How Real is This?
Electric Vehicle
Charging
Music IP Licensing
Trade Stores
Embedded Database Layer
17. Why MongoDB for the Blockchain Database
Scalability
& Performance
Always On,
Global Deployments
Data Model FlexibilityExpressive Query Language
& Secondary Indexes
Strong Consistency &
Data Integrity
Enterprise Management
& Security
18. Learn More
• Visit MongoDB Stand S12
• Download Enterprise Grade
Blockchain whitepaper
• Book a 2-hour workshop
22. Processing
(e.g. Ethereum, Hyperledger)
File System
(e.g. IPFS)
Database
Blockchainified
MongoDB
(eg BigchainDB)
Applications
DecentralizedCentralized
Processing
(e.g. local server, EC2)
File System
(e.g.
Linux FS,
HDFS, S3)
Database
MongoDB
Applications
Processing
(e.g. local server, EC2)
File System
(e.g.
Linux FS,
HDFS, S3)
Database
Blockchainified
MongoDB
(eg BigchainDB)
Applications
Database
MongoDB
Partly Decentralized
Enterprise Blockchain Maturity Model
Notes de l'éditeur
Fastest growing database – built on a non-relational, NoSQL design, customers in over 50% of F100, used as the database by the Bosch SI IoT suite
IoT is a surging use case for us – not just Bosch, but also likes of AXA, GE Predix.
Over the past 12 months, we’ve seen an explosion interest in blockchain. So this session brings those 2 topics together – look at the tech, use cases, and how you can started
When people start thinking about blockchain, usually gravitate towards bitcoin as that is the largest working demonstration of what blockchain can do
Some of tech below bitcoin – blockchain and distributed ledger is inherently useful beyond digital currency
The blockchain can programmatically instantiates trust between the transaction’s counterparties. On left, traditional trade settlement system where a clearing house records all transactions between different banks – recorded in a central ledger, on right, have that same process taken to the blockchain – now each party has its own copy of the ledger, and no-one can alter it without agreement from all of the other parties - issue and transfer assets, without reliance on a central entity – which business processes faster, safer and cheaper
In November 2016 Barclays claimed they had completed the world’s first blockchain-based global trade transaction – compressing a process that would normally have taken up to 20 days to just a matter of hours: A blockchain-based letter of credit closed a transaction between Ornua (formerly the Irish Dairy Board) and the Seychelles Trading Company, guaranteeing the export of almost US$100,000 worth of cheese and butter.
WEF 2016 report on blockchain predicted blockchain would be “beating heart of finance within 5 years
R3 Consortium – over 70 financial services
Depository Trust & Clearing Corporation (DTCC) moving $11tn worth of credit derivatives – speed up post trade settlement, reduce operational costs
Post trade estimated to cost banks ww $20bn a year
See many other apps – Govt of Honduras using blockchain for land registry, govt of Estonia using it for citizen identification
This chart from dzone – goes thru 8 use cases – manu, to retail, to connected vehicles
Will all sensor data go onto the blockchain? No – but when dealing with trust and ownership, then it makse sense
Think about tracking the provenance and authenticity of food – as Walmart is doing with farm to fork initiatives
Think maintenance records of connected vehicles
Think supply chains where sensors record shipment of products, against which invoices can automatically be generated by smart contracts
Transactions coming from the IoT app can be recorded here in the blockchain
https://dzone.com/articles/what-blockchain-can-do-for-the-internet-of-things
However 1 “inconvient truth” if we were going to model blockchain app on bitcoin model
How is this going to work for an iot app that could be ingesting hundreds of thousands of sensor readings every second
How are we going to scale this thing?
When we look at blockchain implementations – there are 3 core design principles we can optimize on
Consistency: every node can see the same data
Decentralized Any node can partiticipate in validation
Scalability: performance and capacity
Getting all 3 is not impossible, but computer science hasn’t solved that yet
So optimizations are made to meet different app requirements
Permissionless, public ledgers – we see bitcoin and ethereum
Any node can act as a validator
Comes at the expense of scalability – CPU power and in network bandwidth
In terms of enterrpise usage – optimizing around consistency – every data can see the same data, and scalability, but they don’t have full decentralization – in other words a subset of nodes are allowed to validate, but not all –
Think about a supply chain – could have a private blockchain where a permissioned node for each compnay in the supply chain can validate – but not every node that has a copy of the blockchain is invited to validate the transaction
Still have core principles of blockchain, without the sscalability challenges, and you know exactly which nodes are authorized to validate a transaction – impt for regularoy compliance in knowing who your data controllers are
Sometimes sparks religious debate, but this is a more practical manifestation
When we look at the tech stack to implement blockchain – we see 3 s/w layers
1 – app layer
Middle lyer Layer implements blockchain controls, ie consensus & immutability.
Database layer – that stores the blockchain contents
For blockchain vendors – they can try and build the blockchain layer and the database themselves But building databases is hard
Another approach is to start with a proven distributed database, and then build the blockchain on top of that
Approach taken by R3 corda ledger, or BigChainDB
Drill into each a little more
What does that blockchain software do?
Enforces Decentralized: it handles which nodes are authorized to adminster or validate transactions. Impt because can’t have just one admin, since that would be centralized! Rather, there are several co-admins, which collectively share control. Each admin node votes on whether each incoming transaction is valid and which handles consensus
Immutable : hashing functions to make each block point at its preceding block
Asset transfer:manage keys that are assigned to each block to approve a transaction, execution of code as transactions commit to the blockchain – ie automatically issuing an invoice when goods delivered to the customer
Queeyability – ability to query the blockchain to validate transactions, and to extract intelligence from the data in the blockchain
Scalability – keep pace with growth in users and data
Ent hardended – robust security, FT, backup and recovery, data distrubtion
On the left, we have a regular mongodb – serving an iot app which is under control of a single entity - single admin. This is how mongodb is used
On right – MongoDB with Blockchain s/w about it – see multiple admins – providing blockchain properties above, and controlled by multiple admins
Bigchain – 1 of the leading blockchain s/w providers. Approaching GA, impressive list of partners working on blockchain projects across multiple industries, including Cap Gemini, Interledger – protocol for connecting multiple ledgers, Everledger – build public and private blockchains – targeting finsvs and supply chain
Why does mongodb make a great database for blockchain. MongoDB based on nexus, best of relational and nosql
This aligns really well with the requirements of blockchain
Perform rich queries against the blockchain – checking the lineage of the block – use graph to query back against a block’s hash. Also perform rich search and aggregations for analytics against blockchain data to power operational intelligene
Strong consistency needed for strict ordering of blocks. ACID guarantees on each block
Need robust security controls – to control access permissions, for encryption, for auditing for reg compliance
Blocks themselves are rich data structures, storing many transactions, with different inputs, outputs and payloads. Model that as a JSON document, rather than into a rigid row and column format of a RDBMS is much simpler – and blockchain apps are fast moving, agile development, so a flexible schema is essrential
Scale out, deploy across DCs or regions for always-on
Once parties initiate a transaction, its signed with a private key and posted to the network. Here its packaged with other transactions into a block, which is then cryptographically hashed and validated by authorized peer nodes, agreeing on state through a consensus mechanism. Once consensus has been agreed by authorized nodes, the block is immutably recorded into the ledger, and then distributed to all other nodes on the blockchain.
Each block stores a timestamp and a link to the previous block, thus creating a chained sequence of records.
This process of chaining provides an audit trail for every block recorded in the blockchain.
any attempt to retrospectively alter the contents of the block is detected by all nodes participating in the blockchain.
We can see this type of deployment patter being part of a blockchain evolution, or maturity model
On the left – a traditional centralized app
In the moddle – where we are now, partly decetnralized
Moving in the future to one that is completely decentralized