Breaking the problem down – into layers Smart Contract Layers Layer 3 - Actions 5 Tags Actions are the base level building blocks from which contacts are built. A common set of well 4 Choreography / Orchestration defined actions will be supported by all nodes on the ledger. 3 Actions 2 Data A defined protocol to describe inter-action communication 1 Ledger Services If we assume that two parties are running the ‘Exchange’ action, then at some point in the 0 Ledger process, the code running at Party 1 and at Party 2 will need to communicate – messages might include ‘Does Party 1 have the Assets’ and ‘What is the value of the asset being provided by Party 2. It is suggested that the messages and the wire format that represents the messages should be fully defined. Having a formal definition will: 1. Allow interoperability between different concrete implementations of code for a given action, i.e., the action is the same, but the underlying code is different. 2. Enable the long term goal of having different parties sitting on separate ledgers or other transactional systems, i.e., same as above; the action is the same, but the underlying code is different. 3. Help to decouple the underlying message protocol / fabric from business logic 110 UNRESTRICTED

2nd R3 Smart Contract Templates  Summit (All Slides) - Page 111 2nd R3 Smart Contract Templates Summit (All Slides) Page 110 Page 112