IP Library › Granted Patent US 10,896,149
Granted Patent B2
US 10,896,149 · App. 16/048,320 · Granted Jan 19, 2021

Composition operators for smart contract

Inventors: Naoto Sato (Kawasaki, JP); Takaaki Tateishi (Yamato, JP); Shunichi Amano (Katsushika, JP)
Assignee: International Business Machines Corporation
G06F16/134
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,896,149
App. No.
16/048,320
Granted
Jan 19, 2021
Kind
B2
Abstract

An example operation may include one or more of identifying one or more input smart contracts, identifying a set of composition operations applicable to the one or more input smart contracts and contract specifications, combining the one or more input smart contracts using the set of composition operations, creating a composite smart contract based on the one or more input smart contracts and the set of composition operations, and translating the composite smart contract into an executable blockchain smart contract. The one or more input smart contracts, each includes a contract specification, the contract specification includes a regular event pattern and a temporal constraint the input smart contract must satisfy.

Claims (53)

1. A system, comprising:

a processor configured to:

identify a plurality of smart contracts that each include a contract specification;

identify a set of composition operations applicable to the plurality of smart contracts and contract specifications;

combine the plurality of smart contracts using the set of composition operations;

create a composite smart contract based on the plurality of smart contracts and the set of composition operations; and

translate the composite smart contract into an executable blockchain smart contract.

2. The system of claim 1 , wherein the composite operations comprise one or more of sequence, choice, and loop operations, wherein the sequence operations comprise an execution by the computing system of two input smart contracts in a defined sequence, the choice operations comprise a connection by the computing system of two input smart contracts in a disjunctive fashion, and the loop operations comprise an execution by the computing system of a specified input smart contract a designated number of times.

3. The system of claim 1 , wherein the plurality of smart contracts comprise a first input contract and a second input contract, and the composition operations comprise guard formulas that designate whether a rule portion originates from the first input contract or the second input contract.

4. The system of claim 1 , wherein the plurality of smart contracts comprise one or more contract rules that each include an event, a condition, and a sequence of one or more actions.

5. The system of claim 4 , wherein the executable blockchain smart contract comprises the event, the condition, and the sequence of one or more actions.

6. The system of claim 4 , wherein the condition comprises a Linear Dynamic Logic on finite traces formula.

7. The system of claim 4 , wherein the condition and the sequence of one or more actions define implementation details for the contract rules.

8. A method, comprising:

identifying a plurality of smart contracts that each include a contract specification;

identifying a set of composition operations applicable to the plurality of smart contracts and contract specifications;

combining the plurality of smart contracts using the set of composition operations;

creating a composite smart contract based on the plurality of smart contracts and the set of composition operations; and

translating the composite smart contract into an executable blockchain smart contract.

9. The method of claim 8 , wherein the composite operations comprise one or more of sequence, choice, and loop operations, wherein the sequence operations comprise executing two input smart contracts in a defined sequence, the choice operations comprise disjunctively connecting two input smart contracts, and the loop operations comprise executing a specified input smart contract a designated number of times.

10. The method of claim 8 , wherein the plurality of smart contracts comprise a first input contract and a second input contract, and the composition operations comprise guard formulas designating whether a rule portion originates from the first input contract or the second input contract.

11. The method of claim 8 , wherein the plurality of smart contracts comprise one or more contract rules that each include an event, a condition, and a sequence of one or more actions.

12. The method of claim 11 , wherein the executable blockchain smart contract comprise the event, the condition, and the sequence of one or more actions.

13. The method of claim 11 , wherein the condition comprises a Linear Dynamic Logic on finite traces formula.

14. The method of claim 11 , wherein the condition and the sequence of one or more actions define implementation details for the contract rules.

15. A non-transitory computer readable medium comprising instructions, that when read by a processor, cause the processor to perform:

identifying a plurality of smart contracts that each include a contract specification;

identifying a set of composition operations applicable to the plurality of smart contracts and contract specifications;

combining the plurality of smart contracts using the set of composition operations;

creating a composite smart contract based on the plurality of smart contracts and the set of composition operations; and

translating the composite smart contract into an executable blockchain smart contract.

16. The non-transitory computer readable medium of claim 15 , wherein the composite operations comprise one or more of sequence, choice, and loop operations, wherein the sequence operations comprise executing two input smart contracts in a defined sequence, the choice operations comprise disjunctively connecting two input smart contracts, and the loop operations comprise executing a specified input smart contract a designated number of times.

17. The non-transitory computer readable medium of claim 15 , wherein the plurality of smart contracts comprise a first input contract and a second input contract, and the composition operations comprise guard formulas designating whether a rule portion originates from the first input contract or the second input contract.

18. The non-transitory computer readable medium of claim 15 , wherein the plurality of smart contracts comprise one or more contract rules that each include an event, a condition, and a sequence of one or more actions.

19. The non-transitory computer readable medium of claim 18 , wherein the executable blockchain smart contract comprises the event, the condition, and the sequence of one or more actions.

20. The non-transitory computer readable medium of claim 18 , wherein the condition comprises a Linear Dynamic Logic on finite traces formula.

21. The non-transitory computer readable medium of claim 18 , wherein the condition and the sequence of one or more actions define implementation details for the contract rules.

22. A method, comprising:

identifying a plurality of smart contracts that each include a contract specification;

identifying a set of composition operations applicable to the plurality of smart contracts and contract specifications;

combining the plurality of smart contracts using the set of composition operations;

creating a composite smart contract based on the plurality of smart contracts and the set of composition operations;

converting the composite smart contract to a deterministic finite automaton; and

converting the deterministic finite automaton into an executable form of a blockchain smart contract.

23. The method of claim 22 , wherein the composite operations comprise one or more of sequence, choice, and loop operations, wherein the sequence operations comprise executing two input smart contracts in a defined sequence, the choice operations comprise disjunctively connecting two input smart contracts, and the loop operations comprise executing a specified input smart contract a designated number of times.

24. The method of claim 22 , wherein the plurality of smart contracts comprise one or more contract rules that each include an event, a condition, and a sequence of one or more actions.

25. A non-transitory computer readable medium comprising instructions, that when read by a processor, cause the processor to perform:

identifying a plurality of smart contracts that each include a contract specification;

identifying a set of composition operations applicable to the plurality of smart contracts and contract specifications;

combining the plurality of smart contracts using the set of composition operations;

creating a composite smart contract based on the plurality of smart contracts and the set of composition operations;

converting the composite smart contract to a deterministic finite automaton; and

converting the deterministic finite automaton into an executable form of a blockchain smart contract.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2018
From: SATO, NAOTO; TATEISHI, TAKAAKI; AMANO, SHUNICHI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 046504/0587 →
Continuity (1)
Related Publication 20200034448A1 · Jan 30, 2020