Method and System for secure Applications using Blockchain.
20200210594 ยท 2020-07-02
Inventors
Cpc classification
H04L9/0861
ELECTRICITY
H04L9/3239
ELECTRICITY
G06F21/64
PHYSICS
H04L63/0442
ELECTRICITY
H04L2209/56
ELECTRICITY
G06Q20/389
PHYSICS
H04L2209/805
ELECTRICITY
G06Q20/3678
PHYSICS
G06Q20/02
PHYSICS
International classification
Abstract
Electronic network include multiple users. Each user operates Wallet software application on his/her endpoint devices (special purpose, computer or smartphone). Each Wallet integrates with Cloud-based Identification-as-a-Service(s) (IDaaS) In context of present inventionIDaaS provides real-time, multi-factor, malware-resilient, context-sensitive Strong Identification-as-a-Service of the user and enables Cryptographic Keys Management of the Wallet. Each Wallet provides various Cryptographic functionalities. Each Wallet may be connected with multiple centralized Marketplace software applications, thus allowing these Cryptographic functionalities to interact with specific Marketplace software application. Each Wallet may be connected with multiple decentralized peer-to-peer software applications, thus allowing these Cryptographic functionalities to interact with specific peer-to-peer software application. These software applications may include Information Technology, Financial, Manufacturing, Retail, Insurance, Government, Healthcare and other verticals of Global Economy. The present invention prevents Bad Actors from using or attacking these applications. The present invention also enables Identification of participants of transactions recorded on Blockchain.
Claims
1. A method for securing Blockchain transactions by verified identities, including: a user, performing a real-time, multi-factor, strong identification vs. Cloud-based, Identification-as-a-Service; a wallet software application performing Cryptographic functionalities and linked to said Identification-as-a-Service; a software application, performing specific business activity and linked to said wallet application; a Blockchain ledger, performing storage of transactions and records and linked to said software application; a software link between Blockchain ledger and Cloud-based, Identification-as-a-Service database.
2. The method of claim 1 where the user operates said wallet application, whereby said wallet application generates a wallet Private Key; said wallet Public Address is paired with said Identification-as-a-Service username; said strong identification vs. Cloud-based Identification-as-a-Service returns an Identity String to said wallet application; thereby said wallet Private Key and said Identity String are used to calculate a Blockchain Private Key; thereby said Blockchain Private Key is used to sign a Blockchain transaction.
3. The method of claim 1 where said wallet application sends to said Identification-as-a-Service, the information, comprising of Blockchain public addresses of transaction-recipient, and the user-signing the transaction;
4. The method of claim 1 where said wallet application resides on dedicated hardware or PC or smartphone.
5. The method of claim 1 where said software application, performing specific business activity, is a centralized marketplace or a decentralized peer-to-peer.
6. The method of claim 3, where the information received by Identification-as-a-Service is used to link a Blockchain transaction to verified Identities.
7. The method of claim 1 where software business application is one of the group including Information Technology, Financial, Manufacturing, Retail, Insurance, Government, Healthcare or other verticals of Global Economy.
8. The method of claim 1 where software business application is used to store transactions or records into user-identifiable or anonymous Blockchain ledgers or both.
9. The method of claim 3 where said Identification-as-a-Service is used to validate the Blockchain public address of transaction-recipient.
10. The method of claim 1 where said Identification-as-a-Service stores users Identity information on traditional Database.
11. A system for linking Blockchain transactions to verified identities, comprising: a user, performing a real-time, multi-factor, strong identification vs. Cloud-based, Identification-as-a-Service; a wallet software application performing Cryptographic functionalities and linked to said Identification-as-a-Service; a software application, performing specific business activity and linked to said wallet application; a Blockchain ledger, performing storage of transactions and records and linked to said software application; a software link between Blockchain ledger and Cloud-based, Identification-as-a-Service database.
12. The system of claim 11 where the user operates said wallet application, whereby said wallet application generates a wallet Private Key; said wallet Public Address is paired with said Identification-as-a-Service username; said strong identification vs. Cloud-based Identification-as-a-Service returns an Identity String to said wallet application; thereby said wallet Private Key and said Identity String are used to calculate a Blockchain Private Key; thereby said Blockchain Private Key is used to sign a Blockchain transaction.
13. The system of claim 11 where said wallet application sends to said Identification-as-a-Service, the information, comprising of Blockchain public addresses of transaction-recipient, and the user-signing the transaction;
14. The system of claim 11 where said wallet application resides on dedicated hardware or PC or smartphone.
15. The system of claim 11 where said software application, performing specific business activity, is a centralized marketplace or a decentralized peer-to-peer.
16. The system of claim 13, where the information received by Identification-as-a-Service is used to link a Blockchain transaction to verified Identities.
17. The system of claim 11 where software business application is one of the group including Information Technology, Financial, Manufacturing, Retail, Insurance, Government, Healthcare or other verticals of Global Economy.
18. The system of claim 11 where software business application is used to store transactions or records into user-identifiable or anonymous Blockchain ledgers, or both.
19. The system of claim 11 where said Identification-as-a-Service is used to validate the Blockchain public address of transaction-recipient.
20. The method of claim 11 where said Identification-as-a-Service stores users Identity information on traditional Database.
Description
BRIEF DESCRIPTION OF DRAWINGS
[0029] Various exemplary embodiments are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements and in which we describe:
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038]
[0039]
[0040]
[0041]
[0042]
[0043]
[0044]
[0045]
[0046]
SUMMARY OF INVENTION
[0047] Aforementioned use cases demonstrate the need for Secure Applications using Blockchain. The present invention can be summarized as following:
[0048] Electronic network include multiple users. Each user operates Wallet software application on his/her endpoint devices (special purpose, computer or smartphone). Each Wallet integrates with Cloud-based Identification-as-a-Service(s) (IDaaS)as described in greater details by U.S. patent applications Ser. Nos. 15/774,012, 14/905,829. In context of present inventionIDaaS provides real-time, multi-factor, malware-resilient, context-sensitive Strong Identificationas-a-Service of the user and enables Cryptographic Keys Management of the Wallet. Each Wallet provides various Cryptographic functionalities. Each Wallet is connected with multiple Marketplace software applications, thus allowing these Cryptographic functionalities to interact with specific Marketplace software application. Each Marketplace application connected either with one or with two Ledgers. These Ledgers are either user-identifiable Blockchain Ledger or anonymous Blockchain Ledger, or both. Marketplace applications include Financial, Manufacturing, Retail, Insurance, Government, Healthcare and other verticals of Global Economy. The present invention prevents Bad Actors from using or attacking these applications.
[0049] Referring to
[0050] As mentioned previouslycentralized marketplace application can be replaced with smart contract.
[0051] Referring to
DETAILED DESCRIPTION OF THE INVENTION
Use Case #1: Cryptocurrency Exchange
[0052] This particular embodiment is described in
[0053] This embodiment practical implementation consists of Crypto Currency and Fiat Currency Flows. Crypto Currency (for example Bitcoin (BTC)) flow:
Buyer finds Seller (address) offer to sell 1 BTC for $10,000 on the exchange.
Buyer transfers $10,100 to the Marketplace. Exchange posts buyer address to the seller, Seller authorizes (via Identification) the transfer to the seller. Transaction recorded on Blockchain. Exchange transfers $9900 to the Seller. Real Time BTC transfer: Seller (Public Address)MarketplaceBuyer (Public Address).
Fiat currency (for example $) flow:
Real-Time Fiat Currency Money Transfer: BuyerMarketplace (commission from both sides)Seller.
[0054] The usage of wallet for cryptocurrency exchange requires the solution of the problem of user's Blockchain Private Key. To this end the usage of wallet includes the following steps, removing a Blockchain Private Key Vulnerability:
Referring to
Step 1:
[0055] Online Identification vs. IDaaS 210 (over SSL). On success Identity String 220 is returned.
Step 2:
[0056] Disconnect from the Internet 230 (airplane mode). (Wallet, disconnected from the Internet, is called cold).
Step 3:
[0057] Enter mnemonic sequence (seed phrase) 240.
Step 4:
[0058] Generate Wallet Private Key1 using mnemonic sequence 250.
Step 5:
[0059] Using key 1 and Identity String generate key2 260.
Key2=Key2 (Key1, Identity String)
[0060] So that Blockchain Private Key 270 is given by:
Blockchain Private Key=Private Key (Key1, Key2)
Step 6:
[0061] Encrypt Key1 with Identity String.
Step 7:
[0062] Print Private Key with QR on paper 280.
Print seed phrase on paper. Store printed backup in Bank's vault.
Step 8:
Encrypt 290 Key1 by Identity String
Step 9:
[0063] End of initialization. Reconnect to the Internet 300.
The above scheme effectively resolves the problem of Blockchain Private Key security.
[0064] The only remaining vulnerability: Blockchain Private Key exists in Memory in split-seconds, while Wallet is online (hot). To take care of this vulnerability on Windows walletsone must limit the memory access rights as following: protect
the PROCESS_VM_READ and PROCESS_QUERY_INFORMATION rights (as described in references on How to Read and Write Other Process Memoryand Process Security and Access Rights).
[0065] Referring to
Step 1:
[0066] Get the recipient Blockchain Pubic address 320. Online Identification (over SSL). Online Identification includes 340 entering 4 digit CODE 330 by the user , displayed in Bold on user's screen. On success Identity String is returned. 350
Step 2:
[0067] Disconnect from the Internet (airplane mode) 360.
Step 3:
[0068] Decrypt key1 with Identity String 370.
Step 4.
[0069] Using key 1 and Identity String generate key2 380.
Resulting in 390:
[0070] Blockchain Private Key=Private Key (key1, key2)
Step 5:
[0071] Copy/paste the recipient address. Sign Transaction 400. The address of the transaction (public key) must be matched with IDaaS CODE returned by IDaaS 450. Thus validating the recipient public address and preventing malware attack.
Step 6:
[0072] Destroy Private Key 410 and key1 420.
Step 7:
Reconnect to Internet 430.
Step 8 Post Transaction 440.
[0073] Identity String is a Large Random number known to IDaaS, but unknown to User. Identity String is a shared secret with Wallet app. Wallet Private Key is a Large Random number known to User but unknown to IDaaS. Wallet Private Key and Identity String are used to calculate Blockchain Private and Public Keys as generally known in Public-key cryptography.
[0074]
[0075] Referring to
The user creates a random mnemonic and chooses password. This results in Wallet Private Key generation 450. This in turn results in Public Key and Public Address 455 generation. The Wallet sends 470 the Public Address 455 together with IDaaS Username 460. This results in pairing IDaaS username with Public Address 480. By pairing Public Address with IDaaS username- phishing of password/mnemonic will be futile, since the Public Address is protected by external Identification-as-a-Service (IDaaS).
[0076] Subsequent usage of the wallet on the same Device 485 includes:
Entering Mnemonic or password 490. This will results in retrieval of all account addresses (public/private key pairs). The Wallet sends all Public Addresses 495 together with IDaaS Username 500. If 515 IDaaS is already paired with all Public Addresses then wallet will continue its initialization 518. If user has created a new account (public address) then it will be added 516. The user may add new account (public address) after login. In this case she/he must log-in again 517.
[0077] It should be noted that seed phrase (mnemonic) is enough to recover all accounts. The seed phrase is sufficient to regenerate all keys. A hierarchical deterministic wallet (HD wallet) like MetaMask can generate an unlimited number of accounts (public/private key pairs) from a single seed phrase. With an HD wallet, its possible to support multiple accounts, and even multiple crypto currencies, and all the user has to record is a single seed phrase.
[0078] In continuation of
The user entering into Buy or Send cryptocurrency 522, needs to enter a recipient address. Then both his account address and recipient address are sent to IDaaS 524. If his account is paired with IDaaS- he performs smartphone multi-factor authentication with ACODE derived from recipient address 528 (as described in greater detail in U.S. patent applications Ser. Nos. 5/774,012, 14/905,829). This ensures that transaction-recipient address is not modified by malware 539. IDaaS username is found from Account Address 530 (since they are paired 526) and user's Identity String is returned to the Wallet. Since the Identity String is a random number, its addition to Wallet Private Key is also a random number, to be chosen as Blockchain Private Key of the user 534. Subsequently Blockchain Public Key and Address is calculated 536. This Public Address will become a new Account Address 537. After transaction is signed-Blockchain Private Key is flushed from memory 538.
Use Case #2: Trade Finance
[0079] This particular embodiment is described in
[0080] The Marketplace can be any Activity where users (buyers and sellers) meet and their transaction require recording. Separation of different Activities to different Marketplaces and thus different Blockchains improves their throughput (see more on What is Blockchain Bloat?).The presented architecture allows performing any type of activity in secure, cost-effective, legally accountable manner, while preserving the Privacy of various participants.
[0081] Trade Financing Contracts may be in any one of the following Stages:
1. Offered by Seller (for example offering to sell the particular House for Specific Amount).
2. Accepted by Buyer (if approved by Marketplace/Legal/Escrow). There may be multiple Buyers (for example each buying an apartment in the House)
3. Executed by Seller (if Seller transferred the ownership of this House to the Buyer.
[0082] Contract Ledger of
[0083] Alongside with Posting Transaction Record to Transaction ledgerthe wallet will automatically confirm to Marketplace that the Contract is executed. There could be multiple Marketplaces for different types of Records, Goods, Properties, Commodities, Investments, Currencies, etc. Each Wallet may facilitate their Buying, Selling and Registry, allowing secure flow of Data.
[0084] Referring to
[0085] The stages 1 to 2 to 3 of Trade Financing Contracts require Marketplace/Legal/Escrow approval. Referring to
[0086] Alternatively one can use cryptocurrency peer-to-peer trading through Smart Contracts, where legal and escrow functionalities are programmatically enforced. Furthermore Contract/Identifiable ledger 580 of
Use Case #3: Identity Management
[0087] Often we need to present our Identity, but always we need to preserve our Identity. Bad actors may try to steal it (Identity Theft) or use it fraudulently (Identity Fraud). They may even create completely Fake Identity (Synthetic Identity Theft).
On the other hand, while we present our Identitywe should limit the presentation to bare minimum: to get a drink in the Bar you only need to present your age, but to vote you need present your National Identity Card. To open a Bank Accountyou will need to present multiple credentials. Blockchain is ideally suited to store our Identity Attributes, because they cannot be altered without authorization. But storing these attributes in decentralized public Blockchain does not provide a mechanism for preventing Bad Actors getting advantage. We need to prevent from Bad Actors to access this Identity Blockchain altogether.
[0088] This particular embodiment is described in
[0089] Referring to
Use Case #4: Internet Voting
[0090] This particular embodiment is described in
[0091] Referring to
Use Case #5: Identity and Access Management (IAM)
[0092] This particular embodiment is described in
Blockchain 1050 provides decentralized IAM for Extended Enterprise, (serving employees, partners and customers). Each IT resource in Extended Enterprise will be listed in IT Directory. Each resource in IT directory will be managed by its IT admin 1090. To get access to the resourcethe user must be authorized by the IT admin
The authorization will be recorded on Blockchain 1050. Once authorizedthe user will get access to the resource, if identified successfully 1095. The access will be recorded on Blockchain 1100.
[0093] The user requesting access 1000 will open Distributed application (Dapp) 1010 using a wallet and Identification service 1030. To request access with Admin Public Address he will sign the transaction 1040 to be recorded on Blockchain 1050. The message to Admin will be sent 1060. If this is the first request 1070 then user's true Identity will be audited vs Identification service 1080. If this user has access rights (proper authorization) he will gain access 1090,1095. If this is not first a request 1070then proper authorization is already exist and he will gain access 1090,1095.
[0094] Summarizing Use Cases 1-5, each user must have a Wallet application that is capable of aforementioned multiple functionalities. These functionalities are shown in
[0095] While the foregoing written description of the invention enables one of ordinary kill to make and use what is considered presently to be the best mode thereof, those of ordinary skill will understand and appreciate the existence of variations, combinations, and equivalents of the specific embodiment, method, and examples herein. The invention should therefore not be limited by the above described embodiment, method, and examples, but by all embodiments and methods within the scope and spirit of the invention as claimed.
Patent Literature
[0096] 1. U.S. patent application Ser. No. 15/774,012 Method and system for protecting and utilizing Internet Identity using smartphone
2. U.S. patent application Ser. No. 14/905,829 Secure Transaction and Access using insecure device
3. US 2016/0342994 A1, Method and System for Fraud Control of Blockchain-based Transactions
[0097] 4. US 2015/0244690A1, Generalized entity network translation
5. U.S. patent application 62/613,422 Method and System for scalable, anonymous, and Secured Marketplace using Blockchain,
Non-Patent Literature
[0098] 1. Blockchain https:en.wikipedia.org/wiki/Blockchain
2. How to Read and Write Other Process Memory http://nullprogram.com/blog/2016/09/03
3. Process Security and Access Rights
[0099] https://msdn.mmicrosoft.com/en/en-us/library/windows/desktop/ms684880(v=vs.85).aspx
4. What is Blockchain Bloat? https://themerkle.com/what-is-Blockchain-bloat/
5. Public-key cryptography https://en.wikipedia.org/wiki/Public-key cryptography
6. Metamask-Browser-Based Etherium Crypto Wallet.
[0100] https://metamask.io
7. A hierarchical deterministic wallet (HD wallet)
https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki