IP Library › Granted Patent US 11,811,933
Granted Patent B2
US 11,811,933 · App. 17/104,520 · Granted Nov 7, 2023

System and method for fair, secure n-party computation using at least one blockchain

Inventors: Ranjit Kumar Kumaresan (Sunnyvale, CA); Srinivasan Raghuraman (San Francisco, CA); Rohit Sinha (Fremont, CA)
Assignee: Visa International Service Association
H04L9/3218H04L9/30H04L9/3247H04L9/50H04L2209/46
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,811,933
App. No.
17/104,520
Granted
Nov 7, 2023
Kind
B2
Abstract

Described are a system and method for secure n-party computation. The method includes communicating a first input of an n-party computation to a trusted execution environment (TEE). The method also includes receiving, from the TEE, at least one encrypted output of the n-party computation using the first input and at least one second input of at least one other computing device, and using at least one public key of the at least one other computing device. The method further includes posting the at least one encrypted output on at least one blockchain accessible by the at least one other computing device. The method further includes, in response to posting the at least one encrypted output, receiving at least one proof of publication. The method further includes communicating the at least one proof of publication to the TEE and receiving the function output of the n-party computation.

Claims (61)

1. A computer-implemented method comprising:

communicating, with a first computing device, a first input of an n-party computation to a trusted execution environment (TEE);

receiving, with the first computing device from the TEE, at least one first encrypted output comprising a first function output of the n-party computation encrypted with at least one public key of at least one other computing device, the first function output of the n-party computation determined based on the first input and at least one second input from the at least one other computing device;

posting, with the first computing device, the at least one first encrypted output on at least one blockchain accessible by the at least one other computing device, the at least one first encrypted output being decryptable using at least one private key of the at least one other computing device to obtain the first function output of the n-party computation;

in response to posting the at least one first encrypted output on the at least one blockchain, receiving, with the first computing device, at least one first proof of publication;

communicating, with the first computing device, the at least one first proof of publication to the TEE;

receiving, with the first computing device, the first function output of the n-party computation from the TEE;

communicating, with the first computing device, a witness of a witness encryption scheme to the TEE;

receiving, with the first computing device, at least one second encrypted output comprising a second function output encrypted with the at least one public key of the at least one other computing device, the second function output determined based on the first input, the at least one second input, and the witness;

posting, with the first computing device, the at least one second encrypted output on the at least one blockchain, the at least one second encrypted output being decryptable using the at least one private key to obtain the second function output;

in response to posting the at least one second encrypted output on the at least one blockchain, receiving, with the first computing device, at least one second proof of publication;

communicating, with the first computing device, the at least one second proof of publication to the TEE; and

receiving, with the first computing device, the second function output from the TEE.

2. The computer-implemented method of claim 1 , wherein the first computing device and the at least one other computing device are permissioned by a consortium to access the at least one blockchain, wherein the first computing device is configured with at least read access and write access to the at least one blockchain, and the second computing device is configured with at least read access to the at least one blockchain.

3. The computer-implemented method of claim 1 , wherein the first function output comprises a signature of a data object generated based on the first input and the at least one second input, wherein the first input comprises a first signature key associated with the first computing device and the at least one second input comprises at least one second signature key associated with the at least one other computing device.

4. The computer-implemented method of claim 1 , wherein the first computing device is configured to communicate with the TEE in a first secure communication channel, in which only the TEE is permitted to read communications from the first computing device to the TEE.

5. A computer-implemented method comprising:

receiving, with a trusted execution environment (TEE), a first input from a first computing device and at least one second input from at least one other computing device;

generating, with the TEE, a first function output of an n-party computation based on the first input and the at least one second input;

encrypting, with the TEE, the first function output of the n-party computation using at least one public key of the at least one other computing device to produce at least one first encrypted output;

communicating, with the TEE, the at least one first encrypted output to the first computing device;

receiving, with the TEE from the first computing device, at least one first proof of publication associated with the at least one first encrypted output being posted to at least one blockchain accessible by the at least one other computing device;

in response to receiving the at least one first proof of publication from the first computing device, communicating, with the TEE, the first function output of the n-party computation to the first computing device;

receiving, with the TEE, a witness of a witness encryption scheme from the first computing device;

generating, with the TEE, a second function output based on the first input, the at least one second input, and the witness;

encrypting, with the TEE, the second function output using the at least one public key to produce at least one second encrypted output;

communicating, with the TEE, the at least one second encrypted output to the first computing device;

receiving, with the TEE from the first computing device, at least one second proof of publication associated with the at least one second encrypted output being posted to the at least one blockchain; and

in response to receiving the at least one second proof of publication from the first computing device, communicating, with the TEE, the second function output to the first computing device.

6. The computer-implemented method of claim 5 , further comprising:

receiving, with the TEE from the at least one other computing device, the at least one first proof of publication; and

in response to receiving the at least one first proof of publication from the at least one other computing device, communicating, with the TEE, the first function output of the n-party computation to the at least one other computing device.

7. The computer-implemented method of claim 6 , further comprising:

receiving, with the TEE from the at least one other computing device, the at least one second proof of publication; and

in response to receiving the at least one second proof of publication from the at least one other computing device, communicating, with the TEE, the second function output to the at least one other computing device.

8. The computer-implemented method of claim 5 , wherein the first function output comprises a signature of a data object generated based on the first input and the at least one second input, wherein the first input comprises a first signature key associated with the first computing device and the at least one second input comprises at least one second signature key associated with the at least one other computing device.

9. The computer-implemented method of claim 5 , wherein the TEE is configured to communicate with the first computing device in a first secure communication channel, in which only the first computing device is permitted to read communications from the TEE to the first computing device.

10. The computer-implemented method of claim 9 , wherein the TEE is configured to communicate with the at least one other computing device in at least one other secure communication channel, in which only the at least one other computing device is permitted to read communications from the TEE to the at least one other computing device.

11. A system comprising a server including at least one processor operating a trusted execution environment (TEE), the at least one processor programmed and/or configured to:

receive a first input from a first computing device and at least one second input from at least one other computing device;

generate a first function output of an n-party computation based on the first input and the at least one second input;

encrypt the first function output of the n-party computation using at least one public key of the at least one other computing device to produce at least one first encrypted output;

communicate the at least one first encrypted output to the first computing device;

receive, from the first computing device, at least one first proof of publication associated with the at least one first encrypted output being posted to at least one blockchain accessible by the at least one other computing device;

in response to receiving the at least one first proof of publication from the first computing device, communicate the first function output of the n-party computation to the first computing device;

receive a witness of a witness encryption scheme from the first computing device;

generate a second function output based on the first input, the at least one second input, and the witness;

encrypt the second function output using the at least one public key to produce at least one second encrypted output;

communicate the at least one second encrypted output to the first computing device;

receive, from the first computing device, at least one second proof of publication associated with the at least one second encrypted output being posted to the at least one blockchain; and

in response to receiving the at least one second proof of publication from the first computing device, communicate the second function output to the first computing device.

12. The system of claim 11 , further comprising the first computing device, wherein the first computing device and the at least one other computing device are permissioned by a consortium to access the at least one blockchain, wherein the first computing device is configured with at least read access and write access to the at least one blockchain, and the second computing device is configured with at least read access to the at least one blockchain.

13. The system of claim 11 , wherein the at least one processor is further programmed and/or configured to:

receive, from the at least one other computing device, the at least one first proof of publication; and

in response to receiving the at least one first proof of publication from the at least one other computing device, communicate the first function output of the n-party computation to the at least one other computing device.

14. The system of claim 11 , wherein the at least one processor is further programmed and/or configured to:

receive, from the at least one other computing device, the at least one second proof of publication; and

in response to receiving the at least one second proof of publication from the at least one other computing device, communicate the second function output to the at least one other computing device.

15. The system of claim 11 , wherein the first function output comprises a signature of a data object generated based on the first input and the at least one second input, wherein the first input comprises a first signature key associated with the first computing device and the at least one second input comprises at least one second signature key associated with the at least one other computing device.

16. The system of claim 11 , wherein the server is configured to communicate with the first computing device in a first secure communication channel, in which only the first computing device is permitted to read communications from the server to the first computing device.

17. The system of claim 16 , wherein the server is configured to communicate with the at least one other computing device in at least one other secure communication channel, in which only the at least one other computing device is permitted to read communications from the server to the at least one other computing device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 1, 2022
From: KUMARESAN, RANJIT KUMAR; SINHA, ROHIT; RAGHURAMAN, SRINIVASAN
To: VISA INTERNATIONAL SERVICE ASSOCIATION
Reel/Frame 059470/0026 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2020
From: KUMARESAN, RANJIT KUMAR; RAGHURAMAN, SRINIVASAN; SINHA, ROHIT
To: VISA INTERNATIONAL SERVICE ASSOCIATION
Reel/Frame 054469/0189 →
Continuity (2)
Provisional Application 62941045 · Nov 27, 2019
Related Publication 20210160074A1 · May 27, 2021
Cited By (1)
US 12,261,955