IP Library Granted Patent US 11,657,391
Granted Patent B1
US 11,657,391 · App. 16/422,432 · Granted May 23, 2023

System and method for invoking smart contracts

Inventors: Aaron Blankstein (Chicago, IL); Jude Nelson (New Brunswick, NJ)
Assignee: Hiro Systems PBC
G06Q20/3829G06F9/45533G06F16/182G06Q20/3672G06Q20/405H04L9/0637
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 11,657,391
App. No.
16/422,432
Granted
May 23, 2023
Kind
B1
Abstract

The source code of a smart contract defines a schema with a map name, a key-tuple, and a value-tuple. The key-tuple can be populated with a value associated with a native field name that is associated with the principal that created a transaction.

Claims (24)

1. A computing device of a decentralized network comprising:

a network interface configured to couple the computing device to the decentralized network and to receive a plurality of smart contract source codes and a plurality of transactions therefrom, wherein:

a first transaction of the plurality of transactions is signed by a public key that identifies a principal that created the first transaction,

a second transaction of the plurality of transactions is signed by the public key,

a first smart contract source code of the plurality of smart contract source codes defines a data map schema comprising a map name, a key, and a value, and

the first smart contract source code comprising an initialization function and a second function, wherein the initialization function references a global variable that has an identifier value that corresponds with a public key associated with an entity that signs a transaction that calls the initialization function, and wherein the second function references the global variable that has an identifier value that corresponds with a public key associated with an entity that signs a transaction that calls the second function;

a data store;

a hardware processor; and

a non-transitory computer readable storage medium storing program instructions for execution by the hardware processor in order to cause the computing device to:

call an application program interface to launch a virtual machine,

execute the first smart contract source code using the virtual machine,

with the virtual machine, call the initialization function without passing an identifier value of the global variable that corresponds with the public key that identifies the principal as an argument to the initialization function, wherein the initialization function, based on the first transaction being signed by the public key that identifies the principal, uses the identifier value of the global variable that corresponds with the public key that identifies the principal to insert a data map into the data store as defined by the data map schema, the inserted data map comprising the map name defined in the first smart contract source code, the identifier value of the global variable that corresponds with the public key that identifies the principal for the key, and a second value from the first transaction for the value,

wherein, after initialization, the data store comprises exactly one data map associated with the combination of the map name and the identifier value of the global variable that corresponds with the public key that identifies the principal, and

with the virtual machine, call the second function without passing the identifier value of the global variable that corresponds with the public key that identifies the principal as an argument to the second function, wherein the second function, based on the second transaction being signed by the public key that identifies the principal, uses the identifier value of the global variable that corresponds with the public key that identifies the principal to retrieve the data map from the data store and updates the data map in the data store, the updated data map comprising the map name, the identifier value of the global variable that corresponds with the public key that identifies the principal for the key, and a third value from the second transaction for the value.

2. The computing device of claim 1 , wherein the key is a first n-tuple, and the value is a second n-tuple.

3. The computing device of claim 1 , wherein the key is characterized by a principal data type of static maximum size or a fixed-length list thereof.

4. The computing device of claim 1 , wherein the identifier value of the global variable that corresponds with the public key that identifies the principal is the public key that identifies the principal or a hash thereof.

5. The computing device of claim 1 , wherein the virtual machine and is configured to access a plurality of primitive functions available through a shared resource for all smart contract source codes published in the decentralized network.

6. The computing device of claim 5 , wherein the initialization function is embodied in one or more of the primitive functions.

7. The computing device of claim 5 , wherein the primitive functions comprise the second function.

8. The computing device of claim 5 , wherein the smart contract source code further defines a public function.

9. The computing device of claim 8 , wherein the public function comprises calls to one or more of the primitive functions.

10. The computing device of claim 1 , wherein the program instructions, when executed, cause the computing device, with the virtual machine, to call a fetching function that retrieves the value from the inserted data map based on the map name and the key value.

11. The computing device of claim 1 , wherein the program instructions, when executed, cause the computing device, with the virtual machine, to call a deleting function that deletes the inserted data map based on the map name and the key value.

Assignments (2)
CHANGE OF NAME Recorded Jun 24, 2021
From: BLOCKSTACK PBC
To: HIRO SYSTEMS PBC
Reel/Frame 056679/0402 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2019
From: BLANKSTEIN, AARON; NELSON, JUDE
To: BLOCKSTACK PBC
Reel/Frame 049297/0151 →
Cited By (1)
US 12,316,663