IP Library Granted Patent US 11,075,757
Granted Patent B2
US 11,075,757 · App. 16/383,066 · Granted Jul 27, 2021

Shielded interoperability of distributed ledgers

Inventors: Luca Schiatti (Juan-les-Pins, FR); Antoine Rabenandrasana (Nice, FR); Hugo Borne-Pons (Juan-les-Pins, FR); Giuseppe Giordano (Juan-les-Pins, FR)
Assignee: Accenture Global Solutions Limited
H04L9/3221H04L9/3239H04L2209/38
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,075,757
App. No.
16/383,066
Granted
Jul 27, 2021
Kind
B2
Abstract

A system may receive a request to perform a token exchange between a first account and a second account. A selected token for the token exchange may be associated with the first account. A hash of the selected token may be stored on a furnisher blockchain of a first distributed ledger. The system may generate a new token and a hash of the new token. The system may generate a shielded exchange instruction, the shielded exchange instruction comprising the hash of the new token and a zero-knowledge proof, wherein the zero-knowledge proof is indicative of the selected token being associated with the first account. The system may submit the shielded exchange instruction to a distributed ledger technology platform to cause execution of a furnisher smart contract and a receiver smart contract. Each of the smart contracts are configured to separately verify the zero-knowledge proof and update corresponding blockchains to consummate and record the token exchange.

Claims (73)

1. A system comprising:

a processor, the processor configured to:

receive a request to perform a token exchange between a first account and a second account, wherein a selected token for the token exchange is associated with the first account, wherein a hash of the selected token is stored on a furnisher blockchain of a first distributed ledger;

generate a new token and a hash of the new token;

generate a shielded exchange instruction, the shielded exchange instruction comprising the hash of the new token and a zero-knowledge proof, wherein the zero-knowledge proof is indicative of the selected token being associated with the first account;

submit the shielded exchange instruction to a distributed ledger technology platform to cause execution of a furnisher smart contract and a receiver smart contract,

wherein the furnisher smart contract comprises instructions to verify the zero-knowledge proof and retire, on the furnisher blockchain, the hash of the selected token by flagging the hash of the selected token, and

wherein the receiver smart contract comprises instructions to verify the zero-knowledge proof and insert, on a receiver blockchain of a second distributed ledger, the hash of the new token, wherein the first distributed ledger is different from the second distributed ledger; and

execute the instructions of the furnisher smart contract to retire the hash of the selected token, wherein execution of the instructions of the furnisher smart causes the processor to:

access a nullifier set comprising a plurality of hashed tokens;

identify, in the nullifier set, the hash of the selected token; and

flag the hash of the selected token as retired by appending, to the furnisher blockchain, a datablock comprising an association between the hash of the selected token and a retirement flag.

2. The system of claim 1 , wherein the processor is further configured to:

transmit the new token to the second account after submission of the shielded exchange instruction to the furnisher smart contract and the receiver smart contract.

3. The system of claim 1 , further comprising:

a memory, the memory storing the furnisher blockchain, the receiver blockchain, or any combination thereof.

4. The system of claim 1 , wherein the processor is further configured to:

determine the hash of the new token is not stored on the receiver blockchain, wherein the processor is further configured to generate the shielded exchange instruction in response to determination that the hash of the new token is not stored on the receiver blockchain.

5. The system of claim 4 , wherein to determine the hash of the new token is not stored on the receiver blockchain, the processor is further configured to:

access a nullifier set stored on the receiver blockchain, the nullifier set comprising a plurality of hashed tokens stored on the receiver blockchain;

search the nullifier set for the hash of the new token;

determine whether the hash of the new token is present in the nullifier set;

permit, in response to determination that the hash of the new token is not present in the nullifier set, submission of the shielded exchange instruction to the furnisher smart contract and the receiver smart contract; and

restrict, in response to determination that the hash of the new token is present in the nullifier set, submission of the shielded exchange instruction to the furnisher smart contract and the receiver smart contract.

6. The system of claim 1 , wherein the zero-knowledge proof comprises a non-interactive zero-knowledge proof.

7. The system of claim 1 , wherein the zero-knowledge proof comprises a Zero-Knowledge Succinct Non-Interactive Argument of Knowledge (zk-SNARK).

8. The system of claim 1 , wherein the processor is further configured to:

execute the instructions of the receiver smart contract to append the hash of the new token to the receiver blockchain.

9. The system of claim 1 , wherein the processor is further configured to:

deny a second request for a token exchange in response to the hash of the selected token being retired.

10. A method comprising:

receiving a request to perform a token exchange between a first account and a second account, wherein a selected token for the token exchange is associated with the first account, wherein a hash of the selected token is stored on a furnisher blockchain of a first distributed ledger;

generating a new token and a hash of the new token;

generating a shielded exchange instruction, the shielded exchange instruction comprising the hash of the new token and a zero-knowledge proof, wherein the zero-knowledge proof is indicative of the selected token being mapped to the first account;

