IP Library Granted Patent US 10,783,272
Granted Patent B2
US 10,783,272 · App. 15/835,477 · Granted Sep 22, 2020

Method and system of preserving privacy for usage of lightweight blockchain clients

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,783,272
App. No.
15/835,477
Granted
Sep 22, 2020
Kind
B2
Abstract

A method of preserving privacy for usage of a lightweight blockchain client in a blockchain network includes using, in a full blockchain node of the blockchain network, a secure software guard extensions (SGX) enclave. A request is received from the lightweight blockchain client for a setup of a secure network connection. A client unique ID is received from the lightweight blockchain client, and is acknowledged following a successful attestation by the lightweight blockchain client. A request is received from the lightweight blockchain client for transaction(s)/address(es) of the lightweight blockchain client. The SGX enclave loads and searches unspent transaction outputs (UTXO) from a memory of the full blockchain node and sends a response to the request from the lightweight blockchain client for the transaction(s)/address(es) based on a match from the searching the UTXO. The secure communication is then terminated with the lightweight blockchain client.

Claims (25)

1. A method of preserving privacy for usage of a lightweight blockchain client in a blockchain network, the method comprising:

using, in a full blockchain node of the blockchain network, a secure software guard extensions (SGX) enclave;

receiving a request from the lightweight blockchain client for a setup of a secure network connection;

receiving a client unique ID from the lightweight blockchain client, and acknowledging the client unique id sent by the lightweight blockchain client following a successful attestation by the lightweight blockchain client;

receiving a request from the lightweight blockchain client for at least one transaction or address of the lightweight blockchain client;

loading and searching, by the SGX enclave, unspent transaction outputs (UTXO) from a memory of the full blockchain node and sending a response to the request from the lightweight blockchain client for the at least one transaction or address based on a match from the searching the UTXO; and

terminating the secure communication with the lightweight blockchain client.

2. The method according to claim 1 , further comprising checking, by the SGX enclave prior to the loading and searching of the UTXO, whether the request from the lightweight blockchain client for the at least one transaction or address exists in a cache memory of the full blockchain node tied to the client unique ID and, based thereon, sending the response to the lightweight blockchain client created in an earlier phase.

3. The method according to claim 1 , further comprising, at initialization of the full blockchain node, scanning a blockchain of the blockchain network and storing the UTXO in the memory.

4. The method according to claim 2 , further comprising updating the UTXO in the memory of the full blockchain node based on an addition of one or more blocks to the blockchain.

5. The method according to claim 1 , further comprising storing a result of the match of the searching of the UTXO in the cache memory of the full blockchain node tied to the unique id of the lightweight blockchain client.

6. The method according to claim 1 , further comprising updating a copy of a blockchain of the blockchain network in a database of the full blockchain node based on the response being sent to the lightweight blockchain client.

7. The method according to claim 1 , wherein the full blockchain node receives a request from the lightweight blockchain to initiate a transmission control protocol (TCP) connection, and, based thereon, secure communication is established between the full blockchain node and the lightweight blockchain client following a transport layer security (TLS) handshake.

8. A full blockchain node disposed in a block chain and using a secure software guard extensions (SGX) enclave, the full blockchain node being configured to preserve privacy for usage of a lightweight blockchain client by providing for execution of the following steps:

receiving a request from the lightweight blockchain client for a setup of a secure network connection;

receiving a client unique ID from the lightweight blockchain client, and acknowledging the client unique id sent by the lightweight blockchain client following a successful attestation by the lightweight blockchain client;

receiving a request from the lightweight blockchain client for at least one transaction or address of the lightweight blockchain client;

loading and searching, by the SGX enclave, unspent transaction outputs (UTXO) from a memory of the full blockchain node and sending a response to the request from the lightweight blockchain client for the at least one transaction or address based on a match from the searching the UTXO;

and terminating the secure communication with the lightweight blockchain client.

9. The full blockchain node according to claim 8 , being further configured to check, prior to the loading and searching of the UTXO, whether the request from the lightweight blockchain client for the at least one transaction or address exists in a cache memory of the full blockchain node tied to the client unique ID and, based thereon, send the response to the lightweight blockchain client created in an earlier phase.

10. The full blockchain node according to claim 8 , being further configured to scan a blockchain of the blockchain network and store the UTXO in the memory at initialization of the full blockchain node.

11. The full blockchain node according to claim 10 , being further configured to update the UTXO in the memory of the full blockchain node based on an addition of one or more blocks to the blockchain.

12. The full blockchain node according to claim 8 , being further configured to store a result of the match of the searching of the UTXO in the cache memory of the full blockchain node tied to the unique id of the lightweight blockchain client.

13. The full blockchain node according to claim 8 , being further configured to update a copy of a blockchain of the blockchain network in a database of the full blockchain node based on the response being sent to the lightweight blockchain client.

14. The full blockchain node according to claim 8 , being further configured to receive a request from the lightweight blockchain to initiate a transmission control protocol (TCP) connection, and, based thereon, secure communication is established between the full blockchain node and the lightweight blockchain client following a transport layer security (TLS) handshake.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2020
From: NEC LABORATORIES EUROPE GMBH
To: NEC CORPORATION
Reel/Frame 053532/0114 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 29, 2017
From: NEC EUROPE LTD.
To: NEC LABORATORIES EUROPE GMBH
Reel/Frame 044979/0698 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2017
From: MATETIC, SINISA; KARAME, GHASSAN; CAPKUN, SRDJAN
To: NEC EUROPE LTD.
Reel/Frame 044403/0559 →