With the wide adoption of aliases for providing payment credentials for credits cards, debit cards, electronic payment devices, online shopping systems, and online banking systems, a system is needed for ensuring truth of user identity and accurately mapping those aliases to accounts.
Embodiments of the present invention address these and/or other needs by providing an innovative system operatively connected with a block chain distributed network and for using the block chain distributed network for mapping aliases. The system includes a memory device; and a processing device operatively coupled to the memory device, wherein the processing device is configured to execute computer-readable program code to create an alias-token pair linking an alias associated with a customer to a token associated with an account owned by the customer; and map the alias-token pair to an address associated with the customer on a directory services (DS) block chain.
In some embodiments, the processing device is configured to execute computer-readable program code further to manage alias-token lifecycle including enabling editing and deleting the alias-token pair mapped to the address.
In some embodiments, the processing device is configured to execute computer-readable program code further to register the address of the customer with the DS block chain. In some such embodiments, registering comprises receiving a selection from the customer regarding desired node for registering the customer address; connecting with the DS block chain; and creating an account associated with the customer including creating a unique address associated with the customer and registering it with the DS block chain. In some such embodiments, registering further comprises creating a private key associated with the customer; and securely communicating the private key to the customer for future access to the customer account.
In some embodiments, mapping comprises receiving customer preference regarding account and alias; validating the alias to confirm it is associated with the customer; querying the DS block chain to determine that the alias exists in the blockchain; in response, determining that the alias is associated with the address of the customer; and in response, initiating a change in the account of the customer, the change including adding the alias-token pair to the account of the customer. In some such embodiments, mapping further comprises adding additional information regarding the token to the account of the customer. In some embodiments, the additional information comprising the customer's name, the financial institution's name, the payment rail information, and payment rail fee information.
According to embodiments of the invention, a method performed by a system operatively connected with a block chain distributed network and for using the block chain distributed network for mapping aliases. The method includes creating an alias-token pair linking an alias associated with a customer to a token associated with an account owned by the customer; and mapping the alias-token pair to an address associated with the customer on a directory services (DS) block chain.
In some embodiments, the method also includes managing alias-token lifecycle including enabling editing and deleting the alias-token pair mapped to the address.
In some such embodiments, the method also includes registering the address of the customer with the DS block chain. In some such embodiments, registering comprises receiving a selection from the customer regarding desired node for registering the customer address; connecting with the DS block chain; and creating an account associated with the customer including creating a unique address associated with the customer and registering it with the DS block chain. In some of these embodiments, registering further comprises creating a private key associated with the customer; and securely communicating the private key to the customer for future access to the customer account.
In some embodiments, mapping comprises receiving customer preference regarding account and alias; validating the alias to confirm it is associated with the customer; querying the DS block chain to determine that the alias exists in the blockchain; in response, determining that the alias is associated with the address of the customer; and in response, initiating a change in the account of the customer, the change including adding the alias-token pair to the account of the customer. In some such embodiments, mapping further comprises adding additional information regarding the token to the account of the customer. In some of these embodiments, the additional information comprising the customer's name, the financial institution's name, the payment rail information, and payment rail fee information.
According to embodiments of the invention, a computer program product for execution on a system operatively connected with a block chain distributed network for using the block chain distributed network for mapping aliases includes at least one non-transitory computer-readable medium having computer-readable program code portions embodied therein. The computer-readable program code portions include an executable portion configured to create an alias-token pair linking an alias associated with a customer to a token associated with an account owned by the customer; and an executable portion configured to map the alias-token pair to an address associated with the customer on a directory services (DS) block chain.
In some embodiments, the computer-readable program code portions further comprise an executable portion configured to manage alias-token lifecycle including enabling editing and deleting the alias-token pair mapped to the address.
In some embodiments, the computer-readable program code portions further comprise an executable portion configured to register the address of the customer with the DS block chain. In some such embodiments, registering comprises receiving a selection from the customer regarding desired node for registering the customer address; connecting with the DS block chain; and creating an account associated with the customer including creating a unique address associated with the customer and registering it with the DS block chain.
The features, functions, and advantages that have been discussed may be achieved independently in various embodiments of the present invention or may be combined with yet other embodiments, further details of which can be seen with reference to the following description and drawings.
Having thus described embodiments of the invention in general terms, reference will now be made the accompanying drawings, wherein:
Embodiments of the present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all, embodiments of the invention are shown. Indeed, the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Where possible, any terms expressed in the singular form herein are meant to also include the plural form and vice versa, unless explicitly stated otherwise. Also, as used herein, the term “a” and/or “an” shall mean “one or more,” even though the phrase “one or more” is also used herein. Furthermore, when it is said herein that something is “based on” something else, it may be based on one or more other things as well. In other words, unless expressly indicated otherwise, as used herein “based on” means “based at least in part on” or “based at least partially on.” Like numbers refer to like elements throughout.
In accordance with embodiments of the invention, the terms “financial institution” and “financial entity” include any organization that processes financial transactions including, but not limited to, banks, credit unions, savings and loan associations, investment companies, stock brokerages, asses management firms, insurance companies and the like. In specific embodiments of the invention, use of the term “bank” is limited to a financial entity in which account-bearing customers conduct financial transactions, such as account deposits, withdrawals, transfers and the like.
Embodiments provide a system operatively connected with a block chain distributed network and for using the block chain distributed network for mapping aliases. Embodiments create an alias-token pair linking an alias associated with a customer to a token associated with an account owned by the customer; and map the alias-token pair to an address associated with the customer on a directory services (DS) block chain. In some cases, the system manages alias-token lifecycle including enabling editing and deleting the alias-token pair mapped to the address. In some cases, the system registers the address of the customer with the DS block chain.
Such registering may include receiving a selection from the customer regarding desired node for registering the customer address; connecting with the DS block chain; and creating an account associated with the customer including creating a unique address associated with the customer and registering it with the DS block chain. In some cases, the registering also includes creating a private key associated with the customer; and securely communicating the private key to the customer for future access to the customer account.
In some cases, mapping includes receiving customer preference regarding account and alias; validating the alias to confirm it is associated with the customer; querying the DS block chain to determine that the alias exists in the blockchain; in response, determining that the alias is associated with the address of the customer; and in response, initiating a change in the account of the customer, the change including adding the alias-token pair to the account of the customer. In some cases, mapping also includes adding additional information regarding the token to the account of the customer, where the additional information may include the customer's name, the financial institution's name, the payment rail information, and payment rail fee information.
The information provided by the customer 101 during registration of an alias may be verified to confirm that the customer 101 does have access to the mobile number 119, email address 121, social networking ID 123, or other alias 117 provided. For example, as described in greater detail below, the financial institution (or other entity that maintains a database of aliases and associates them with financial institution accounts) may send a communication to the customer 101 using the alias and require the customer 101 confirm access to the alias by responding to the notice in some way. For example, if the alias registered by the customer 101 is a mobile telephone number 119, the financial institution may send a text message to the mobile telephone number 119 with a code and then require that the customer 101 enter the code into a mobile banking or online banking application to confirm that the mobile telephone number is associated with the customer 101. Once the alias information is verified, then the alias is linked to one or more of the customer's financial institution accounts in a data repository maintained by the financial institution or some other entity that provides an alias registry service to the financial institution.
The customer 101 can also use embodiments of the invention to make payments to other entities, such as receiver 125, using an alias of the receiver 125. In some embodiments of the invention, the customer 101 is able to set preferences for accounts to be used for outgoing payments, and default account(s) for incoming payments. In some embodiments of the invention, the financial institution places limits (e.g., maximums and/or minimums) on how much money can be sent or received using P2P payment aliases, and such limits may be based on the sender, the receiver, whether the receiver is a customer of the financial institution or a partner financial institution, account history, credit ratings, customer status, whether the customer has registered the alias, and/or any other relevant information. In some embodiments, the customer 101 can also establish limits on P2P payments. For example, a customer 101 may want to set a maximum of $1000 for P2P payments where an alias is used for the recipient as opposed to an account number.
In some embodiments of the invention, the customer 101 may also have an option of opening a new P2P account 109 with the financial institution that the customer may use exclusively for making and/or receiving P2P payments. This financial entity P2P account 109 may be like any other account hosted at the financial entity and so money may be moved instantly into this account 109 through the regular mobile banking transfer process for moving money between a customer's accounts. This account 109 may be a type of checking account except that it may come with certain limitations, e.g., no checks, maximum balance limits, number of daily transactions or the like, and may be opened by customers by providing much less information as compared to a regular checking account. The financial entity may, at a minimum, require customers to provide certain information, such as name, address, date of birth, and social security number, in order to comply with Anti-Money Laundering (AML) regulations. Customers 101 of the financial entity may also have an option to set up P2P accounts 109 (i.e., sub-accounts) for minors 125, other dependents, or related entities. Customers 101 are able to access these accounts just like any of their other accounts. In addition, customers 101 are able to set up a mobile banking access ID for the minor 125 that the minor 125 may use to sign into mobile banking but have access only to the specific minor P2P account 109 set up for them. These P2P-specific accounts and sub-accounts are described in more detail in U.S. patent application Ser. No. 12/038,177 filed on Feb. 27, 2008 and entitled “Sub-Account Mechanism,” which application was assigned to, or subject to an obligation to assign to, the same assignee of the present application at the time of filing of the present application and at the time of conception of the inventions described herein.
Referring again to
In accordance with embodiments of the invention, payments may be made by providing an alias 117. In general, as described in greater detail below, the customer 101 initiates a P2P payment using an alias by communicating an alias 117 and an associated payment amount to the financial institution. The financial institution then accesses an alias database, or other type of data repository, to determine if the entered alias 117 has been registered by the alias holder and is, thereby, associated with a particular financial institution account. If the alias 117 does have a match to another customer in 131 or financial institution account of another customer 131, then the payment may be initiated to that person, as described in greater detail below. If there is no match, then either an error message 129 is generated or, if possible, the alias 117 may be used to contact the intended recipient 125 and allow this person to register the alias 117 and thereby associate the alias with a financial institution account. At any time, if outgoing payments or payment notifications are not received by a receiver (as represented by block 103), the payment may be canceled (as represented by block 105).
In some embodiments of the invention, an alias 117 may be associated with multiple financial institution accounts of the alias holder. In some such embodiments, the alias holder may be a able to establish a default account when registering the alias 117 or afterwards. Consequently, if a receiver 125 does have a default account for incoming payments in 137, then the funds may be transferred instantly to that account(s). If the receiver 125 has not set up a default account in 137 but the receiver 125 does have multiple accounts associated with the alias 117, then the funds may be moved to a master settlement account 135 and the receiver 125 may see the payment as an incoming payment within mobile banking 133. The receiver 125 may then be able to use the mobile banking application to move the funds instantly to any of the receiver's others accounts. In other embodiments, however, each alias 117 is associated only with one financial institution account and, therefore, steps 137 and 135 are not needed and the payment is deposited directly into the one financial institution account associated with the alias 117.
As further illustrated in
As further illustrated in
In some embodiments of the invention, payment may be made by providing a social networking ID 123, such as a unique ID associated with the receiver 125 on a particular social networking Internet site. In such a situation, the process operates in the same way as described above for mobile phone number 119 and email address 121 except the social networking platform may be used to notify the receiver based on the social networking ID 123 provided.
In all cases described above, if the receiver 125 is already a customer of the financial institution or a partner financial institution and has already registered the alias 117 provided by the sender 101, a text message, email, mobile banking notice, online banking notice, or other type of message may be sent to receiver 125 based on the alias 117 entered by the sender 101 or irrespective of information entered by sender if there is other contact information found in the receiver's profile, the notification notifying the receiver 125 of the payment. In some embodiments, the receiver 125 may be allowed to reject or re-route the payment. In some embodiments of the invention, the sender 101 is permitted to include a note to the recipient 125 along with the payment, such as a note explaining to the recipient what the purpose of the payment is for.
It should be appreciated that embodiments of the invention described above permit an entity to send money to another entity even if the sending entity does not know any account information for the recipient entity and only knows a mobile telephone number or email address of the recipient entity. This can also result in better protection of personal account information. It should also be appreciated that some embodiments of the invention create a viral registration and/or account opening system that allows for customers of a financial institution send payments to anyone outside the financial entity using an alias. In such embodiments, the non-customers are contacted using the alias and they are allowed to quickly open and/or register an account with the financial institution in order to receive the funds from the sender.
As described above,
The environment 300 also includes a mobile device 400 and a personal computing device 500 for the first user 310 and second user 320, respectively. The personal computing device 500 may be any device that employs a processor and memory and can perform computing functions, such as a personal computer or a mobile device. As used herein, a “mobile device” 400 is any mobile communication device, such as a cellular telecommunications device (i.e., a cell phone or mobile phone), personal digital assistant (PDA), a mobile Internet accessing device, or other mobile device.
The mobile device 400 and the personal computing device 500 are configured to communicate over a network 350 with a financial institution's mobile banking system 600 and, in some cases, one or more other financial institution banking systems 370. The first user's mobile device 400, the second user's personal computing device 500, the financial institution's mobile banking system 600, an alias data repository 700, and any other participating financial institution's banking systems 370 are each described in greater detail below with reference to
In general, a mobile device 400 is configured to connect with the network 300 to log the first user 310 into a mobile banking system 600. The mobile banking system 600 involves authentication of a first user in order to access the first user's account on the mobile banking system 600. For example, the mobile banking system 600 is a system where a first user 310 logs into his/her account such that the first user 310 or other entity can access data that is associated with the first user 310. For example, in one embodiment of the invention, the mobile system 600 is a mobile banking system maintained by a financial institution. In such an embodiment, the first user 310 can use the mobile device 400 to log into the mobile banking system to access the first user's mobile banking account. Logging into the mobile banking system 300 generally requires that the first user 310 authenticate his/her identity using a user name, a passcode, a cookie, a biometric identifier, a private key, a token, and/or another authentication mechanism that is provided by the first user 310 to the mobile banking system 600 via the mobile device 400.
The financial institution's mobile banking system 600 is in network communication with other devices, such as other financial institutions' transaction/banking systems 370, an alias data repository 700, and a personal computing device 500 that is configured to communicate with the network 350 to log a second user 320 into the mobile banking system 600. In one embodiment, the invention may provide an application download server such that software applications that support the mobile banking system 600 can be downloaded to the mobile device 400.
In some embodiments of the invention, the application download server is configured to be controlled and managed by one or more third-party data providers (not shown in
In some embodiments of the invention, the alias data repository 700 is configured to be controlled and managed by one or more third-party data providers (not shown) over the network 350. In other embodiments, the alias data repository 700 is configured to be controlled and managed over the network 350 by the same entity that maintains the financial institution's mobile banking system 600. In other embodiments, the alias data repository 700 is configured to be controlled and managed over the network 350 by the financial institution implementing the mobile payment system of the present invention. In still other embodiments, the alias data repository 700 is a part of the mobile banking system 600.
The mobile device 400 generally includes a processor 410 communicably coupled to such devices as a memory 420, user output devices 436, user input devices 440, a network interface 460, a power source 415, a clock or other timer 450, a camera 480, and a positioning system device 475. The processor 410, and other processors described herein, generally include circuitry for implementing communication and/or logic functions of the mobile device 400. For example, the processor 410 may include a digital signal processor device, a microprocessor device, and various analog to digital converters, digital to analog converters, and/or other support circuits. Control and signal processing functions of the mobile device 400 are allocated between these devices according to their respective capabilities. The processor 410 thus may also include the functionality to encode and interleave messages and data prior to modulation and transmission. The processor 410 can additionally include an internal data modem. Further, the processor 410 may include functionality to operate one or more software programs, which may be stored in the memory 420. For example, the processor 410 may be capable of operating a connectivity program, such as a web browser application 422. The web browser application 422 may then allow the mobile device 400 to transmit and receive web content, such as, for example, location-based content and/or other web page content, according to a Wireless Application Protocol (WAP), Hypertext Transfer Protocol (HTTP), and/or the like.
The processor 410 is configured to use the network interface 460 to communicate with one or more other devices on the network 350. In this regard, the network interface 460 includes an antenna 476 operatively coupled to a transmitter 474 and a receiver 472 (together a “transceiver”). The processor 410 is configured to provide signals to and receive signals from the transmitter 474 and receiver 472, respectively. The signals may include signaling information in accordance with the air interface standard of the applicable cellular system of the wireless telephone network 352. In this regard, the mobile device 400 may be configured to operate with one or more air interface standards, communication protocols, modulation types, and access types. By way of illustration, the mobile device 400 may be configured to operate in accordance with any of a number of first, second, third, and/or fourth-generation communication protocols and/or the like. For example, the mobile device 400 may be configured to operate in accordance with second-generation (2G) wireless communication protocols IS-136 (time division multiple access (TDMA)), GSM (global system for mobile communication), and/or IS-95 (code division multiple access (CDMA)), or with third-generation (3G) wireless communication protocols, such as Universal Mobile Telecommunications System (UMTS), CDMA2000, wideband CDMA (WCDMA) and/or time division-synchronous CDMA (TD-SCDMA), with fourth-generation (4G) wireless communication protocols, and/or the like. The mobile device 400 may also be configured to operate in accordance with non-cellular communication mechanisms, such as via a wireless local area network (WLAN) or other communication/data networks.
The network interface 460 may also include a payment network interface 470. The payment network interface 470 may include software, such as encryption software, and hardware, such as a modem, for communicating information to and/or from one or more devices on a network 350. For example, the mobile device 400 may be configured so that it can be used as a credit or debit card by, for example, wirelessly communicating account numbers or other authentication information to a terminal of the network 350.
As described above, the mobile device 400 has a user interface that is, like other user interfaces described herein, made up of user output devices 436 and/or user input devices 440. The user output devices 436 include a display 230 (e.g., a liquid crystal display or the like) and a speaker 432 or other audio device, which are operatively coupled to the processor 410. The user input devices 440, which allow the mobile device 400 to receive data from a user such as the first user 310, may include any of a number of devices allowing the mobile device 400 to receive data from a user, such as a keypad, keyboard, touch-screen, touchpad, microphone, mouse, joystick, other pointer device, button, soft key, and/or other input device(s). The user interface may also include a camera 480, such as a digital camera.
The mobile device 400 may also include a positioning system device 475 that is configured to be used by a positioning system to determine a location of the mobile device 400. For example, the positioning system device 475 may include a GPS transceiver. In some embodiments, the positioning system device 475 is at least partially made up of the antenna 476, transmitter 474, and receiver 472 described above. For example, in one embodiment, triangulation of cellular signals may be used to identify the approximate location of the mobile device 400. In other embodiments, the positioning system device 475 includes a proximity sensor or transmitter, such as an RFID tag, that can sense or be sensed by devices known to be located proximate a merchant or other location to determine that the consumer mobile device 400 is located proximate these known devices.
The mobile device 400 further includes a power source 415, such as a battery, for powering various circuits and other devices that are used to operate the mobile device 400. Embodiments of the mobile device 400 may also include a clock or other timer 450 configured to determine and, in some cases, communicate actual or relative time to the processor 410 or one or more other devices.
The mobile device 400 also includes a memory 420 operatively coupled to the processor 410. As used herein, memory includes any computer readable medium (as defined herein below) configured to store data, code, or other information. The memory 420 may include volatile memory, such as volatile Random Access Memory (RAM) including a cache area for the temporary storage of data. The memory 420 may also include non-volatile memory, which can be embedded and/or may be removable. The non-volatile memory can additionally or alternatively include an electrically erasable programmable read-only memory (EEPROM), flash memory or the like.
The memory 420 can store any of a number of applications which comprise computer-executable instructions/code executed by the processor 410 to implement the functions of the mobile device 400 described herein. For example, the memory 420 may include such applications as a conventional web browser application 422 and/or a mobile P2P payment system client application 421. These applications also typically provide a graphical user interface (GUI) on the display 230 that allows the first user 310 to communicate with the consumer mobile device 400, the mobile banking system 600, and/or other devices or systems. In one embodiment of the invention, when the first user 310 decides to enroll in the mobile banking program, the first user 310 downloads or otherwise obtains the mobile banking system client application from the mobile banking system 600 or from a distinct application server. In other embodiments of the invention, the first user 310 interacts with the mobile banking system 600 via the web browser application 422 in addition to, or instead of, the mobile P2P payment system client application 421.
The memory 420 can also store any of a number of pieces of information, and data, used by the mobile device 400 and the applications and devices that make up the mobile device 400 or are in communication with the mobile device 400 to implement the functions of the mobile device 400 and/or the other systems described herein. For example, the memory 420 may include such data as user authentication information, etc.
Referring now to
As used herein, a “processing device,” such as the processing device 520, generally refers to a device or combination of devices having circuitry used for implementing the communication and/or logic functions of a particular system. For example, a processing device 520 may include a digital signal processor device, a microprocessor device, and various analog-to-digital converters, digital-to-analog converters, and other support circuits and/or combinations of the foregoing. Control and signal processing functions of the system are allocated between these processing devices according to their respective capabilities. The processing device 520 may further include functionality to operate one or more software programs based on computer-executable program code thereof, which may be stored in a memory. As the phrase is used herein, a processing device 520 may be “configured to” perform a certain function in a variety of ways, including, for example, by having one or more general-purpose circuits perform the function by executing particular computer-executable program code embodied in computer-readable medium, and/or by having one or more application-specific circuits perform the function.
As used herein, a “user interface” 530 generally includes a plurality of interface devices and/or software that allow a customer to input commands and data to direct the processing device to execute instructions. For example, the user interface 530 presented in
As used herein, a “memory device” 550 generally refers to a device or combination of devices that store one or more forms of computer-readable media for storing data and/or computer-executable program code/instructions. Computer-readable media is defined in greater detail below. For example, in one embodiment, the memory device 550 includes any computer memory that provides an actual or virtual space to temporarily or permanently store data and/or commands provided to the processing device 520 when it carries out its functions described herein.
It should be understood that the memory device 650 may include one or more databases or other data structures/repositories. The memory device 650 also includes computer-executable program code that instructs the processing device 620 to operate the network communication interface 610 to perform certain communication functions of the mobile banking system 600 described herein. For example, in one embodiment of the mobile banking system 600, the memory device 650 includes, but is not limited to, a network server application 670, an authentication application 660, a customer account data repository 680 which includes customer authentication data 680 and customer account information 684, a mobile banking application 690 which includes an alias data repository interface 692, a mobile web server application 693, a downloadable mobile P2P payment system client application 694 and other computer-executable instructions or other data. The computer-executable program code of the network server application 670, the authentication application 660, or the mobile banking application 690 may instruct the processing device 620 to perform certain logic, data-processing, and data-storing functions of the mobile banking system 600 described herein, as well as communication functions of the mobile banking system 600.
In one embodiment, the customer account data repository 680 includes customer authentication data 682 and customer account information 684. The network server application 670, the authentication application 660, and the mobile banking application 690 are configured to implement customer account information 684, the customer authentication data 682, and the alias data repository interface 692 when authenticating the customer 101 (or the first user 310) to the mobile banking system 600. The customer account information 684, the customer authentication data 682, and the alias data repository interface 692 are discussed in more detail in a later section.
As used herein, a “communication interface” generally includes a modem, server, transceiver, and/or other device for communicating with other devices on a network, and/or a user interface for communicating with one or more customers. Referring again to
The network communication interface 710 is a communication interface having one or more communication devices configured to communicate with one or more other devices on the network 350. The processing device 720 is configured to use the network communication interface 710 to receive information from and/or provide information and commands to a mobile device 400, a personal computing device 500, other financial institution banking systems 370, the alias data repository 700, the mobile banking system 600 and/or other devices via the network 350. In some embodiments, the processing device 720 also uses the network communication interface 710 to access other devices on the network 350, such as one or more web servers of one or more third-party data providers. In some embodiments, one or more of the devices described herein may be operated by a second entity so that the third-party controls the various functions involving the alias data repository 700. For example, in one embodiment of the invention, although the mobile banking system 600 is operated by a first entity (e.g., a financial institution), a second entity operates the alias data repository 700 that stores the alias details for the customer's financial institution accounts and other information about customers.
As described above, the processing device 720 is configured to use the network communication interface 710 to gather data from the various data sources. The processing device 720 stores the data that it receives in the memory device 750. In this regard, in one embodiment of the invention, the memory device 750 includes datastores that include, for example: (1) aliases for customer financial institution account numbers and routing information, (2) information about sending and receiving users' mobile device numbers, email addresses, or other contact information, which may have been received from the mobile banking system 600; (3) a list of customer IDs or authentication data received from the mobile banking system 600; and/or (4) customer credentials (e.g., a customer ID) received from the customer's mobile device 400 or received from the mobile banking system 600 in response to the customer accessing the mobile banking system 600.
In one embodiment of the invention, an application server is provided to support various supporting systems on the network 350, including the wireless telephone network 352. The application server includes a network communication interface, a processing device, and a memory device. The network communication interface and the processing device are similar to the previously described network communication interface 610 and the processing device 620 previously described. For example, the processing device is operatively coupled to the network communication interface and the memory device. In one embodiment of the application server, the memory device includes a network browsing application having computer-executable program code that instructs the processing device to operate the network communication interface to perform certain communication functions of the application download server described herein.
As discussed above, in one embodiment of the invention, an application download server might be provided. The application download server may include a network communication interface, a processing device, and a memory device. The network communication interface and processing device are similar to the previously described network communication interface 610 and the processing device 620 previously described. For example, the processing device is operatively coupled to the network communication interface and the memory device. In one embodiment of the application download server, the memory device includes a network browsing application having computer-executable program code that instructs the processing device to operate the network communication interface to perform certain communication functions of the application download server described herein. In some embodiments of the invention, the application download server provides applications that are to be downloaded to a qualified customer's mobile device or personal computing device.
The process begins at block 802 of
The process then moves to block 804 where the first user 310 using mobile computing device 400 accepts the invitation.
The process then moves to block 806 of
The process then moves to block 808 of
The process then moves to block 810 of
The process then moves to block 812 of
The process then moves to block 814 of
The process then moves to block 816 of
The process then moves to block 818 of
The process then moves to block 820 of
The process then moves to block 825 of
The process then moves to block 830 of
The process then moves to block 832 of
The process then moves to block 834 of
The process then moves to block 836 of
The process then moves to block 838 of
The process then moves to block 840 of
The process then moves to block 842 of
The process then moves to block 844 of
The process then moves to block 846 of
The process then moves to block 850 of
Once the first user activates the confirm button, the process moves to block 854 of
The process then moves to block 856 of
The process then moves to block 860 of
The process then moves to block 862 of
If, in block 862 of
The process then moves to block 868 of
The process then moves to block 870 of
The process then moves to block 872 of
If in block 872 of
If in block 872 of
The process then moves to block 878 of
The process then moves to block 880 of
If, in block 880, the recipient is associated with an alias then, the process moves to block 883 where the mobile banking system 600 sends the alias and the recipient's name to an alias data repository 700.
The process then moves to block 884 where the alias data repository 700 looks up the alias in an alias datastore. Then the process moves to block 885, where the alias data repository 700 determines whether the alias is associated with a financial institution account. If the alias is associated with a financial institution account, then, if the alias data repository 700 determines that the provided name matches the name in the datastore, then the process moves to block 881 of
If in block 885 of
The process then moves to block 890 of
The process then moves on from block 892 to block 893 of
If in block 893 of
As shown in
As shown in
If the recipient (second user) has an eligible financial institution account as determined by the mobile banking system 600 in block 890, then the process moves to block 891 in
As shown in
The process 1000 in
The process then proceeds to block 1010 where a first user (recipient) activates the link provided with the notice.
The mobile banking system 600 alerts the first user (recipient) that to accept the transfer, the first user will need an eligible checking or saving account at a participating financial institution. For customers who hold accounts at the financial institution that manages the mobile banking system 600, the mobile banking system 600 presents a widget with a textbox that allows the first user to enter login or other authenticating information. The mobile banking system 600 also provides a link for the first user to enroll with the financial institution's mobile banking system. For customers of other participating financial institutions, the mobile banking system 600 provides a sign-in button, which might either display a sign-in widget on the instant page or might provide for a link to another page where the first user can enter login information for the participating financial institution. The mobile banking system 600 also notifies the first user that if the first user does not have an account with one of the participating banks, that first user can open an account at the financial institution that maintains the mobile banking system 600. The mobile banking system 600 notifies the first user that he or she may review the terms of opening a new account at this financial institution, including any fees that may be incurred by the first user in opening this new account. The mobile banking system 600 also notifies the first user that if the first user does not want to open a new financial institution account, the first user may notify the sender to arrange an alternate transfer method. The mobile banking system 600 also notifies the first user that the transaction will be canceled if it is not accepted within a pre-determined period of time.
The process then proceeds to block 1020 of
As shown in
As shown in
As shown in
As shown in
The process then moves to block 1060 in
Subsequently, in block 1065, the first user enters a confirmation number in the appropriate textbox and agrees to the terms that govern the transaction by activating the appropriate checkbox. The first user then activates on the second button to continue the process of accepting the transfer.
The process then moves to block 1068 of
Then the process proceeds to block 1070 of
The process then proceeds to block 1075 where the first user enters the alias in the appropriate textbox, confirms the alias in the appropriate textbox, selects the account to receive the funds from the drop-down list, and checks the checkbox that indicates that the first user accepts the terms that govern the transfer. In some embodiments, the accounts listed in the drop-down list are identified only by selected few digits of the account numbers.
In some embodiments, the process then proceeds to block 1077 where the mobile banking system 600 requires additional authentication to register an alias. The mobile banking system 600 displays a widget which serves as an additional authenticating step before saving the information of the first user's associated alias. The mobile banking system 600 indicates to the first user that by activating in the widget on the button for a sending a code, the first user will receive a code on his or her mobile device. In another embodiment, the first user may receive a code through other means such as email, snail mail, etc. In one embodiment, the widget is a “SafePass®” widget and the user can send a “SafePass” code to the first user's mobile device.
The process then moves to block 1079 of
The process then moves to block 1080 of
The process then moves to block 1082 of
The process then moves to block 1084 where the first user enters the enrollment code into the appropriate textbox.
The process then moves block 1086 where the mobile banking system 600 determines if the enrollment code entered by the first user matches the enrollment code sent by the mobile banking system 600 to the alias of the first user.
If the entered code in 1086 does not match the code sent to the alias, then the mobile banking system 600 displays a graceful error message to the first user that the transaction cannot move any further. In one embodiment, the mobile banking system 600 allows the first user to correct any errors in the alias provided by the first user or in the code received by the first user. In one embodiment, the mobile banking system 600 only grants a pre-determined number of unsuccessful attempts to verify the code before rejecting the transfer.
If the entered code in 1086 matches the code sent to the alias, the process moves to block 1088 where the mobile banking system 600 processes any pending transfers involving the newly registered alias. The mobile banking system 600 indicates to the user that the verification of the alias has been completed. The mobile banking system 600 thanks the user for setting up an alias to accept transfers. The mobile banking system 600 indicates to the first user that people or entities can now send money to the first user using the first user's alias. The mobile banking system 600 indicates to the first user that any transfer to the first user's newly registered alias will be deposited to the account number shown on the webpage. In one embodiment, the mobile banking system 600 only shows a selected few digits of the first user's financial institution account number. The page also indicates to the first user that the transfer request is now in process. The page shows details of the transfer, including, but not limited to the name of the sender, the amount, the date on which the sender sent the amount, the confirmation number, and the status of the transfer. The page also two buttons. The first button allows the first user to add another alias and the second button allows the first user make a transfer using the newly registered alias.
The process then moves to block 1090 where the mobile banking system 600 sends the alias to the alias data repository 700 along with associated account information to be stored in the alias datastore.
In one embodiment, the mobile banking system 600 presents four hyperlinks under the transfers hyperlink described earlier. These four hyperlinks are a hyperlink for a making a transfer, a hyperlink for reviewing transfers, a hyperlink for adding recipients, and a hyperlink for managing accounts. Using the appropriate hyperlink, the first user has the option of obtaining set up to accept transfer by activating an appropriate link. The mobile banking system 600 indicates to the first user (recipient) that the first user may activate the link if the first user received a transfer notice, i.e., the first user received an email, text message, or other form of electronic communication that someone has sent money to the first user. The mobile banking system 600 indicates to the first user that in order to complete the transfer and collect the funds, the first user must set up the first user's alias to accept transfers. The mobile banking system 600 also presents a activatable link so that the first user can be directed to a page to learn more about this P2P transfer via alias method. The mobile banking system 600 also presents a help box where the first user can understand more about what the first user can do using the mobile banking system 600, what the first user needs to know, and what else the first user can do using the mobile banking system 600. The mobile banking system 600 also presents a message to the first user that transferring money within the bank is fast and free. The mobile banking system 600 also indicates to the customer that the feature of making a P2P transfer using a recipient's alias is a new feature, and that transfers within the bank now include transfers made using a recipient's alias. Alternatively, a user who intends to receive money using an alias can get set up by activating the link associated with obtaining a set up to accept transfers. A user who accesses the mobile banking system 600 can register an alias by selecting an appropriate link. Therefore, in one embodiment, the user does not have to wait to receive a payment using the mobile P2P transfer service before setting up an alias to receive transfers. In one embodiment, the user can register an alias using a mobile device, while in another embodiment, the user can register an alias using a personal computing device.
In one embodiment of the invention, both the sender and the recipient need to have financial institution accounts registered for mobile P2P transfer via alias. In another embodiment of the invention, the sender needs to have a financial institution account registered for mobile P2P transfer via alias, but the recipient does not need to have a financial institution account registered for mobile P2P transfer via alias. In another embodiment of the invention, the recipient needs to have a financial institution account registered for mobile P2P transfer via alias, but the sender does not need to have a financial institution account registered for mobile P2P transfer via alias.
All features that are described above as being part of the mobile P2P payment process and interface are also part of the text message P2P payment process and service. In one embodiment of the invention, the text message P2P payment send process and interface is a feature provided in the mobile P2P payment send process and interface. In another embodiment of the invention, the text message P2P payment send process and interface is distinct from the mobile P2P payment send process and interface. This text message P2P transfer feature is particularly useful for users who carry mobile devices that do not have computing resources and cannot access the Internet, i.e., mobile devices that only have messaging features and can only access a phone network.
Referring to
The process then moves to block 1120 in
The process then moves to block 1130 in
The process then moves to block 1140 in
If, in block 1140, the alias data repository 700 determines that the number of the first user is a number associated with a financial institution account, then the process moves to block 1150 in
The process then moves to block 1160 in
If, in block 1160, the alias data repository 700 determines that the recipient alias is associated with a financial institution account, then the process moves to block 1170. At block 1170, the mobile banking system 600 determines whether the transfer amount is above the maximum that may be transferred in this transaction. If the mobile banking system 600 determines that the transfer amount is above the maximum that may be transferred in this transaction, then the mobile banking system 600 replies to the first user with a graceful error message that the transaction cannot be completed (see block 1105). In one embodiment, the error message is sent via text message, however, in other embodiments, it can be sent by any form of communication such as email, placing a phone call to the first user, snail mail etc.
If, in block 1170, the mobile banking system 600 determines that the transfer amount is not above the maximum that may be transferred in this transaction, then the mobile banking system 600 sends a text message to the first user showing the requested transfer with the recipient name associated with the alias and requesting that the first user confirm the transfer request, wherein the format of the return confirmation text message is specified in the text message. In one embodiment, the recipient name associated with the alias is received from the alias data repository 700. In one embodiment, the text message in 1180 sent from the mobile banking system 600 specifies that the first user can confirm the transfer request with a “Yes” and can reject the transfer request with a “No.” In other embodiments, the “Yes” and the “No” can be any letters, characters, or combinations thereof as defined by the mobile banking system 600. An illustration of the text message that the mobile banking system 600 sends to the first user in block 1180 of
The process then moves to 1185 where the first user confirms the transaction request by replying to text message in 1180 with a “Yes.” In other embodiments, the first user can confirm the transaction request in the format as specified in the text message sent in 1180 from the mobile banking system 600 to the first user. An illustration of the text message that the first user sends in block 1185 of
The process then moves to block 1190 where the mobile banking system 600 uses the first user's and the recipient's financial institution account numbers to initiate ACH or other type of transfer from the financial institution account associated with the first user's (sender's) phone number to the financial institution account associated with the recipient's alias.
The process then moves to block 1195 where the mobile banking system 600 sends a text message to the first user with information regarding the transfer and with a message that the transfer initiated successfully. An illustration of the text message that the mobile banking system 600 sends to the first user in block 1195 of
As shown in
Rather than utilizing a centralized database of aliases as discussed with reference to some embodiments above and as shown in
A block chain or blockchain is a distributed database that maintains a list of data records, the security of which is enhanced by the distributed nature of the block chain. A block chain typically includes several nodes, which may be one or more systems, machines, computers, databases, data stores or the like operably connected with one another. In some cases, each of the nodes or multiple nodes are maintained by different entities. A block chain typically works without a central repository or single administrator. One well-known application of a block chain is the public ledger of transactions for cryptocurrencies such as used in bitcoin. The data records recorded in the block chain are enforced cryptoraphically and stored on the nodes of the block chain.
A block chain provides numerous advantages over traditional databases. A large number of nodes of a block chain may reach a consensus regarding the validity of a transaction contained on the transaction ledger. Similarly, when multiple versions of a document or transaction exits on the ledger, multiple nodes can converge on the most up-to-date version of the transaction. For example, in the case of a virtual currency transaction, any node within the block chain that creates a transaction can determine within a level of certainty whether the transaction can take place and become final by confirming that no conflicting transactions (i.e., the same currency unit has not already been spent) confirmed by the block chain elsewhere.
The block chain typically has two primary types of records. The first type is the transaction type, which consists of the actual data stored in the block chain. The second type is the block type, which are records that confirm when and in what sequence certain transactions became recorded as part of the block chain. Transactions are created by participants using the block chain in its normal course of business, for example, when someone sends cryptocurrency to another person), and blocks are created by users known as “miners” who use specialized software/equipment to create blocks. Users of the block chain create transactions that are passed around to various nodes of the block chain. A “valid” transaction is one that can be validated based on a set of rules that are defined by the particular system implementing the block chain. For example, in the case of cryptocurrencies, a valid transaction is one that is digitally signed, spent from a valid digital wallet and, in some cases, one that meets other criteria. In some block chain systems, miners are incentivized to create blocks by a rewards structure that offers a pre-defined per-block reward and/or fees offered within the transactions validated themselves. Thus, when a miner successfully validates a transaction on the block chain, the miner may receive rewards and/or fees as an incentive to continue creating new blocks.
As mentioned above and referring to
Various other specific-purpose implementations of block chains have been developed. These include distributed domain name management, decentralized crowd-funding, synchronous/asynchronous communication, decentralized real-time ride sharing and even a general purpose deployment of decentralized applications.
The block chain 1300 may perform one or more of the steps or functions performed by the alias data repository 700 as discussed above with reference to
In various embodiments of the invention, a block chain implementation is used to validate and clear payments, such as by the blockchain itself validating payments, real-time messaging validating/clearing and/or ACH validation/clearing of payments. For real-time alias p2p payments, such as those discussed in greater detail in the above sections herein, multiple active directories may be created. In such cases, a need exists to ensure mappings are not overloaded or redirected and in order to maintain a complete audit trail. The block chain configuration is used to index alias mappings in all directories and maintain a full and visible audit trail. Mining is used, in some embodiments, to ensure that changes to specific mappings (e.g., mapping an alias to a financial institution and/or mapping an alias to an account) are confirmed and/or have reached a predetermined level of consensus. This also ensures unauthorized users are not manipulating the director(ies).
A real-time p2p payment made using an alias requires that the alias is mapped to the appropriate financial institution. This information must be universally available to everyone on the payment network, and the block chain configuration enables such information distribution. Furthermore, a real-time p2p payment made using an alias also requires that the alias is correctly mapped to the appropriate account. In some embodiments of the invention, such a mapping, while integral to clearing (or validating) the transaction, the mapping of the alias to an account is maintained as private information. For example, the mapping of the alias to an account number may be maintained at a server local to the financial institution. Thus, once a requested transaction has been placed on the public blockchain, the blockchain network recognizes that the alias associated with the transaction is mapped to a particular financial institution. That financial institution's server or system connected to the blockchain receives the information about the requested transaction and the alias and can validate that the transaction may be validated by looking up the appropriate mapping of the alias to the account. As noted, this information is not placed on the public blockchain, but rather is held privately, such as on a private blockchain or a “side-chain”.
One advantage of using a blockchain configuration for real-time alias-based p2p payments is an opportunity for scaling. Thousands of banks or financial institutions may participate in a block chain for real-time alias-based p2p payments and, therefore, the time to validation of a transaction may be shortened. For example, a proposed transaction that is placed on the block chain may be validated by one or a predetermined number of nodes of the block chain in order for the transaction to proceed. The nodes may work as miners or “validators” in order to confirm that an alias being used is a valid alias and is mapped to a particular, valid financial institution. This determination may be based on the fact that the financial institution that originally mapped the alias to itself (the “originating FI”) has placed it on the blockchain and in some cases, has included additional information such as a key that validates the alias.
The block chain may be configured with a set of rules to dictate when and how aliases are validated, transactions are approved and other details about how the network communicates data and the like. In some embodiments, the rules dictate that the originating FI must approve all transactions for aliases mapped to that FI. In some embodiments, the rules dictate that some or all transactions may be approved by one or more validator nodes without further input from the originating FI other than the validation of the mapped alias. In some such cases, the rules dictate that the mapped alias, when placed on the blockchain also includes additional information that is useful in determining whether transactions associated with the alias should be approved. For example, the alias may be associated with information indicating a spending limit on the blockchain. Thus, if a transaction request associated with an alias has a transaction amount less than the spending limited stored on the blockchain and associated with the alias, the rules may dictate that a validating node can approve the transaction without further input from the originating FI. In other embodiments, the validating node must reach out to the originating FI in certain situations as dictated by the rules. For example, if the alias is indicated to be mapped to multiple accounts, multiple FIs and/or is, in any way, indicated to be a faulty or invalid alias (due to some information present on the blockchain), then the rules may dictate that the validating node communicate with the originating FI to confirm or deny validation of the alias and approval or denial of the requested transaction.
In some embodiments, the validator may approve the transaction without communicating with the originating FI. In such a case, the validator (or a group of validators if multiple validations are required by the rules), can approve the transaction based solely on the information contained in the blockchain. Thus, if a transaction is requested and a validator receives the transaction, it can check the transaction's associated alias against its ledger to determine whether an originating FI has validated the alias. If so, then the validator may approve the transaction. In this regard, the transaction may be approved very quickly, and in some cases, in real-time or near real-time.
In cases where the rules dictate further input from the originating FI, once the mapping of the alias to a particular financial institution is validated, the transaction may proceed through the blockchain network to the system(s) of that financial institution over normal block chain protocol and procedure, may be directly routed to the identified financial institution, or may be communicated over traditional rails or channels such as ACH or card-based approval channels in order to complete full validation of the alias and/or approval of the transaction. Once the financial institution receives the proposed transaction, then the financial institution retrieves its alias mapping, determines the account associated with the alias and can approve and complete the transaction.
In various embodiments, any of the nodes 1300 may be a validator or a miner that validates transactions. In some embodiments, a number of the nodes 1300 must validate a transaction in order for the transaction to be approved. For example, in one embodiment, three nodes 1300 must validate the authenticity of the alias before the transaction may be approved. A specific example would be a customer having an alias of “customer@email.com” that requests a P2P transaction using the block chain distributed network. This alias may be linked (i.e., mapped) to BANK1 on the distributed ledger on the block chain. The alias may also be linked (i.e., mapped) to ACCOUNT1 maintained at BANK1. The mapping of the alias to ACCOUNT1 is a contained on a private register held by BANK1. When an alias is mapped to BANK1, BANK1 provides the information that the alias is a valid alias that is mapped to a valid account held by BANK1. Thus, up-to-date nodes 1300 on the block chain distributed network then are aware that alias is mapped to BANK1 and is a valid alias. In some embodiments, the updates, such as the fact that an alias is mapped to a particular financial institution are only sent out to validating nodes, and in other cases, the updates are sent to all nodes or predetermined or specific nodes.
As noted above, in some instances, the rules of the blockchain and/or rules specific to particular originating FIs or validators dictate that validators cannot approve transactions without confirming available funds. In some cases, the available funds information is already associated with the alias mapping on the public blockchain, but in other cases, the validator must communicate with the originating FI in order to request approval of the transaction.
In some embodiments, an alias may only be remapped by the originating entity to ensure the validity of a remapping. For example, when a customer remaps an alias to another bank, the original bank may be required to verify the remapping. Similarly, in some embodiments, the bank to which an alias is remapped must verify the alias has been remapped. This may be done by confirming the alias is associated with a real customer who owns an account at the bank to which the alias was remapped. In some cases, particularly in cases where one or more nodes have raised a concern that a transaction involving the alias is not valid, the real customer may be contacted for verification of identity and/or verification that he/she has initiated a remapping of an alias.
Referring to
The next step, represented by block 1420, is to access a distributed ledger, where the ledger is updated based on communications from a block chain distributed network. The next step, represented by block 1430, is to retrieve an alias to entity mapping from the accessed distributed ledger. The mapping indicates at least an entity to which the alias is mapped. Next, as represented by block 1440, based on the mapping, the node determines that the alias is at least partially valid. Finally, as represented by block 1450, the last step is to communicate the transaction record to the entity and/or one or more additional nodes for full validation of the transaction record and authorization of the transaction.
Referring now to
In some embodiments, the alias may be associated with a blockchain digital wallet and use a private key in order to confirm available funds for requested transactions. In this regard, approval of a requested transaction may be provided by a validator without requiring approval from the originating FI.
According to embodiments of the invention, a blockchain distributed network enables reliable alias mapping. Such a blockchain alias mapping system addresses potential reliability issues with a global alias map that supports real-time payments, regardless of how the payments are ultimately processed. A blockchain alias mapping system has a variety of potential use cases such as registration, re-registration, look-up (to determine if an alias is mapped or to determine the appropriate network to use) and redirection of an alias to a different financial institution (FI) or account. This last use case may be related to a hijack situation where an exposure may be identified.
Currently directory services (DS) are operated by payment product companies, which are typically financial institutions (FIs). These DS's provide a directory mapping of an account to an alias that is applicable only for that FI's payment product. Independent DS's that exist currently are not interoperable, meaning that the various DS's for different FIs do not and cannot overlap such that, for example, an alias might be mapped to accounts maintained by multiple FIs. Now no common DS is available that enables a customer to map multiple payment accounts they hold with different FIs. Such a solution, which may be implemented as discussed at length above, may have some inherent security issues due to the use of a “centralized database” or clearinghouse, such as is shown in
Accordingly, embodiments of the invention enable a system for directory services and mapping aliases that allows different FIs to use a common, shared, single source of database without a central third party. Embodiments of the system utilize blockchain and distributed ledger technologies. Blockchain provides a single source of truth that maintains a single ledger of alias and tokens for different products/services offered by different FIs. FIs that provide an the functionality for an alias to be mapped to accounts by its customers may also act as nodes of the blockchain. These FI nodes may enable their customers to enroll (or register) an alias for mapping to the account. The account may also be represented as a token (UUID) mapped to an alias name with mapping in the blockchain. A customer of a FI (i.e., node) may utilize its services (e.g., interface) to create a unique address for themselves in the blockchain and can thereby manage an alias-token couple. The node (FI) provides secure services for its customers to control the creation and life cycle management of the alias-token couple associated with that FI. These secure services may include, in some embodiments, write permissions for managing the alias-token pair. Any node (FI), in some embodiments, is enabled to query, search and read alias-token pair mapping in the blockchain for any customer (regardless of the customer's non-affiliation with that node). These functions are generally referred to as read permissions. The write permissions and operations are controlled through the customer's private key, in some embodiments, so that the customer can securely manage his/her alias/token pair(s).
Each private key may have a public key (an address on the blockchain uniquely associated with the customer) associated with it. As further discussed below, a public key (corresponding to a single DS blockchain account) may have multiple associated private keys authorized for using the public key for transactions. The map of all alias-token pairs of a particular customer are stored on the blockchain associated with the public key of the customer in the blockchain ledger. All map entries (add/edit/delete) for a customer are accepted only when signed by the secure private key of the customer. The FI (node) may provide a service that enables the customer to secure the private key in the FI's digital vault. Alternatively, the customer may receive a copy of the private key in a soft format or paper mailing form sent securely from the FI.
When a customer is accessing his managed aliases through a second FI different than the first FI that holds his accounts, the customer can utilize the private key. Alternatively, the second FI may request that the first FI change mappings created by the first FI when the customer exercises write operations through the second FI.
A customer may map her aliases to multiple tokens or accounts. In such a case, the map entry captures which is the default token/account to be used when the DS is queried or searched. Customers may also define smart contracts by which they can set up rules in the blockchain. The smart contracts define which alias-token entry needs to be used for specific transactions.
In various embodiments, an alias may be used by multiple users. Each of the users may be authorized the use the alias to make payments, however, each user or subsets of users are assigned unique private keys during registration. Accordingly, each user may utilize their individual private key in order to perform a transaction using the alias. For example, when the user provides an alias for a transaction, the user can also provide the user's private key during the transaction. Use of the private key alongside the alias during a transaction may also indicate which account, payment rail, fees or otherwise that are used for a transaction.
Referring to
The bank DS blockchain system 1650, in some embodiments, includes several application or modules 1651. These modules may include a service registration controller 1652, a token life cycle management module 1654, a search alias-token map provider module 1656 and a view alias-token map provider module 1658. The service registration controller 1652 enables a customer to map an alias to a token (i.e., account or financial instrument) that is held by the FI. The token life cycle management module 1654 enables a customer to manage his/her aliases and the alias-token mappings. Module 1654 allows the customer to edit the alias and/or token that has been mapped, to add new aliases and tokens and their mappings, and to delete aliases, token and/or mappings from the customer's account. The search alias-token map provider module 1656 is configured to enable the FI to process a payment. The FI must search the blockchain using the module 1656 to identify account details associated with any alias that is submitted to the FI for a payment transaction. The view alias-token map provider 1658 enables the customer to view all the details regarding mappings. The system 1650 has a bank database 1660, which may include information related to some or all the FI's accounts, customer and/or the like. The admin module 1662 controls access permissions and may initiate and/or manage running of the other modules 1651.
Every bank or FI that is participating in the DS blockchain has a node that is an interface for connecting with and communicating with the blockchain. The bank DS blockchain node 1670 has a blockchain server 1672 that is configured to connect the node 1670 with the blockchain. A smart contracts engine 1674 is provided for implementing smart contracts for managing alias-token selection for processing payments. For example, given a particular set of circumstances, the smart contract may be configured to use a particular alias-token pair for completing a payment. Some or all the data stored in the bank database 1660 may be pushed to the DS ledger and smart contract database 1676 that is provided for access by the blockchain network, represented by the other nodes (e.g., FIs) in the DS blockchain cloud 1690. In some cases, the bank database 1660 may contain more information for a particular alias-token mapping pair than is pushed to the DS ledger 1676. For example, the alias-token pair may be associated with a customer name, bank name, FI name, payment rail, rail fee and/or the like.
The customer private key 1620 may be created and provided by the service registration controller 1652. The customer may select to store the secure digital vault(s) 1640. These private key(s), as discussed elsewhere, provide the customer with an opportunity to access his or her account through the originating FI or another FI.
Referring now to
Next, as represented by block 1720, the customer registers with the service. This is a one-time activity that creates an address in the DS blockchain. A unique address represents a customer in the blockchain. A customer can choose to use any FI with which he/she has a relationship in order to register for the DS blockchain service as it is a one-time activity. Once the customer has chosen to register with the DS blockchain service and they are authenticated, the node connects with the DS blockchain system to create an account. This DS account includes an address (i.e., a public key) for the customer. The DS blockchain system 1650 also generates a private key, which may be securely communicated to the customer. The node does not store the private key for improved security. The private key is required in order for the customer to add/edit/delete alias-token entries of the customer account. Thus, it becomes possible for the customer to use the same address to control the lifecycle of tokens with different FIs.
Next, as represented by block 1730, an alias-token/account pair (aka couple or mapping) is enrolled in the service. The customer first chooses an account (such as an account held at the financial institution) and provides an alias to associate with the account. Then, the FI checks the validity of the alias, that is, it confirms that the alias is truly owned by the customer. For example, if the alias is an email address, the FI may confirm by sending a test message with a confirmation link to the customer for validation. The node then queries the blockchain to check if the alias already exists in the blockchain. If it already exists, then the node checks to determine if the alias is part of the DS blockchain address of the customer. If validations are successful, then the customer is prompted to enter the private key. The node then makes a change to the customer's address in the blockchain to add the alias-token map. Additional data about the token can also be captured and stored in the blockchain. Such data may include, for example, the customer name, the FI name, payment rail information, fee information for the payment rail, and the like. If the alias does not already exist, then the node creates an account for the customer as detailed above with reference to block 1720.
Next, as represented by block 1740, the token lifecycle is managed, such as by editing and/or deleting the alias-token pair. These operations are similar to the operations for adding the alias-token pair in reverse, for example, when the customer desires to remove the token from mapping, then the alias-token pair is removed from the blockchain address of the customer.
Other operations, as represented by block 1750, may be performed including searching, reading and implementing smart contracts. The search service may be useful for a customer to confirm that the customer's alias is not used by other customers without permission. Any node can search the DS blockchain for any alias and/or token. Such a query returns the address of the account that has the alias/token mapped to it. The read service provides that any node can query the DS blockchain to get the token for a given alias. Along with the token, other information associated with the address may be returned by the DS blockchain.
As noted above, smart contracts may also be implemented on the blockchain. Smart contracts are computer processes that facilitate, verify and/or enforce negotiation and/or performance of a contract between parties. One fundamental purpose of smart contracts is to integrate the practice of contract law and related business practices with electronic commerce protocols between people on the Internet. Smart contracts may leverage a user interface that provides one or more parties or administrators access, which may be restricted at varying levels for different people, to the terms and logic of the contract. Smart contracts typically include logic that emulates contractual clauses that are partially or fully self-executing and/or self-enforcing. Examples of smart contracts are digital rights management (DRM) used for protecting copyrighted works, financial cryptography schemes for financial contracts, admission control schemes, token bucket algorithms, other quality of service mechanisms for assistance in facilitating network service level agreements, person-to-person network mechanisms for ensuring fair contributions of users, and others.
Smart contract infrastructure can be implemented by replicated asset registries and contract execution using cryptographic hash chains and Byzantine fault tolerant replication. For example, each node in a peer-to-peer network or blockchain distributed network may act as a title registry and escrow, thereby executing changes of ownership and implementing sets of predetermined rules that govern transactions on the network. Each node may also check the work of other nodes and in some cases, as noted above, function as miners or validators.
The customer can use the services of the node to create a smart contract. This smart contract, as noted above, is a set of rules which, when executed by the blockchain at a specific time, will return the best alias/rail to choose for a particular payment. This is useful in a scenario where an alias maps to multiple tokens. The smart contract returns the best token that a sender (node) can use to make a particular payment. For example, is ABCDE is an alias for multiple token, then the sender wants to make a cross-border payment, the smart contract may execute a set of rules as set by the customer (who is the recipient) and return the token and the appropriate rail through which the customer wants to receive cross-border payments. As another example, if the sender wants to make a real-time payment, then the smart contract may choose a token-rail combination that supports real-time payments.
As will be appreciated by one of skill in the art, the present invention may be embodied as a method (including, for example, a computer-implemented process, a business process, and/or any other process), apparatus (including, for example, a system, machine, device, computer program product, and/or the like), or a combination of the foregoing. Accordingly, embodiments of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.), or an embodiment combining software and hardware aspects that may generally be referred to herein as a “system.” Furthermore, embodiments of the present invention may take the form of a computer program product on a computer-readable medium having computer-executable program code embodied in the medium.
Any suitable transitory or non-transitory computer readable medium may be utilized. The computer readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device. More specific examples of the computer readable medium include, but are not limited to, the following: an electrical connection having one or more wires; a tangible storage medium such as a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a compact disc read-only memory (CD-ROM), or other optical or magnetic storage device.
In the context of this document, a computer readable medium may be any medium that can contain, store, communicate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer usable program code may be transmitted using any appropriate medium, including but not limited to the Internet, wireline, optical fiber cable, radio frequency (RF) signals, or other mediums.
Computer-executable program code for carrying out operations of embodiments of the present invention may be written in an object oriented, scripted or unscripted programming language such as Java, Perl, Smalltalk, C++, or the like. However, the computer program code for carrying out operations of embodiments of the present invention may also be written in conventional procedural programming languages, such as the “C” programming language or similar programming languages.
Embodiments of the present invention are described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products. It will be understood that each block of the flowchart illustrations and/or block diagrams, and/or combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer-executable program code portions. These computer-executable program code portions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a particular machine, such that the code portions, which execute via the processor of the computer or other programmable data processing apparatus, create mechanisms for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer-executable program code portions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the code portions stored in the computer readable memory produce an article of manufacture including instruction mechanisms which implement the function/act specified in the flowchart and/or block diagram block(s).
The computer-executable program code may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the code portions which execute on the computer or other programmable apparatus provide steps for implementing the functions/acts specified in the flowchart and/or block diagram block(s). Alternatively, computer program implemented steps or acts may be combined with operator or human implemented steps or acts in order to carry out an embodiment of the invention.
As the phrase is used herein, a processor may be “configured to” perform a certain function in a variety of ways, including, for example, by having one or more general-purpose circuits perform the function by executing particular computer-executable program code embodied in computer-readable medium, and/or by having one or more application-specific circuits perform the function.
Embodiments of the present invention are described above with reference to flowcharts and/or block diagrams. It will be understood that steps of the processes described herein may be performed in orders different than those illustrated in the flowcharts. In other words, the processes represented by the blocks of a flowchart may, in some embodiments, be in performed in an order other that the order illustrated, may be combined or divided, or may be performed simultaneously. It will also be understood that the blocks of the block diagrams illustrated, in some embodiments, merely conceptual delineations between systems and one or more of the systems illustrated by a block in the block diagrams may be combined or share hardware and/or software with another one or more of the systems illustrated by a block in the block diagrams. Likewise, a device, system, apparatus, and/or the like may be made up of one or more devices, systems, apparatuses, and/or the like. For example, where a processor is illustrated or described herein, the processor may be made up of a plurality of microprocessors or other processing devices which may or may not be coupled to one another. Likewise, where a memory is illustrated or described herein, the memory may be made up of a plurality of memory devices which may or may not be coupled to one another.
While certain exemplary embodiments have been described and shown in the accompanying drawings, it is to be understood that such embodiments are merely illustrative of, and not restrictive on, the broad invention, and that this invention not be limited to the specific constructions and arrangements shown and described, since various other changes, combinations, omissions, modifications and substitutions, in addition to those set forth in the above paragraphs, are possible. Those skilled in the art will appreciate that various adaptations and modifications of the just described embodiments can be configured without departing from the scope and spirit of the invention. Therefore, it is to be understood that, within the scope of the appended claims, the invention may be practiced other than as specifically described herein.
This application is a non-provisional application which claims the benefit of U.S. Provisional Application No. 62/253,935, entitled “BLOCK CHAIN ALIAS PERSON-TO-PERSON PAYMENT” filed Nov. 11, 2015; the contents of which are hereby incorporated by reference.
Number | Date | Country | |
---|---|---|---|
62253935 | Nov 2015 | US |