# US 11,042,400 B1 · Language agnostic smart contract execution on a blockchain

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,042,400 B1
- Document ID: US11042400B1
- Status: Granted
- Kind: B1
- Application number: 17/177,110
- Filed: 2021-02-16
- Granted: 2021-06-22
- Earliest claimed: 2021-02-16
- Assignees: block.one
- Applicants: block.one
- Inventors: Ian Holsman
- Web page: https://patentgrep.com/patent/US11042400B1

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- G06F 8/33: Intelligent editors
- G06F 21/53: by executing in a restricted environment, e.g. sandbox or secure virtual machine
- G06F 21/64: Protecting data integrity, e.g. using checksums, certificates or signatures
- H04L 9/0643: {Hash functions, e.g. MD5, SHA, HMAC or f9 MAC}
- H04L 9/3247: {involving digital signatures}
- H04L 9/3297: {involving time stamps, e.g. generation of time stamps}
- G06F 2009/45562: {Creating, deleting, cloning virtual machine instances}
- G06F 2009/45587: {Isolation or security of virtual machine instances}
- G06F 2221/2141: Access rights, e.g. capability lists, access control lists, access tables, access matrices
- G06F 2221/2149: Restricted operating environment
- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method for providing a language agnostic contract execution on a blockchain is provided. The method includes providing a menu comprising multiple execution environments, and selecting, from a suite of virtual machine containers, a virtual machine container that runs an execution environment selected by the developer of the blockchain application. The method also includes enabling one or more functions in the virtual machine container to access a dedicated memory or a state variable in the block producer to run an action in the virtual machine container, the action provided by a server running the blockchain application, providing the action to the blockchain application in the virtual machine container, and writing an output from the action of the blockchain application to a secure ledger in a blockchain. A system and a non-transitory, computer-readable medium storing instructions to perform the above method are also provided.

## Claims

### Claim 1

A computer-implemented method for smart contract execution on a blockchain, comprising:
providing, to a developer of a blockchain application accessed by a block producer, a menu comprising a list of multiple execution environments that includes at least different versions of a same execution environment, wherein the blockchain application is hosted by a server as an immutable register or a smart contract in a suite of virtual machine containers in the execution environments within the block producer in the server;
selecting, from the suite of virtual machine containers, a virtual machine container that runs an execution environment selected by the developer of the blockchain application from the menu;
enabling one or more functions in the virtual machine container to access a dedicated memory or a state variable in the block producer to run an action in the virtual machine container, the action provided by the server running the blockchain application for allowing the server to access the dedicated memory or the state variable from the one or more functions of the blockchain application executable in the virtual machine container provided by the server;
providing the action to the blockchain application in the virtual machine container;
preventing access to the blockchain application with a security feature in an associated virtual machine container; and
writing an output from the action of the blockchain application to a secure ledger in a blockchain, wherein providing the menu comprising the list of multiple execution environments comprises providing the menu including at least one of Javascript Virtual Machine, native, and C++ execution environments.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein enabling one or more functions to access a dedicated memory space comprises executing a software development kit to access the state variable and a library accessible to the developer of the blockchain application.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, further comprising preventing access to the blockchain application by a third party with a security feature in the virtual machine container.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein selecting a virtual machine that runs an execution environment selected by the developer comprises detecting the execution environment from a format of a header in a code script provided by the developer.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein selecting a virtual machine container that runs an execution environment selected by the developer of the blockchain application comprises selecting the virtual machine container that runs an updated version of the execution environment selected by the developer.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, further comprising searching for a virtual machine container that runs an execution environment requested by the developer.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, further comprising configuring a virtual machine container to run an execution environment requested by the developer.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, further comprising allowing the server to access an updated value of the state variable from the blockchain application.

### Claim 9

