introducing r3 corda™ a distributed ledger designed for financial services

33
Welcome | Microsoft Cloud User Group Razi Rais | Microsoft www.linkedin.com/in/razirais Meeting every month Open to everyone! www.meetup.com/msftcloud

Upload: razi-rais

Post on 22-Jan-2018

433 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Introducing r3 corda™  a distributed ledger designed for financial services

Welcome | Microsoft Cloud User Group

Razi Rais | Microsoft www.linkedin.com/in/razirais

Meeting every month

Open to everyone!

www.meetup.com/msftcloud

Page 2: Introducing r3 corda™  a distributed ledger designed for financial services

Introduction to the Corda DLT Platform

Microsoft Cloud NYC User Group

October 2017Tom Menner

Director, Solution Architect

[email protected]

linkedin.com/in/tommenner

Page 3: Introducing r3 corda™  a distributed ledger designed for financial services

Agenda

3

• Overview

• Corda Features

• Corda Technical Details and Network Deployment

• Corda Roadmap

• Azure Integration

Page 4: Introducing r3 corda™  a distributed ledger designed for financial services

Evolution from Blockchains to Distributed Ledgers

Altcoin Rush

Meta Protocols,

Colored Coins, and

Tokenization

Towards blockchain

inspired technologies

– DLT

2009 Today

Bitcoin

Release

Hyperledger

Project

2015

Extends the concept in

Bitcoin of ‘decentralized

storage to ‘decentralized

computer’

R3 Consortium

begins

Corda V1

Corda open

sourced

4

Page 5: Introducing r3 corda™  a distributed ledger designed for financial services

Defining characteristic of a distributed ledger

5

Distributed ledgers are systems that enable parties who

don’t fully trust each other to form and maintain

consensus about the existence, status and evolution of a

set of shared facts.

Page 6: Introducing r3 corda™  a distributed ledger designed for financial services

Distributed ledgers at a glance

Cryptography to ensure identity authentication for

each transaction

Non-repudiation/immutability to preserve

integrity of data and create an audit trail

Smart contracts for the automatic execution of

business logic when certain criteria are met

Shared ledger so each participant sees the same

view of the same data, updated in real time,

subject to permissioning

Distributed consensus to ensure the state of the

ledger represents the agreed-upon truth of all

stakeholders

Ledgers

Distributed

Ledgers

Blockchains

Crypto-

currencies

Non-blockchains

Industry

ledgers

6

Page 7: Introducing r3 corda™  a distributed ledger designed for financial services

Blockchain-inspired: takes best

attributes from Bitcoin, Ethereum, and

others.

Enterprise grade: built specifically for

financial markets.

Data privacy: transactions info

propagated only to relevant nodes.

Consensus: achieved at individual deal level,

rather than system level. Supports a variety

of consensus mechanisms.

Regulator-focused: design directly enables

regulatory/supervisor observer nodes.

Smart contract: strong link between legal

prose and smart contract code.

A unique shared ledger approach

Easy integration: reuse existing developer skills and make integration with bank

systems easy and safe. Query and join the ledger to existing DBs with SQL, and code

contracts in modern, standard languages like Java.

7

Page 8: Introducing r3 corda™  a distributed ledger designed for financial services

Corda Features

Page 9: Introducing r3 corda™  a distributed ledger designed for financial services

Corda salient features

• No blockchains, no mining; instead a permissioned network

• No broadcast: all communication is point-to-point

• We reject the notion that data should be broadcast to all participants – or to

cumbersome, predefined groups

• Message senders need to know the identity of recipients

• Data is shared on a need-to-know basis and peers only see what they need to

see

• Not sending is preferable to sending and encrypting

• Unspent Transaction Output (UTXO) for recording states (like Bitcoin)

• Platform is JVM-based, written in Kotlin (can use Java, Clojure, etc)

• Supports industry-standard protocols: AMQP, JDBC, PKIX, etc

• No cryptocurrency but can represent digital cash

9

Page 10: Introducing r3 corda™  a distributed ledger designed for financial services

The Corda Ledger

ALICE BOB

ED

CARL

DEMI

1

7

5

94 3

2

6

