Date post: | 16-Mar-2018 |
Category: |
Technology |
Upload: | nelson-petracek |
View: | 723 times |
Download: | 0 times |
Presented By: Nelson Petracek, Office of the CTO
www.linkedin.com/in/npetrace
https://www.tibco.com/solutions/blockchain
October 7/8, 2017
Extending Blockchain to Enterprise Applications
Messaging: Most people have heard of Bitcoin, and also know that blockchain is one of the underlying concepts behind this cryptocurrency. However, the ability to share information via a shared, trusted distributed network with embedded business logic also has many potential benefits for an enterprise deployment. Join this session to hear about blockchain, enterprise use cases, and associated concepts such as smart contracts. We will build a smart contract in Java or Go on the Hyperledger Fabric blockchain technology, and also discuss what we, as technologists, should be thinking about as we look to apply these concepts across various enterprise use cases.
Extending Blockchain to Enterprise Applications
© Copyright 2000-2017 TIBCO Software Inc.
Core Concepts
© Copyright 2000-2017 TIBCO Software Inc.
Extending Blockchain: Core Concepts
Distributed System of
Record
Embedded Business
Terms
Security, Verifiability,
& Provenance
Consensus &
Agreement
© Copyright 2000-2017 TIBCO Software Inc.
Extending Blockchain: Core Concepts
Blockchain may be thought of as a distributed data management platform
where data may be shared across a distributed (decentralized) network, securely
and with (potentially) business logic.
© Copyright 2000-2017 TIBCO Software Inc.
Extending Blockchain: Core Concepts
• Enterprise use cases require the need to automatically execute programmable logic within the blockchain network.
• Remove slow, inaccurate paper-based systems.
• Automate transaction “workflow”.
• But with no central third party.
• Typically a key discussion point surrounding private / permissioned or consortium blockchains.
• Required to obtain agreement across various network participants to maintain accuracy, compliance, and trust.
• Obtain agreement before transaction is accepted.
© Copyright 2000-2017 TIBCO Software Inc.
Extending Blockchain: Smart Contracts
• Smart Contracts represent a way to introduce business logic into the blockchain. • May be triggered by transactions or external events.
• Logic may be executed “on-chain” by the participants in the network, with no central coordinator. • Code is run in parallel. • Results are compared and agreed upon.
• Opportunity to reduce risk, increase efficiency, and automate the execution of business logic across the network without a central party.
© Copyright 2000-2017 TIBCO Software Inc.
Extending Blockchain: Smart Contracts
• Smart contract execution is computationally more expensive than “local” execution, but there is no single source of control. • Multiple participants run the same code.
• Code can typically be viewed by all participants, which may or may not be desired. • Code is part of the network itself.
• Bitcoin itself has limited capacity for implementing generic types of “general purpose” business logic. • Logic is essentially built into the network (“payments” scripts).
• Sidechains and approaches such as MAST (Merkelized Abstract Syntax Trees) may reduce this limitation.
Extending Blockchain: Smart Contracts
© Copyright 2000-2017 TIBCO Software Inc.
• Oracles feed data from outside sources into smart contracts.
• Oracles can be: • Software-based • Hardware-based • Consensus-based
• Need to consider the impact to security and trust as data is being retrieved from an outside (potentially tampered) source.
Oracles (Off Chain)
• Meant to address problems associated with confidentiality on blockchains. • e.g. Bitcoin transaction data
viewable by all network participants.
• Prove the integrity of blockchain transactions without revealing information about the sender, recipient, asset, etc.
• Zcash, Quorum
Zero Knowledge Proofs
© Copyright 2000-2017 TIBCO Software Inc.
Extending Blockchain: Smart Contracts
Smart Contracts represent a method for controlling how changes are made to the
underlying blockchain “database”, in a non-centralized and (potentially) untrustworthy
environment.
So What Can We Do With This?
Many Use Cases Under Discussion…
© Copyright 2000-2017 TIBCO Software Inc.
Product Provenance
Perishables, valuables (art, jewelry), packages,
containers, equipment, pharmaceuticals.
Health Care
Supply management, electronic health records,
claims processing, registries.
IoT
Machine to machine micropayments, identity,
automated resource sharing.
Government
Voting, licenses, vendor interactions, identity, information sharing,
compliance.
And Many Others…
Financial instruments, insurance premiums, music
rights, ownership rights, payments, ...
Consumer Contracts
Apartment rentals, energy transactions, airline
compensation, real estate, licenses, car leases.
Extending Blockchain: Ethereum (https://www.ethereum.org/)
© Copyright 2000-2017 TIBCO Software Inc.
• Blockchain platform for executing smart contracts. • Programmable blockchain that may be used to create operations of any
complexity.
• Turing complete
• Requires “proof of work” (“Ethash”) in order to successfully mine a block.
• “Suited for applications that automate direct interaction between peers or facilitate coordinated group action across a network” (ethdocs.org)
• Contracts typically are written in “Solidity” (similar to Javascript).
• Native value token: “ether” (ETH). • Various denominations
• Used for pay for computation by purchasing “gas”.
Extending Blockchain: Hyperledger Project (https://www.hyperledger.org/)
© Copyright 2000-2017 TIBCO Software Inc.
• Open source effort to advance cross-industry blockchain technologies. • Hosted under the Linux Foundation.
• Community for multiple projects related to blockchain.
• Encourages interoperable components.
• “Hyperledger Fabric”: implementation of blockchain technology intended as a foundation for developing blockchain applications. • Designed as a modular architecture.
• Hosts smart contracts called “chaincode”, run in containers.
• Other projects: Sawtooth Lake, Iroha, Burrow, Indy.
• Not a single blockchain, and has no “built-in” cryptocurrency tokens.
Is a Blockchain All I Need?
© Copyright 2000-2017 TIBCO Software Inc.
Extending Blockchain: Challenges & Considerations
In general, in addition to the items discussed, we also have considerations such as:
Governance & Stewardship Data Privacy Legal &
Regulatory Risks
Deployment, Management, &
Logging
New Technology, “Picking a
Winner”
© Copyright 2000-2017 TIBCO Software Inc.
Smart contracts show a lot of promise, but there are also concerns such as the following:
Programming Errors
Required Collaboration
Supporting Infrastructure
Needs
Legal Implications
Lack of Standards
Extending Blockchain: Challenges & Considerations
Extending Blockchain: Challenges & Considerations
© Copyright 2000-2017 TIBCO Software Inc.
For the appropriate use case, blockchain can provide “part” of the solution. However, during implementation, there are still questions to answer:
How Do I Get Data In/Out of
the Blockchain?
How Do I Extend Smart Contract
Logic To My Enterprise?
How Do I Respond To
Events from my Ledger?
How Do I Analyze Data
Contained Within the Ledger?
Can I Provide Controlled, Managed Access to
Blockchain Capabilities?
Extending Blockchain: Additional Capabilities
© Copyright 2000-2017 TIBCO Software Inc.
Off-Chain Storage
Off-Chain Execution
Distributed Ledger Blockchain
Security On-Chain Execution & Storage
Blockchain APIs HFC SDK
REST HTTP
JSON RPC Web3
Blockchain Proxy Layer Smart Contracts
ChainCode, Solidity, …
Data Distribution Transport
Microservices Event Handlers
API Management Analytics
Extending Blockchain: Additional Capabilities
© Copyright 2000-2017 TIBCO Software Inc.
Off-Chain Storage
TIBCO GraphDB ActiveSpaces
Off-Chain Execution
TIBCO (Various)
Distributed Ledger Blockchain
Security On-Chain Execution & Storage
Blockchain APIs HFC SDK
REST HTTP
JSON RPC Web3
Blockchain Proxy Layer
TIBCO Hybrid Integration
Smart Contracts ChainCode, Solidity, …
TIBCO BusinessEvents
Data Distribution Transport
TIBCO FTL / eFTL
Microservices & Process Automation
TIBCO Hybrid Integration, AMX BPM Event Handlers
TIBCO BusinessEvents, StreamBase
API Management
TIBCO Mashery Analytics
TIBCO Spotfire, Live Datamart
Demo Time!
Demonstration: Use Case and Components
© Copyright 2000-2017 TIBCO Software Inc.
On Vehicle Purchase Case Creation,
Accept/Reject Price
1
Retrieve Vehicle Details via VIN from NHTSA REST service.
2
Offer to Purchase Vehicle, Record Transaction on
Blockchain
3
Submit Registration Request, Record Transaction on
Blockchain
4
Complete Vehicle Purchase Case Management
Process
5
Demonstration: Use Case and Components
© Copyright 2000-2017 TIBCO Software Inc.
Docker Container(s)
HFC SDK REST
Chaincode
Hyperledger Fabric
(CA, Orderer,
Peer, CLI)
Hyperledger Composer Hyperledger Explorer
BWCE
Microservices • v1 • v2
• Composer utilized to generate Fabric components. • Chaincode
• REST API stubs
• Blocks / transactions viewable via Hyperledger Explorer.
• TIBCO BusinessWorks Container Edition (BWCE) utilized to expose related microservices and record transactions on the blockchain. • Hosted within Kubernetes / Istio
service mesh.
Kubernetes (minikube) / Istio
Service/Deployment/Ingress
RouteRuie
Demonstration: Use Case and Components
© Copyright 2000-2017 TIBCO Software Inc.
Assets
Vehicle
o String vin (key) o String make o String model o Integer year o String manufacturer o Boolean registered --> Purchaser owner
Participants
Purchaser RegisteredOwner
o String phoneNumber (key) o String firstName o String lastName Inherits from Person
Transactions
Purchase RegisterAndInsure
o Double purchaseAmount --> Vehicle vehicle --> Purchaser purchaser
--> Vehicle vehicle --> RegisteredOwner registeredOwner
Events
Purchase, Registration Notification
--> Vehicle vehicle
Code Walkthrough…
Extending Blockchain: Recommendations
© Copyright 2000-2017 TIBCO Software Inc.
• Not every problem requires a blockchain! • Peer to peer networking, distributed data stores, and cryptography
have been around for some time.
• Need to look at a number of factors. For example: • Number of network participants.
• Required trust and integrity levels.
• Amount of data to be stored.
• Performance requirements and transaction processing times.
• Ability to automate business interactions across a network.
• A blockchain is only part of the equation.
Extending Blockchain: Recommendations
© Copyright 2000-2017 TIBCO Software Inc.
• Gain awareness through experimentation.
• Cloud based services make it easier to get started.
• Answer the factors (previous slides), and identify use cases / value appropriate for your business.
• Determine how the key characteristics of a blockchain can be beneficial to the business network.
Distributed System of
Record
Embedded Business
Terms
Security, Verifiability,
& Provenance
Consensus &
Agreement
More Information
© Copyright 2000-2017 TIBCO Software Inc.
TIBCO Blog and Community: http://www.tibco.com/blog/ https://community.tibco.com/
https://www.tibco.com/solutions/blockchain
Questions?