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

Automatic generation of smart contracts

Inventors: Naoto Sato (Kawasaki, JP); Takaaki Tateishi (Yamato, JP); Shunichi Amano (Katsushika, JP)
Assignee: International Business Machines Corporation
G06F16/258
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,195
App. No.
16/048,322
Filed
Jul 29, 2018
Granted
Jan 19, 2021
Kind
B2
Examiner
WOO, ISAAC M
Art Unit
2163
USPC
707/756
Abstract

An example operation may include one or more of defining a target specification for a blockchain smart contract, obtaining a plurality of reusable smart contracts, and creating the blockchain smart contract. Creating the blockchain smart contract includes combining the plurality of reusable smart contracts and the target specification into a first set of contracts, transforming the first set of contracts into a second set of contracts, selecting a target contract from the second set of contracts, and translating the target contract into an executable form of the blockchain smart contract. The target specification includes a regular event pattern and a temporal constraint the blockchain smart contract must satisfy. Each of the reusable smart contracts includes a reusable event pattern.

Claims (53)

1. A system, comprising:

a processor configured to:

define a target specification for a blockchain smart contract, the target specification comprising an event pattern and a temporal constraint;

obtain a plurality of reusable smart contracts, each reusable smart contract comprising a reusable event pattern;

combine at least two of the plurality of reusable smart contracts based on the event pattern included in the target specification to generate a composite smart contract; and

translate the composite smart contract into a form that is executable on a blockchain;

wherein the composite smart contract is converted into a deterministic finite automaton; and

wherein the deterministic finite automaton is converted into the form that is executable on the blockchain.

2. The system of claim 1 , wherein the processor is configured to combine the at least two reusable smart contracts using one or more composition operators.

3. The system of claim 1 , wherein the event pattern and the reusable event patterns each comprises a sequence of one or more occurrences related to blockchain transactions.

4. The system of claim 1 , wherein the form that is executable on the blockchain comprises one or more of a unified modeling language or state chart extensible markup language representation.

5. The system of claim 1 , wherein the form that is executable on the blockchain comprises one or more contract rules, wherein each of the one or more contract rules comprises an event, a condition, and a sequence of one or more actions.

6. The system of claim 5 , wherein a condition and a sequence of one or more actions define implementation details for contract rules.

7. A method, comprising:

defining a target specification for a blockchain smart contract, the target specification comprising an event pattern and a temporal constraint;

obtaining a plurality of reusable smart contracts, each comprising a reusable event pattern;

combining at least two of the plurality of reusable smart contracts based on the event pattern included in the target specification to generate a composite smart contract;

translating the composite smart contract into a form that is executable on a blockchain;

wherein the composite smart contract is converted into a deterministic finite automaton; and

wherein the deterministic finite automaton is converted into the form that is executable on the blockchain.

8. The method of claim 7 , wherein the combining comprises combining the at two reusable smart contracts using one or more composition operators.

9. The method of claim 7 , wherein the event pattern and the reusable event patterns each comprise a sequence of one or more occurrences related to blockchain transactions.

10. The method of claim 7 , wherein the form that is executable on the blockchain comprises one or more of a unified modeling language or state chart extensible markup language representation.

11. The method of claim 7 , wherein the form that is executable on the blockchain comprises one or more contract rules each comprising an event, a condition, and a sequence of one or more actions.

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

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

defining a target specification for a blockchain smart contract, the target specification comprising an event pattern and a temporal constraint;

obtaining a plurality of reusable smart contracts, each comprising a reusable event pattern;

combining at least two of the plurality of reusable smart contracts based on the event pattern included in the target specification to generate a composite smart contract; and

translating the composite smart contract into a form that is executable on a blockchain;

wherein the composite smart contract is converted into a deterministic finite automaton; and

wherein the deterministic finite automaton is converted into the form that is executable on the blockchain.

14. The non-transitory computer readable medium of claim 13 , wherein the combining comprises combining the at two reusable smart contracts using one or more composition operators.

15. The non-transitory computer readable medium of claim 13 , wherein the event pattern and the reusable event patterns each comprise a sequence of one or more occurrences related to blockchain transactions.

16. The non-transitory computer readable medium of claim 13 , wherein the form that is executable on the blockchain comprises one or more of a unified modeling language or state chart extensible markup language representation.

17. The non-transitory computer readable medium of claim 13 , wherein the form that is executable on the blockchain comprises one or more contract rules each comprising an event, a condition, and a sequence of one or more actions.

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

19. A method, comprising:

defining a target specification for a blockchain smart contract, the target specification comprising a protocol;

obtaining a plurality of reusable smart contracts, each comprising a reusable protocol;

combining at least two of the plurality of reusable smart contracts based on the protocol included in the target specification to generate a composite smart contract; and

translating the composite smart contract into a form that is executable on a blockchain;

wherein the composite smart contract is converted into a deterministic finite automaton; and

wherein the deterministic finite automaton is converted into the form that is executable on the blockchain.

20. The method of claim 19 , wherein the combining comprises combining the at two reusable smart contracts using one or more composition operators.

21. The method of claim 19 , wherein the protocol and the reusable protocols each comprise a sequence of one or more occurrences related to blockchain transactions.

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

defining a target specification for a blockchain smart contract, the target specification comprising a protocol;

obtaining a plurality of reusable smart contracts, each comprising a reusable protocol;

combining at least two of the plurality of reusable smart contracts based on the protocol included in the target specification to generate a composite smart contract; and

translating the composite smart contract into a form that is executable on a blockchain;

wherein the composite smart contract is converted into a deterministic finite automaton; and

wherein the deterministic finite automaton is converted into the form that is executable on the blockchain.

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/0665 →
Continuity (1)
Related Publication 20200034469A1 · Jan 30, 2020
Cited By (1)
US 12,737,163