submitting the shielded exchange instruction to a distributed ledger platform to cause execution of a furnisher smart contract and a receiver smart contract,

wherein the furnisher smart contract comprises instructions to verify the zero-knowledge proof and retire, on the furnisher blockchain, the hash of the selected token by flagging the hash of the selected token, and

wherein the receiver smart contract comprises instructions to verify the zero-knowledge proof and insert, on a receiver blockchain of a second distributed ledger, the hash of the new token, wherein the first distributed ledger is different from the second distributed ledger; and

executing the instructions of the furnisher smart contract by a furnisher participant node, an interoperability node, or any combination thereof, wherein executing the instructions of the furnisher smart contract comprises:

accessing a nullifier set comprising a plurality of hashed tokens;

identifying, in the nullifier set, the hash of the selected token; and

flagging the hash of the selected token as retired by appending, to the furnisher blockchain, a datablock comprising an association between the hash of the selected token and a retirement flag.

11. The method of claim 10 , further comprising:

transmitting the new token to the second account after submission of the shielded exchange instruction to the furnisher smart contract and the receiver smart contract.

12. The method of claim 10 , further comprising:

determining the hash of the new token is not stored on the receiver blockchain, wherein the shielded exchange instruction is generated in response to determination that the hash of the new token is not stored on the receiver blockchain.

13. The method of claim 12 , wherein determining the hash of the new token is not stored on the receiver blockchain further comprises:

accessing a nullifier set stored on the receiver blockchain, the nullifier set comprising a plurality of hashed tokens stored on the receiver blockchain

searching the nullifier set for the hash of the new token;

determining whether the hash of the new token is present in the nullifier set;

permitting, in response to determination that the hash of the new token is not present in the nullifier set, submission of the shielded exchange instruction to the furnisher smart contract and the receiver smart contract; and

restricting, in response to determination that the hash of the new token is present in the nullifier set, submission of the shielded exchange instruction to the furnisher smart contract and the receiver smart contract.

14. The method of claim 10 , wherein the zero-knowledge proof comprises a Zero-Knowledge Succinct Non-Interactive Argument of Knowledge (zk-SNARK).

15. The method of claim 10 , further comprising

executing the instructions of the receiver smart contract by a receiver participant node, an interoperability node, or any combination thereof, wherein executing the instructions of the receiver smart contract further comprises appending the hash of the new token to the receiver blockchain.

16. The method of claim 10 , further comprising:

denying a second request for a token exchange in response to the hash of the selected token being retired.

17. A non-transitory computer readable storage medium comprising:

a plurality of instructions executable by a processor, the instructions comprising:

instructions executable by a processor to receive a request to perform a token exchange between a first account and a second account, wherein a selected token for the token exchange is associated with the first account, wherein a hash of the selected token is stored on a furnisher blockchain of a first distributed ledger;

instructions executable by a processor to generate a new token and a hash of the new token;

instructions executable by a processor to generate a shielded exchange instruction, the shielded exchange instruction comprising the hash of the new token and a zero-knowledge proof, wherein the zero-knowledge proof is indicative of the selected token being associated with the first account;

instructions executable by a processor to submit the shielded exchange instruction to a distributed ledger technology platform, wherein the distributed ledger technology platform causes execution of a furnisher smart contract and a receiver smart contract,

wherein the furnisher smart contract comprises instructions to verify the zero-knowledge proof and retire, on the furnisher blockchain, the hash of the selected token by flagging the hash of the selected token, and

wherein the receiver smart contract comprises instructions to verify the zero-knowledge proof and insert, on a receiver blockchain of a second distributed ledger, the hash of the new token, wherein the first distributed ledger is different from the second distributed ledger; and

execute the instructions of the furnisher smart contract to retire the hash of the selected token, wherein execution of the instructions of the furnisher smart causes the processor to:

access a nullifier set comprising a plurality of hashed tokens;

identify, in the nullifier set, the hash of the selected token; and

flag the hash of the selected token as retired by appending, to the furnisher blockchain, a datablock comprising an association between the hash of the selected token and a retirement flag.

18. The medium of claim 17 , wherein the zero-knowledge proof comprises a Zero-Knowledge Succinct Non-Interactive Argument of Knowledge (zk-SNARK).

19. The medium of claim 17 , wherein the plurality of instructions further include instructions executable by a processor to:

execute the instructions of the receiver smart contract to append the hash of the new token to the receiver blockchain.

20. The medium of claim 17 , wherein the plurality of instructions further include instructions executable by a processor to:

deny a second request for a token exchange in response to the hash of the selected token being retired.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2019
From: SCHIATTI, LUCA; RABENANDRASANA, ANTOINE; BORNE-PONS, HUGO; GIORDANO, GIUSEPPE
To: ACCENTURE GLOBAL SOLUTIONS LIMITED
Reel/Frame 048937/0978 →
Continuity (2)
Continuation 16142657 · Sep 26, 2018
Related Publication 20200099524A1 · Mar 26, 2020
Cited By (2)
US 12,282,962 US 12,483,557