IP Library Granted Patent US 10,333,706
Granted Patent B2
US 10,333,706 · App. 15/582,100 · Granted Jun 25, 2019

Methods and systems of providing verification of information using a centralized or distributed ledger

Inventors: Jonathan Robert Smith (Oakland, CA); Vinodan Karthikeya Lingham (Los Altos, CA); John Driscoll (Fremont, CA); Iain Charles Fraser (San Francisco, CA)
Assignee: Civic Technologies, Inc.
H04L9/0861G06Q20/02G06Q20/065G06Q20/3276G06Q20/3278G06Q20/3674G06Q20/3829G06Q20/38215G06Q20/407H04L9/0637H04L9/0891H04L9/14H04L9/30H04L9/3066H04L9/3236H04L9/3239H04L9/3242H04L9/3247H04L9/3271H04L63/0435H04L63/0442H04L63/0492H04L63/061H04L63/0823H04L2209/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,333,706
App. No.
15/582,100
Granted
Jun 25, 2019
Kind
B2
Abstract

A method and system of providing verification of information of a user relating to an attestation transaction is provided, and includes sending a request for information of the user, wherein the information has been previously attested to in an attestation transaction stored within a centralized or distributed ledger at an attestation address; receiving at a processor associated with a verifier the information of the user; sending a cryptographic challenge nonce; receiving at the processor associated with the verifier the cryptographic challenge nonce signed by the user's private key; verifying user identity with the cryptographic challenge nonce signed by the user's private key; deriving a public attest key by using the information of the user; deriving an attestation address using the public attest key; and verifying the existence of the attestation transaction at the attestation address in the centralized or distributed ledger.

Claims (42)

1. A method of providing verification of information of a user relating to an attestation transaction, the method being implemented on a computer system having one or more physical processors configured by machine-readable instructions which, when executed perform the method, comprising:

sending a request for information of the user;

receiving at a processor associated with a verifier the information of the user;

sending a cryptographic challenge nonce;

receiving at the processor associated with the verifier the cryptographic challenge nonce signed by the user's private key;

verifying user identity with the cryptographic challenge nonce signed by the user's private key;

deriving a public attest key by using the information of the user;

deriving an attestation address using the public attest key;

verifying the existence of a signed transaction having a non-zero transaction value at the attestation address in a centralized or distributed ledger, the non-zero transaction value indicating that the signed transaction has not been revoked; and

authenticating the user, responsive to the verification of the existence of the signed transaction having a non-zero transaction value at the attestation address in the centralized or distributed ledger.

2. The method of claim 1 ,

wherein sending a request for information further comprises sending a request for the user's public key; and

wherein receiving the information further comprises receiving the user's public key.

3. The method of claim 2 ,

wherein verifying user identity further comprises checking the user's public key and the cryptographic challenge nonce signed by the user's private key.

4. The method of claim 2 ,

wherein deriving a public attest key further comprises using the information and the user's public key to derive the public attest key.

5. The method of claim 1 , further comprising providing a processor associated with an attestor for generating the attestation transaction.

6. The method of claim 5 ,

wherein sending a request for information further comprises sending a request for the attestor's public key and a third party cosigner's public key.

7. The method of claim 5 ,

wherein using the information to derive the public attest key further comprises using at least one of the user's public key, an attestor's public key and a third party cosigner's public key to derive the public attest key.

8. The method of claim 5 , wherein deriving a public attest key comprises deriving the public attest key using an application or website of the attestor.

9. The method of claim 5 , wherein the processor associated with the verifier sends the information received by the user to the processor associated with the attestor and receives the public attest key from the processor associated with the attestor.

10. The method of claim 9 , wherein the processor associated with the verifier sends the user information and the user's public key to a third party application or website and wherein the processor associated with the verifier receives the public attest key and the attestation address from third party application or website.

11. The method of claim 9 , wherein the processor associated with the verifier uses a third party digital wallet provider application or website to verify the existence of the attestation transaction at the attestation address.

12. A method of providing attestation of information by an attestor, the method being implemented on a computer system having one or more physical processors configured by machine-readable instructions which, when executed perform the method, comprising:

receiving at a processor associated with the attestor the information and a public key generated for the information;

applying a hash function to the information to create a hash;

combining the hash of the information with the public key generated for the information to generate a public attest key;

generating an attestation address based on the public attest key;

communicating a request to a second computer system comprising the attestation address and a transaction value, receipt of the request causing the second computer system to record a signed transaction adding the transaction value to a centralized or distributed ledger at the attestation address;

subsequently receiving, at the processor, an update to the information; and

communicating a second request to the second computer system comprising the attestation address and the transaction value, receipt of the request causing the second computer system to record a second transaction deducting the transaction value at the attestation address;

wherein a third computer system is configured to determine whether the information is verified responsive to the attestation address being associated with a non-zero transaction value.

13. The method of claim 12 , wherein elliptic curve addition is used to combine the hash of the information with the public key generated for the information to generate the public attest key.

14. The method of claim 12 , wherein combining the hash of the information with the public key generated for the information comprises using the hash of the information as an offset and using the public key generated for the information to generate the public attest key.

15. The method of claim 12 , wherein generating the attestation address for a single signature transaction comprises applying a second hash function to the public attest key.

16. The method of claim 12 , wherein generating the attestation address comprises combining two or more public keys of potential signers utilizing a multi-signature script.

17. The method of claim 16 , wherein one of the public keys of potential signers is one of a public key of a wallet provider, a public key of the attestor, and a recovery public key of a user.

18. The method of claim 16 , wherein generating the attestation address for a multiple signature transaction comprises generating a redeem script using the public keys of the multiple signatories, serializing the redeem script to create a serialized output, applying a second hash function to the serialized output to create a second hash, and applying a third hash function to the second hash.

19. The method of claim 12 , wherein the centralized or distributed ledger is the bitcoin blockchain.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 5, 2018
From: SMITH, JONATHAN ROBERT; LINGHAM, VINODAN KARTHIKEYA; FRASER, IAIN CHARLES
To: CIVIC TECHNOLOGIES, INC.
Reel/Frame 047414/0243 →
Continuity (2)
Provisional Application 62330097 · Apr 30, 2016
Related Publication 20170317834A1 · Nov 2, 2017
Cited By (17)
US 12,205,172 US 12,225,008 US 12,235,946 US 12,238,101 US 12,248,988 US 12,299,742 US 12,354,166 US 12,373,833 US 12,412,214 US 12,417,449 US 12,417,502 US 12,462,300 US 12,462,303 US 12,664,587 US 12,664,588 US 12,694,450 US 12,700,037