Detailed Description
The present disclosure is described herein in detail with reference to the embodiments illustrated in the accompanying drawings, which form a part hereof. Other embodiments may be utilized, and/or other changes may be made, without departing from the spirit or scope of the present disclosure. The illustrative embodiments described in the detailed description are not meant to limit the subject matter presented herein.
In an embodiment, the term "zero custody transfer" refers to a system or mechanism that is capable of implementing, in whole or in part, non-custody limit orders or market purchase orders for blockchain based assets (and thus may implement a functional financial transaction order book). An unstored order refers to an order in which neither party has possession of the other party's asset (rather the asset is held by a distributed multi-signed account based on a distributed blockchain), eliminating the potential counterparty risk of the subject asset until the transaction is validated and completed.
Often, a user wishes to purchase one blockchain-based asset or redeem another. For example, user A has currency A (i.e., bitcoin) and he/she wishes to sell at a price of 1:10 to purchase currency B (i.e., Ether coin). The exchange company may have a currency B that it is willing to sell. The term "exchange" as used herein refers to a blockchain asset merchant or a blockchain asset exchange. Thus, user A wants to set an order that will only be executed when the price of currency B drops to 0.1 of currency A. User a always wants to ensure that if the price target is not reached, the order will not be executed and will be cancelled or cancelled. User a may also set a duration or expiration time on the order that will expire at a given point in time and trigger a refund back to user a.
In an embodiment, user A creates a non-custody order with the exchange and then sends funds to M of N (M-of-N) multiple signature addresses identified by the exchange. In an embodiment, two-thirds (2of 3) of multiple signature addresses are used, however any other level of multiple signature addresses may be used. In operation, an automated, policy-based third party predictive engine (Oracle), which may be a multiple signature co-signer independent of or operated by the exchange, signs with user a or the exchange according to certain rules and circumstances. In embodiments, the third party predictive engine may be another company, or may be a software application residing on a server, including a decentralized server, or as a "decentralized autonomous organization" (DAO). The predictive engine, once established, need not be owned or managed. It is essentially a switch that determines whether funds are to be transferred to the exchange or to the user according to a set of predetermined rules. The basic rule for this switch is as follows: if the desired funds have been sent to the user (as defined by the common blockchain), the transaction is signed with the transaction bureau to complete the transaction. Two-thirds of multiple signed accounts are used to ensure that no one party can act unilaterally for any transaction. To complete any transaction, two of the three parties must agree to sign. The exchange proves that the user's funds cannot be received before it has sent the desired asset, and the user cannot recover his funds if the exchange has demonstrated the transfer of the desired asset. The predictive speaker signs with one or the other party based on non-repudiatable blockchain data.
Once the user has specified an order, the exchange will provide them with a multi-signature blockchain asset address. As is understood in the art, multiple signed addresses require the use of several private keys to access the account and transfer assets. This is in contrast to common blockchain asset transactions that require only one signature. In a common blockchain asset transaction, users may pay for property if they have a private key. Traditional blockchain asset transactions hold a private key for a user account, which is why they have custody and therefore have counterparty risks.
Once two signatures are received (in the scenario of two-thirds of multiple signatures), the asset may be transferred. In an embodiment, if the predictive engine and seller (exchange) sign up, the asset goes to the exchange. If the prediction machine and the user sign up, the user's funds are transferred back to the user. In the case of partial fulfillment of the order, the predictive machine may sign only a proportion of the amount to be transferred to the exchange's assets and, if necessary, sign the remaining amount back to the user. Once the desired blockchain-based digital asset transfer has occurred, the exchange or prediction machine broadcasts the transaction to each node on the blockchain network and then globally records the same transaction. In this manner, there is no central server as there are all blockchain asset transactions. All block-based reporting is done over a common peer-to-peer network.
In an embodiment, the following rules may be used to determine the required signature. If user a receives currency B (in whole or in part) at the Final Address (Final Address), the predictive machine signs the exchange that received currency a (in whole or in part); if user A does not receive currency B at the final address, user A may cancel the order, otherwise the order may expire. In any case, the propheter multiple signature co-signer signs with user a, causing user a to withdraw his currency a to his designated Refund Address (total if no order is completed, partial if partial order is completed).
As used herein, four addresses are worth noting when an embodiment of the system is operating: payment Address (paymentaddress), final Address, Merchant Address (Merchant Address), and refund Address. Those skilled in the art will recognize that in various embodiments, any number of addresses may be included or used for identifying the payee, payer, and parties responsible for the crypto-currency transaction.
The funded order is a non-custody order that has received currency A from user A. An unfulfilled order is a non-custody order for which currency type a has not been received from user a, while a completed order is a non-custody order for which currency type B has been sent to user a at the final address to complete the transaction.
The payment address refers to the address to which user a must send currency a to create the funded order. The final address is the address to which user a wants currency B to be sent if or when the order is completed. The refund address is the address to which user a wants to have refunds in currency a sent if the order is not complete, i.e. the order expires. In addition, there is a merchant address, which is the address to which the exchange wants currency A to be sent if the order is completed.
In an embodiment, one party cannot defraud or collect funds from the other party. At least two signatures (from each of the two parties) are required to issue or remove funds from the multi-signature account. If there are no two signatures, the funds cannot be removed. Thus, no one party can obtain access without the other party's consent. If the exchange desires to collect the user's property without authorization, it must persuade a rule-based predictive engine or the user to provide their signature, and the exchange cannot force them to do so.
In an embodiment, the order is created by sending the following to the prediction machine: final address (user address to which currency B must be sent when the order is complete); the expected amount (the amount that must be sent to the final address when the order is complete); merchant address (merchant address or exchange address receiving currency a when the order is complete); refund address (user address receiving currency a when order is not complete); and an expiration time (UTC date/time after which the order is ended and currency a is returned to the refund address). In embodiments, the refund increment (i.e., the amount of time the prophetic machine waits after the user requests a refund to ensure the order is not cleared) may also be sent as a variable or may be set in the prophetic machine for a particular period of time.
In an embodiment, the offer for currency B matches the price desired by the user. In this case, the exchange would send the currency B funds to the user's final address. The exchange then requests the propheter to sign in common to transfer currency a funds to the merchant address. The propheter checks the final address and if there is funds in the desired amount, the propheter will sign with the exchange to transfer currency a funds to the merchant address (in whole or in part, based on how much of the order was completed).
In an embodiment, if the user wishes to cancel the order, the user may send a request to the predictive speaker to cancel the order. The propler waits a predetermined time (refund increment) and then performs a check to confirm that the final address does not receive any deposited funds in the desired amount before signing up with the user to transfer currency a to the refund address (specified at creation time).
In an embodiment, in the event that the user wishes to cancel the order, the user may contact the transaction so the order is cancelled. In this embodiment, the user confirms the cancellation with the exchange rather than with the propheter, and the exchanges collectively sign the refund (likely manually). For example, if the prediction machine is offline or otherwise missing, the operation is performed. In this way, users can always retrieve their assets if orders are not completed or if the predictive player disappears.
In an embodiment, in the event that the order expires, since the duration expires without the order being completed, a full refund will automatically occur without requiring a refund to be requested by the exchange or the user. Upon expiration, the transaction will be signed by the predictive player to return currency a to the return address. To make this happen, the refund transaction is provided to the prediction machine at creation time and signed using the user key. This can be done automatically by the prediction machine or even without the prediction machine using a protocol such as "checklocktimevalidity" built into the blockchain (see fig. 7).
In an embodiment, if the exchange is no longer present before the order is completed, the prediction machine may wait for an expiration time that normally occurs or may automatically sign a refund transaction (since it owns a refund transaction that has been jointly signed by user a). In this embodiment, currency A would be sent to the refund address.
In an embodiment, the user will be refunded even if the predictive engine no longer exists. If the limit order is completed, then once the exchange determines that the predictive machine is no longer valid, it can cancel all limit orders and sign the return of currency a to the user separately, since no one other than the predictive machine has signed in with the exchange.
In an embodiment, if the user's key is stolen, the user will not lose funds. The stolen key can only be used to request the refund of currency a to a refund address (since the talker signs the address together only). This eliminates the risk from the user even if the user's key is stolen, and limits the liability of the exchange and the prediction machine.
In an embodiment, if the exchange's key is stolen, the exchange will not lose funds. Since the merchant address is set at the time of creation, this is the same as when the user key was stolen. The party who steals the key can only send currency a to the exchange as this is the only address that the propheter will sign in common. There is no risk to the exchange even if its key is stolen.
In an embodiment, if the exchange system is compromised, the client device, prediction machine, or other computer in the system may request refunds of all user orders to a refund address. Unlike a traditional exchange, in this case in the example system, the user's assets are not at risk, as an uncompromised predictive engine will only send funds to the user's refund address.
In an embodiment, if the prediction engine is compromised, the funds will be safe. If the prediction engine is compromised, it may sign the transaction for a malicious address. This is not possible because the prediction machine requires a common sign-up by the user or exchange in order to transfer ownership of the cryptocurrency; thus requiring two of the three entities to be compromised before funds can be lost. In an embodiment, if the user or exchange deems the predictive machine to be compromised, the user or exchange may refund the user funds to the refund address (since each of the user and exchange already has a partially signed refund transaction).
In an embodiment, the following information is returned from the predictive engine at creation time: deposit address (i.e., multiple signature address where the user sends currency a to activate the order); TX complete (an unsigned transaction for merchant address to be signed by a prompter to complete the transaction); and TX refund _ a (a transaction given to the exchange for a refund address pre-signed by the user key and the predictive key). In an embodiment, at account creation time, TX refund _ b (transaction for refund address signed by user key and exchange key) may also be sent to the propheter.
In an embodiment, the only decision whether to transfer funds to the new owner is the prediction machine (which follows the predetermined rules). This is because the exchange will always sign the transaction to itself because it wants the user's funds, while the user will always sign the transaction back to itself because it wants new assets. Thus, the rights are attributed to the predictive engine to cause the asset transaction to occur, and the predictive engine may only have certain rules built into its code. The predictive machine monitors publicly available blockchains and detects when a user account is in and if it receives its currency. If the predictive machine can verify to the transfer, the predictive machine takes a first action. The predictive machine may take a second action if the predictive machine is unable to verify the transaction. The prediction machine will take action only after it can verify from the update to the public block chain that funds have been deposited. The predictive engine automatically acts on the common information without user or exchange input to programmatically make the transaction fair, safe and honest between the two stakeholders. If sufficient, objective, publicly verifiable conditions are met, currency A will be transferred to the exchange (in proportion to the degree of completion). If the condition is not met, currency A will always be transferred back to the user (in proportion to the extent of incompletion).
Reference will now be made to the exemplary embodiments illustrated in the drawings, and specific language will be used herein to describe the same. It will nevertheless be understood that no limitation of the scope of the invention is thereby intended. Alterations and further modifications of the inventive features illustrated herein, and additional applications of the principles of the invention as illustrated herein, which would occur to one skilled in the relevant art and having possession of this disclosure, are to be considered within the scope of the invention.
The present disclosure will now be described more fully with reference to the accompanying drawings, in which example embodiments of the disclosure are shown. This disclosure may, however, be embodied in many different forms and should not be construed as necessarily limited to the example embodiments disclosed herein. Rather, these example embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the concept of the disclosure to those skilled in the relevant art. In addition, features described with respect to certain example embodiments may be combined within and/or with various other example embodiments. As disclosed herein, different aspects and/or elements of example embodiments may be combined in a similar manner. Moreover, some example embodiments, individually and/or collectively, may be components of a larger system, where other processes may take precedence over and/or otherwise modify their application. Moreover, as disclosed herein, multiple steps may be required before, after, and/or concurrently with example embodiments. Note that any and/or all of the methods and/or processes may be performed at least in part via at least one entity in any manner, at least as disclosed herein.
The terms used herein may imply direct or indirect, full or partial, temporary or permanent, action or non-action. For example, when an element is referred to as being "on," "connected to," or "coupled to" another element, it can be directly on, connected or coupled to the other element, and/or intervening elements may be present, including indirect and/or direct variants. In contrast, when an element is referred to as being "directly connected" or "directly coupled" to another element, there are no intervening elements present.
Although the terms "first," "second," etc. may be used herein to describe various elements, components, regions, layers and/or sections, these elements, components, regions, layers and/or sections should not necessarily be limited by these terms. These terms are only used to distinguish one element, component, region, layer or section from another element, component, region, layer or section. Thus, a first element, component, region, layer and/or section discussed below could be termed a second element, component, region, layer and/or section without departing from the teachings of the present disclosure.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be necessarily limiting of the disclosure. As used herein, the singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. Furthermore, the terms "comprises" and/or "comprising," when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. Furthermore, alternative terms should not necessarily be limited to exclusive, but may be inclusive.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and will not be interpreted in an idealized and/or overly formal sense unless expressly so defined herein.
As used herein, the terms "about" and/or "substantially" refer to a variation of up to and including +/-10% from a nominal value/term. Such variations are always included in any given value/term provided herein, whether or not such variations are specifically mentioned.
If any disclosure is incorporated by reference herein and conflicts in part and/or whole with the present disclosure, then the present disclosure controls with respect to the extent of the conflict and/or broader disclosure and/or broader meaning of the terms. If such disclosures conflict in part and/or in whole with one another, then disclosure at a later date controls the extent of the conflict.
FIG. 1 illustrates components of anexemplary system 100 according to an exemplary embodiment. The exchange service 101 includes one ormore exchange servers 103, and one ormore transaction databases 105. Theexchange server 103 may be any general purpose or special purpose computer. Theexchange server 103 may operate as a single computer, which may be a hardware and/or software server, a workstation, a desktop computer, a laptop computer, a tablet computer, a mobile phone, a mainframe, a supercomputer, a server farm, and so forth. The computer may be operated directly and/or indirectly by and/or on behalf of the exchange. The computer may be touch screen and/or non-touch screen. The computer may comprise and/or be part of another computer system and/or a cloud network. The computer may run any type of operating system, such as iOSTM、WindowsTM、AndroidTM、UnixTM、LinuxTMAnd/or other operating systems, etc. The computer may include and/or be coupled to input devices such as a mouse, keyboard, camera, accelerometer, whether forward or backward, touch screen and/or microphone, and/or output devices such as a display, speakers, and/or printer. The computer communicates with the network 102, for example, directly and/or indirectly. Such communication may be implemented by a software application, a mobile application, a browser, an operating system, and/or any combination thereof. The computer may include circuitry for global positioning determination, such as via GPS, signal triangulation systems, and the like. The computer may be equipped with NFC circuitry. The computer may run a database, such as a relational database, which containsUser and account information.
Thetransaction database 105 may be a separate database or incorporated into one or more computers used to host theexchange server 103. Thetransaction database 105 may be a relational database, a flat file, a segmented database, or any other form or structure. Thedatabase 105 may be maintained by the exchange service 101 or may be maintained by a third party. Theclient device 107 may be a mobile device, a tablet, a computer, a laptop, a portable computing device, a stationary computing device, a data entry terminal, or a dumb terminal. Thetransaction database 105 may be a wired or wireless device and may be a stand-alone device or may be coupled to a network.
Thethird party computer 109 may be a computer or server, which may be a hardware and/or software server, workstation, desktop computer, laptop computer, tablet computer, mobile phone, mainframe, supercomputer, server farm, and the like. The computer may operate directly and/or indirectly through and/or on behalf of the predictive engine. The computer may be touch screen and/or non-touch screen. The computer may comprise and/or be part of another computer system and/or a cloud network. The computer may run any type of operating system, such as iOSTM、WindowsTM、AndroidTM、UnixTM、LinuxTMAnd/or other operating systems, etc. The computer may include and/or be coupled to input devices such as a mouse, keyboard, camera, accelerometer, whether forward or backward, touch screen and/or microphone, and/or output devices such as a display, speakers, and/or printer. The computer communicates with the network 102, for example, directly and/or indirectly. Such communication may be implemented by a software application, a mobile application, a browser, an operating system, and/or any combination thereof. The computer may include circuitry for global positioning determination, such as via GPS, signal triangulation systems, and the like. The computer may run a predictive engine application.
One or more networks 102 may include a plurality of nodes, such as a collection of computers and/or other hardware interconnected by communication channels, allowing resources and/or information to be shared. Such interconnections may be direct and/or indirect. The network 102 may be wired and/or wireless. Network 102 may allow communication over short distances and/or over long distances. The network 102 may operate via at least one network protocol, such as ethernet, Transmission Control Protocol (TCP)/Internet Protocol (IP), and so forth. Network 102 may be of any scale, such as a personal area network, a local area network, a home area network, a storage area network, a campus area network, a hub network, a metropolitan area network, a wide area network, an enterprise private network, a virtual network, a satellite network, a computer cloud network, an internetwork, a cellular network, and so forth. The network 102 may be and/or include an intranet and/or an extranet. The network 102 may be and/or include the internet. Network 102 may include other networks and/or allow communication with other networks (whether sub-networks and/or different networks, whether the same and/or different from network 102). Network 102 may include hardware such as network interface cards, repeaters, hubs, bridges, switches, and/or firewalls, among others. Network 102 may operate directly and/or indirectly by and/or on behalf of one or more entities.
FIG. 2 illustrates an example embodiment of a network environment according to this disclosure. The environment for theexemplary system 20 includes anetwork 204, a user A200, apredictive engine 201, and anexchange 202.
Network 204 includes a plurality of nodes, such as a collection of computers and/or other hardware interconnected by communication channels, that allow resources and/or information to be shared. Such interconnections may be direct and/or indirect. Thenetwork 204 may be wired and/or wireless. Thenetwork 204 may allow communication over short distances and/or over long distances. Thenetwork 204 may operate via at least one network protocol, such as ethernet, Transmission Control Protocol (TCP)/Internet Protocol (IP), and so forth.Network 204 may be of any scale, such as a personal area network, a local area network, a home area network, a storage area network, a campus area network, a hub network, a metropolitan area network, a wide area network, an enterprise private network, a virtual network, a satellite network, a computer cloud network, an internetwork, a cellular network, and so forth. Thenetwork 204 may be and/or include an intranet and/or an extranet. Thenetwork 204 may be and/or include the internet.Network 204 may include other networks and/or allow communication with other networks (whether sub-networks and/or different networks, whether the same and/or different from network 204). Thenetwork 204 may include hardware such as network interface cards, repeaters, hubs, bridges, switches, and/or firewalls, among others.Network 204 may be operated directly and/or indirectly by and/or on behalf of one or more entities, regardless of relationship to user a 200,predictive engine 201, and/orexchange 202.
User a 200 operates a computer, which may be a hardware and/or software server, workstation, desktop computer, laptop computer, tablet computer, mobile phone, mainframe, supercomputer, server farm, etc. The computer may operate directly and/or indirectly through user a 200 and/or on behalf of user a 200. The computer may be touch screen and/or non-touch screen. The computer may comprise and/or be part of another computer system and/or a cloud network. The computer may run any type of operating system, such as iOSTM、WindowsTM、AndroidTM、UnixTM、LinuxTMAnd/or other operating systems, etc. The computer may include and/or be coupled to input devices such as a mouse, keyboard, camera, accelerometer, whether forward or backward, touch screen and/or microphone, and/or output devices such as a display, speakers, and/or printer. The computer communicates with thenetwork 204, for example, directly and/or indirectly. Such communication may be implemented by a software application, a mobile application, a browser, an operating system, and/or any combination thereof. The computer may include circuitry for global positioning determination, such as via a Global Positioning System (GPS), signal triangulation system, and so forth. A computer may be equipped with Near Field Communication (NFC) circuitry.
Thelanguage predicting machine 201 can be a computerIn operation, the computer may be a hardware and/or software server, workstation, desktop computer, laptop computer, tablet computer, mobile phone, mainframe, supercomputer, server farm, and the like. The computer may operate directly and/or indirectly through thepredictive engine 201 and/or on behalf of thepredictive engine 201. The computer may be touch screen and/or non-touch screen. The computer may comprise and/or be part of another computer system and/or a cloud network. The computer may run any type of operating system, such as iOSTM、WindowsTM、AndroidTM、UnixTM、LinuxTMAnd/or other operating systems, etc. The computer may include and/or be coupled to input devices such as a mouse, keyboard, camera, accelerometer, whether forward or backward, touch screen and/or microphone, and/or output devices such as a display, speakers, and/or printer. The computer communicates with thenetwork 204, for example, directly and/or indirectly. Such communication may be implemented by a software application, a mobile application, a browser, an operating system, and/or any combination thereof. The computer may include circuitry for global positioning determination, such as via GPS, signal triangulation systems, and the like. The computer may be equipped with NFC circuitry. The computer may run a database, such as a relational database, that contains user and/or account information. Theexchange 202 operates a computer, which may be a hardware and/or software server, workstation, desktop computer, laptop computer, tablet computer, mobile phone, mainframe, supercomputer, server farm, and the like. The computer may operate directly and/or indirectly through thepredictive engine 201 and/or on behalf of thepredictive engine 201. The computer may be touch screen and/or non-touch screen. The computer may comprise and/or be part of another computer system and/or a cloud network. The computer may run any type of operating system, such as iOSTM、WindowsTM、AndroidTM、UnixTM、LinuxTMAnd/or other operating systems, etc. The computer may include and/or be coupled to a computer such as a mouse, keyboard, camera, accelerometer, whether forward or backward, touch screen, or the likeInput devices such as touch screens and/or microphones, and/or output devices such as displays, speakers, and/or printers. The computer communicates with thenetwork 204, for example, directly and/or indirectly. Such communication may be implemented by a software application, a mobile application, a browser, an operating system, and/or any combination thereof. The computer may include circuitry for global positioning determination, such as via GPS, signal triangulation systems, and the like. The computer may be equipped with NFC circuitry. The computer may run a database, such as a relational database, that contains payment information.
User a 200 communicates withnetwork 204, e.g., directly, indirectly, encrypted, unencrypted, and in other manners. User a 200 selectively communicates with at least one of thepredictive speaker 201 and/or theexchange 202 via thenetwork 204, such as directly, indirectly, encrypted, unencrypted, and the like.
User a 200 may be a consumer and/or legal entity, such as an organization, company, partner enterprise, and/or others. Thetalker 201 communicates with thenetwork 204, for example, directly, indirectly, encrypted, unencrypted, and the like. Thepredictive machine 201 selectively communicates with at least one of the user a 200 and theexchange 202 via thenetwork 204, such as directly, indirectly, encrypted, unencrypted, and the like. For example, thepredictive engine 201 may communicate with an acquirer (acquirer) of theexchange 202 with respect to theexchange 202. For example, thepredictive machine 201 may communicate with the user a 200 by email or any other communication means.
Thepredictive machine 201 may include a financial entity, such as a bank, exchange, security server, and/or other entity, and/or any other organization participating in the trading and management of blockchain assets.
The predictive machine may be a financial entity that accepts and/or processes blockchain asset transactions for theexchange 202, including crediting or debiting (debiting) an account of theexchange 202. Such acceptance and/or processing is for goods and/or services provided to user a 200 viaexchange 202. The prediction machine may also be a server or a series of servers, or an application or a series of applications running autonomously on a computer or server. Theexchange 202 communicates with thenetwork 204, e.g., directly, indirectly, encrypted, unencrypted, and in other manners. Theexchange 202 selectively communicates with at least one of the user a 200 and thepredictive player 201 over thenetwork 204, such as directly, indirectly, encrypted, unencrypted, and the like.Exchange 202 includes individuals, organizations, and/or businesses that directly and/or indirectly accept blockchain asset transactions. Theexchange 202 includes a profit entity, a non-profit entity, a government agency, and/or other entities.Exchange 202 includes an online exchange, a physical exchange, and/or any combination thereof. Note that any number of merchants orexchanges 202 may be used, as described herein. The user a 200 may be anexchange 202, and/or theexchange 202 may be the user a 200.
Fig. 3 illustrates an embodiment according to the present disclosure. User a 200 creates an uncontainedorder transaction request 304 with theexchange 202 by specifying the type of currency a that user a holds and wishes to transact, and optionally an amount. User a specifies the currency type, currency B that user a wishes to obtain, the desired price for currency B, the final address, the refund address, and how long (i.e., duration, in hours or days) the order should be ready. In an embodiment, the desired amount of currency B is automatically established based on the price.
In response, thepredictive engine 201 uses these specified criteria to create anunfulfilled order 305 and requests that user a send currency a to two-thirds of the multi-signed payment address. User a, the prediction machine and the exchange all generate keys based on a public key function and neither party can see the keys of the other parties. The user's key may be explicitly displayed to oneself or securely saved in the oneself's browser window (client side).
Once the unfulfilled order is established, user A sends currency A to the designated payment address. Atstep 306, the system waits for confirmation that user A sent currency A to the designated payment address. This confirmation may be obtained by monitoring blockchain information to determine when funds are transferred. Once payment is confirmed, the order is converted from an unfulfilled order to a filledorder 307. If user A200 does not send payment within a specified period of time, the unfulfilled order may be closed by theprediction machine 201. At this point, currency a is held in two-thirds of the multi-signed accounts with three keys held by user a, the predictive player, and the transaction, respectively.
Instep 308, the system determines whether user A cancelled the order. If the order is cancelled by user a 200, theprediction machine 201 will sign a refund for user a if the expected amount of currency B is not in the final address at the time of cancellation. If the order has not been cancelled, the system proceeds to step 309. Atstep 309, the system checks to see if the order duration has expired. If the order expires due to the expiration of the duration instep 309, thepredictive player 201 sends the currency A of user A back to the refund address instep 310. In this way, each order will be completed, cancelled or expired and the prediction machine will not retain the currency of user a or the currency of the exchange B. The system is secure for user a 200 because theexchange 202 cannot obtain user a's currency a until theexchange 202 has sent currency B to user a 200. In this disclosure, once the exchange sends currency B, the system provides security for the exchange, since user a cannot cancel the order once currency B is sent, and user a's currency a will be refunded if the exchange is cancelled or expired, so user a is not at risk.
In an embodiment, the check of the expected amount by thepredictive player 201 atstep 312 will be completed within a period of time after receiving the signature of user a to prevent a "race" condition. In an embodiment, this check is completed approximately one hour (although any time may be used) after receiving user a's signature from the associated client computer, although the duration may be any time shorter than the expiration time. If the currency B of the expected amount is not at the final address atstep 312, if the order has been cancelled atstep 308 or expired atstep 309, theprediction machine 201 will sign the transaction sending the currency a back to the user a, otherwise theprediction machine 201 will wait for theexchange 202 to send the currency B to the payment address atstep 311.
If theexchange 202 sends the desired amount of currency B to the final address, the predictive machine will sign the payment to the exchange and send currency A to the merchant address and user A at the final address specified by user A to complete theorder 313.
FIG. 4 depicts another embodiment of the described systems and methods, and steps used to generate a public key, and order completion. Atstep 401, data is entered by user A from a browser or other input portal, the data indicating a desire to participate in a blockchain asset transaction. In an embodiment, a user account is created to facilitate data entry. In another embodiment, no account is required and order data is only transmitted between the user, exchange and prediction machine.
User a may enter the amount of the order, the currency to be traded, and the duration for which the order should remain ready. User a also inputs information to generate a public key/. The browser of user a creates the public key/using client-side code that other users do not have access to. This ensures that the public key can only be accessed by user a and not by others. Once the key/is generated, it is saved. Atstep 402, data and key/critical to the transaction are passed to the exchange. Atstep 403, the exchange will use key 1 generated by user a to generate public key 2, and any other data required by the exchange. These keys act as signatures on the multi-signed account.
Once key 2 is generated, the user's public key l and exchange's public key 2 will be sent to the predictive player atstep 404. Atstep 405, the prediction machine will use all the received information to generate public key 3 and combine public key 3 with key l and key 2 to create a deposit address for the multi-signed account. Atstep 406, the prediction machine returns the address to the exchange. The exchange will use this data to create an unfulfilled limit order atstep 407. Atstep 408, the credit address is sent to subscriber A. Atstep 409, user A transfers funds to the deposit address.
Fig. 5 depicts a second step in the systems and methods of the present disclosure. Atstep 501, the exchange checks blockchain data on the network to see if the credit address created instep 405 has been funded. Once the exchange confirms that user a has funded the address atstep 502, the exchange will create and sign a transaction that is refunded to the user. Atstep 503, the transaction returned to the user and the document returned a will be sent to the prediction machine for storage. This is essentially a fallback address from the user. The refund address is the only address where funds can be sent back to the user. This is done for security purposes so that someone cannot later access the user's key and change the address and send money to a different address. Essentially, the exchange will sign the refund transaction and forward it to the prediction engine for storage. In this way, if the prediction machine needs to refund for the user, it has obtained a signature confirmation from the exchange. The prediction machine will also sign the refund transaction atstep 504 and send it back to the transaction for storage atstep 505. The exchange stores the return address and activates the order atstep 506. This ensures that the exchange can refund the user if the predictive player disappears. At this point, the exchange will check to complete the order. As shown in fig. 5, if the prediction machine or exchange disappears and multiple signature accounts cannot be signed for the necessary time, the user's funds can be returned to the user.
Fig. 6 depicts a third step in an embodiment of the systems and methods of the present disclosure. In FIG. 6, a limit order is activated atstep 600. Starting atstep 600, there are three possible scenarios. The order is completed, the order expires, or the order is cancelled. If the order is to be completed, the exchange system will search for and determine when and if the order can actually be completed, i.e. there is an account with the exchange itself or other user that the user is willing to trade with user a.
Atstep 601, the exchange may look for a price (in whole or in part) in the exchange that can complete the user A's order. Atstep 602, the exchange executes the transaction and trades funds. The exchange then sends the requested amount of money (in whole or in part) to the final address as the account for user a,step 603. Once completed, the exchange will request a transaction to deposit funds into its account and send this information to the prediction engine for common signing,step 604. Atstep 605, the prediction machine will automatically confirm whether funds (in whole or in part) have been delivered to user a by verifying the final address on the blockchain. If the transaction is successfully verified, the prediction machine will sign the transaction (for the full amount or its corresponding part) and broadcast the transaction or send this information back to the exchange. At this point, the exchange broadcasts the transaction to itself and has two signatures requested to complete the transaction. Atstep 606, the user's funds will be deposited into the exchange once both signatures are received.
In another scenario, the order expires before completion. This may occur before the limit order is completed instep 601, with the order expiring instep 610. In an embodiment, when the user initially sets up his order and account instep 401, one of the data that the user will enter is the expiration time, at which point if the order is not completed it will be automatically returned to the user (partially if the order is partially completed).
If the expiration time is reached atstep 610, the prediction machine will notice the expiration and sign the refund that the exchange has signed atstep 604 atstep 611 so that funds can be sent back to the user's address atstep 612. In an embodiment, the user may decide to cancel the order at any time before the expiration time is reached or the order has been completed instep 620.
Typically, the prediction machine will be contacted instep 621, but in embodiments, the exchange may also refund funds. Atstep 622, the exchange or prediction machine waits and then performs a check to ensure that the recipient address is not funded, essentially ensuring that the user does not attempt to fraudulently sign the exchange. Once the information is validated, the prediction machine will sign a refund a atstep 623 so that funds can be sent back to the user. If the prediction machine has disappeared for some reason, the user contacts the transaction to refund atstep 624. Atstep 625, the exchange may confirm that the order was not completed by verifying the recipient address. If confirmed, the exchange may sign a return b and return the funds to the user atstep 626. This is possible because the oracle signed the refund in advance. In an embodiment, any cancellation will first attempt to check the propheter first, as it will be automatically processed. If for some reason the prediction machine does not respond, the exchange may also refund the money so that funds are not lost without someone having access to them.
Fig. 7 illustrates an embodiment of providing a refund to a user in the event that both the predictive machine and the exchange disappear. Atstep 701, the exchange detects that the user has funded the paid address by monitoring the blockchain. Once this funding is detected, the exchange will create a refund transaction for the user's refund address specifying op _ checklocktimetric and a buffer time (e.g., seven days) for the expiration date of the order atstep 702. Atstep 703, the prediction engine will sign the transaction and broadcast the transaction atstep 704. The user can see that the refund transaction is ready on the blockchain, but the refund transaction is not confirmed in the blockchain until the specified time is reached during which the order is not completed or cancelled.
This is similar to the bitcoin function, "CheckLockTime" (checking lock time) enables a user to complete and broadcast a transaction, but the transaction does not become "valid" or "confirmed" until a specified time. In the present disclosure, the exchange broadcasts the refund transaction, and then the user can reclaim the asset as long as the transaction is not completed within a specified time, even if the prediction machine and the exchange are offline or disappear. If the order is returned to the user or completed successfully, the op _ checklocktimetric transaction will be invalid because the funds have already been sent. The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
Embodiments implemented in computer software may be implemented in software, firmware, middleware, microcode, hardware description languages, or any combination thereof. A code segment or machine-executable instruction may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, and program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
The actual software code or specialized control hardware used to implement the systems and methods is not limiting of the invention. Thus, the operation and behavior of the systems and methods were described without reference to the specific software code — it being understood that software and control hardware may be designed to implement the systems and methods based on the description herein.
When implemented in software, the functions may be stored as one or more instructions or code on a non-transitory computer-readable storage medium or a processor-readable storage medium. The steps of a method or algorithm disclosed herein may be embodied in a processor-executable software module that may reside on a computer-readable storage medium or a processor-readable storage medium. Non-transitory computer-readable media or processor-readable media include computer storage media and tangible storage media that facilitate transfer of a computer program from one place to another. Non-transitory processor-readable storage media may be any available media that may be accessed by a computer. By way of example, and not limitation, such non-transitory processor-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other tangible storage medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer or processor. Optical and magnetic disks, as used herein, include Compact Disks (CDs), laser disks, optical disks, Digital Versatile Disks (DVDs), floppy disks and blu-ray disks where disks usually reproduce data magnetically, while optical disks reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media. Additionally, the operations of a method or algorithm may reside as one or any combination or set of codes and/or instructions on a non-transitory processor-readable medium and/or computer-readable medium, which may be incorporated into a computer program product.
The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the following claims and the principles and novel features disclosed herein.
While various aspects and embodiments have been disclosed, other aspects and embodiments are contemplated. The various aspects and embodiments disclosed are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims.