The embodiments of the present invention relate to a cryptocurrency kiosk/ATM device, system and method which facilitate the buying and selling of cryptocurrency without the need for any third-party financial institution (e.g., banks).
Cryptocurrency (e.g., Bitcoin) relates to decentralized digital currencies based on an open-source peer-to-peer internet protocol. Bitcoin is by most accounts the most widely accepted alternative currency having a monetary base in excess of $1 billion (USD) and is accepted by merchants, including service providers, throughout the world. Cryptocurrency is managed unlike most typical currencies and such that the need for a central bank is eliminated. Instead, as referenced above, cryptocurrency is managed via an internet-based peer-to-peer network.
It would be advantageous, to develop a standalone device capable of facilitating the purchase and sale of cryptocurrency. Such a device should not require the use of any central monetary authority.
Accordingly, one embodiment of the present invention comprises a standalone cryptocurrency kiosk/ATM device including at least the following components: (i) a bill validator; (ii) bill dispenser; (iii) printer; (iv) code scanner; (v) touch screen display; (vi) computing power in the form of a processor/controller; and (vii) internet connection means. The standalone device may include other components such as a backup power supply. The computing power may be local or remote as part of a cryptocurrency kiosk/ATM network. A plurality of devices and central computer/server may form a network of devices.
In practice, the standalone device facilitates the purchase of cryptocurrency by: (i) permitting a user to deposit traditional currency (e.g., United States dollars); (ii) reading a code related to a digital account for receiving the purchased cryptocurrency; (ii) confirming that the standalone device has sufficient cryptocurrency to fund the purchase; (iv) generating and printing a receipt of the transaction. If the standalone device does not have sufficient funds to complete the transaction, the standalone device may acquire the necessary cryptocurrency from the spot market by connecting to a cryptocurrency exchange such as www.okcoin.com and www.gemini.com.
In practice, the standalone device facilitates the sale of cryptocurrency via two stages. A first stage comprises: (i) accepting an amount of desired traditional currency (e.g., United States dollars) as entered by the user; (ii) creating a transaction in a database; (iii) prompting the user to transmit the user's cryptocurrency to a digital address assigned to the standalone device; and (iv) generating and printing a redemption receipt. A second stage comprises a user redeeming the redemption receipt during which: (i) the redemption receipt is electronically read; (ii) a comparison of the redemption receipt to the transaction in the database is conducted; (iii) a network confirmation of the user's cryptocurrency is conducted; (iv) a confirmation that the redemption receipt has not been redeemed is conducted; and (v) cash is dispensed from the standalone device.
Some of the steps required to buy and sell the cryptocurrency may also be accomplished via a remote device such as a computer or smart phone which interacts with the standalone device.
Other variations, embodiments and features of the present invention will become evident from the following detailed description, drawings and claims.
For the purposes of promoting an understanding of the principles in accordance with the embodiments of the present invention, reference will now be made to the embodiments illustrated in the drawings and specific language will be used to describe the same. It will nevertheless be understood that no limitation of the scope of the invention is thereby intended. Any alterations and further modifications of the inventive feature illustrated herein, and any additional applications of the principles of the invention as illustrated herein, which would normally occur to one skilled in the relevant art and having possession of this disclosure, are to be considered within the scope of the invention claimed.
Those skilled in the art will recognize that the embodiments of the present invention involve both hardware and software elements which portions are described below in such detail required to construct and operate a cryptocurrency kiosk/ATM according to the embodiments of the present invention.
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects 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. Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, 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), an optical fiber, a portable compact disc read-only memory (CD-ROM), and optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied thereon, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any variety of forms, including, but not limited to, electromagnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in conjunction with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF and the like, or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object-oriented programming language such as Java, Smalltalk, C++ or the like or conventional procedural programming languages, such as the “C” programming language, AJAX, PHP, HTML, XHTML, Ruby, CSS or similar programming languages. The programming code may be configured in an application, an operating system, as part of a system firmware, or any suitable combination thereof. The programming code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on a remote computer or server as in a client/server relationship sometimes known as cloud computing. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general-purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. As used herein, a “terminal” should be understood to be any one of a general purpose computer, as for example a personal computer or a laptop computer, a client computer configured for interaction with a server, a special purpose computer such as a server, or a smart phone, soft phone, tablet computer, personal digital assistant or any other machine adapted for executing programmable instructions in accordance with the description thereof set forth above.
The cryptocurrency kiosk/ATM device 100 facilitates cryptocurrency transactions including purchases and sales of cryptocurrency.
If, at 310, it is determined that the desired transaction type is the purchase of cryptocurrency, at 315, the user selects an amount of cryptocurrency to purchase or amount of conventional currency to exchange for cryptocurrency. At 320, it is determined if the user has made the selection. If, at 320, no selection is made in a pre-established time frame, the chart 300 loops back to 320. Once a selection is made at 320, at 325, a destination cryptocurrency address is entered by the user. The destination cryptocurrency address is a digital address which is configured to receive the cryptocurrency when electronically dispensed by the cryptocurrency kiosk/ATM device 100. In one embodiment, the user enters the destination cryptocurrency address by manually entering the same via the touch screen display 150. In another embodiment, the code reader/scanner 140 reads a QR code, barcode or the like representing the destination cryptocurrency address and which is depicted on the user's smart phone or similar electronic device. At 330, it is determined whether a destination cryptocurrency address has been entered, not entered or entered improperly. If no cryptocurrency address has been entered, the chart 300 loops back to 330. If an invalid code is entered at 330, at 335, a corresponding error message is created and the chart 300 loops back to 330 where the error message is displayed on the touch screen display 150. If a valid code is received at 330, at 340, receipt information is generated and displayed for the user to review. At 345, it is determined if the user has confirmed the receipt details via the touch screen display 150.
Upon confirmation of the receipt by the user, at 350, a transaction is created and stored in a corresponding database. At 355, a buy receipt is created. At 360, the user inserts cash/notes into the bill validator 110 of the cryptocurrency kiosk/ATM 100. At 365, it is determined whether the cash deposit is too little, too much or accurate. If too much, at 370, the extra notes are rejected by the bill validator 110. If too little, the chart 300 loops back to 360 for the user to deposit additional notes. If the transaction is aborted by the user or cryptocurrency kiosk/ATM 100, at 375, all notes are rejected and, at 380, the transaction is aborted.
If, at 365, the cash deposit is accurate, at 385, it is determined if the cryptocurrency is available from the inventory managed by the cryptocurrency kiosk/ATM device 100. If so, at 390, the cryptocurrency transaction is completed such that, at 395, the cryptocurrency is transmitted from the local digital address associated with the cryptocurrency kiosk/ATM device 100 to the destination cryptocurrency address provided previously by the user. Finally, at 400, a cryptocurrency sent message is presented to the user via the touch screen display 150. Optionally, the cryptocurrency sent message may also be transmitted to the user's smart phone or other mobile device. If, at 385, it is determined that the cryptocurrency is not available in the inventory, at 405, the cryptocurrency kiosk/ATM contacts, via wireless/wired internet connection means 170, an online cryptocurrency exchange, to determine if the cryptocurrency is available. If so, at 410, the cryptocurrency kiosk/ATM device 100 purchases the necessary cryptocurrency from the exchange to complete the transaction. If, at 405, the cryptocurrency kiosk/ATM device 100 determines that the cryptocurrency exchange does not have the necessary cryptocurrency available, at 415, a corresponding error message is presented to the user on the touch screen display 150.
If, at 310, it is determined that the transaction type is a sale of cryptocurrency, at 420, the user selects an amount of cryptocurrency or equivalent dollars to sell for cash. At 425, it is determined if the user has made the selection. If, at 425, no selection is made within a pre-established time period, the chart 300 loops back to 420. If, at 425, a selection is made, at 430, a transaction is created and stored in a corresponding database. At 435, a redemption receipt/coupon is generated and printed by printer 130. Printing the redemption receipt/coupon allows cryptocurrency sale processing to occur. At 440, the user enters a cryptocurrency address from which the cryptocurrency to be sold is currently held.
At 450, the redemption receipt/coupon is redeemed via the code reader/scanner 140 such that the transaction ID created at 430 is collected and checked. At 455, it is determined if the transaction ID is valid. If not, at 460, a corresponding error message is presented to the user via the touch screen display 150. If, at 455, the transaction ID is validated, at 465, the receipt type is determined. At 470, a buy receipt determination at 465 results in receipt information being generated. If the receipt type is a buy, nothing happens because the buy has been, or should have already been, executed. The kiosk/ATM 100 will merely show a summary of the transaction. If, at 465, a sell receipt is identified a new workflow process is implemented because after a user sends cryptocurrency to the kiosk/ATM100, the cryptocurrency network needs to process it. At 475, the amount of cryptocurrency from the receipt and the subject transaction record are compared. If the cryptocurrency amounts do not match, at 480, it is determined if the transaction has already been terminated. If so, at 485, a receipt is generated. If, at 480, it is determined that the transaction has not yet been aborted at 490, the transaction is aborted and, at 495, any withdrawn cryptocurrency is refunded.
If, at 475, it is determined that the cryptocurrency amounts do match, at 500, receipt information is evaluated and, at 505, it is determined if the transaction verification is complete. If not, the chart 300 loops back to 500. If, at 505, it is determined that the transaction verification is complete, at 510, it is determined if the transaction verification occurred within 5 minutes. If not, the flow chart 300 advances to 490. If a user does not send cryptocurrency to the address provided by the kiosk/ATM100 within the time period (e.g., 5 minutes), the order is deemed invalid. This is to mitigate market exchange rate fluctuations. If a user wishes to sell cryptocurrency after the time period, a new transaction will need to be generated. If, at 510, it is determined that the transaction verification occurred within five minutes, at 515, the cryptocurrency amount being offered for sale is verified by network confirmations. In one embodiment, one to six network confirmations (an industry standard) are deemed adequate to verify a suitable amount of cryptocurrency held/owned by the seller. The well-established peer-to-peer cryptocurrency network confirms transactions by recording the transactions in the transaction log or “blockchain” stored across the peer-to-peer network every 10-minutes. After six confirmed records or “blocks”, which may take up to an hour, a transaction is usually considered confirmed beyond reasonable doubt. If a user scans his sell receipt before the cryptocurrency network has finished processing it, nothing happens and the user has to wait until it is ready. If, at 515, it is determined that network confirmation has not occurred, at 520, the cryptocurrency kiosk/ATM 100 device waits for confirmation and goes inactive. If, at 515, it is determined that network confirmation has occurred, at 525, the user is prompted to depress a withdraw button or icon on the touch screen display 150. At 530, it is determined if there is sufficient cash in the cryptocurrency kiosk/ATM device 100 to fund the cash withdraw. If not, at 535, the withdrawal is rejected for lack of available funds. If, at 530, it is determined that there are sufficient funds available, at 540, the user is prompted to confirm the withdrawal. If confirmation occurs, at 545, the transaction is finished and, at 550, the cash/notes are dispensed.
Setting up the user-generated bi-directional payment channels 715 requires the parties (e.g., user A and user B) to set up a multi-signature wallet and deposit funds. Completing a transaction requires each party to provide a private key to the multi-signature wallet. Once a transaction is complete, each party verifies and signs an individual balance sheet maintaining records of transactions and balances for the party. The information is then sent to the blockchain network 710. The lightning network 705 also permits user A to transact with user C as long as a path of nodes can be located. For example, user A may conduct a transaction with user C directly through user B assuming user B has an open payment channel with user C.
With the embodiments of the present invention, the lightning network 705 may include ATM to ATM, ATM to USER and USER to ATM payment channels. Once a transaction is completed between ATM to ATM, ATM to USER and USER to ATM, the underlying blockchain may be updated. In another embodiment, the lightning network 705 allows for transactions across different blockchains.
Although the invention has been described in detail with reference to several embodiments, additional variations and modifications exist within the scope and spirit of the invention as described and defined in the following claims.
This application is a continuation-in-part of, and claims priority to, U.S. patent application Ser. No. 13/942,930, now U.S. Pat. No. 10,332,205, and is incorporated herein for any and all purposes.
Number | Date | Country | |
---|---|---|---|
Parent | 13942930 | Jul 2013 | US |
Child | 16452450 | US |