US 11,811,933 B2
System and method for fair, secure n-party computation using at least one blockchain
Ranjit Kumar Kumaresan, Sunnyvale, CA (US); Srinivasan Raghuraman, San Francisco, CA (US); and Rohit Sinha, Fremont, CA (US)
Assigned to Visa International Service Association, San Francisco, CA (US)
Filed by Visa International Service Association, San Francisco, CA (US)
Filed on Nov. 25, 2020, as Appl. No. 17/104,520.
Claims priority of provisional application 62/941,045, filed on Nov. 27, 2019.
Prior Publication US 2021/0160074 A1, May 27, 2021
Int. Cl. H04L 9/32 (2006.01); H04L 9/30 (2006.01); H04L 9/00 (2022.01)
CPC H04L 9/3218 (2013.01) [H04L 9/30 (2013.01); H04L 9/3247 (2013.01); H04L 9/50 (2022.05); H04L 2209/46 (2013.01)] 17 Claims
OG exemplary drawing
 
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.