Sealed distributed ledger system
AssigneeR3 Ltd.
InventorMichael Christopher Hearn
Life of this patent
Estimating the term…
Abstract
A system for ensuring privacy of transactions is provided. The system may be performed by a computing system during execution of trusted code within a secure enclave of the computing system. The system receives an indication of a transaction. The system validates the transaction. The system encrypts the validated transaction using an encryption key of the trusted code. The system requests untrusted code of the computing system to store the encrypted validated transaction in a portion of a data store. The untrusted code cannot decrypt the encrypted validated transaction that is stored in the data store. Rather, only the trusted code can decrypt the encrypted validated transaction.
Claims20
A method performed by trusted code of a secure enclave of a computing system for providing evidence that a transaction has been validated, wherein the secure enclave is a feature of a processing unit in the computing system in which the trusted code is stored in memory in encrypted form and decrypted for execution by the processing unit using a private key of a public/private keypair of the secure enclave, the method comprising:
- receiving a transaction at the secure enclave;
- decrypting the transaction, by the secure enclave, using the private key of the public/private keypair of the secure enclave;
- validating the transaction by the secure enclave;
- generating, by the secure enclave, an attestation that the transaction has been validated, the attestation being evidence that the transaction is valid and being signed using the private key of the public/private keypair of the secure enclave, the attestation including a hash of the transaction;
- and
- providing the attestation to untrusted code for use in validating another transaction that inputs an output state of the transaction so that the trusted code can rely on the attestation as evidence that the transaction identified by the hash of the transaction is valid using a public key corresponding to the private key and to avoid the untrusted code accessing an input state of the transaction and thereby preserving confidentiality of the transaction.
A method performed by trusted code of a secure enclave of a computing system for validating a transaction that inputs an output state of another transaction, wherein the secure enclave is a feature of a processing unit in the computing system in which the trusted code is stored in memory in encrypted form and decrypted for execution by the processing unit using a private key of a public/private keypair of the secure enclave, the method comprising:
- receiving the transaction at the secure enclave;
- requesting untrusted code of the computing system to provide the other transaction;
- receiving from the untrusted code a signature of attestation for the other transaction, the signature of attestation generated by another secure enclave as evidence of validity of the other transaction;
- verifying that the signature of attestation is by a secure enclave that executes trusted code for the other transaction;
- coordinating with a notary to determine whether the output state of the other transaction has been consumed;
- and
- indicating that the transaction is valid when the signature of attestation is verified and the output state is not consumed.
A computing system that, during execution of trusted code of a secure enclave of the computing system, provides evidence that a transaction has been validated, wherein the secure enclave is a feature of a processing unit in the computing system in which the trusted code is stored in memory in encrypted form and decrypted for execution by the processing unit using a private key of a public/private keypair of the secure enclave, the computing system comprising:
- one or more computer-readable storage mediums for storing the trusted code, wherein the trusted code includes computer-executable instructions for controlling the computing system to:
- generate an attestation that a transaction received has been validated, the attestation being evidence that the transaction is valid and being signed using a private key of the secure enclave, the attestation including a hash of the transaction;
- provide the attestation to untrusted code for use in validating another transaction that inputs an output state of the transaction so that the trusted code can rely on the attestation as evidence that the transaction identified by the hash of the transaction is valid using a public key corresponding to the private key and to avoid the untrusted code accessing an input state of the transaction and thereby preserving confidentiality of the transaction;
- and
- one or more processors for executing the computer-executable instructions stored in the one or more computer-readable storage mediums.
A computing system that, during execution of trusted code of a secure enclave of the computing system, validates a transaction that inputs an output state of another transaction, wherein the secure enclave is a feature of a processing unit in the computing system in which the trusted code is stored in memory in encrypted form and decrypted for execution by the processing unit using a private key of a public/private keypair of the secure enclave, the computer system comprising:
- one or more computer-readable storage mediums for storing computer-executable instructions for controlling the computing system to:
- receive from untrusted code a signature of attestation for the other transaction, the signature of attestation including a hash of the trusted code that is signed by a private key of another computing system and a hash indicating that the other transaction is valid and being signed with a private key of trusted code of another secure enclave of the other computing system;
- verify that the signature of attestation is generated by a secure enclave that validated the other transaction using a public key corresponding to the private key so as to avoid the untrusted code accessing an input state of the transaction and thereby preserving confidentiality of the transaction;
- coordinate with a notary to determine whether the output state of the other transaction has been consumed;
- and
- indicate the transaction is valid when the signature of attestation is verified, the output state is not consumed, and a criterion of validity specified in the transaction is satisfied;
- and
- one or more processors for executing the computer-executable instructions stored in the one or more computer-readable storage mediums.
Dependencies are inferred from the claim text.