IP Library Granted Patent US 11,244,309
Granted Patent B2
US 11,244,309 · App. 16/198,223 · Granted Feb 8, 2022

Real-time cryptocurrency exchange using trusted hardware

Inventors: Iddo Bentov (Ithaca, NY); Ari Juels (New York, NY); Fan Zhang (Ithaca, NY); Philip Daian (New York, NY); Lorenz Breidenbach (Zurich, CH)
Assignee: Cornell University
G06Q20/38215G06Q20/065G06Q20/389G06Q20/405H04L9/0897G06Q20/027G06Q2220/00H04L2209/38H04L2209/56
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,244,309
App. No.
16/198,223
Granted
Feb 8, 2022
Kind
B2
Abstract

An apparatus in an illustrative embodiment comprises a processing platform that includes one or more processing devices each comprising a processor coupled to a memory. The processing platform is configured to communicate over at least one network with one or more additional sets of processing devices associated with at least a first blockchain-based cryptocurrency system. Each of at least a subset of the one or more processing devices of the processing platform comprises a trusted execution environment, such as a secure enclave. The processing platform is further configured to release from the trusted execution environment of a given one of the one or more processing devices of the processing platform a first blockchain transaction on the first blockchain-based cryptocurrency system, and to condition release of a second blockchain transaction relating to the first blockchain transaction on receipt of at least a specified threshold amount of evidence of confirmation of the first blockchain transaction on the first blockchain-based cryptocurrency system.

Claims (72)

1. An apparatus comprising:

a processing platform comprising at least a first processing device and a second processing device each comprising a processor coupled to a memory;

the processing platform being configured to communicate over at least one network with one or more additional sets of processing devices associated with at least a first blockchain-based cryptocurrency system;

each of the first and second processing devices of the processing platform comprising a trusted execution environment, the trusted execution environment comprising a hardware-based execution environment of the processor of the corresponding processing device;

wherein one or more of the first processing device and the second processing device are configured, via program code comprising instructions stored in the memory and executed by the processor of the corresponding processing device, to;

construct in the trusted execution environment of the first processing device a first blockchain transaction on the first blockchain-based cryptocurrency system;

construct in the trusted execution environment of the first processing device a second blockchain transaction relating to the first blockchain transaction;

generate, by the trusted execution environment of the first processing device, a ciphertext based at least in part on the first and second blockchain transactions constructed therein;

provide the ciphertext to the trusted execution environment of the second processing device;

release from the trusted execution environment of one of the first and second processing devices the first blockchain transaction on the first blockchain-based cryptocurrency system; and

condition release, from the trusted execution environment of one of the first and second processing devices, of the second blockchain transaction relating to the first blockchain transaction on receipt of at least a specified threshold amount of evidence of confirmation of the first blockchain transaction on the first blockchain-based cryptocurrency system, the conditioned release of the second blockchain transaction being controlled based at least in part on the ciphertext provided to the trusted execution environment of the second processing device.

2. The apparatus of claim 1 wherein the trusted execution environment comprises a secure enclave of its corresponding processing device.

3. The apparatus of claim 2 wherein the secure enclave is implemented at least in part utilizing one or more hardware-based isolation mechanisms of the processor of the corresponding processing device.

4. The apparatus of claim 1 wherein the first and second blockchain transactions collectively implement an exchange of a first amount of cryptocurrency in the first blockchain-based cryptocurrency system for a second amount of cryptocurrency in the first blockchain-based cryptocurrency system.

5. The apparatus of claim 1 wherein the second blockchain transaction is on a second blockchain-based cryptocurrency system different than the first blockchain-based cryptocurrency system.

6. The apparatus of claim 5 wherein the first and second blockchain transactions collectively implement an exchange of a first amount of cryptocurrency in the first blockchain-based cryptocurrency system for a second amount of cryptocurrency in the second blockchain-based cryptocurrency system.

7. The apparatus of claim 1 wherein a first trusted execution environment of the first processing device is configured:

to release the first blockchain transaction on the first blockchain-based cryptocurrency system;

responsive to receipt of at least the specified threshold amount of evidence of confirmation of the first blockchain transaction on the first blockchain-based cryptocurrency system, to release the second blockchain transaction on a second blockchain-based cryptocurrency system;

responsive to receipt of at least a specified threshold amount of evidence of confirmation of the second blockchain transaction on the second blockchain-based cryptocurrency system, to release first secret information generated in the first trusted execution environment; and

responsive to receipt of at least a specified threshold amount of evidence of confirmation of an update of the first blockchain transaction on the first blockchain-based cryptocurrency system with witness information satisfying a designated predicate, to release second secret information generated in the first trusted execution environment.

8. The apparatus of claim 1 wherein the processing devices of the processing platform comprise:

a first processing device comprising a first trusted execution environment; and

a plurality of other processing devices implementing respective servers of the processing platform;

the servers being implemented via program code comprising instructions stored in the memory and executed by the processor of corresponding respective ones of the other processing devices.

9. The apparatus of claim 8 wherein each of the other processing devices of the processing platform comprises a corresponding trusted execution environment, and wherein the first processing device and the plurality of other processing devices share at least one cryptographic key that is secured within their respective trusted execution environments.

10. The apparatus of claim 8 wherein the first trusted execution environment of the first processing device is configured:

to generate the ciphertext as an encryption of:

the first blockchain transaction;

the second blockchain transaction;

a cancellation transaction for the first blockchain transaction; and

a cancellation transaction for the second blockchain transaction; and to send the ciphertext to each of the servers;

wherein the first processing device broadcasts the first blockchain transaction on the first blockchain-based cryptocurrency system responsive to acknowledgement of receipt of the ciphertext by at least a specified threshold number of the servers.

11. The apparatus of claim 10 wherein each of the servers is configured, via the program code comprising instructions stored in the memory and executed by the processor of its corresponding one of the other processing devices:

responsive to a failure to detect confirmation of the first blockchain transaction on the first blockchain-based cryptocurrency system within a designated number of blocks, to broadcast the cancellation transaction for the first blockchain transaction on the first blockchain-based cryptocurrency system;

responsive to detection of confirmation of the first blockchain transaction on the first blockchain-based cryptocurrency system, to broadcast the second blockchain transaction on a second blockchain-based cryptocurrency system; and

responsive to detection of confirmation of the cancellation transaction for the first blockchain transaction on the first blockchain-based cryptocurrency system, to broadcast the cancellation transaction for the second blockchain transaction on the second blockchain-based cryptocurrency system.

12. The apparatus of claim 1 wherein the processing devices of the processing platform comprise:

a plurality of processing devices implementing respective servers of the processing platform;

each of the processing devices comprising a corresponding trusted execution environment;

the servers being implemented via program code comprising instructions stored in the memory and executed by the processor of corresponding respective ones of the processing devices;

wherein the processing devices share at least one cryptographic key that is secured within their respective trusted execution environments.

13. The apparatus of claim 12 wherein each of the servers is configured to execute a corresponding instance of a leader election protocol that under specified conditions rotates a leader designation among the servers.

14. The apparatus of claim 13 wherein a given one of the servers currently designated as a leader is configured:

to encrypt enclave data of its corresponding trusted execution environment;

to send the encrypted enclave data to each of the other servers;

to send to each of the other servers a ciphertext comprising an encryption of:

the first blockchain transaction;

the second blockchain transaction;

a cancellation transaction for the first blockchain transaction; and

a cancellation transaction for the second blockchain transaction; and

to broadcast the first blockchain transaction on the first blockchain-based cryptocurrency system responsive to acknowledgement of receipt of the ciphertext by at least a specified threshold number of the other servers.

15. The apparatus of claim 1 wherein a given one of the first and second blockchain transactions is configured to provide a time-locked fail-safe mechanism by storing a valid state from the trusted execution environment to a blockchain of the corresponding blockchain-based cryptocurrency system wherein the valid state is applied only after at least one of a given amount of time and a given number of blocks have elapsed.

16. A method comprising:

configuring a processing platform comprising at least a first processing device and a second processing device, each of the first and second processing devices comprising a processor coupled to a memory and each comprising a trusted execution environment, the trusted execution environment comprising a hardware-based execution environment of the processor of the corresponding processing device, to communicate over at least one network with one or more additional sets of processing devices associated with at least a first blockchain-based cryptocurrency system;

constructing in the trusted execution environment of the first processing device a first blockchain transaction on the first blockchain-based cryptocurrency system;

constructing in the trusted execution environment of the first processing device a second blockchain transaction relating to the first blockchain transaction;

generating, by the trusted execution environment of the first processing device, a ciphertext based at least in part on the first and second blockchain transactions constructed therein;

providing the ciphertext to the trusted execution environment of the second processing device;

releasing from the trusted execution environment of one of the first and second processing devices the first blockchain transaction on the first blockchain-based cryptocurrency system; and

conditioning release, from the trusted execution environment of one of the first and second processing devices, of the second blockchain transaction relating to the first blockchain transaction on receipt of at least a specified threshold amount of evidence of confirmation of the first blockchain transaction on the first blockchain-based cryptocurrency system, the conditioned release of the second blockchain transaction being controlled based at least in part on the ciphertext provided to the trusted execution environment of the second processing device.

17. The method of claim 16 wherein the second blockchain transaction is on a second blockchain-based cryptocurrency system different than the first blockchain-based cryptocurrency system.

18. The method of claim 17 wherein the first and second blockchain transactions collectively implement an exchange of a first amount of cryptocurrency in the first blockchain-based cryptocurrency system for a second amount of cryptocurrency in the second blockchain-based cryptocurrency system.

19. A computer program product comprising at least one non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by a processing platform comprising at least a first processing device and a second processing device, each of the first and second processing devices comprising a processor coupled to a memory and each comprising a trusted execution environment, the trusted execution environment comprising a hardware-based execution environment of the processor of the corresponding processing device, the processing platform being configured to communicate over at least one network with one or more additional sets of processing devices associated with at least a first blockchain-based cryptocurrency system, causes one or more of the first and second processing devices to:

construct in the trusted execution environment of the first processing device a first blockchain transaction on the first blockchain-based cryptocurrency system;

construct in the trusted execution environment of the first processing device a second blockchain transaction relating to the first blockchain transaction;

generate, by the trusted execution environment of the first processing device, a ciphertext based at least in part on the first and second blockchain transactions constructed therein;

provide the ciphertext to the trusted execution environment of the second processing device;

release from the trusted execution environment of one of the first and second processing devices the first blockchain transaction on the first blockchain-based cryptocurrency system; and

condition release, from the trusted execution environment of one of the first and second processing devices, of the second blockchain transaction relating to the first blockchain transaction on receipt of at least a specified threshold amount of evidence of confirmation of the first blockchain transaction on the first blockchain-based cryptocurrency system, the conditioned release of the second blockchain transaction being controlled based at least in part on the ciphertext provided to the trusted execution environment of the second processing device.

20. The computer program product of claim 19 wherein the second blockchain transaction is on a second blockchain-based cryptocurrency system different than the first blockchain-based cryptocurrency system.

21. The computer program product of claim 20 wherein the first and second blockchain transactions collectively implement an exchange of a first amount of cryptocurrency in the first blockchain-based cryptocurrency system for a second amount of cryptocurrency in the second blockchain-based cryptocurrency system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2019
From: BENTOV, IDDO; JUELS, ARI; ZHANG, FAN; DAIAN, PHILIP; BREIDENBACH, LORENZ
To: CORNELL UNIVERSITY
Reel/Frame 051061/0957 →
Continuity (2)
Provisional Application 62589715 · Nov 22, 2017
Related Publication 20190156301A1 · May 23, 2019
Cited By (1)
US 12,555,091