AUTOMATICALLY ASSIGNING CRYPTOGRAPHIC TOKENS TO CRYPTOCURRENCY WALLET ADDRESSES VIA A SMART CONTRACT IN RESPONSE TO ANALYSIS OF TRANSACTION DATA
20200294033 ยท 2020-09-17
Assignee
Inventors
Cpc classification
G06Q20/3678
PHYSICS
G06Q20/02
PHYSICS
International classification
G06Q20/06
PHYSICS
Abstract
A method comprising automatically assigning cryptographic tokens to cryptocurrency wallet addresses via a smart contract hosted on and executed by decentralised virtual machines of a decentralised network, storing received transaction history data in a transaction database; analysing and matching purchase transactions in the stored transaction history data by calculating a matching accuracy score; applying a predetermined reward rule on matching purchase transactions that have a calculated matching accuracy score above a predetermined matching threshold; wherein the predetermined reward rule comprising: calculating an amount of cryptographic tokens to be assigned at least based on an amount of the matching purchase transaction; and assigning the calculated amount of cryptographic tokens to a cryptocurrency wallet address of a user via a blockchain transaction by digitally signing the blockchain transaction with a private key.
Claims
1. A method comprising automatically assigning cryptographic tokens to cryptocurrency wallet addresses of users via a smart contract hosted on and executed by decentralised virtual machines of a decentralised network, comprising: retrieving transaction history data for a linked account from a financial institution server using a stored security token to initiate a token-based authenticated session with the financial institution server, wherein the linked account is an account of a user associated with a cryptocurrency wallet address; storing the received transaction history data in a transaction database; analysing and matching purchase transactions in the stored transaction history data by calculating a matching accuracy score; applying a predetermined reward rule on matching purchase transactions that have a calculated matching accuracy score above a predetermined matching threshold; wherein the predetermined reward rule comprising: calculating an amount of cryptographic tokens to be assigned at least based on an amount of the matching purchase transaction; and assigning the calculated amount of cryptographic tokens to the cryptocurrency wallet address of the user via a blockchain transaction by digitally signing the blockchain transaction with a private key.
2. The method according to claim 1, wherein the linked account is initially linked by: obtaining a first security token from a financial institution server having an account of the user; initiating a secure connection with the financial institution server using the security token by generating a security credential; generating a second security token from the financial institution server in response to the user inputting their login credentials for the financial institution server; and storing the second security token.
3. The method according to claim 1, wherein the matching accuracy score is calculated by string matching a name of a merchant in the transaction history data with a record in database table of merchant names.
4. The method according to claim 1, wherein the matching accuracy score is calculated by applying a predetermined set of pattern algorithms over metadata fields of the transaction history data to find string patterns unique to individual merchants.
5. The method according to claim 1, wherein the matching accuracy score is calculated by performing inferencing on the transaction history data using a trained machine learning model performs, the trained model being trained using manually labelled training data and the transaction history data.
6. The method according to claim 5, wherein the matching accuracy score is calculated by performing match analytics to determine a classification of a match if a regular expression is matched to the transaction history data with a 99%, 96% or 90% match rate, and if the match is below 90%, the transaction history data is quarantined in a separate storage for a manual labelling by an operator, wherein manually labelled transaction history data is input as manually classified training data for a training phase of the machine learning model to update the trained model.
7. The method according to claim 1, wherein the predetermined matching threshold is 90%.
8. The method according to claim 1, wherein the predetermined reward rule further comprises a base amount of cryptographic tokens payable irrespective of the amount of the matching purchase transaction.
9. The method according to claim 8, wherein the predetermined reward rule further comprises a predetermined bonus amount of cryptographic tokens.
10. The method according to claim 9, wherein the predetermined reward rule further comprises a bonus amount predetermined by a merchant identified from the matching purchase transaction.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0026] Embodiments of the invention will be described with respect to the figures, in which like reference numbers denote like elements and in which:
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
DETAILED DESCRIPTION OF THE INVENTION
[0034]
[0035] It will therefore be understood that where the term network interface is used throughout this specification, unless otherwise required by the context, it refers to a combination of physical hardware and/or network interface software (protocol stack) implementing the various communications protocols required to exchange information with other devices via one or more corresponding physical or virtual communications networks.
[0036] The processor is operably associated with a communications interface, via which it is able to communicate over the public network with the server 17.
[0037] In this specification, terms such as processor, computer, and so forth, unless otherwise required by the context, should be understood as referring to a range of possible implementations of devices, apparatus and systems comprising a combination of hardware and software. This includes single-processor and multi-processor devices and apparatus, including portable devices, desktop computers, and various types of server systems, including cooperating hardware and software platforms that may be co-located or distributed. Hardware may include conventional personal computer architectures, or other general-purpose hardware platforms. Software may include commercially available operating system software in combination with various application and service programs. Alternatively, computing or processing platforms may comprise custom hardware and/or software architectures. For enhanced scalability, computing and processing systems may comprise cloud computing platforms, enabling physical hardware resources to be allocated dynamically in response to service demands. While all of these variations fall within the scope of the present invention, for ease of explanation and understanding the exemplary embodiments described herein are based upon single-processor general-purpose computing platforms, commonly available operating system platforms, and/or widely available consumer products, such as desktop PCs, notebook or laptop PCs, smartphones, tablet computers, and so forth.
[0038] In particular, the term processing unit is used in this specification (including the claims) to refer to any suitable combination of hardware and software configured to perform a particular defined task, such as generating and transmitting data, receiving and processing data, or receiving and validating data. Such a processing unit may comprise an executable code module executing at a single location on a single processing device, or may comprise cooperating executable code modules executing in multiple locations and/or on multiple processing devices.
[0039] Software components embodying features of the invention may be developed using any suitable programming language, development environment, or combinations of languages and development environments, as will be familiar to persons skilled in the art of software engineering. For example, suitable software may be developed using the C programming language, the Java programming language, the C++ programming language, the Go programming language, and/or a range of languages suitable for implementation of network or web-based services, such as JavaScript, HTML, PHP, ASP, JSP, Ruby, Python, and so forth. These examples are not intended to be limiting, and it will be appreciated that convenient languages or development systems may be employed, in accordance with system requirements.
[0040] In the exemplary system 10, the server 17 comprises a processor and implements a run-time server environment such as Node.js which is a JavaScript run-time environment that is executed by the processor as a standalone application. A V8 JavaScript runtime engine coverts JavaScript code into low-level machine code for faster execution by the processor without interpretation required. The processor is interfaced to, or otherwise operably associated with, a communications interface, one or more user input/output (I/O) interfaces, and local storage, which may comprise a combination of volatile and non-volatile storage. Non-volatile storage may include solid-state non-volatile memory, such as read only memory (ROM) flash memory, or the like. Volatile storage may include random access memory (RAM). The storage contains program instructions and transient data relating to the operation of the server 17. In some embodiments, the server 17 may include additional peripheral interfaces, such as an interface to high-capacity non-volatile storage, such as a hard disk drive, optical drive, and so forth.
[0041] The storage may contain program and data content relevant to the normal operation of the device. This may include operating system programs and data (e.g. associated with a Windows, Android, iOS, MacOS or Unix-based operating system), as well as other executable application software generally unrelated to the present invention. The storage also includes program instructions which, when executed by the processor instruct the server 17 to perform operations relating to an embodiment of the invention, for example such as are described below.
[0042] The server 17 comprises a processor. The processor is interfaced to, or otherwise operably associated with a non-volatile memory/storage device, which may be a hard disk drive, and/or may include a solid-state non-volatile memory, such as ROM, flash memory, or the like. The processor is also interfaced to volatile storage, such as RAM, which contains program instructions and transient data relating to the operation of the server 17.
[0043] In a conventional configuration, the storage device maintains known program and data content relevant to the normal operation of the server 17. For example, the storage device may contain operating system programs and data, as well as other executable application software necessary for the intended functions of the server 17. The storage device also contains program instructions which, when executed by the processor, instruct the server 17 to perform operations relating to an embodiment of the present invention, such as are described in greater detail below. In operation, instructions and data held on the storage device are transferred to volatile memory for execution on demand.
[0044] The processor is also operably associated with a communications interface in a conventional manner. The communications interface facilitates access to the data communications network.
[0045] In use, the volatile storage contains a corresponding body of program instructions transferred from the storage device and configured to perform processing and other operations embodying features of the present invention.
[0046] Referring to
[0047] At step 1, the user 9 provides their credentials for connecting to server 12 of their financial institution or bank where transactions are credited/debited. A secure token is provided by the bank.
[0048] At step 2, a user 9 purchases goods or services from a merchant 8 as they normally would using their debit or credit card which is linked to their bank account from step 1 earlier. The merchant 8 may be a physical store or an online store. Referring to
[0049] At step 3, the merchant is paid in the typical manner. The card issuing bank (the user's bank) essentially pays the acquiring bank (the merchant's bank) for its cardholder's purchases.
[0050] At step 4, on a periodic or scheduled basis, the API 11 retrieves the purchase transaction data records from the financial institution server 12 over a secure connection via the Internet.
[0051] At step 5, the retrieved transaction data records are stored in a transaction database 14. The transaction database 14 is configured to receive and store unstructured raw data and may be a key-value document database (NoSQL) such as Amazon DynamoDB. The raw data is processed using one or more of: regular expressions, text pattern recognition, inferencing by a trained machine learning model or prebuilt filtering software routines. The processing of the raw data transforms the raw data from unstructured form to structured form. The structured form of the transaction data is input into data fields of data records of a PostgreSQL database or similar SQL database. In the preferred embodiment of the present invention, there are multiple databases in data communication with each other and are either configured to store raw/unstructured data, or semi-processed or processed/structured data after processing by the software routines.
[0052] At step 6, after processing, merchant name matching and applying a predetermined reward rule from a set of reward rules, cryptocurrency is transferred from a cryptocurrency wallet address of the rewards provider to the cryptocurrency wallet address 13 of the user 9 via a smart contract.
[0053] Blockchain tokens (e.g. cryptocurrency) is accumulated from a large and increasing number of merchants to avoid any single point of failure. The merchants may be physical retail outlets or online/digital retailers. Blockchain tokens can be transferred (i.e. assigned) to other users or traded on an exchange market with dynamic pricing. Therefore the value of each blockchain token is freely determined by the entire market and the forces of supply and demand rather than a central authority.
[0054] Blockchain transaction records are signed using both a private key and a public key, the private key being that of a party transferring value and the public key being associated with a receiving address. The shared transaction ledger is typically publicly accessible via a website or other Internet-based platform.
[0055] Blockchain transaction records are verified by third parties carrying out what is known as mining blocks. Exemplary cryptocurrencies which make use of proof-of-work verification schemes, such as Secure Hash Algorithm 256 (SHA-256) or scrypt, are Bitcoin and Litecoin. An exemplary cryptocurrency system employing a combined proof-of-work/proof-of-stake verification scheme is PPCoin. The blockchain network may be the Waves blockchain network which is a two-tier architecture that enables the creation of a custom blockchain token. In the preferred embodiment, the custom blockchain token/cryptocurrency is referred to as INCNT. In the system 10, there is a hard-cap or maximum fixed quantity of INCNT permitted to exist, which is 46,016,599. The blockchain token is portable, transferable, convertible to other cryptocurrencies or fiat currency, may appreciate in value and does not expire. The Waves blockchain network includes a decentralised exchange to enable a trading pair of the custom blockchain token with another blockchain token compatible with Waves. This is advantageous to a centralised exchange because funds are stored in directly in users' wallets and users have autonomy and control over their transactions instead of a centralised exchange. There have been instances where a centralised exchange has been hacked and user accounts have been compromised.
[0056] The system 10 assists merchants to launch customizable loyalty programs with no additional costs or resources. The system 10 handles the distribution, storage, exchange, and creation of tokens (INCNT) and customised loyalty systems of individual merchants. Users 9 can spend the tokens with the original merchant or other participating merchants of the system 10. Users 9 can also sell their tokens in exchange for fiat currency or other digital currencies. This provides flexibility which the system 10 offers.
[0057] Smart contracts are executed on the blockchain network and the cost to execute the smart contract is typically a fixed fee. Lightweight and full nodes maintain the blockchain network. Lightweight nodes do not download the distributed ledger and depend on full nodes for transaction confirmations and the interactions on the network. A platform with a consensus protocol for nodes to prune full blocks not needed for mining facilitates trust between the lightweight and full nodes, and therefore the lightweight nodes use the current network state to establish simplified payment verification processes.
[0058] Referring to
[0059] A server 17 of the rewards provider receives data from Internet activity logger of the toolbar 21 that is identified to a particular user 9 (e.g. a UUID). This data may be transmitted periodically or in an unscheduled manner. The server 17 activates a matching module to identify visitations to certain websites and activity on certain websites that are eligible to receive a cryptocurrency distribution. A rewards rule module is executed by the server 17 and is configured to apply a predetermined reward rule on eligible Internet activity. For example, parameters of Internet activity that is interrogated includes time on a web site, frequency of visiting a web site within a period of time, input such as quantity of keystrokes or mouse activity on a web site. The predetermined reward rule assigns a predetermined quantity of cryptocurrency corresponding to the eligible Internet activity to be transferred from a cryptocurrency wallet address of the rewards provider to the cryptocurrency wallet address 13 of the user 9 via a smart contract.
[0060] The server 17 aggregates the Internet activity data from a plurality of user's Internet activity log generated by the toolbar 21 and anonymises the aggregated data. The aggregated data is processed according to data mining processes configured to identify anomalies, patterns and correlations within the aggregated data to generate reports including statistical tabular data and graphs. The generated reports are transmitted to merchants to assist them with decision making in relation to marketing strategy and product development, and to measure performance metrics and quantitative results of user testing experiments (i.e. A/B testing) that have modified user experience, pricing, copywriting or web site features.
[0061] Referring to
[0062] Referring to
[0063] Referring to
[0064] A user registration module 60 of the system 10 generates a UUID 66 associated with the newly registered user account. The user registration module 60 also generates a cryptocurrency wallet 67 for the user and indicates the public address of the cryptocurrency wallet 67 to the user. The private key of the cryptocurrency wallet 67 is encrypted and stored 68 by the system 10. The public address of the cryptocurrency wallet 67 is assigned to and linked with the UUID 66 of the user account.
[0065] The system 10 uses information provided directly from the user's bank account. The system 10 is permitted access to transaction data from the user's bank account that the user has provided permission to view, and only relevant data is selectively retrieved. In another example, all data is non-discriminately retrieved and post-processing rules are applied by a post-processing software module to obtain relevant data to enable the automated and intelligent assignment of cryptographic tokens to users. The transaction analysis and matching module 15 is an autonomous program, and is configured to execute an automated task of analysing the transaction data to identify matches of transactions conducted with merchants registered with the system 10. The transaction analysis and matching module 15 may be self-configurable meaning that it can adapt its matching rules based on statistical analysis of large amounts of historical data if a trend is identified, for example, a merchant's name has been slightly changed or a new outlet of the merchant is partially included in the transaction data.
[0066] The transaction analysis and matching module 15 applies a series of post processing tasks. The post processing tasks include: an initial regular expression (regex) data parsing to filter out known string patterns that are of no use, and only capture known string patterns that are useful. The initial regex uses a set of pattern algorithms that find patterns within the bank transaction description to determine the statistical likelihood that a certain bank transaction string is associated with a certain merchant.
[0067] Next, a secondary regex data parsing task is performed. The secondary regex data parsing task has a set of pattern algorithms that look through the metadata fields of the bank transaction to find string patterns unique to each individual merchant.
[0068] Next, a trained machine learning model performs inferencing on the transaction data. The trained model is trained using original manually labelled training data and the new processed transaction data and recursively updates the pattern algorithms to increase the accuracy and likelihood of regular expression pattern matching across both the bank description and the metadata attributes. The purpose of performing inferencing using a trained machine learning model is to continually improve the percentage accuracy for matching transactions. A threshold where the base accuracy rate is set at 90% is considered a match by the system 10.
[0069] Next, match analytics is performed by a match analytics software module. The match analytics software module determines a match is highly probable if the regular expression is matched to the data provided from the bank with a 99% match rate (as described earlier). A match is determined as highly likely if the regular expression is matched to the data provided from the bank with a 96% match rate. A match is determined very likely with a 90% match rate. All match rates below 90% causes the transaction data to be quarantined and moved to a staging area where a manual check needs to be completed by skilled operators. The manual check will require an operator to view the transaction data and allocate a match/no match result as confirmation. This result is recorded and input as manually classified training data for a training phase of the machine learning model which updates the trained model. The updated trained model has an increased the accuracy rate of the matching process for future inferencing.
[0070] Referring to
[0071] Referring to
[0072] The rewards rule module 16 applies a selected reward rule on each of filtered data records and computes an amount of cryptocurrency to be transferred to the user's cryptocurrency wallet address against each of those data records. The total amount of cryptocurrency is calculated by a summing function and this total amount of cryptocurrency is transferred from the reward provider's cryptocurrency wallet address to the user's cryptocurrency wallet address. For each of the merchants, cryptocurrency is transferred from their cryptocurrency wallet address to the reward provider's cryptocurrency wallet address. Alternatively, rather than sending a total amount, there is a direct transfer of each cryptocurrency amount from the merchant's cryptocurrency wallet address to the user's cryptocurrency wallet address.
[0073] Many of the functional units described in this specification have been labeled as modules (or components), in order to more particularly emphasize their implementation independence. For example, a module may be implemented as a hardware circuit comprising custom VLSI circuits or gate arrays, off-the-shelf semiconductors such as logic chips, transistors, or other discrete components. A module may also be implemented in programmable hardware devices such as field programmable gate arrays (FPGAs), programmable array logic, programmable logic devices or the like.
[0074] Modules may also be implemented in software for execution by various types of processors. An identified module of program code may, for instance, comprise one or more physical or logical blocks of computer instructions which may, for instance, be organized as an object, procedure, or function. Nevertheless, the executables of an identified module need not be physically located together, but may comprise disparate instructions stored in different locations which, when joined logically together, comprise the module and achieve the stated purpose for the module.
[0075] A module of program code may be a single instruction, or many instructions, and may even be distributed over several different code segments, among different programs, and across several memory devices. Similarly, operational data may be identified and illustrated herein within modules, and may be embodied in any suitable form and organized within any suitable type of data structure. The operational data may be collected as a single data set, or may be distributed over different locations including over different storage devices, and may exist, at least partially, merely as electronic signals on a system or network. Where a module or portions of a module are implemented in software, the program code may be stored and/or propagated on in one or more computer readable medium(s).Unless specified to the contrary, any and all components herein described are understood to be capable of being manufactured and, as such, may be manufactured together or separately.
[0076] Moreover, in interpreting the disclosure, all terms should be interpreted in the broadest reasonable manner consistent with the context. In particular, the terms comprises and comprising should be interpreted as referring to elements, components, or steps in a non-exclusive manner, indicating that the referenced elements, components, or steps may be present, or utilized, or combined with other elements, components, or steps that are not expressly referenced.
[0077] The subject headings used in the detailed description are included only for the ease of reference of the reader and should not be used to limit the subject matter found throughout the disclosure or the claims. The subject headings should not be used in construing the scope of the claims or the claim limitations.
[0078] Although the technology herein has been described with reference to particular examples, it is to be understood that these examples are merely illustrative of the principles and applications of the technology. In some instances, the terminology and symbols may imply specific details that are not required to practice the technology. For example, although the terms first and second may be used, unless otherwise specified, they are not intended to indicate any order but may be utilised to distinguish between distinct elements.
[0079] It should be appreciated that while particular embodiments and variations of the invention have been described herein, further modifications and alternatives will be apparent to persons skilled in the relevant arts. In particular, the examples are offered by way of illustrating the principles of the invention, and to provide a number of specific methods and arrangements for putting those principles into effect.
[0080] Accordingly, the described embodiments should be understood as being provided by way of example, for the purpose of teaching the general features and principles of the invention, but should not be understood as limiting the scope of the invention, which is as defined in the appended claims.