IP Library Granted Patent US 10,742,393
Granted Patent B2
US 10,742,393 · App. 15/715,620 · Granted Aug 11, 2020

Confidentiality in a consortium blockchain network

Inventor: Isaac Wooden (Bothell, WA)
Assignee: Microsoft Technology Licensing, LLC
H04L9/06G06F21/123G06F21/57G06F21/6209H04L9/3236H04L9/3239H04L9/3247H04L63/0428H04L63/10H04L63/12G06F21/125G06F2221/0746H04L2209/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 10,742,393
App. No.
15/715,620
Granted
Aug 11, 2020
Kind
B2
Abstract

The disclosed technology is generally directed to blockchain technology. In one example of the technology, a pre-determined type of blockchain protocol code is stored in a trusted execution environment (TEE) of a processor. TEE attestation is used to verify that the blockchain protocol code stored in the TEE is the pre-determined type of blockchain protocol code. A blockchain transaction is received. The blockchain transaction is processed while disallowing access to raw transaction data. A state of the processed blockchain is updated for a blockchain network based on the processing of the blockchain transaction, while disallowing access to raw transaction data.

Claims (53)

1. An apparatus, comprising:

a device including at least one memory adapted to store run-time data for the device, and at least one processor that is adapted to execute processor-executable code that, in response to execution, enables the device to perform actions, including:

storing a pre-determined type of blockchain protocol code in a first trusted execution environment (TEE) of a processor of the at least one processor;

using TEE attestation by the first TEE to verify that the blockchain protocol code stored in the first TEE is the pre-determined type of blockchain protocol code;

receiving a blockchain transaction;

processing the blockchain transaction while disallowing access to raw transaction data; and

updating, for a blockchain network, a state of the processed blockchain based on the processing of the blockchain transaction, while disallowing access to raw transaction data and state information associated with the updated state of the processed blockchain based on the processing of the blockchain transaction, such that decryption of the transaction data is disallowed unless the decryption is occurring in a TEE of a device running the pre-determined type of blockchain protocol code as verified based on TEE attestation.

2. The apparatus of claim 1 , wherein the blockchain transaction is encrypted and confidential such that viewing of the blockchain transaction is limited to authorized parties.

3. The apparatus of claim 1 , the actions further including:

providing, to a user associated with the blockchain transaction, synchronous notification of the blockchain transaction.

4. The apparatus of claim 1 , the actions further including:

receiving code for a smart contract;

determining whether the code complies with a confidentiality design pattern; and

if the code fails to comply with the confidentiality design pattern

rejecting the code

else

deploying the code.

5. The apparatus of claim 4 , wherein the code for the smart contract is source code for the smart contract.

6. The apparatus of claim 4 , wherein determining whether the code complies with the confidentiality design pattern includes static analysis.

7. The apparatus of claim 4 , wherein determining whether the code complies with the confidentiality design pattern is accomplished via at least regular expressions.

8. The apparatus of claim 4 , wherein the confidentiality design pattern requires access control built into the smart contract.

9. The apparatus of claim 4 , wherein the confidentiality design pattern requires events of the blockchain network to be limited as to which addresses the events are available to.

10. The apparatus of claim 4 , wherein the confidentiality design pattern denies access to variables of the blockchain network except by defined functions of the blockchain network.

11. A method, comprising:

using trusted execution environment (TEE) attestation by a first TEE of a processor to verify that security protocol code stored in the first TEE of the processor is a pre-determined type of security protocol code;

processing a blockchain transaction for a consortium network while disallowing access to state information except via smart contracts; and

using at least the processor to update, for the consortium network, a state of the blockchain transaction based on the processing of the blockchain transaction, while disallowing access to the state information based on the processing of the blockchain transaction except via smart contracts and synchronous notifications, such that decryption of the blockchain transaction is disallowed unless the decryption is occurring in a TEE of a device running the pre-determined type of security protocol code as verified based on TEE attestation.

12. The method of claim 11 , further comprising:

providing, to a user associated with the blockchain transaction, synchronous notification of the blockchain transaction.

13. The method of claim 11 , further comprising:

receiving source code for a smart contract;

determining whether the source code complies with a confidentiality design pattern; and

if the source code fails to comply with the confidentiality design pattern

rejecting the source code

else

compiling and deploying the source code.

14. The method of claim 13 , wherein determining whether the source code complies with the confidentiality design pattern includes static analysis.

15. The method of claim 13 , wherein the confidentiality design pattern requires access control built into the smart contract.

16. The method of claim 13 , wherein the confidentiality design pattern requires events of the blockchain network to be limited as to which addresses the events are available to.

17. The method of claim 13 , wherein the confidentiality design pattern denies access to variables of the blockchain network except by defined functions of the blockchain network.

18. A processor-readable storage medium, having stored thereon processor-executable code for computer network design, that, upon execution by at least one processor, enables actions, comprising:

storing a pre-determined type of blockchain protocol code in a first trusted execution environment (TEE) of a processor of the at least one processor;

verifying, via TEE attestation by the first TEE, that the blockchain protocol code stored in the first TEE is the pre-determined type of blockchain protocol code; and

processing a blockchain transaction while disallowing access to raw transaction data;

updating, for a blockchain network, a state of the processed blockchain based on the processing of the blockchain transaction, while disallowing access to raw transaction data and state information associated with the updated state of the processed blockchain based on the processing of the blockchain transaction, such that decryption of the transaction data is disallowed unless the decryption is occurring in a TEE of a device running the pre-determined type of blockchain protocol code as verified based on TEE attestation.

19. The processor-readable storage medium of claim 18 , the actions further comprising:

receiving source code for a smart contract;

determining whether the source code complies with a confidentiality design pattern; and

if the source code fails to comply with the confidentiality design pattern

rejecting the source code

else

compiling and deploying the source code.

20. The processor-readable storage medium of claim 19 , wherein the confidentiality design pattern requires access control built into the smart contract.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2017
From: WOODEN, ISAAC
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 043700/0373 →
Continuity (2)
Provisional Application 62489907 · Apr 25, 2017
Related Publication 20180309567A1 · Oct 25, 2018
Cited By (1)
US 12,646,061