A system for smart contract execution on a blockchain, comprising:
a memory configured to store instructions; and
one or more hardware processors configured to execute the instructions to cause the system to:
provide, to a developer of a blockchain application accessed by a block producer, a menu comprising a list of multiple execution environments that includes at least different versions of a same execution environment, wherein the blockchain application is hosted by a server as an immutable register or a smart contract in a suite of virtual machine containers in the execution environments within the block producer in the server;
select, from the suite of virtual machine containers, a virtual machine container that runs an execution environment selected by the developer of the blockchain application from the menu;
enable one or more functions in the virtual machine container to access a dedicated memory or a state variable in the block producer to run an action in the virtual machine container, the action provided by the server running the blockchain application to allow the server to access the dedicated memory or the state variable from the one or more functions of the blockchain application executable in the virtual machine container provided by the server;
provide the action to the blockchain application in the virtual machine container;
prevent access to the blockchain application with a security feature in an associated virtual machine container; and
write an output from the action of the blockchain application to a secure ledger in a blockchain, wherein providing the menu comprising the list of multiple execution environments comprises providing the menu including at least one of Javascript Virtual Machine, native, and C++ execution environments.

### Claim 10 (depends on 9)

The system of claim 9, wherein enabling one or more functions to access a dedicated memory space comprises executing a software development kit to access the state variable and a library accessible to the developer of the blockchain application.

### Claim 11 (depends on 9)

The system of claim 9, further comprising preventing access to the blockchain application by a third party with a security feature in the virtual machine container.

### Claim 12 (depends on 9)

The system of claim 9, wherein selecting a virtual machine that runs an execution environment selected by the developer comprises detecting the execution environment from a format of a header in a code script provided by the developer.

### Claim 13

A non-transitory, computer-readable storage medium storing instructions which, when executed by a hardware processor, cause a computer to perform a method for smart contract execution on a blockchain, the method comprising:
providing, to a developer of a blockchain application accessed by a block producer, a menu comprising a list of multiple execution environments that includes at least different versions of a same execution environment, wherein the blockchain application is hosted by a server as an immutable register or a smart contract in a suite of virtual machine containers in the execution environments within the block producer in the server;
selecting, from the suite of virtual machine containers, a virtual machine container that runs an execution environment selected by the developer of the blockchain application from the menu;
enabling one or more functions in the virtual machine container to access a dedicated memory or a state variable in the block producer to run an action in the virtual machine container, the action provided by the server running the blockchain application for allowing the server to access the dedicated memory or the state variable from the one or more functions of the blockchain application executable in the virtual machine container provided by the server;
providing the action to the blockchain application in the virtual machine container;
preventing access to the blockchain application with a security feature in an associated virtual machine container; and
writing an output from the action of the blockchain application to a secure ledger in a blockchain, wherein:
providing the menu comprising a list of the execution environments comprises providing the menu including at least one of a javascript virtual machine, native, and C++ execution environments, and
providing the menu comprising a list of the execution environments comprises providing the menu including one or more versions of the same execution environment.

### Claim 14 (depends on 13)

The non-transitory, computer-readable storage medium of claim 13 wherein, in the method, enabling one or more functions to access a dedicated memory space comprises executing a software development kit to access the state variable and a library accessible to the developer of the blockchain application.

### Claim 15 (depends on 13)

The non-transitory, computer-readable storage medium of claim 13, wherein the method further comprises preventing access to the blockchain application by a third party with a security feature in the virtual machine container.

### Claim 16 (depends on 13)

The non-transitory, computer-readable storage medium of claim 13 wherein, in the method, selecting a virtual machine that runs an execution environment selected by the developer comprises detecting the execution environment from a format of a header in a code script provided by the developer.

### Claim 17 (depends on 13)

The non-transitory, computer-readable storage medium of claim 13, wherein the method further comprises at least one of searching for a virtual machine container that runs an execution environment requested by the developer of the blockchain application, or configuring a virtual machine container to run an execution environment requested by the developer of the blockchain application.