8

ALICE = { }1 7

BOB = { }1 7 6 5

CARL = { }9 4 6 5 2 3

ED= { }9 4 38

DEMI= { }2 3 8

The ledger from each peer’s point of view is the union of all

intersections with other network peers

(some of which may be the empty set)

Numbered circles

represent unique

shared facts

10

Page 11: Introducing r3 corda™  a distributed ledger designed for financial services

Anatomy of a bilateral ledger

ALICE BOB

1

7

• There is no “central ledger”

• Each network peer maintains a separate vault of facts

(akin to rows in a DB table)

• All peers to a shared fact store identical copies

• Not all on-ledger facts have to be shared with other

peers

• The black square “11” is an example of a on-ledger

fact not shared with any peers

• Immutable: easy to do analysis on a static snapshot of

the data and reason about the contents

• No accounts: easy to apply transactions in parallel

• Transaction ordering: impossible to mis-order

transactions due to reliance on hash functions to identify

previous states

• Consensus: conflict is the double spend problem

• Auditability: full history of all activity is recorded

6

5

Id Fact

1 “Much consensus”

7 “So bilateral”

11 “Wow ledger”

Id Fact

1 “Much consensus”

6 “Very fact”

7 “So bilateral”

5 “amaze network”

11

11

Page 12: Introducing r3 corda™  a distributed ledger designed for financial services

Flows

Flows are light-weight processes used to coordinate interactions required for peers to reach consensus about shared facts.

State Object

States are immutable objects that represent (shared) facts such as a financial agreement or contract at a specific point in time

Transaction

Transactions consume input states and create output states.

The newly created output states replace the input states which are marked as historic.

Consensus

Parties reach consensus on the evolution of a shared fact. This is done by testing the validity (by way of contract code) and uniqueness (by way of the notary) of the transaction.

Corda: Key Concepts

IOU

CONTRACT REF

IOU STATE

PROPERTIESFrom: Alic e

To: Bob

Amount: £10

Due: 01/ 03/ 2017

Paid: £5Penalty: 20%

PARTICIPANTS

AliceBob

OUTPUT

STATEINPUT

STATE

ALICE

BOB

NOTARY

12

Page 13: Introducing r3 corda™  a distributed ledger designed for financial services

Transactions

• Any peer may create a transaction proposal

• Transaction proposals are uncommitted by default

• Before a transaction proposal is committed it must first be digitally signed and

then verified and by all required peers on a need-to-know basis

• Once a transaction is committed it marks the input state references as historic

and creates new output states reflecting an updated ledger

13

Page 14: Introducing r3 corda™  a distributed ledger designed for financial services

Flows

• With Corda, peers communicate on a point to point basis

• Most distributed ledger platforms use message broadcasting and gossip networks to share data

• To communicate, peers must specify message recipients

• Recall that to commit a transaction, multiple peers are often required to sign and verify it

• To commit a transaction proposal, a workflow or “flow” of messaging, signing, verifying, among

other things, is required

• Peers on a Corda network may have thousands of counter-parties and hundreds of thousands of

concurrent flows

14

Page 15: Introducing r3 corda™  a distributed ledger designed for financial services

Two types of consensus

In Corda, verification consensus involves

peers reaching certainty that a transaction:

• is signed by all required peers listed

in the commands of a flow;

• and satisfies the constraints defined

by the contracts pointed to by the input

and output states.

However there is an additional step

required…

Peers reach consensus over transactions in two ways

15

The “double spend” problem for on-ledger

issued assets can be mitigated with

uniqueness consensus

• Uniqueness consensus is provided by

notary services

• When a state is issued on-ledger it is

assigned a notary service

• The assigned notary ensures the state is

not used as an input to a transaction

more than once for the duration of the

state’s lifecycle on-ledger

• The point of transaction finality is reached

when the specified notary service signs

the transaction

Page 16: Introducing r3 corda™  a distributed ledger designed for financial services

Example: Cash Transfer Flow

16

INITIATOR

(ALICE)SIGN TX

SEND(TX + SIG)

GET

DATA

FROM

INTERNA

L

SYSTEM

INSPECT

AND

VERIFY TX

SEND(TX + SIG)

CREATE

TRANSFE

R TX

RESPONDE

R

(BOB)

SIGN TX

INSPECT

AND

VERIFY TX

COMMIT

TX

COMMIT

TX

FLOW SUSPENDED

AND

CHECKPOINTED

END

END

OUTPUT

CASH

TransferINPUT

CASH

Page 17: Introducing r3 corda™  a distributed ledger designed for financial services

Corda Technical Details and Network Deployment

Page 18: Introducing r3 corda™  a distributed ledger designed for financial services

A Corda network is comprised of:

• A doorman

• Two or more Corda nodes

• A network map service

• One or more notary services

• Zero or more oracles

Network overviewWhat is a Corda Network?

18

Page 19: Introducing r3 corda™  a distributed ledger designed for financial services

Services Interface

Va

ult

SG

X

Me

ssa

gin

g

Ide

ntity

RPC

CorDapp UI

Me

ssa

ge

qu

eu

e

CorDappCorDappCorDapp

Relational

DBLDAP

Sys. M

gt.

Mgt. Tools

Reporting

Priv

ate

ne

two

rkin

g

Corda Mgt.

Console

R3

Partner

Integration

Host O.S.

Sandboxed JVM

Flo

ws

Ke

y M

gt

Nota

ry

Corda node architecture

Page 20: Introducing r3 corda™  a distributed ledger designed for financial services

Corda Network: Detailed Overview

13

5

4

22

• Doorman: Enforces rules regarding the information nodes

must provide before being admitted to the network. If satisfied,

node’s identity is certified with a root-authority-signed TLS

certificate.

• Nodes: JVM run-time with a unique network identity running

Corda with two interfaces: network layer (interacting with other

nodes) and RPC (interacting with node’s owner)

• Network Map Service: Publishes IP addresses through which

all nodes can be reached along with certificates and services

provided by node

• Notary: Attest uniqueness, and possibility the validity, of ledger

updates.

• Oracles: Well-known service that signs transactions if they

state a fact and that fact is considered to be trust

A Corda Network includes a 1) doorman (“permissioning service”), 2) two or more Corda Nodes, 3) a network map service, 4) one or more notary nodes and 5) zero or more oracles

1

3

2

4

5

20

Page 21: Introducing r3 corda™  a distributed ledger designed for financial services

A Corda Network

• A Corda network is a fully connected graph

• No global broadcast or gossip network

• Communication occurs on a point-to point basis

only

• Peers communicate using AMQP/1.0 over TLS

• Network map service publishes list of peers

• Graph edges represent the potential to

communicate, not persistent connections

• Think Email and SMTP

A Corda network is an authenticated peer-to-peer network of nodes where each node is a Java Virtual Machine run-time environment hosting Corda services and executing applications known as CorDapps

21

Name: Network Map

Services: Network map service

Address: 192.168.0.2:10005

Public key: t453wv84bvt3cj5w3h

Name: Alice

Services: Cash Issuer, bond

issuer

Address: 192.168.0.3:10005

Public key: 5h54h5wv632vhy55

Name: Bob

Services: Cash Issuer, bond issuer

Address: 192.168.0.4:10005

Public key: 5hw03nnk43jknkj4n

NOTARY

NODE

PERMISSIONING SERVICE

CERTIFICATE SIGNING

1

Page 22: Introducing r3 corda™  a distributed ledger designed for financial services

What makes a Business Network? We expect that single business networks will typically be set up by a

consortium of banks and a system delivery partner, and they will include:

• A ledger agreement / set of rules

• An operating entity

• The specific ledger application for this ledger (CorDapp)

• Common network parameters that allow Nodes to transact

A network will comprise a number of Corda Nodes:

• Bank nodes

• A Doorman Node

• At least one Notary node

• Oracles

• Messaging Gateways (e.g. SWIFT)

Bank A

Bank B

Bank C

Bank D

Bank E

Doorman

Notary

Oracle

Gateway

Peer-to-Peer

communications

Connectivity to rest of

bank

Connectivity to

external services

But of course we want many of these business networks, and our

primary objective is for them to be able to interoperate..

22

Page 23: Introducing r3 corda™  a distributed ledger designed for financial services

23

TestNet ‘R3Net’R3Net on Azure

Change

management

challenge

Connectivity to Bank

test environmentsConnectivity to

Bank Production

environments

TestNet and ‘R3Net’

Bank production environments are highly

controlled and protected. There are many

change management hurdles for banks to

negotiate before they can connect Corda

nodes to their production environments

• Projects

• Demos

• Partners

• Development and

Test Focus

• Production

Applications

• Live business

• Permissioned FIs

only

Page 24: Introducing r3 corda™  a distributed ledger designed for financial services

Corda Roadmap

Page 25: Introducing r3 corda™  a distributed ledger designed for financial services

CorDapps(“Top of Stack” Corda-Based Applications)

‘R3Net’

Service

s

Corda Enterprise (Licensed)

Corda Core Components (Open Source)

25

R3 Platform Vision

Page 26: Introducing r3 corda™  a distributed ledger designed for financial services

26

Q1 2017 Q2 2017 Q3 2017 Q4 2017Corda Open Source

& Enterprise

Corda Enterprise

announcement

with key partners

Corda

maintenance

contract launch

Initial R3 Corda

network services

launch

Corda open source

v1.0 release

Corda Enterprise

v1.0 launch

Platform capable

of supporting pilots

First community-

organized Corda

Meetup

HQLAx announce

live pilot on Corda

Corda TestNet live

Corda Training

launched globally

Corda DemoBench

released

Corda open source

Beta

announcement

Corda support

contract launch

As the largest financial services DLT consortium, R3 is uniquely positioned to enable collaboration and the development of new DLT-based products and services for the financial services industry.

Corda Timeline 2017

Page 27: Introducing r3 corda™  a distributed ledger designed for financial services

Azure Integration

Page 28: Introducing r3 corda™  a distributed ledger designed for financial services

Partners provide powerful deployment options

• System integrators for development and implementation capabilities and experience, domain expertise, and successful project management to completion

• Microsoft and R3 have partnered to not only provide Corda on Azure, but Corda is adding capabilities to take advantage of rich features Azure is developing to support blockchain platforms

• Intel has partnered with R3 to make Corda capabilities availability within Intel’s Software Guard Extensions (SGX) hardware security module

• HPE is building Tandem Non-Stop Servers with Corda installed for rapid Blockchain-out-of-a-Box solutions

28

Page 29: Introducing r3 corda™  a distributed ledger designed for financial services

CorDapp

UI

CorDappCorDappCorDapp

Power BICorda

Explorer

Services Interface

Va

ult

SG

X

Messagin

g

Ide

ntity

RPC

Sys. M

gt.

Azure VMs & Marketplace

Sandboxed JVM

Flo

ws

Ke

y M

gt

Nota

ryAzure SQL

Enterprise

Open source

Doorman Service

Notary Services

Azure AD

Key Vault OMS

Azure

Serv

ice

Bus

Azure

Expre

ss

Route

UI Layer

Platform

Azure Proposed Integration

Page 30: Introducing r3 corda™  a distributed ledger designed for financial services

Microsoft Blockchain Vision and StrategyAccelerate Blockchain Deployment

Page 31: Introducing r3 corda™  a distributed ledger designed for financial services

For more information

Code and documentation

corda.net – code download, Demobench

docs.corda.net – documentation

github.com/corda/corda

Help

cordaledger.slack.net

stackoverflow.com/questions/tagged/corda

Social

www.meetup.com/New-York-Corda-Meetup/

Tom

[email protected]

private and confidential 31

Page 32: Introducing r3 corda™  a distributed ledger designed for financial services

Q&A

Page 33: Introducing r3 corda™  a distributed ledger designed for financial services

Corda Node

Vault

Appendix: Corda component architecture

p33.

State Object creates

properties / fields for the

given financial

agreement

Contract Code:

Verify that:

Transfer (whole):

• Rule 1 { code }

Transfer (partial):

• Rule 1 { code }

• Rule 2 { code }

Transactions enable

transition between statesFlows defined for specific data sent to each node/identity –

signatures on transactions

Apps