CRYPTOGRAPHIC AND FIAT CURRENCY MECHANICS
A system and method for creating a forked version of an original fiat currency in a digital ledger based on stake in the original fiat currency. Stake can be verified using proof of cash systems involving anti-spoofing, anti-counterfeiting, and remote verification and transaction functionality. Stake can further or otherwise be verified using proof of balance systems involving verification of one or more balances using a service of a financial institution or data provider. These systems, together or separately, can be utilized to implement a cryptographic currency and application platform enabling financial transaction and general computing capabilities, in accordance with various embodiments of the invention.
This application is a continuation of copending U.S. patent application Ser. No. 16/261,478, Attorney Docket krnc.00001.us.n.1, entitled “Cryptographic and Fiat Currency Mechanics”, filed Jan. 29, 2019, the entire disclosure of which is incorporated by reference herein, in its entirety, for all purposes.
U.S. patent application Ser. No. 16/261,478 claims the benefit of U.S. Provisional Patent Application Ser. No. 62/623,226, Attorney Docket krnc.00001.us.p.1, entitled “Banknote Digitization”, filed on Jan. 29, 2018; U.S. Provisional Patent Application Ser. No. 62/689,587, Attorney Docket krnc.00002.us.p.1, entitled “Proof-of-Cash Network”, filed on Jun. 25, 2018; and U.S. Provisional Patent Application Ser. No. 62/755,287, Attorney Docket krnc.00003.us.p.2, entitled “Proof-of-Balance Network”, filed on Nov. 2, 2018. U.S. Provisional Patent Application Ser. No. 62/623,226, U.S. Provisional Patent Application Ser. No. 62/689,587, and U.S. Provisional Patent Application Ser. No. 62/755,287 are incorporated by reference herein, in their entirety, and for all purposes.
BACKGROUNDIt is possible to “fork” a circulating cryptographic currency by providing a new cryptographic currency to its owners in proportion to their holdings of the original currency at the time of the fork. This allows the utility of the information contained within a currency's distribution (i.e., how much of it is held by whom) to be disaggregated from the original representation of the information. A competing or alternate embodiment of the same information can be created and offered to holders of the original.
Currency forks have become a common occurrence since the introduction of blockchain-based cryptocurrencies. The information about how cryptocurrencies are distributed is already encoded digitally on a blockchain, so it can be copied and incorporated into a new cryptocurrency through a “hard fork.” If the new version offers some advantage, it can compete against its parent. The greater the market capitalization of the parent currency, the more value can potentially be captured through a fork. The creators of forks therefore target the most popular currencies.
Existing technology only allows a currency to be forked when its distribution is already encoded in a blockchain. The creators of the fork capture a digital “snapshot” of the original blockchain at a designated block number, on which ownership of the cryptocurrency is specified by cryptographic key pairs, and they then create a new ledger where those key pairs unlock identical amounts of a new cryptocurrency.
SUMMARYIn general, in one aspect, embodiments relate to a system for creating a forked version of an original fiat currency in a digital ledger based on stake in the original fiat currency, such that stakes are distributed in proportion to the existing allocation of the fiat currency, rather than being purely bootstrapped in the manner of existing cryptocurrencies. Stake can be verified using proof of cash systems involving anti-spoofing, anti-counterfeiting, and remote verification and transaction functionality, including automated inspection of banknotes by hardware-verifier machines and manual inspection of banknotes by designated parties. Stake can further or otherwise be verified using proof of balance systems involving verification of one or more balances using a service of a financial institution or data provider. These systems, together or separately, can be utilized to implement a cryptographic currency and application platform enabling financial transaction and general computing capabilities, in accordance with various embodiments of the invention. Each system includes one or more defined validation procedures for confirming the authenticity of data provided to the platform by remote computing devices, enabling the state of one or more digital ledgers to be altered based on users' stakes in fiat currency.
Implementations can include one or more of the following items, alone or in combination with other items listed below: methods and systems for anti-spoofing and anti-counterfeiting detection of banknotes. The systems can be utilized remotely and with general purpose or specialized mobile computing devices, to verify possession and authenticity of banknotes for the purpose of generating cryptographic tokens corresponding to the banknote(s). Proof of balance systems disclosed herein enable verification of one or more fiat (or digital) currency account balances, achieved using services of a financial institution or data provider. Both proof of cash and proof of balance systems make use of defined validation procedures, including criteria for which devices may be relied upon when attributing stake to users, and for what additional guarantees of authenticity must be provided when data is transmitted by untrusted devices, such as the inclusion in a message from an untrusted device of a credential conveyed by a trusted party, or the need to perform authentication events that enable reliable sensor data about user's stakes to be obtained even on untrusted hardware. A multi-phase and multi-feature implementation is disclosed involving a staking or “soft fork” period during which provisional transactions are conducted. Upon conclusion of the soft fork period, a “hard fork” can take place and may involve finalization or permanent recording of provisional transactions, commencement of provisional contracts, a completion or partial completion of token-issuance, commencement of non-provisional transactions and transaction types, and/or a variety of other triggering events.
In general, in one aspect, embodiments relate to a system for a system for creating a forked version of an original fiat currency in a digital ledger based on stake in the original fiat currency. The system can include: a proof of balance engine configured to (i) designate a staking period representing a predefined duration of time, (ii) calculate, based on financial account data of a user, a staking value representing a stake of ownership in the cryptographic ledger, and (iii) record, after conclusion of the staking period, a first set of digital tokens on the cryptographic ledger representing the stake of ownership for the user, a client interface module configured to receive, from a computing device of the user, a request to verify financial account data of the user at a financial institution, and a balance interface module configured to programmatically request the financial account data from a service associated with the financial institution, wherein the financial account data is associated with the staking period.
In general, in one aspect, embodiments of the invention relate to a method for creating a forked version of an original fiat currency in a digital ledger based on stake in the original fiat currency. The method may include (i) designating a staking period representing a predefined duration of time, (ii) receiving, from a computing device of a user, a request to verify financial account data of the user at a financial institution, (iii) programmatically requesting the financial account data from a service associated with the financial institution, wherein the financial account data is associated with the staking period, (iv) calculating, based on the financial account data, a staking value representing a stake of ownership in the cryptographic ledger, and (v) recording, after conclusion of the staking period, a first set of digital tokens on the cryptographic ledger representing the stake of ownership for the user.
In general, in one aspect, embodiments of the invention relate to a computer-readable storage medium including instructions for creating a forked version of an original fiat currency in a digital ledger based on stake in the original fiat currency. The instructions can be configured to execute on at least one computer processor to: (i) designate a staking period representing a predefined duration of time, (ii) receive, from a computing device of a user, a request to verify financial account data of the user at a financial institution, (iii) programmatically request the financial account data from a service associated with the financial institution, wherein the financial account data is associated with the staking period, (iv) calculate, based on the financial account data, a staking value representing a stake of ownership in the cryptographic ledger, (v) and record, after conclusion of the staking period, a first set of digital tokens on the cryptographic ledger representing the stake of ownership for the user.
Other embodiments will be apparent from the following description and the appended claims.
Embodiments are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements.
A portion of the disclosure of this patent document may contain material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it may appear in the Patent and Trademark Office patent file or records, but otherwise reserves all copyrights whatsoever.
Specific embodiments will now be described in detail with reference to the accompanying figures. Like elements in the various figures are denoted by like reference numerals for consistency. In the following detailed description of embodiments, numerous specific details are set forth in order to provide a more thorough understanding of the invention. While described in conjunction with these embodiments, it will be understood that they are not intended to limit the disclosure to these embodiments. On the contrary, the disclosure is intended to cover alternatives, modifications and equivalents, which may be included within the spirit and scope of the disclosure as defined by the appended claims. It will be apparent to one of ordinary skill in the art that the invention can be practiced without these specific details. In other instances, well-known features have not been described in detail to avoid unnecessarily complicating the description.
In general, embodiments of the present disclosure provide methods, systems, and interfaces relating to fiat banknotes, fiat digital accounts, private cryptographic currency platforms, and decentralized cryptographic currency platforms. More specifically, embodiments of the invention enable bootstrapping a cryptographic currency by allowing users to claim and verify possession and/or ownership of one or more fiat currencies in order to obtain stake in a cryptographic currency in accordance with a predefined release or distribution schedule. Verification of fiat funds can include systems and methods of anti-spoofing, anti-counterfeiting, and remote verification.
In one or more embodiments, the cryptographic ledger platform 100 is a platform for facilitating and recording transactions in one or more verifiable ledgers, and for issuance and exchange of cryptographic tokens between one or more entities. For example, the cryptographic ledger platform 100 may store and exchange tokens and/or contracts involving millions of accounts of individuals, businesses, and/or other entities. Accounts can include privately stored and administered financial accounts, digital or cryptographic accounts secured by one or more private keys, or any other mechanism for recording transactions or balances. One or more users of each account may use the cryptographic ledger platform 100 to send cryptographic tokens to other accounts inside and/or outside of the cryptographic ledger platform 100. The cryptographic ledger platform 100 may be configured to exchange tokens or to record and execute cryptographic contracts in “real-time”, i.e., to exchange value with other users with a minimal delay and to conduct transactions with one or more other users during concurrent sessions. The cryptographic ledger platform 100 can further enable multi-signature transactions, loans, liens, promissory notes, and a variety of other financial and/or computational contracts between users and accounts.
In one or more embodiments of the invention, the cryptographic ledger platform 100 enables “forking” a parent currency to bootstrap a cryptographic currency. The underlying technology employed to perform a “soft fork” of a parent currency using proof of balance and/or proof of balance functionality disclosed herein is not actually related to software modifications such, e.g., as the addition of SegWit to Bitcoin. Rather, in one embodiment, during a soft fork all authentic banknotes within the parent (e.g., fiat) currency are virtually embedded with cryptographic tokens corresponding to their face value (e.g., all $20 USD Federal Reserve Notes would contain a minimum of 20 cryptographic tokens), and the network does not permit users to remove those cryptographic tokens during the soft fork. Multiple staking or “soft fork” periods can be utilized, in accordance with various embodiments of the invention. The phrase “final staking period” can refer to a staking period immediately preceding a hard fork event.
In one or more embodiments of the invention, the cryptographic ledger platform 100 comprises a proof of cash module 120 configured to perform proof of cash functionality and/or a proof of balance module 110 configured to perform proof of balance functionality. One or both of said modules may be optionally implemented. Cryptographic tokens may be issued by the proof of balance module and/or the proof of cash module by recording ownership in the native ledger repositories 130 where cryptographic token data is stored. In an embodiment that can be utilized to reduce double counting, proof of cash verification is permitted during the staking (“soft fork”) period, but after the staking period only retrospective proof of balance verification is permitted.
For purposes of this disclosure, the term “blockchain” can refer to any repository for representing transaction data associated with a cryptographic currency. For example, various uses can designate a cryptographically decentralized ledger, without any intention to exclude implementations using alternate data structures such as Directed Acyclic Graphs. In examples where an external blockchain is shown for illustrative purposes, it should be understood that this represents the many current and future external blockchains that may interact with the cryptographic ledger platform 100. Some or all portions of the cryptographic ledger platform 100 may themselves be implemented on blockchains or other decentralized computing platforms. While the cryptographic tokens stored in the cryptographic ledger platform 100 depicted in
In some embodiments, cryptographic tokens are issued directly from the proof of balance module 110 and/or proof of cash module 120 to an external blockchain or other distributed ledger (e.g., external blockchain 160). In one embodiment, a custodial layer-2 service 105 is employed. In this embodiment, the layer-2 service may be used to issue and manage cryptographic tokens both prior to and after the creation of one or more layer 1 blockchains. The layer-2 service 105 can be an internal module 105 configured to issue tokens in the native ledger repositories 130 or can be an external module 185 utilized by the cryptographic ledger platform 100 to issue and manage tokens in an external layer-2 repository (175, 180).
The pre-fork issuance module 601 allows cryptographic tokens to be issued for fiat funds staked during staking windows prior to the final staking period used to fork the parent fiat currency. In one embodiment, the pre-fork issuance module 601 operates only prospectively, so that funds must be staked through the system in advance in order for users to earn pre-fork crypto-interest on them. In one or more embodiments, the post-fork issuance module 602 allows cryptographic tokens to be issued for fiat funds staked during the final staking period. The post-fork issuance module 602 can be configured to operate retrospectively, so that users who did not participate during the staking period may retroactively acquire cryptographic tokens by performing proof of balance verification of the funds in their financial accounts during the staking period.
In one or more embodiments, the cryptographic ledger platform 100 permits cryptographic tokens to be locked on the ledger or released to its owner's control. In some embodiments, some or all cryptographic tokens may initially be locked upon initial issuance, and portions of it may later be released by the cryptographic ledger platform 100. Locking can refer to preventing any movement of funds, preventing pre-specified transaction types, or preventing withdrawal to an external blockchain 160, in accordance with various embodiments of the invention. The schedule for releasing cryptographic tokens may be predetermined or dynamic.
The cryptographic ledger platform 100 can be configured to perform fixed or pro-rata releases of cryptographic tokens equally for all users, or to apply different release schedules or policies to certain classes of users or individual users. In some embodiments, the release schedule may be controlled by a price stability module (not illustrated), which receives external economic data through the off-chain 605 and blockchain interface modules 606 and accelerates or decelerates the unlocking schedule to maintain a price target, range, or schedule. For example, exchange-rate data from centralized or decentralized exchanges, CPI or other economic indicator data from centralized oracles or decentralized prediction markets can be used. In some embodiments, the cryptographic ledger platform 100 can be configured to issue different types of cryptographic tokens and to peg each type of token to the inflation adjusted value held by its parent currency at the time of the hard fork.
In one or more embodiments of the invention, the cryptographic ledger platform 100 includes functionality to re-lock released cryptographic tokens after their release. For example, in the event of attempted theft or a dispute over ownership, the cryptographic ledger platform 100 may be configured to enable cryptographic tokens to be locked until the controversy is resolved through a dispute-resolution mechanism such as arbitration, mediation, or litigation. In some embodiments containing a price stability module, the supply of available cryptographic tokens can be contracted by the cryptographic ledger platform 100 by permitting owners of released cryptographic tokens to opt-in to locking portions of their tokens in order to earn interest on the locked token's principal. Depending on the embodiment, such locked tokens may be released after a fixed period of time (e.g. 5 years), released at an unknown time but in a fixed order (e.g. first-locked, first-released), released in a dynamic time and dynamic order (e.g., first-locked, first-released within 5-year window, after which demoted to overflow que such that later locked tokens may “cut in line”) or potentially never released (e.g., first-locked, first-released within 5-year window, after which permanently locked).
In one or more embodiments of the invention, the off-chain interface module 605 enables the cryptographic ledger platform 100 to participate in transactions and/or data transfers with non-blockchain platforms, including but not limited to receiving or transferring fiat and crypto assets with financial institutions or receiving price information from centralized exchanges. In one or more embodiments, the blockchain interface module 606 enables the cryptographic ledger platform 100 to participate in transactions and/or data transfers with decentralized ledgers and computing platforms, including but not limited to smart contracts, atomic swaps, side-chain transfers, and token issuance and redemption. The private keys managed by the cryptographic ledger platform 100 are presented as a distinct module (private key repository 607), but varied mechanisms of private-key control and storage may be employed consistent with the knowledge of those ordinarily skilled in the art. In one embodiment, the private key repository 607 is a component of one of the native ledger repositories 130. Private keys can allow the cryptographic ledger platform 100 to, among other things, sign messages and pre-commitments, control cryptographic tokens stored on external blockchains, and control cryptographic tokens stored on native blockchains wherein tokens are the staked resource used for consensus.
In
In some embodiments, multiple currencies may be forked together onto a single blockchain, with all of their owners receiving the native asset of the blockchain. This can be accomplished by acquiring exchange-rate information (e.g., via the offchain interface module) from one or more exchanges or other financial entities, and then crediting holders of different currencies with stakes proportionate to the contemporaneous market value of their currency holdings. In one preferred embodiment, when a staking period is used, the exchange rates between the currencies are determined based on the values at the points in time when each of the past balances are measured. A holder of one type of fiat currency, such as the Euro, may thereby “fork” a Euro balance yet receive units of forked Dollars. On the cryptographic ledger, these may be nominally recorded as forked Euros, yet actually represent a fixed quantity of forked Dollars, or they may simply be recorded as forked Dollars. In either embodiment, the substantive result is the same. The advantage of forking multiple currencies together in this manner is that the quantity of fiat currency forked onto a single blockchain may thereby be significantly increased, which can greatly enhance the security of the ledger, because an adversary would need to acquire a much larger quantity of fiat currency in order to achieve the super-threshold stake required for what is popularly referred to as a 51% attack.
In the embodiment shown in
In one or more embodiments of the invention, a commitment on an external blockchain is used to designate a hierarchical deterministic key from which child-keys will be generated for the cryptographic ledger platform 100 to commit to the authenticity of data stored on a layer-2 ledger. A user and the cryptographic ledger platform 100 may create a private hash-chain documenting user authorization for, and platform execution of, changes to the state of an account (e.g., a reduction in balance due to transferring funds to another user). This scheme does not prevent funds from being stolen by the cryptographic ledger platform 100, but it guarantees that the user will have unforgeable proof of the fraud. In some embodiments, the reliability of the centralized ledger may be further enhanced by the cryptographic ledger platform 100 committing funds to a smart contract on a decentralized ledger from which funds will be paid out to any user who presents the aforementioned proof of fraud.
In one or more embodiments, the proof of cash module 120 is a module for enabling users to claim possession of physical banknotes in exchange for cryptographic tokens. The proof of cash module 120 can enable any number of users to claim possession of physical banknotes, issue cryptographic tokens corresponding to the banknotes, and perform various transactions using those cryptographic tokens, in accordance with various embodiments of the invention.
Proof of cash technology makes it possible for people to acquire virtual money by using an application on their smartphones to scan their cash and receive corresponding cryptographic tokens. It will allow an unprecedented portion of the public to be onboarded to a shared platform for transacting virtual money, using mobile and other devices.
In one or more embodiments of the invention, the proof of cash module 120, in conjunction with a user device, includes functionality to enable users to seamlessly convert their cryptographic money into whatever form of cash was accepted by local merchants. A user can simply convert a portion of their crypto account balance into cash by transacting with other users in the local area, and then spend the cash wherever they wanted. The vast majority of global consumer transactions are still performed in cash. This functionality makes the cryptographic money immediately usable, as merchants do not need to separately “opt in” to accepting it as a form of payment.
In one or more embodiments of the invention, the proof of cash module 120 includes functionality to enable cash to be conveniently deposited and exchanged for other currencies, not merely withdrawn, such that users could rely on the cryptographic ledger platform 100 for a full range of banking and money-transfer services. Instead of using a fiat checking account at a bank, users can hold their money in cryptocurrency, then convert it back and forth into cash as needed.
In one or more embodiments of the invention, the proof of cash module 120 receives a request from a user device to transfer cryptographic tokens from a first user to a second user in exchange for fiat banknotes. The first user can initiate the transaction by opening a mobile application and entering details of the proposed transaction. The first user can enter an identifier of account address of the second user, and initiate the transaction. Upon receiving the transaction request, the proof of cash module 120 is configured to send a verification request to a user device of the second user. In one embodiment, the verification can be performed via local device to device communication (e.g., via Bluetooth or NFC protocol), whereby the doubly signed transaction request is sent to the proof of cash module 120. Transactions can include any amount of cryptographic tokens transferred from one account to another, and/or any amount of physical banknotes exchanged. In this way, users can bypass traditional currency-exchange booths simply by depositing one type of cash (e.g. USD), storing their money as cryptocurrency, and then traveling to a different country and withdrawing a different type of cash (e.g. EUR), either from a cryptographic ledger platform or from other users in the local area.
In one or more embodiments of the invention, the proof of cash module 120 includes functionality to enable payments to be made to third parties (non-users of the platform). In this way, the cryptographic ledger platform 100 could provide the money-transfer and remittance services currently supplied by intermediaries such as Western Union and Moneygram. A user of the mobile device in the aforementioned figures can initiate a remittance transfer with another user by entering an amount, proposed exchange rate (optionally set by the platform 100), and identification information of a recipient in the receiving location. The cryptographic ledger platform 100 receives the request for the remittance transfer and matches the request to a provider (e.g., another user who had indicated their willingness to provide exchange services). Once the match is made, the cryptographic ledger platform 100 deposits cryptographic currency tokens from the account of the sending user into an escrow account within one of the native ledger repositories 130, and notifies the provider of the pending transaction. Upon receiving the notification of the pending transaction (e.g., via their mobile device), the provider contacts the recipient of the remittance and schedules delivery or pickup of the funds. This can include a digital transfer in the local currency or transfer of fiat banknotes to the recipient. Once the transfer is made, the provider can send proof of completion of the transaction (e.g., photographic evidence, signature confirmation, digital signature) to the cryptographic ledger platform 100 in order to release the cryptographic tokens from escrow. The tokens are then transferred to the provider and the remittance is completed. As shown in this example, the cryptographic ledger platform enables a sender in one country to deposit cash, which is then transferred on the network as cryptographic money, and then provided as local cash to a recipient in a different country or geographic location. Providers in the example shown, and in other embodiments of the invention, can be individual users and/or businesses with physical locations. Existing merchants can easily act as providers in the exemplary system, practically no required investment or associated startup costs.
In one or more embodiments of the invention, the proof of cash module 120 enables its own users to act as mobile providers of currency-conversion services. That functionality could be delivered using the smartphones and other mobile devices that initially joined the network to participate in the proof of cash protocol. The number of users on the network available to provide services could exceed the world's combined supply of conventional bank branches, ATMs, currency-conversion booths, and money-transfer locations.
There are significant unsolved problems that have prevented banking from being offered as an on-demand mobile service in the gig economy. Cash cannot simply be delivered using the technologies that companies like Lyft and Uber rely on to provide e.g. ride-sharing services or food delivery, due to significant security challenges.
First, cash cannot be tendered upon delivery in the same manner as e.g. a pizza, because the counterparty can simply pocket the fungible banknotes. This is a “double-credit attack”—the counterparty retains the funds previously credited to his account, while also acquiring the corresponding cash. Similarly, in a “fake tender attack” a provider may falsely claim to have dispensed cash, and thereby lay claim to funds he never earned. Like a double spending attack, these techniques thwart the consistency of double entry bookkeeping, because they allow nodes to receive credit without incurring the corresponding debits.
Simply tracking the location of the user and service provider does nothing to prevent these exploits, since recording the fact that the parties met in person does not provide any proof of whether cash actually changed hands. Nor does requiring that the user and provider both confirm transaction completion by, e.g., exchanging pre-issued credentials, do anything to solve the problem. Once the cash has been pocketed, or once a provider has falsely claimed to have dispensed cash, each party will claim to have been wronged by the other, and the system has no way to resolve the dispute. The attacking party may even summon the police and point the finger at the victim. Thus, mobile in-person cash transactions can only be performed between trusted parties.
Proof of cash functionality enables untrusted parties to perform in-person exchanges with one another, because it allows the party possessing cash to document ownership of specific serialized banknotes before tendering them to the counterparty. If the counterparty attempts to pocket the money, he will be unable to convincingly pretend that the banknotes were not provided to him by the tendering party, because the tendering party will have access to a verifiable record of the fact that the banknotes are his property and that they were only provided to the counterparty as part of a proposed exchange.
Returning to the forking functionality of the invention, in one embodiment, continuity with the “forked” parent currency is maintained, because all authentic notes are guaranteed to contain at least the quantity of cryptographic tokens corresponding to their face value. However, some notes may be embedded with additional cryptographic tokens, in accordance with various embodiments of the invention. In some embodiments, the cryptographic ledger platform 100 includes functionality to distribute this additional token value in notes through a predictable pattern (akin to a scavenger hunt for specific known bills), while in other embodiments the distribution may be performed randomly or pseudo-randomly by the cryptographic ledger platform 100. The latter option permits holders of banknotes to participate in a sweepstakes, i.e., a game of chance with financial rewards but no consideration.
In one or more embodiments of the invention, the proof of cash module 120 includes functionality to perform a sweepstakes and to distribute additional cryptographic tokens to a subset of addresses during the soft fork period. For example, the proof of cash module 120 may distribute additional cryptographic prize tokens to addresses corresponding to banknotes that are claimed by users during the staking period. In some embodiments, the value of all notes within the meta-serialization range may be assigned at the outset of the sweepstakes. This permits the value data to be stored locally on user devices when desired. However, it also requires knowledge of the meta-serialization range of extant currency. Even where records are available of the notes introduced and removed from circulation, some notes will have been lost or destroyed by their owners, so some portion of the additional cryptographic tokens offered as sweepstakes prizes will be assigned to meta-serialized notes that will never be redeemed. In other embodiments, when that is undesirable, the proof of cash module or other network hub may assign sweepstakes prizes dynamically in response to queries.
In one simple implementation, the proof of cash module 120 utilizes a source of initial entropy to specify prize values at unpredictable positions in a sequence, and those values are assigned to meta-serialized bills based on the sequence of queries submitted by users (e.g., a pseudo-random number generator (PRNG) is used to determine in advance that a 100 token prize will be awarded to the 5th discrete meta-serialized bill whose value is queried). In more complex implementations, multiple prize assignment sequences may be generated by the proof of cash module 120 for different types of notes and each received query will be mapped by the proof of cash module 120 to the corresponding sequence for its note type. (e.g., a separate prize sequence may be created for each denomination, such that the 3rd $1 note will receive 5 tokens and the 17th $1 note 25 tokens, while the 7th $100 note will receive 1 million tokens, and the 9th $100 note will receive 5 tokens).
In other implementations, rather than predetermining the sequence of prize values that will be assigned, the proof of cash module 120 may assign prize token value mapped to a given position in the sequence dynamically at query time. This may be accomplished either by introducing entropy from conventional sources, such as PRNGs, or by incorporating query attributes as entropy sources, including query timing and query content. For example, denomination, serial number, user identity, user location, user device type, or device attributes such as battery level, signal strength, etc. can be used. In some implementations, additional user-created entropy may be included with queries, e.g., by prompting users to choose “lucky” numbers, shake their devices to produce unpredictable accelerometer/gyroscope data, rub the screen, and etc.
In one or more embodiments of the invention, the proof of cash module 120 includes functionality to execute a multi-stage sweepstakes in accordance with a specified schedule. Thus, rather than assigning a single sweepstakes value to each bill, a bill's ultimate sweepstakes value is a function of multiple values assigned and/or revealed at different points in the sweepstakes contest.
The exact implementations of soft and hard forks may vary. In one or more embodiments of the invention, the proof of cash module 120 can be configured to implement a hybrid period during which some but not all cryptographic tokens can be removed from bills. In one embodiment, this hybrid period permits the additional cryptographic tokens deposited via a sweepstakes to be removed from bills, while the base-amount of cryptographic tokens guaranteed by the bills' face value remains trapped inside each note. In one or more embodiments, the proof of cash module 120 permits certain classes of users to upload cryptographic tokens first, restricts claiming to certain types or classes of bills, and/or limits the quantity and/or type of cryptographic tokens that some or all users or devices may claim during a given period. For example, the proof of cash module 120 may initially only allow claiming of $1 USD bills or may temporarily cap claiming to 10,000 tokens per day per user.
In one or more embodiments, the financial institution service 150 stores financial data of any number of users. The financial institution service 150 can be owned and operated by a financial institution (e.g., a bank) or can be a third-party data aggregator/provider configured to obtain the financial data from one or more financial institutions. This disclosure refers to “banks” for illustrative concision, but it should be understood that in some embodiments, Proof of balance technology may be applied to fiat balances maintained by users on ledgers at non-bank institutions.
Users' fiat balances are stored on the ledgers of their banks or other bank-like financial entities, in various accounts. This disclosure refers to “banks” or “financial institutions” for illustrative concision, but it should be understood that in some embodiments of the invention can be applied to fiat balances maintained by users on ledgers at non-bank institutions and need not be restricted to funds stored in a particular type of account. In some embodiments, it may be applied to balances of checking accounts, savings accounts, money-market accounts, escrow accounts, brokerage accounts, and/or any other accounts where fiat balances are maintained. The term “fiat” is also used for illustrative purposes to refer to the balances being forked, but in some embodiments the inventive concepts may be employed to fork balances on ledgers where entries represent other embodiments of value, including but not limited to other types of currencies, virtual or physical commodities, securities, personal property, real property, or other assets and/or units of account.
In one embodiment, the financial institution service 150 includes an externally accessible application programming interface (API) for providing the financial data to one or more authorized third-party clients (e.g., via a REST API). Any other mechanism for programmatically sending/receiving data can be used. The balances of the financial accounts typically correspond to fiat currency holdings such as the US Dollar or the Euro, but can optionally include any form of digitally recorded and transferable asset.
Some financial institution services may support access delegation. (via e.g. OAuth, OpenID, JSON Web Tokens, Macaroons, etc.) Other financial institution services may lack this capability, requiring user credentials to be transmitted in order for balance data to be accessed. The systems and methods of the present disclosure may be employed with either type of service. For financial institution services that support access delegation, the access-granting token(s) may be stored and used to fetch balance data from bank ledger servers. For bank ledgers that do support access delegation, the user may be prompted to input the required credentials (e.g., username and password) manually each time they are needed, or the credentials themselves may be stored securely for re-use. In many embodiments, individual users may have some accounts accessible by financial institution services that support access delegation, and other accounts accessible by financial institution services that require user credentials for data access. The term financial institutions credentials 503 of
Storage of credentials and/or tokens may occur locally on user devices, externally on outside devices, or a combination of both. The embodiment shown in
In one or more embodiments of the invention, the user device 155 in
In some embodiments, the user device 155 can be implemented with private keys stored locally, allowing it to interact directly with blockchains secure off-chain multiparty computation protocols (e.g., mutually signing changes to its balance with the cryptographic ledger platform), but in some embodiments private keys may be stored elsewhere or omitted entirely from the user's possession, with the cryptographic ledger platform 100 assuming full custodial control. In one embodiment, the credentials, access tokens, and private keys are stored within a secure digital vault on the user device 155. In some embodiments, the contents of vault may be password-protected and/or encrypted, so that they cannot be accessed without an additional security factor controlled by the user. In some embodiments, for even greater security and remote-attestation ability, a secure enclave (e.g. Intel SGX) may be employed.
The balance interface module 302 is an interface for communicating and transmitting data between financial institution services 150 and with the cryptographic ledger platform 100. Like other components optionally implemented on the user device 155, the access aggregation server 125 can be implemented as a component of a mobile application associated with the cryptographic ledger platform 100. The access aggregation engine 505 is a component for executing computational logic associated with accessing remote and local modules and for operating a service using the underlying modules of the access aggregation server 125.
The other option for credential and token storage depicted in
In one or more embodiments, user financial data from a remote financial institution service 150 may be stored in the user remote vault 502 and shared with the cryptographic ledger platform 100. For example, this may be represented as separate secure remote vaults for User A and User B. In this example, equivalent credentials and tokens are present in User B's digital vault as User A's. The inclusion of two users is intended to illustrate that credentials and/or tokens from arbitrarily many users may be aggregated on a single server. In some embodiments, credentials and tokens from a single user may be stored in separate digital vaults, and credentials and tokens from multiple users may be stored in a single vault.
In one or more embodiments of the invention, the balance interface module 501 of the access aggregation server 125 enables communication between other components of the cryptographic ledger platform 100 and the access aggregation server 125. For example, the balance interface module 501 may generate authentication of requests to outside entities such as the financial institution service 150 originating from other components of the cryptographic ledger platform 100 which require access to protected user data. In one or more embodiments of the invention, the access aggregation engine 505 includes all controller logic of the access aggregation server 125 outside of the balance interface module 501.
Only a single access aggregation server 125 is shown in
The financial account data need not be restricted to funds stored in a particular type of account. In some embodiments, it may be applied to balances of checking accounts, savings accounts, money-market accounts, escrow accounts, brokerage accounts, and/or any other accounts where fiat balances are maintained. The term “fiat” is also used for illustrative purposes to refer to the balances being forked, but in some embodiments the inventive concepts may be employed to fork balances on ledgers where entries represent other embodiments of value, including but not limited to other types of currencies, virtual or physical commodities, securities, personal property, real property, or other assets and/or units of account.
In the Figures of the present application, for simplicity, arbitrary numbers of ledgers, accounts, users, clients, and other modules may be shown. For example, only a single user device 155 is shown in
In one or more embodiments of the invention, the cryptographic ledger platform 100 is configured to define or designate a “soft fork” period of time. For purposes of this disclosure, the soft fork period is a period of time during which pre-specified functionality of the cryptographic ledger platform 100 is enabled. The soft fork period can interchangeably be referred to as a staking period. The pre-specified functionality can include, but is not limited to, provisional claiming of cryptographic currency by claiming possession of fiat banknotes and/or proof of balance verification with a financial institution service 150, provisional transactions involving various mechanisms for exchange of tokens tied to banknotes or fiat account balances, money multiplier and other staking mechanisms (further described in the forthcoming sections of the present disclosure), and more.
In one or more embodiments of the invention, the cryptographic ledger platform 100 is configured to detect conclusion of the soft fork period. Upon conclusion of the soft fork, a hard fork is said to have occurred signifying commencement of the hard fork period, also known as the post-staking period. For purposes of this disclosure, the hard fork period is a period of time during which pre-specified functionality of the cryptographic ledger platform 100 is enabled. The soft fork period and the hard fork period each have different, distinct, and optionally overlapping functional properties, in accordance with various embodiments. In a typical embodiment, the hard fork period is ongoing with no predefined time or date of conclusion. In this way, the hard fork can refer to a transition from one state of the cryptographic ledger platform to a different state which runs in perpetuity.
In one or more embodiments of the invention, the cryptographic ledger platform 100 is configured to receive a request to verify financial account data of a user at a financial institution. The request can be received from an application executing on a user device (155) and configured to transmit the request via the API 145. For example, the user may decide to perform “proof of balance” verification by enabling remote verification of a fiat savings account balance using an app installed on the user device 155. In this example, the user enters mobile banking credentials into the mobile application and completes a user interface sequence authorizing the cryptographic ledger platform 100 to obtain financial account data for the checking account. The sequence is configured to communicate with a financial institution service 150 which programmatically provides access to the financial account data of the user. Upon completing the sequence, the financial institution service 150 obtains a token enabling temporary access to the financial account data.
In one or more embodiments, the proof of balance module 110 is a module for enabling users to claim possession of fiat currency held by one or more financial institutions. The financial institution service 150 can provide programmatic access to external clients for obtaining financial data of said fiat currency.
In one or more embodiments, the proof of balance module 110 obtains authorization (e.g., via a token or API key) to obtain the financial account data from the financial institution service 150 either on demand and/or at one or more predefined times. The proof of balance module 110 can send a request for financial data corresponding to the soft fork period at one or more times before, during, or after the soft fork period. For example, the proof of balance module 110 can obtain a beginning balance upon first receiving authorization, and can submit a second request after conclusion of the soft fork period to obtain an average daily balance of the user's account(s). Any other timeline or mechanism for balance verification can be used, in accordance with various embodiments of the invention.
In one or more embodiments of the invention, a single day may be used as a staking period. This simplifies the calculation of the staked balance, because the ending-daily balance records may be input into the system without further processing. However, without certain mitigating functionality, there may be potential limitations to the use of a single staking day. First, some users may artificially inflate their fiat balances on that day (e.g., by taking out short-term high-interest loans), and may thereby acquire greater quantities of cryptographic tokens than would be proportionate to their actual fiat wealth. Second, if funds from large numbers of accounts are being staked, there is the potential for significant anomalies and inaccuracies in single-day balance data, particularly due to variances in international time zones, which may produce overlapping “daily balances” for funds transferred between accounts. Third, if retroactive staking is enabled, then measuring balances during only a single time or day in the past may produce unfair results, due to the extreme quantity of noise present in such a small sample, from e.g. random fluctuations in balance due to some users making a large payment or receiving a large deposit. This may not only cause users to refuse to participate in the system, but may also present a security vulnerability, by causing the allocation of stake within the system to diverge from the realistic allocation of liquid capital within the economy.
In one embodiment, these challenges may be addressed by enforcing a longer staking period, such as one month, six months, one year, or some other extended period of time. The temporal restriction module 303 includes functionality to eliminate balance data from outside that period and the stake evaluation module 304 processes the remaining balance data. In one embodiment, the stake evaluation module 304 identifies the lowest balance recorded during the staking period, and that number is used to determine the staked fiat balance. In other embodiments, a different algorithm may be employed for determining the staked fiat balance, such as the average daily balance during the staking period.
Storage of credentials and/or tokens may occur locally on user devices, externally on outside devices, or a combination of both. The embodiment shown in
The user device depicted in
In one or more embodiments of the invention, the cryptographic ledger platform 100 is configured to calculate, based on the financial account data, a staking value representing a stake of ownership in the cryptographic ledger. The staking value can be calculated upon completion of the soft fork period or can be calculated even prior to knowing the amount of fiat currency “claimed” during the soft fork. In a first example, a token value is calculated upon receiving the financial account data. The percentage of the total issued tokens may not be known at this time, and may continue to increase due to an inflation schedule and/or “claiming” and issuance of new tokens via the mechanisms described herein.
In one or more embodiments of the invention, the cryptographic ledger platform 100 is configured to record a set of digital tokens on the cryptographic ledger representing the stake of ownership corresponding to the financial account data. Recording the set of digital tokens can be performed in response to any number of triggering events. For example, the set of tokens can be recorded upon conclusion of the soft fork period, and/or after final verification of financial account data via the financial institution service 150. In another example, the digital tokens can be recorded as a provisional transaction that locks the tokens from being moved without certain requirements being met. During the soft fork period, the provisionally recorded tokens can be “transferred” or transacted to one or more other users, but with mutually agreed-upon conditions such as one or more lien(s) or independent counterparty guarantor certifications. For purposes of this disclosure the tokens can be any digital record representing value in the cryptographic ledger corresponding to the “claimed” financial account data.
In one or more embodiments of the invention, the external blockchain 160 is a decentralized ledger based on a cryptographic consensus protocol such as Proof-of-Work (PoW), Proof-of-Stake (PoS), or Proof-of-Storage. The external blockchain 160 can be a component of the cryptographic ledger platform 100 or can be a third party blockchain upon which transactions and computational logic is performed. For example, Bitcoin, Ethereum, Ripple, Litecoin, and Stellar are examples of external blockchains 160, any number of which can be utilized. Transactions and cryptographic hash values can be recorded on the external blockchain 160 in order to provide verifiable proof of funds. The external blockchain 160 can further be utilized for adding funds to and removing funds from the cryptographic ledger platform 100.
In one or more embodiments, the proof of balance module 110 is configured to enable bootstrapping a cryptographic currency by utilizing financial data of a fiat currency. The proof of balance module 110 can be implemented as a collection of software modules executing on specialized hardware configured for computational logic described in the present disclosure, and storage related thereto.
The proof of balance engine 301 is responsible for executing business logic not encapsulated by the balance interface module 302, temporal restriction module 303, and stake evaluation module 304, in various embodiments. The proof of balance engine 301 is configured to obtain fiat financial data and stake evaluation data based on said financial data, and communicate between other components of the cryptographic ledger platform 100. The balance interface module 302 is configured to communicate with entities and components external to the proof of balance module 110. For example, the balance interface module 302 can be configured to communicate with one or more financial institution services (150) via the frontend module 140 in order to obtain financial data of a user. The balance interface module 302 can obtain said financial information using credentials of the user stored either in a native ledger repository (132, 134, 136) or on an external device of a user. Any mechanism for authentication/authorization can be used in accordance with various embodiments of the invention.
In one or more embodiments, the temporal restriction module 303 includes logic for restricting financial data based on time related restrictions associated with one or more staking rules or periods. For example, the temporal restriction module 303 can exclude portions of the financial data containing balances outside of the relevant staking period, e.g., prior to a hard fork.
In one or more embodiments, the stake evaluation module 304 is configured to calculate a stake value corresponding to financial data obtained for a user. The stake value can be a preliminary stake value such as a number of cryptographic tokens, or can be an estimate or other predicted stake amount calculated at a particular moment in time. The stake evaluation module 304 can further calculate a final stake value which is subsequently recorded in a final ledger of the cryptographic ledger platform 100 upon detection of a hard fork event. The stake evaluation module 304 can be implemented as a separate module configured to utilize both the proof of balance module 110 and the proof of cash module 120 obtain financial data and calculate corresponding cryptographic stake values.
In one or more embodiments, the stake of fiat currency attributed to the user may be mapped on a 1-to-1 basis to units of currency on a cryptographic ledger. However, in one or more other embodiments, the fiat stake of the user may be employed as an input subject to other ratios or transformations. For example, as previously explained, attribution of stake in one fiat currency may be used to assign a user units of a different forked fiat currency.
Returning to
In one or more embodiments, the system of
In one or more embodiments, the integration module 115 includes functionality to integrate functionality of the proof of cash module 120 and the proof of balance module 110. In this way, the integration module 115 can be configured to obtain and calculate aggregate data such as cryptographic token amounts, staked dollar amounts, fiat currency amounts, and other information stored in the native ledge repositories. In this way, the integration module 115 can be implemented as a backend service configured to perform aggregate or other calculations requiring both proof of cash and proof of balance inputs, and to provide them to the cryptographic ledger platform 100 and/or any other modules thereof. Calculation and retrieval of said data can include, but is not limited to, calculating a total claimed fiat value for a user upon execution of a hard fork, retrieval of multiple preliminary cryptographic token values and/or fiat values for purposes of enabling preliminary transactions (lien transactions, transfers, loans, etc.), and a variety of other operations.
In one or more embodiments, the external blockchain 160 can be optionally utilized to record evidence of ownership of cryptographic tokens in the cryptographic ledger platform 100. Users can record evidence of ownership for purposes of proof of funds verification, or can remove and lock funds entirely within the external blockchain 160. In order to remove funds, a payload of the transaction recorded on the external blockchain 160 can be used. Alternatively, simple movement of the token in the recorded address or proof of possession of a private key corresponding to the recorded address can be used. For example, an address corresponding to the external blockchain 160 can be initially generated. The cryptographic ledger platform 100 then records a transaction for that address in the external blockchain 160. The payload of this transaction includes a reference to cryptographic tokens locked in the native ledger repository (132, 134, 136). In order to move or unlock those funds, the user possessing private keys corresponding to the address can record a second transaction on the external blockchain 160 unlocking those funds or moving them back into a different address within the native ledger repository (132, 134, 136). Any number of different operation types can be executed based on predefined transaction types (e.g., op codes) of the cryptographic ledger platform 100.
The owner of a banknote, such as User A, may connect to the network via a smartphone, tablet, or other computing device. The device may transmit information about the banknote to the Proof of cash module 120, including information input by User A, as well as data captured by the sensors on User A's device. The Proof of cash module 120 may transmit instructions to User A and execute operations via User A's devices. In some embodiments, the Proof of cash module 120 may interact with two or more of User A's devices at the same time. The Proof of cash module 120 processes the sensor data from User A's device(s) to verify that User A possesses an authentic serialized banknote. This may include verification of not only the fact that the note is genuine, but also that its serial number has not been altered.
The Proof of cash module 120 may transmit that information to other nodes on the network, including to computers operated by third parties, such as e.g. User B's desktop, or any other suitable computing device. The outcomes of remote-verification attempts may be recorded as inputs in a digital ledger stored within the native ledger repositories 130 or remotely. In one embodiment, to fork a currency, the cryptographic ledger module 100 makes an entry in the ledger upon the first verification of each unique serialized banknote, and corresponding digital money is issued to the holder of that note. Where and how ownership of the forked money is recorded depends on how the system is configured. The cryptographic ledger platform 100 may record the forked money directly on a distributed blockchain, e.g. by issuing a token on the Ethereum virtual machine. However, this may be too slow for users, and the fees it incurs may exceed the value of some digitized banknotes. In one embodiment, the cryptographic ledger platform 100 first issues the money in a non-distributed ledger. Money on that ledger may be exported to the external blockchain 160, either to an address controlled by the owner of the money, or to an address controlled by the platform in a “hosted wallet” arrangement (e.g., in the native ledger repositories 130). Alternatively, digital money may be stored on the non-distributed ledger, while the integrity of that ledger is secured by storing certain cryptographic outputs on the external blockchain 160. For example, portions of the ledger (e.g., account balances, serial numbers of verified notes) may be hashed and then stored on the external blockchain 160. Likewise, User A and the cryptographic ledger platform 100 may publish public keys on the external blockchain 160, then use the corresponding private keys to create hash chains of debits and credits to User A's accounts on the ledger. In these embodiments, the speed and convenience of a centralized database are preserved, but Users can retain unforgeable proof of their account balances.
Many other implementations employing multi-signature wallets and/or smart contracts will occur to those skilled in the art. As an alternative or supplement to mobile verification, User A may also demonstrate possession of a specific serialized banknote by physically presenting it to a trusted verifier, an entity or institution whose representatives assess banknotes for others. The concept of a trusted verifier may be illustrated by a bank, but the same role can be filled by any group or person whose assessments are trusted by one or more other nodes on the network. It could be an exchange booth, a supermarket, a convenience store, or even a stranger providing on-demand mobile services. The trusted verifier may use a private key to sign messages on the network, including e.g. a message certifying that User A presented certain authentic serialized notes.
User A may also submit the banknote to a hardware verifier, a machine that proximately authenticates banknotes (e.g., using ultraviolet, magnetic, or infrared sensors) and determines their serial numbers (e.g., optically, magnetically, or via other encodings such as brail). Some ATMs and cash-sorting machines already possess these capabilities, and equivalent components can be added to legacy systems or included in new ones. The hardware verifier may use a private key to sign messages on the network, including e.g. an automated message that a banknote presented by User A was determined to be counterfeit. The machine may be stationary, towable, self-propelled, or incorporated into a vehicle, may be operated by humans or computers, and in some embodiments, may travel to fulfill requests from users. Multiple verifiers may share access to a permissioned ledger.
In some embodiments, the cryptographic ledger platform 100 may act as a certification authority, using a private key to sign messages issuing or revoking other verifiers' authority to issue digital money with their private keys. The cryptographic ledger platform 100 may also refer User A to a trusted verifier or hardware verifier if it us unable to adequately authenticate the banknote using the sensors on User A's mobile devices.
In one or more embodiments of the invention, the frame extraction module 405 includes functionality to extract frames as data points from media captured in the process of performing remote verification of banknotes. These frames can be utilized as input data for the processes of anti-counterfeiting and anti-spoofing processes of the platform.
In one or more embodiments of the invention, the bill cropping module 410 includes functionality to identify the presence and individual boundaries of one or more banknotes within an image such that each portion of an image that appears to depict a banknote can be algorithmically extracted from the other portions of the image.
In one or more embodiments of the invention, the region cropping module 415 includes functionality to identify the presence and individual boundaries of one or more regions of a banknote, including but not limited to regions containing denomination identifiers (e.g., the corners of a bill, the portrait region of a bill), regions containing serialization information (e.g. serial numbers, series numbers, printing dates, names and signatures of government officials), regions containing anti-counterfeiting features (e.g., security threads, seals, micro-printed areas, watermarks, holograms) or regions selected for anti-spoofing verification (e.g., bill areas chosen for illumination, folding, or creasing), such that each region of interest within the portion of an image depicting a banknote can be algorithmically extracted from the other regions therein.
In one or more embodiments of the invention, the preprocessing module 420 includes functionality to alter the characteristics of an image or image section such that one or more altered versions may be processed more accurately and/or efficiently than the unaltered version by one or more of the other modules. The alteration techniques may include but are not limited to, either separately, in sequence, or in parallel, modifications of image size, dimensions, color, brightness, sharpness, contrast, geometry, morphology, and/or noise filtering or insertion.
In one or more embodiments of the invention, the likeness evaluation module 425 includes functionality to calculate the strength of the resemblance between one or more received images and/or image sections and one or more real or composite exemplars of various authentic and counterfeit banknotes and/or banknote regions, such that a determination may be made algorithmically regarding whether the threshold for a match has been satisfied. In one or more embodiments of the invention, the algorithmic comparisons performed by the module may include the degree of similarity, as measured by one or more variables or trained functions, between sensor data and exemplars associated with authentication events or inter-frame object persistence.
In one or more embodiments of the invention, the persistence module 430 includes functionality to analyze a sequence of frames and determine whether the continuous presence of a banknote or region of a banknote can be verified throughout the sequence. Techniques for detecting a persistence violation may include, but are not limited to, mapping and tracking points on the surface of the object or region to determine its location and orientation and/or detecting anomalous changes in its characteristics, the background surrounding it, or the frames themselves.
In one or more embodiments of the invention, the OCR module 435 includes functionality to recognize the location, identity, and characteristics of printed or handwritten text appearing on banknotes or banknote regions.
Starting with the user device in
The location reporting module determines the user device's location and reports that location to the cryptographic ledger platform 100 (of
The exchange offer submission module transmits an offer from the user to the cryptographic ledger platform (of
Within the exchange offer submission module there is a currency specification module, which allows a user to input a description of the money the user wishes to exchange. The currency specification module contains a desired currency input module, which allows the user to specify which currency or currencies the user can receive in an exchange, the possessed currency input module, which allows a user to specify the currencies the user has available to provide others in an exchange (including, in some embodiments, money the user does not yet possess but can access). The inputs of those two modules are qualified by the substrate specification module, which allows the user to differentiate between monetary substrates (e.g., electronic fiat funds vs. cryptocurrency vs. printed fiat money vs. cryptocurrency virtually embedded in printed fiat money), and a quantity specification module, which allows an amount or range to be specified for units of a currency in a given substrate. (e.g., exactly 75, 80-120, ≥500, etc.) Although not shown in
In some embodiments, the desired currency input and possessed currency input modules are linked together so that a user designates a discrete pairing for exchange. For example, the user may possess 10,000 units of “USDk” (cryptographic currency associated with the US Dollar) embedded in 100 printed US Dollars, and her desired currency may be ≥10,000 “EURk” (cryptographic currency associated with the Euro) embedded in ≥100 printed Euros. This linkage may also be expanded to multiple currencies, so that rather than a single discrete pairing, multiple acceptable matches are captured by the same input. In other embodiments, the linkage may be omitted entirely, accommodating users who wish to view all potential exchange partners and the various forms of money they are offering. In one embodiment, the degree of linkage is controlled by the user within the application.
The exchange offer submission module also contains a meeting conditions module, which allows users to further restrict the exchanges they are offering to participate in. This module contains five submodules. The rate & fee specification module allows a user to specify a minimum or maximum exchange rate and/or a minimum or maximum fee for participating in the exchange. In some embodiments, users may specify a static exchange rate (e.g., >$1 USD-to-USDk), a dynamic exchange rate (e.g., market rate for USD to USDk on Exchange X), a static spread (e.g., >$0.15 spread per dollar relative to market rate on Exchange X), a dynamic spread (e.g. >25% profit per dollar relative to market rate on Exchange X), an absolute margin (e.g. total profit >$20 measured by market rate on Exchange X), a fee (e.g. ≥flat charge of $20), or a combination. In some embodiments, rate & fee specification values may be conditioned not only on the inputs to the currency specification module, but also the other inputs in the meeting conditions module (e.g., varying rates and fees according to the type and quantity of money exchanged, the timing and location of the meeting, whether delivery to a third party is required, etc.).
In one or more embodiments, users may not control the exchange rates that are employed for transactions, and the cryptographic ledger platform may instead dictate rates based on market prices transmitted from one or more digital exchanges. The prices employed may be fixed at various points in the transaction process, depending on the embodiment (e.g., when the exchange is proposed vs. when the parties meet). In embodiments where the prices are fixed in advance of the meeting, special rating penalties may be imposed on parties whose cancelation of an exchange corresponds to significant shifts in the price of one or more currencies involved in the proposed transaction.
The geographic condition input module allows users to restrict the locations for in-person exchange. (e.g., meeting must take place at current or specified location, within a specified distance of current or specified location, on the route to a specified location from a second specified location, etc.) In one embodiment, multiple location restrictions can be combined to express fine-grained preferences (e.g., meeting must take place inside a Starbucks within 1 mile of a Wells Fargo ATM inside the United States with <10 minute-detour on current route to Tijuana, Mexico.) Likewise, users may specify geographic categories that will apply around the world (e.g., only in airports, never at bus terminals, only inside banks, etc.). In some embodiments, users may specify attributes of meeting locations based on data provided by the network or external sources. (e.g., only locations with a >3.5 in-app rating, never in municipalities with a per-capita robbery rate greater than a specified rate, only in suburbs with median home value>a specified amount).
The temporal condition input module allows user to restrict the time for in-person exchange (e.g., ASAP, before or after a specified time or date, less than a specified time after visiting an automated teller machine, more than a specified time since last exchange, only when the app is activated, never when accelerometer indicates user is on train, etc.). In some embodiments, temporal conditions may be specified relative to data in other applications or databases (e.g., only when inside international airports and >5 hours until flight departure).
The counterparty condition input module allows users to restrict the identity of the other user or user(s) participating in the exchange (e.g., only users >4.0 in-app rating, only users with verified identities, only users with completed criminal background checks, only bonded users, only users age >21, etc.). In some embodiments, counterparty conditions may be geographic and/or dynamic (e.g., when I am inside a mall, only users inside the same mall). Likewise, the counterparty condition input module may sometimes be used to restrict exchange to a specific individual, such as by inputting that individual's phone number, email, name, or other identifying information. In some embodiments, the application may provide a long-term or limited-use code or other identifier to the potential counterparty, who communicates it to the user, and the user inputs that code for processing by the counterparty condition input module, which then matches the user and the counterparty (e.g., a Taxi driver instructs a passenger to input the driver's assigned provider number to initiate an exchange while en route to the airport).
The third-party specification module allows a user to specify a cash recipient other than the user. In some embodiments, the identity of the third party may be designated using, for example, name, phone number, email address, postal address, and etc. In some embodiments, the third party is not directly identified, but an acceptance code is provided to the user for conveyance to the third party. Whether delivery details such as time and location are specified by the user or arranged by the third party may vary between or within embodiments.
The proposal response module transmits user-determined responses to proposals by the cryptographic ledger platform (of
The instruction receipt module displays commands or requests transmitted to the user from the cryptographic ledger platform (of
The exchange protocol module interfaces with the cryptographic ledger module 100 of
The post-transaction rating module allows the user to submit feedback to the cryptographic ledger platform. In some embodiments, users may submit feedback after any transaction, while in other embodiments, only completed transactions or transactions canceled under specified conditions (e.g., after 3 minutes) may be included. The counterparty rating module allows users to rate the counterparty in the exchange. In some embodiments, ratings may be differentiated by service type (e.g., cash receipt vs. cash provision), provided for multiple service dimensions (e.g., timeliness, friendliness, etc.). The location rating module allows users to separately rate the meeting location, disaggregating their satisfaction with that component of the transaction from their perception of the counterparty. In some embodiments, ratings for locations may also be multi-dimensional (e.g., cleanliness, safety, convenience, etc.) Likewise, location ratings and their sub-dimensions may be disaggregated by factors such as time of day, day of week, time of year, temperature, weather, etc. In some embodiments, user and location ratings may be simple averages. In other embodiments, user and location ratings may be weighted averages (e.g., by rating of rater), and inputs other than user ratings may be included to adjust ratings upwards and downwards, including objective metrics. (e.g., transaction-completion percentage, tender rejection frequency, time-to-meeting percentile, etc.)
In one or more embodiments, the location rating module on user devices may interface with a dedicated location selection module (not shown) on the cryptographic ledger module, which incorporates user feedback to modify baseline estimates of the safety of various potential locations from external data, and then to choose optimal safe meeting locations near users. This data may include data about location types (e.g., coffee shop, park, police station, train station, plaza, etc.), the hours of surrounding businesses, the locations of prior crimes, presence of guards, artificial and natural lighting, and other similar factors. In some embodiments, if a user does not feel comfortable with the chosen location, the user can use the device to transmit a signal requesting relocation of the transaction, subject to approval of the other party. If the other party does not agree, the user who expressed discomfort may cancel the transaction or choose to proceed with it. These expressions of discomfort may be incorporated into the location-rating system as an optional user selection or input.
Although the components of
Although
The identity check module verifies the authentication credentials transmitted to the exchange hub by user devices. The structure and function of the module necessarily depends on the credentials employed in the corresponding embodiment of the identity proof module on user devices. In one embodiment, the identity check module or a parallel module within the exchange hub contains an authentication credential for the platform, such as a private key, so that messages from the platform may be authenticated on user devices.
The location monitoring module of the exchange hub tracks the positions of user devices transmitted via their location reporting modules. In one embodiment, this tracking is performed only when knowledge of a user's location is required by the exchange hub. (e.g., tracking may be disabled when a provider's status is set to unavailable). In some embodiments, users whose locations are not being actively monitored by the platform may opt to receive proposals for designated geographic areas (e.g., the town of Arlington, Virginia), and may then opt-in to share their location with the location monitoring module if they wish to accept a proposal within one such area.
The offer matching module identifies users whose indicated requirements permit a mutually satisfactory in-person currency exchange. It contains two submodules: a currency compatibility module, which compares the inputs from the user devices' currency specification modules, and a condition compatibility module, which compares the inputs from the user devices' meeting conditions modules. These comparisons may be performed using constraint satisfaction algorithms and other techniques. In one embodiment, the offer matching module will also identify users whose requirements are not fully compatible so that one or both users may be prompted to relax one or more offer requirements.
The matches identified by the offering matching module are forwarded to the exchange proposal module, which contains three submodules. The proposal transmission module composes and sends proposed in-person exchange transactions to users. In some embodiments, selection of a meeting location may be performed by the proposal transmission module, while in other embodiments that function may be deferred to the instruction transmission module. The counter forwarding module transmits counter-offers between users when modifications to the terms of a proposal are requested. The acceptance receipt module confirms that a meeting must be arranged upon receiving consent of both parties, and forwards the relevant data outside of the exchange proposal module to the instruction transmission module.
The instruction transmission module composes and sends the directives that are collected and displayed on user devices by the instruction receipt module. These instructions may be composed not only during the initial arrangement of a meeting, but as needed during all stages of a transaction. In some embodiments, many instructions are preloaded within the application or transmitted to a device with high connectivity significantly in advance of display to a user, and the instruction transmission module sends only the appropriate code to trigger display of a given instruction, or some small quantity of additional information that must be inserted into the instruction to render it meaningful. This minimizes the bandwidth required to transmit instructions to users during periods of suboptimal network access. (e.g., once a user has traveled to a meeting location in a rural area with poor cell service).
The exchange protocol module contains four modules that enable secure trustless exchanges to be performed on the network. The meta-serial tracking module logs the meta-serial numbers transmitted by cash-possessing parties in advance of exchange and tracks the ownership of the bills. For purposes of this disclosure, “cash possessing party” refers to a party who possesses cash at the outset of the exchange, even though that possession may cease temporarily or permanently through interaction with a counterparty. The ownership information managed by the meta-serial tracking module is passed to the certificate issuance module so that pre-exchange and post-exchange ownership certificates can be issued referencing the appropriate meta-serial numbers.
In one or more embodiments, the counterparty disclosure module transmits the identity of the cash-possessing party to the cash-requesting party upon receipt of a counterparty verification transmission from the cash-possessing party. In some embodiments, this information may be transmitted in advance in encrypted form, and upon counterparty verification the counterparty disclosure module transmits the key required for decryption. The advantage of such an implementation is that large files, such as, e.g., high-resolution images of the cash-possessing party, may be shared during periods of high-speed connectivity via e.g. WiFi, and the decryption key may then be transmitted efficiently even when a meeting location has only low-speed connectivity. In some embodiments, the decryption key may be transmitted in advance to the cash-possessing party, so that the cash-possessing party can choose to locally prove his or her identity to the cash requesting party.
In one or more embodiments, the transaction consummation module verifies receipt of an authentic tender-approval message and finalizes the transaction by modifying all relevant digital ledgers, including electronic balances that must be adjusted to in correspondence to the transfer of physical cash. It also prompts the meta-serial tracking module to reassign ownership of the relevant meta-serialized notes, and in turn for the certificate issuance module to issue a post-exchange certificate documenting the change of ownership upon transaction consummation.
The functionality of the exchange hub or other components of
The nodes shown in
Although the components of the systems disclosed herein are depicted as being directly communicatively coupled to one another, this is not necessarily the case. For example, one or more of the components of the systems may be communicatively coupled via a distributed computing system, a cloud computing system, or a networked computer system communicating via the Internet.
Although only a single system may be illustrated as a module (e.g., proof of balance module 110), it should be appreciated that this one system may represent many computer systems, arranged in a central or distributed fashion. For example, such computer systems may be organized as a central cloud and/or may be distributed geographically or logically to edges of a system such as a content delivery network or other arrangement. It is understood that virtually any number of intermediary networking devices, such as switches, routers, servers, etc., may be used to facilitate communication.
The process depicted by
In STEP 905, staking of fiat currency bills and balances are commenced as a means of “claiming” cryptographic currency tokens “trapped” within the fiat banknotes and/or balances of platform users. This step represents any number of non-linear and asynchronous activities, including proof of cash and proof of balance functionality described herein. During this STEP, although the cryptographic tokens that are staked may be “trapped” within the associated parent currency bills and/or balances, certain provisional transaction types may be enabled, each with varying degrees of functionality and risk for users of the platform. Money multiplier sweepstakes, interest accrual, and provisional payments, transfers, loans, and liens are among the transaction types that may be enabled only within the staking period, in accordance with various embodiments. Other embodiments allow for continuance of certain staking period transaction types during the post-staking period.
During the soft fork period, machine learning and artificial intelligence models may gather training data from proof of cash executions by users of the platform. In this way, the proof of cash module can be configured to train the various anti-spoofing and anti-counterfeiting models using real world data, in order to prepare for final verification to occur upon execution of the hard fork.
In STEP 910, a hard fork event occurs, after which the platform enters the post-staking period (STEP 915). Execution of the hard fork event may be based on a particular block height of a decentralized cryptocurrency such as Bitcoin. For example, the hard fork event may be tied to a particular Bitcoin block height, such that the hard fork is deemed to have occurred upon mining of that particular block in the Bitcoin blockchain. In one or more embodiments, the hash value of that block can then be incorporated into a broadcasted transaction in the same external blockchain or in the first transaction or genesis block of a native blockchain within the platform to indicate that the hard fork event has occurred. In STEP 920, final token issuance is triggered by the platform, such that the platform begins the process of finalizing provisional transactions and issues final cryptographic tokens on the native blockchain repositories for all claimed amounts.
The hard fork event may trigger the cryptographic ledger platform to begin a number of different processes, including prompting users of the platform to perform final verification of claimed banknotes in embodiments where proof of cash functionality is implemented. In one or more embodiments of the invention, upon execution of the hard fork, no further “claiming” of cryptographic currency tokens trapped within fiat banknotes and balances can occur. In other embodiments, such claiming can continue to occur with a diminishing rate of conversion for each unit of fiat currency to cryptographic currency. After the hard fork event and associated processes are complete, full transaction functionality of the platform is enabled in STEP 925. Full transaction functionality can include withdrawal of funds to external blockchains, downloading of private keys, unbridled movements of funds between addresses, and/or implementation of op codes that enabled full computational transaction functionality by the platform (e.g., a Turing complete scripting language, etc.).
In STEP 1000, a staking period representing a predefined duration of time is designated. The staking period may be codified by a cryptographic ledger platform (e.g., cryptographic ledger platform 100 of
In STEP 1005, during the soft fork period, a proof of balance request is received from a user device. The proof of balance request is for financial account data of the user at a financial institution to be verified using one or more credentials of the user. The credentials can be obtained and utilized to authenticate the user using any mechanism authentication, including delegated authentication (e.g., OAuth 2.0, etc.).
In STEP 1010, the financial account data is programmatically requested from a service associated with the financial institution. The financial account data must meet a set of criteria defined by the platform in order to be eligible for proof of balance staking. Examples of such criteria can include, but are not limited to, temporal requirement that the balance(s) correspond to the predefined staking period, specified currency and/or equity types that are eligible for staking (e.g., US Dollar amounts or equities traded in US Dollars, Euro amounts, etc.), types of financial data (e.g., daily average balance information, etc.), and more.
In STEP 1015, a staking value is calculated based on the financial account data. The staking value represents a stake of ownership in a cryptographic ledger of the platform. This may be a percentage or unit amount, e.g., “token”, in the cryptographic ledger. The proof of balance module of the platform may, in some embodiments, use the financial account data to calculate intermediary financial account data in a consistent format and unit of measure, and then use that intermediary data in order to calculate the staking value. For example, the financial account data may be utilized to determine an average daily balance of a user's account, which is then used to calculate the staking value.
In STEP 1020, upon conclusion of the staking period, a first set of digital tokens are recorded on the cryptographic ledger. The tokens represent the stake of ownership calculated for the staked financial data in STEP 1015, but may not be the only tokens allocated to this particular user. For example, the user may have staked additional amounts of currency during the staking period, or may have participated in one or more money multipliers during the staking period that increased his stake of ownership in the ledger. Thus, the final amount of digital tokens recorded in the ledger for this user may include additional amounts recorded in the same cryptographic address or different addresses, in accordance with various embodiments of the invention.
In the example of
Various interfaces may be employed for applications that enable users to check the available information about a bill's sweepstakes value. In the embodiment depicted by
In the device illustration of
In one preferred embodiment, the interfaces shown in
The certificates pictured in
The certificates may be verified in several means. The QR codes shown in
In certain cases, it may not be possible to guarantee that the platform has not issued an even newer certificate superseding ownership information shown on the later of the two certificates examined without network connectivity. In one embodiment, upon scanning a certificate the mobile application queries the platform to determine whether the certificate has been superseded and, if so, the platform transmits the operative certificate for the transaction. In some embodiments, the query may be performed manually by a human, such as by dialing a hotline for up-to-date ownership information on the meta-serialized notes tendered in exchanges. In
The middle button shown in
An emergency button may also be provided to connect the cash possessing party to 9-1-1 or other law-enforcement hotlines and/or to request immediate assistance at the meeting location through other means directed by the cryptographic ledger platform. In some embodiments, after aborting the transaction and safely exiting the area, the cash possessing may be prompted to submit addition information about the problem with the counterparty Examples of such additional information can include, but are not limited to, indication of a suspicious feeling, positive indication that it was the wrong person, positive indication that the correct person was present but was exhibiting suspicious behavior or was in the presence of associates, and etc. Such information can be utilized by the cryptographic ledger platform to produce variable adjustments in user-rating models of the platform.
An additional option is shown in
In one embodiment, upon receiving an assistance request from the cash-receiving party, the cryptographic ledger platform selects a distinctive gesture, instructs the cash-possessing party to look for the gesture, and then induces the cash-requesting party to perform the gesture. The inducement may be performed implicitly (e.g., by calling the cash-requesting party's phone number in order to induce gestures associated with receipt of a call) and/or expressly (e.g., by directing the cash-requesting party to raise her left hand in the air). The cryptographic ledger platform may delay execution of distinctive-gesture inducement for a brief interval (e.g., 30 seconds) after receipt of the cash-possessing party's assistance request in order to lessen the externally observable temporal correlation, as well as to allow the cash possessing party time to return his or her attention to the area being surveyed.
In one or more embodiments of the invention, the cash-requesting party may be prompted to take one or more photographs at the meeting location, such as a selfie and/or a panorama of the cash requesting party's surroundings. These photographs may be forwarded to the cash-possessing party for use in identifying the location of the cash-requesting party. In some embodiments, the cryptographic ledger platform may estimate the location of the cash-requesting party by employing algorithms known to those skilled in the art of computer vision to compare the position and orientation of landmarks in the submitted photographs and landmarks in “street view” datasets of the area surrounding the meeting location and/or equivalent datasets compiled from photographs taken by parties on the network.
In the example of
In the example of
In
An association between the sign and a particular in-person meeting location (e.g. a specific branch of a specific store) is stored by the cryptographic ledger platform (e.g., in a SQL database), and when a transaction is initiated by a user scanning the sign, the exchange proposed by the platform is automatically constrained to that location. In some embodiments, transactions initiated by a sign being scanned may be assigned other unique attributes by the platform, such as a different fee division structure in which a portion of the funds are shared with the party that erects or maintains the sign and/or a party who provides security for transactions at the location designed by the sign.
Although the visual beacons shown in
Some signs may incorporate additional transaction specifications beyond those shown in
The type, format, and physical materials of the beacons shown in
A list of purchased merchandise is included in the certificate depicted in
In
In STEP 2100, a balance interface module transmits query instructions to the device on which the credentials or tokens for obtaining balance records (financial account data) for a given account are stored. In some embodiments, this operation is initiated by a user inputting a command to an application executing on the user's device, to verify financial funds of the user.
In STEP 2105, the financial account data is fetched from a financial institution service. A balance interface module (from the user device or from a remote ledger platform module) can connect to a banking service where the balance records are stored and uses the credentials or token(s) to fetch the balance data from the bank ledger. In some embodiments, all available balance data may be fetched. In other embodiments, a temporal restriction may be included in the query instructions.
The STEP 2110, the balance data is transmitted to the cryptographic ledger platform. For example, a balance interface module can transmit the fiat balance data fetched from the banking service to be stored in a native ledger repository of the cryptographic ledger platform. In embodiments where the query was not temporally restricted, in STEP 2115, a temporal restriction module excludes the portions of the transmitted balance data for dates that that fall outside of the staking period. The duration of the staking period may be chosen based on the needs of a particular embodiment.
In STEP 2120, a provisional staked balance amount is calculated either in fiat or provisional cryptographic units. In STEP 2125, it is determined whether the staking period is ended and whether a hard fork event has occurred. This determination can be made according to a pre-defined schedule, or can be triggered by a push mechanism that makes the determination upon completion of the staking period, in accordance with various embodiments. For example, a process can be configured to calculate interest daily based on a daily staking balance of each user. If it is determined that the hard fork has occurred, the process proceeds to STEP 2140, and if it is determined that the hard fork has not occurred, the process proceeds to STEP 2130.
In STEP 2130, prior to occurrence of a hard fork event, an interest amount is calculated based on the aggregate provisional balance amount and duration of each staked amount staked during the staking period. In STEP 2135, the interest amount is credited to a staking balance of the user on a native blockchain repository. The interest amount can be represented in any denomination, including a provisional quantity of cryptographic tokens or some representation thereof.
In STEP 2140, upon detecting that a hard fork event has occurred, the aggregate staking amount is calculated for each user account or address. In one or more embodiments, a post-staking period is commenced during which all provisional transactions are finalized and anti-counterfeiting and anti-spoofing technologies described herein are used to verify possession of staked fiat bank notes. In one or more embodiments, the aggregate staking amount may represent an amount corresponding to staked fiat balances, interest corresponding to staked fiat, sweepstakes winnings for staked balances, and/or provisional incoming transfer amounts of any kind. In STEP 2145, after detecting the hard fork event, the aggregate staking amount is recorded on the native blockchain repository as a final quantity of issued cryptographic tokens.
In the embodiment depicted in
A malicious actor may try to claim digital money associated with a bill the actor does not actually possess, either by submitting an image of a bill without possessing it (spoofing) or by submitting an image of an inauthentic bill they possess (counterfeiting). To prevent both spoofing and counterfeiting, a proof of cash module (e.g., proof of cash module 120 of
In STEP 2300, an event is generated, chosen based on the template, the capabilities of the user's device, and a module executing logic about prior events and injecting entropy into a challenge-response protocol in order to vary events unpredictably. An image of the banknote is captured before the event (STEP 2305), then the event is executed on the mobile device (STEP 2310), either automatically or with manual user assistance, and then a second image of the banknote is captured (STEP 2315). The proof of cash module 120 in conjunction with the mobile device may then compare the two images and generate likelihood score(s) for the presence of an authentic bill, counterfeiting, or spoofing, which may register above or below thresholds, and those thresholds may themselves be adjusted to accommodate varied risks, times, locations, and business arrangements. In STEP 2320, if the generated authenticity score exceeds a predefined threshold, the process proceeds to STEP 2330 whereupon authentication is successful. If the generated authenticity score fails to exceed the threshold, authentication is denied (STEP 2325).
The use of only a single event, and the capture of only two images, are simplifications made for illustrative purposes. in reality, multiple events may be used, whether at the same time or in sequence, and numerous images may be captured for each event, including extracting some or all frames from a video stream.
One simple event, which is not pictured, may involve adjusting the optical zoom or focus on a mobile device, to alter the genuine output of its camera in identifiable ways (e.g., an image moving an arbitrary degree in or out of focus, at unpredictable times, etc.).
In the examples of
In the example of
In
The rectangle used to instruct placement of the bill on the screen is purely illustrative. The bill may be oriented vertically, horizontally, or diagonally on the screen, and on some devices (such as a smartphone), may be larger than the screen. The proof of cash module may prompt the user to slide the bill against the screen, while continuing to hold the screen up to the mirror, so that alternate regions of the bill may be illuminated. (The persistence module and the method depicted in
When a bill is being remotely verified while backlit by a paired device, the proof of cash module may execute operations so that the device screen illuminates (or otherwise calls attention to) one or more regions of the bill, and a user may be prompted to interact with those regions, including by moving Device 1 to photograph them more closely. This may be augmented by the process shown in
In some embodiments, biometric features of the User may be extracted from the mirror referenced in
Bills may contain security features on both sides, which it may be impossible to photograph simultaneously. In addition, some security features may need to be examined more closely with a camera than is possible in a whole-bill image. A malicious actor could photograph a counterfeit bill, displaying a false serial number, then pass a rudimentary authentication test by taking close-up photographs of the security features from an authentic bill.
In
Finally, it should be emphasized that although certain embodiments of the invention may involve forking printed money, embodiments of the invention may provide significant advantages in other contexts. There are many circumstances in which User B may wish to remotely check whether User A possesses banknotes. For example, if User B is offering goods for sale on Craigslist, the network can allow User B to confirm that User A has sufficient cash before meeting in person. In a more advanced embodiment, User A may specify to the proof of cash module a collection of notes that User A purports to hold for a designated term, and the proof of cash module may audit User A's holdings by periodically prompting User A to remotely verify possession of one or more specimens it purports to control. In some embodiments, User A may purport to deface, destroy, or otherwise remove a banknote from circulation. In either version, penalties may also be imposed on User A by proof of cash module if User C remotely verifies the presence of that banknote in circulation.
Throughout this disclosure, banknotes may be substituted for numerous obvious analogs, including but not limited to bearer bonds, vouchers, traveler's checks, stock certificates, bank drafts, cashier's checks, lottery tickets, scratch cards, baseball cards, or any other discretely identifiable written instrument, including those not conventionally serialized.
In STEP 3000, a banknote digitization request is received from a mobile device controlled by User A. This request must include the serial number and, if the cryptographic currency platform is configured to support multiple currencies with overlapping serialization, a meta-serial identifier (e.g., USD). This information may be manually input by User A, or it may be extracted from photograph(s) of the note, either locally on User A's device or after transmission to the proof of cash module (e.g., proof of cash module 120 of
In STEP 3005, the meta-serial number (meta-identifier+serial number) of the bill is then tested against the proof of cash module's serialization logic to determine whether it matches an authentic banknote. If so, the process proceeds to STEP 3010, and if not, the request is declined (STEP 3030) and the process ends. The proof of cash module may have exact records of valid serial numbers or may derive a grammar for valid serial numbers from the serialization observed on authentic specimens. A “serial number” in this context may include identifiers that are not technically numbers nor serialized, such as non-sequential alphanumeric codes, as long as the identifier designates a discrete note. If the request transmitted by User A does not conform to the serialization logic, it is declined, and User A may be prompted to recheck the serial number on the banknote.
In STEP 3010, if the request contains a valid meta-serial number, then the proof of cash module checks whether digital money is available to the holder of the banknote. If digital funds are available, the process proceeds to STEP 3015, and if not, the request is declined (STEP 3030) and the process ends. For example, in an embodiment where a printed currency is forked, the proof of cash module would examine whether an entry had previously been made, and would decline digitization of previously verified bills. If no entry existed, the proof of cash module may derive the face value of the note from the serialization logic and prompt User A to complete remote verification to unlock the corresponding digital money (STEP 3015).
If User A completes remote verification, then some identifier may be entered in the proof of cash module's ledger to associate User A with the verified banknote (STEP 3025). The identifier will normally be a public address cryptographically paired to User A's private key, but an endless range of alternative identifiers exist, including PINs and passwords, third-party accounts, and biometric factors. When an identifier refers to an account capable of receiving messages (e.g., a phone number, an email address) the proof of cash module may store the identifiers and later send codes that enable digital money to be unlocked on ledgers or blockchains.
The method shown in
For example, User B may send digital money to a particular banknote via the meta-address for that bill in the proof of cash module's ledger (e.g., native ledger repositories 130 of
The type and quantity of digital money can vary freely from the identifiers of the bill in which they are embedded. In theory, ten billion dollars of Bitcoin could be uploaded into a one-dollar bill, whose true worth users could verify or unlock using computers connected to the network. Indeed, not only money, but any digital content may be routed this way to the unique address specified by the bill's meta-serial number, including encrypted or human-readable messages. Since the possession of a discrete bill can be verified on the network, any bill can function as a “possession factor” for arbitrary applications. (e.g., possession of a bill may be substituted for recalling a password).
In certain embodiments, particularly ones where bills may unlock arbitrarily large quantities of digital money, it may be desirable to modify the method shown in
In one or more embodiments of the invention, the user can be presented with an option to spend a serialized banknote during the soft fork, or to save it by retaining the note until the hard fork whereupon the embedded cryptographic tokens are uploaded to the cryptographic ledger platform.
One example of this method is illustrated in
Returning to STEP 3145 of
Even if the user does not manually remove the bill from the list of saved bills after spending it, the system may nevertheless detect that the bill has not been saved, once it circulates and comes into the possession of a new user who attempts to scan it and determine its value (STEP 3150). The receipt of a message from the new user's device indicating that the bill has been scanned may be used to automatically remove the bill from the old user's list of saved bills, as shown in STEP 3165, and the token amount associated with the bill can then be subtracted from the user's provisional balance (STEP 3170). Once a hard fork is initiated and cryptographic tokens are no longer trapped on bills, users are prompted to complete verification of the bills they previously saved (STEP 3135), and the cryptographic tokens stored on those bills may finally be released to their control (STEP 3140). In practice, the verification process employed during that step may involve more thorough scanning procedures than those employed for scanning during the soft fork. For simplicity, in this disclosure it is often assumed that upon completing verification users will upload the cryptographic tokens stored on their saved bills, but some users may choose to retain the cryptographic tokens on the bills.
Another simplification involves the manner in which
To describe such transfers conveniently, terminology such as “lien” and “encumber” is used in this disclosure, but such transfers may, in some embodiments, be performed as novelties among friends rather than as legally enforceable contracts. The disclosure expresses no opinion about how such transfers would be legally categorized in a particular implementation or jurisdiction.
The “periodic scanning” referenced in STEP 3225 may in some embodiments be required as a universal term of transfer, in others as an obligation whose existence or frequency depends on factors such as bill value or user risk profile, or as a freely negotiable term of the provisional transfer which may be proposed by the proposed transferor or transferee and either accepted, rejected, or countered by the counterparty. In some embodiments, either the transferor or the transferee may be the party to initially propose the transaction.
In STEP 3230, “Re-scan timer expired?” refers to the imposition of a condition that the user must scan the serialized note within some temporal period. The specifics of the mandated schedule (e.g., whether scanning is performed at fixed dates or upon an interval that is reset by each scan) may vary both among embodiments and, in some embodiments, among the terms of the individual transfers. In STEP 3235, “Encumbered notes scanned by other users?” refers to the cryptographic ledger platform receiving a transmission from a third-party's device for a scan of a bill with a meta-serial number whose cryptographic tokens had been promised in a provisional transfer. In STEP 3265, when the platform determines whether re-scanning was successful, it means whether the transferor re-verified possession of the original note by re-scanning it within an allocated period, whose duration may itself vary according to the terms of a given transfer or embodiment.
STEP 3270 includes the option for User A to scan substitute notes, but this option need not be included in all embodiments. In some embodiments, no notification of bill substitution is provider to the transferee, while in others the transferee's express approval may be required before bill substitution. In some embodiments, notifications of default will be sent not only to User B, but other users on the network, such as other users who have received provisional transfers from User A, even if their provisional transfers have not been directly defaulted upon yet.
An alternate embodiment of provisional transfers, which may be preferred in some contexts, adapts the method illustrated in
In
In
In
In
Lien priority may be a significant issue for provisional transfers that are not grounded in a given meta-serialized bill. In
Before the exchange occurs, in STEP 3800, the application prompts the cash-possessing party to photograph the banknotes that will be tendered to the counterparty. In some embodiments, this prompt may be initiated locally by the device upon, while in other embodiments it may be triggered by receipt of a transmission from the cryptographic ledger platform. For security reasons, it is generally preferred that the cash possessing party capture or input the meta-serial numbers before arriving at the meeting location, but this is not always possible, such as, e.g., when a transaction is initiated by parties who have already met in person.
In STEP 3805, the meta-serial numbers of the notes are then transmitted from the user's device to the platform. In some embodiments, this may be accomplished by transmitting raw image data to the platform, while in other embodiments the image data may be processed on the user's device and only the resulting meta-serial numbers are transmitted. In a crude embodiment, photographing the banknotes may be substituted for manual entry of the inputs (e.g., nation, denomination, serial number) required to derive the meta-serial number.
In STEP 3810, the platform receives the meta-serial numbers of the bills that the cash-possessing party is going to tender, and it associates those discrete bills with the pending in-person exchange with the counterparty. Including not only ownership by the cash-possessing party but also the identifying information on the transaction and counterparty is critical, because the counterparty may otherwise pocket the bills and claim to have received them from the cash possessing party pursuant to some other transaction.
In some embodiments, to provide even greater assurance, an additional step/operation may be included, in which the counterparty receives the list of meta-serialized notes that will be tendered and/or images of the notes and transmits a consent message to the proof of cash module of the platform. This may either be a pre-certificate list generated by the platform or an actual platform-issued ownership certificate that the counterparty approves, permitting issuance of an addition pre-exchange ownership certificate including the counterparty's approval. In either implementation, use of an identity authentication credential, such as a password or biometric factor, may be employed to capture proof that the receiving party disclaimed possession of the meta-serialized notes prior to the tender.
In STEP 3815, a pre-exchange ownership certificate is issued (e.g., by the proof of cash module of the platform of
In STEP 3820, the cash-possessing party is then directed to tender the notes to the cash-receiving party, so that the number and authenticity of the notes may be examined. For example, the proof of cash module may be configured to send a message to an application executing on the user's mobile device with specific instructions to the cash possessing party. In
In STEP 3825, after receiving the notes from the cash possessing party, the counterparty uses his or her mobile device to either accept or reject the notes. If the notes are rejected, a rejection message is transmitted to the platform (STEP 3830), and the platform cancels the planned exchange (STEP 3835). In one embodiment, upon canceling the exchange the platform will prompt the counter-party to return the notes. Rather than risking a confrontation between the parties about the authenticity of the notes, in some embodiments the platform may indicate to the cash possessing party that there was e.g. an error in processing the transaction or that the counterparty lacked adequate funds to proceed.
The pre-exchange ownership certificate remains in effect, so the cash-possessing party retains proof that the notes do not belong to the counterparty. In one embodiment, the cryptographic ledger platform may direct the cash-possessing party to contact law enforcement if the counterparty refuses to return the notes or attempts to flee. In some embodiments, the application may provide an option for the cash possessing party to directly contact law enforcement and/or private mediators or security personnel providing services to users of the network. In the event that a counterparty attempts to flee with the tendered banknotes, in some embodiments a location monitoring module of the platform (not shown in the corresponding figures) may be used to track the party's movements in coordination with law enforcement. Likewise, the location monitoring modules of other devices may be used to identify nearby users and to solicit their assistance in reporting information to law enforcement.
In STEP 3840, if the counterparty instead chooses to accept the tendered notes, then the acceptance credential of the counterparty is received (e.g., by the proof of cash module). In the example of
Normally, no approval credential from the cash-possessing party is required, because the cash-possessing party suffers no detriment during the transition from banknote tender to transaction consummation. There is therefore no “exchange” of tokens or credentials: only unilateral transmission or disclosure of the tender approval credential by the counterparty.
There are specialized circumstances, which are not depicted in
In STEP 3845, once the counterparty's receipt of sufficient authentic banknotes is confirmed to the cryptographic ledger platform upon receipt of the tender-acceptance credential, the platform consummates the transaction on all affected ledgers. In some embodiments, the platform has write access to all affected accounts, and simply executes the balance changes itself. In other embodiments, some affected accounts reside on ledgers controlled by external agents such as banks or decentralized validators, and the platform transmits the authentication messages needed to initiate balance alterations (e.g. transaction instructions signed with its private key.) The term “account” is used in this disclosure for simplicity, but those skilled in the art will understand that UTXOs may also be employed, and that a combination of UTXO and account-based execution may be necessary when consummating an exchange that affects multiple ledgers.
In a simple embodiment, funds are debited from the counterparty's account in an amount corresponding solely to the banknotes provided by the cash-possessing party (e.g., by the proof of cash module), and the entirety of the amount debited is credited to the cash-possessing party's account. In some embodiments, the amount debited may be increased to reflect one or more transaction fees and/or taxes paid to the cash-possessing party, the platform, and/or other parties, such as a government or private actor providing a safe transaction environment. In other embodiments, those charges may be paid in part of whole by decreasing the amount credited to the cash possessing party.
In some embodiments, charges and/or deposits may be divided among multiple accounts controlled by a single entity, and new temporary or permanent accounts may be created to control funds affected by transaction consummation. Funds owed to a given party per the terms of the transaction also may be retained or deposited in another party's account while credentials are issued to the owner enabling the funds to be accessed on demand. For example, the proof of cash module can debit 100 USD-based cryptographic tokens (“USDk”) from the counterparty's account, credit 100 USDk to the platform's account, and email the cash-possessing party a code that entitles the bearer to receive a 100 USDk transfer from the platform. An advantage of this implementation is that the onboarding process for account creation can be deferred until the user relies on the credential to redeem the funds. One embodiment appears identical from the user's perspective but unlocks funds stored in a different account. In this example, the platform deposits the counterparty' s funds into Account A and sends the cash-possessing party a code to receive a transfer in the same amount from Account B.
In the example of
For simplicity,
In some embodiments, rather than an undifferentiated “rejection” designator, the mobile application allows the counterparty to select reasons for rejection (e.g. note omitted from tender, note in unacceptable condition, note counterfeit, etc.) and these reasons may have different consequences for the cash-possessing party's rating or status, as determined by the cryptographic ledger platform. In some embodiments, a party accused by the counterparty of tendering one or more counterfeit notes may be prompted by the platform to immediately subject the notes to proof-of-cash verification.
In STEP 3850, upon reassigning ownership of the meta-serialized notes that changed hands in the exchange, the platform issues the counterparty a post-exchange ownership certificate that supersedes the pre-exchange ownership certificate issued to the cash-possessing party. In one embodiment, the post-exchange certificate is also transmitted to the cash-possessing party's device. Otherwise, a separate transaction-completion message must be delivered.
Transmission of the certificate itself is often preferable because storage of the post-exchange certificate on the cash possessing party's device provides supplemental local electronic proof that ownership of the notes was reassigned to the counterparty. In one embodiment, the mobile application does not permit the user to delete individual certificates, but rather maintain a log of all certificates received during e.g. the last x days or y transactions. This may be accomplished merely by logic within the mobile application, or in more advanced embodiments via a hash chain linking each certificate to the prior certificate(s) issued to the user. A malicious cash-possessing party who wishes to conceal exchange completion may delete all application data, but doing so will also delete the pre-exchange certificate needed to falsely claim ownership of the notes. In some embodiments, upon receiving and validating the post-exchange certificate, the mobile application will categorize the corresponding stored pre-exchange certificate as superseded and will display them only with a designated visual indicator (e.g., a “SUPERSEDED” virtual watermark).
In some embodiments, the method shown in
One potential vulnerability known to peer to peer networks is a variant of the Sybil attack. In one example, a user who appears to have a good reputation on the network may in fact be a conspirator in a criminal enterprise. Rather than directly robbing counter-parties, the Sybil attacker can use the network to unmask cash-possessing parties and then pass that information on to conspirators who will rob those parties. For example, the Sybil attacker may offer to receive large deposits (or request a large cash delivery) in order to be matched with a user carrying significant quantities of cash, and then relay the identity and location of that user to a criminal gang who will then rob the user of the cash. In some instances, the same exploit may be performed by stealing another user's phone and then requesting a large cash withdrawal. Information that is innocuous in the context of e.g., ridesharing, such as the position of potential providers on a map, could become a serious security risk when those providers are carrying large quantities of cash.
For simplicity, in
In STEP 3905, upon selecting a meeting location, the cryptographic ledger platform directs the cash receiving party to that meeting location. In some embodiments, the location is transmitted to an application on the cash-receiving party's mobile device and immediately displayed, while in other embodiments, the application merely displays turn-by-turn directions. In other embodiments, rather than transmitting the meeting location, the cryptographic ledger platform monitors the cash-receiving party's location and transmits turn-by-turn directions.
In STEP 3910, after or in parallel to directing the cash-receiving party to the meeting location, identifying information of the cash-receiving party is transmitted to the cash-possessing party (e.g., by the cryptographic ledger platform). In one or more embodiments, identifying information provided is data collected during user on boarding, and can include but is not limited to, the name, age, and gender of the cash receiving party. In some embodiments, identifying information about the party's vehicle (e.g., make, model, license-plate number) may also be included to permit identification when the party is inside the vehicle. The identifying information can include representations of the cash-receiving party's appearance, such as a scanned driver's license or a “selfie.”
In one or more embodiments, the reliability of this data may be enhanced by employing event-based challenge response anti-spoofing techniques during its capture. For example, the cryptographic ledger platform can provide an arbitrary QR-code. The user can then take a selfie in a mirror with the device's front camera while displaying the arbitrary QR-code on screen. In some embodiments, the cash-receiving party is also prompted to take a selfie when requesting the in-person meeting. Transmitting that image to the cash-possessing party can enhance recognizability by capturing variations in hairstyle, makeup, clothing, etc. Before being directed to the meeting location, the cash-receiving party may be prompted (e.g., by the cryptographic ledger platform) to compare the new selfie to the data captured during onboarding and, if a discrepancy is recognized, to abort the meeting by notifying the cryptographic ledger platform. In some embodiments, the cryptographic ledger platform may identify discrepancies itself by algorithmically comparing the biometric features captured in the new selfie with the features shown in the onboarding image(s) of the cash-receiving party.
Returning to
In some embodiments, the cryptographic ledger platform may direct the cash possessing party to a pre-meeting location in proximity to the location of the planned exchange. When the cryptographic ledger platform determines that the cash-receiving party has arrived at the meeting location, it may be configured to then direct the cash-possessing party to proceed to the meeting location and perform the visual identity confirmation. In some embodiments, the cryptographic ledger platform may choose a pre-meeting location that has a vantage point on the meeting location (e.g., a bench across the street) so that the cash-possessing party can perform a visual inspection of the cash-receiving party before physically advancing to the meeting location. If while at the pre-meeting location the cash possessing party is able to confirm the identity of the cash-receiving party, in some embodiments the cash-possessing party may request that the cash-receiving party travel to the pre-meeting location for the exchange.
In STEP 3920, it is determined whether the identity of the cash receiving party is confirmed. If so, the process proceeds to STEP 3935. If the identity of the cash receiving party is not confirmed or some indication of failure to identify the party is received, the process proceeds to STEP 3925.
In STEP 3925, if the cash-possessing party is unable to verify the identity of the cash-receiving party, or notices some other “red flag” (e.g., presence of other suspicious individuals, suspicious behavior by the cash-receiving party, etc.), the cash-possessing party uses his or her mobile device to transmit an abort message to the platform. In STEP 3930, the cryptographic ledger platform then cancels the planned exchange. In this way, STEP 3920 may represent lack of verification message rather than an affirmative action in the process of
If the cash-possessing party confirms the identity of the cash receiving party, and feels comfortable proceeding with the in-person exchange, then the cash-possessing party transmits a verification message to the cryptographic ledger platform (STEP 3935). Upon receipt of the verification message, in STEP 3940, the cryptographic ledger platform transmits the identifying information of the cash-possessing party to the cash receiving party, allowing the parties to proceed with currency tender (STEP 3945). Alternatively, the cash-possessing party may approach the cash receiving party and directly reveal his or her identity. In some embodiments, the cryptographic ledger platform may issue the parties a shared identifier in advance (e.g. a word like “Apple”, a transaction number, a QR code, etc.) which the cash-possessing party may recite or display to quickly prove his or her identity.
In STEP 4005, upon selecting a provider, meeting instructions are transmitted to mobile devices of the user and the exchange provider, which include directions to the location of the exchange. The parties meet in person and the party carrying banknotes tenders those notes to the other party (STEP 4006). After inspecting the banknotes and determining that they are acceptable, the party receiving the banknotes transmits the tender-acceptance credential to the cryptographic ledger platform or conveys it to the cash-providing party, who transmits it to the platform (STEP 4007). Upon receiving the acceptance credential, the platform consummates the exchange by modifying all electronic balances affected by the transaction (STEP 4008), including in some embodiments balance adjustments needed for payment of taxes and/or fees.
In some embodiments, as in the example of
As the providers progress towards the meeting location, certain providers may be deemed unlikely to succeed in winning the transaction based on a variety of factors, including but not limited to, their ETA, distance to the meeting location, number of other providers with higher likelihood of success, and their feedback rating. In STEP 4025, the platform transmits cancellation messages to these providers. In one or more embodiments, the platform can be configured to maintain a minimum number of providers in the competition, or may be configured to utilize an algorithm for cancelling providers such that the overall likelihood of consummating the transaction successfully remains above a predefined threshold.
In STEP 4026, notification is received that one of the competing providers has completed the exchange. The transaction is consummated by the platform (STEP 4027), and all remaining competing providers are notified that the transaction is no longer active (STEP 4028).
The top three STEPS displayed in
In STEP 4100, each of the users initially inputs the type, quantity, and substrates of possessed and desired currencies. Next, the user specifies availability conditions such as timing, location, rate, and counterparty identity (STEP 4105). This broad range of offer details is included in
In STEP 4110, the exchange offers from the three users are received by the platform, and the platform determines that User A may engage in a compatible exchange with either User B or with User C (STEP 4115). To emphasize that the method supports multiple currencies, in
Returning to
In STEP 4140, once both users have accepted the proposed exchange, the platform generates and transmits meeting instructions to both users. The users meet in person and the banknotes are tendered for inspection (STEP 4145). When the cash-receiving party's acceptance credential is received (STEP 4150), the platform consummates the exchange by modifying all affected ledger balances (STEP 4155).
In one embodiment of the invention, remittance may be accomplished trivially using the other methods in the disclosure if the recipient is also a user of the platform, merely by converting the sender's local cash into digital money (using proof of cash or proof of balance functionality described above) through an in-person exchange, then transmitting the cryptographic funds to the recipient digitally over the network, and allowing the recipient to then request an in-person exchange of the cryptographic tokens back into the local form of cash. In some embodiments of the invention, a platform user who wishes to receive cash in this manner may initiate the process by transmitting a request to the sending party. However, the process of
In STEP 4200, an exchange request is received from User A specifying Person B as the third-party cash recipient in Country 2. The request may be received by the cryptographic ledger platform of
Returning to
The platform then identifies a provider in Person B's country who is available to deliver cash to Person B in exchange for the funds. In the example of
In STEP 4230, based on the instructions, User D meets User B and tenders the banknotes. User D obtains User B's acceptance credential in exchange for the cash (STEP 4235), and transmits the credential to the platform (STEP 4240), which consummates the exchange by transferring User A's funds to User D (STEP 4245). In some embodiments, the value of the funds transferred to User D will exceed the value of the notes delivered to User B by a margin that compensates User D for the delivery. In some embodiments, a portion of User A's funds may be retained by the cryptographic ledger platform as a fee.
In
For simplicity,
In the initial operation of
In STEP 4300, the terminal generates an identifier for the purchase, such as a transaction number. The identifier may be printed on a receipt or displayed on a screen. The identifier is input into the customer's mobile device, either manually or, e.g., by scanning a QR code in which the identifier is present (STEP 4305). In some embodiments, all necessary transaction information (e.g., total amount due) is embedded within the code scanned by the customer, while in other embodiments the mobile device uses the identifier to query the merchant's POS system and obtain additional transaction information. Alternatively, in embodiments where the merchandise has been input via a mobile application, the identifier may be generated on the mobile device and transmitted to the POS system.
Once the proposed transaction is displayed to the customer on the mobile device, the customer authorizes a payment to the merchant via third-party cash delivery (STEP 4310), and the mobile device transmits the transaction request to a cryptographic ledger platform (e.g.,
In STEP 4325, the platform debits funds from the customer's account, in whatever currency was authorized. In some embodiments, this may be a digital version of the same fiat currency that will be delivered as cash, while in other embodiments it may be a different currency, such as cryptographic currency forked from the local currency. If a different currency is debited, some merchants will prefer not to be exposed to the risk of price fluctuations, so the currency may automatically be converted on an exchange into a digital version of the same currency that will be delivered (e.g., cryptographic currency forked using a proof of cash or proof of balance mechanism described herein). Alternatively, in some embodiments, the platform or other agents on the network may provide collateral or other insurance to protect participating merchants from the risk of exchange-rate fluctuations, avoiding the need for immediate conversion.
In STEP 4330, after debiting funds from the customer's account, the platform issues the customer a proof-of-payment certificate bearing the transaction identifier issued by the merchant's POS terminal. The certificate may be sent by the platform to a mobile application executing on the user's mobile device. The customer is then able to leave the store, using the proof-of-payment certificate to demonstrate that the merchandise has been legitimately acquired. For example, if the store has printed a pre-payment receipt, the customer can show that receipt and the proof-of-payment certificate to a loss-prevention employee at the door. Alternatively, if the list of purchased items is included, the proof-of-payment certificate may be used on its own.
In STEP 4335, when a suitable provider is available, the platform directs the provider to deliver cash to the store in an amount corresponding to the customer's purchase. In a preferred embodiment, the instructions transmitted to the provider's device include a QR code containing the transaction identifier, which is scanned into the POS terminal at the time of cash delivery, enabling the POS system to record that cash delivery for that specific transaction has been completed. In STEP 4340, the POS system transmits a cash-receipt credential to the platform, which credits the funds to the provider's account (STEP 4345). In some embodiments, the credential is a token issued to the POS system by the platform after debiting funds from the customer's account. In other embodiments, the credential is simply a securely signed message containing the transaction identifier.
In STEP 4400, the bailor and bailee initiate a proxy-verification mode within the application, and they link their devices together so that the cryptographic ledger platform can supervise the transaction. In a preferred embodiment, this linkage is established through a screen in the mobile application on the bailee's device displaying a QR code alongside the terms of the offered arrangement, such as a flat fee or percentage of cryptographic tokens verified; to accept those terms, the bailor scans the screen with the bailor's device, and transmits the QR code to the cryptographic ledger platform (e.g.,
Before entrusting the notes to the bailee, the bailor captures the meta-serial numbers via the bailor's device (STEP 4405), Device 1, then transmits a pre-proxy-verification message to the platform listing those meta-serial numbers (STEP 4410). In some embodiments, the meta-serial numbers may be input manually, but in a preferred embodiment they are captured using Device 1's camera, since images too low quality for ultimate proof of cash verification may still be sufficient for preliminary OCR.
In STEP 4415, the platform records the meta-serial numbers of the notes that the bailor will entrust to the bailee, and places a temporary hold on token issuance for those notes outside of proxy verification on the bailee's linked device, Device 2. This hold prevents the bailee or anyone else from surreptitiously removing the tokens with a different device while the notes are in the bailee's care. Once the hold is in place, in STEP 4420, the platform sends a confirmation message to the bailor, instructing the bailor to hand the notes to the bailee.
In STEP 4425, the bailee uses his or her device, Device 2, to perform proof of cash remote verification on the notes, including event-execution and image capture and transmission. In STEP 4430, once all notes have been verified, the platform transmits a proxy-verification completion message to both devices. The bailee returns the notes to the bailor, who sends the platform a message from Device 1 confirming that the notes have been returned (STEP 4435). In the embodiment depicted in
The proxy-verification process shown in
In another alternate embodiment, the owner of Device 2 may become a bailor by entrusting Device 2 to the bill owner, who operates Device 2 in proxy-verification mode linked to the bill owner's account. Rather than requiring a note-return confirmation message before the funds are released, in that embodiment the platform may require a device-return confirmation message from the owner of Device 2, authenticated by a security factor other than possession of the device itself, such as a password or fingerprint. Upon receiving the authenticated device-return confirmation message, the platform releases the funds to the bill owner's account.
The first exemplary embodiment, shown in
In STEP 4501, User B transfers the funds into a time-locked cryptographic vault. In this example, the vault is a smart contract that prevents User B from reclaiming the funds during the time-lock period. Once the time-lock period expires, User B can recover the funds using its private key. During the time-lock period, a different private key controlled by User B, the cash-acceptance key, can be used to transfer the funds to an account controlled by User A. In some embodiments, User B may know the public key corresponding to a private key controlled by User A, and is thereby able to specify User A's address in the smart contract. In other embodiments, the vault contract may specify a smart contract requiring some other security-factor(s) of User A, such as biometric verification or control of User A's email address or social-media accounts. Alternatively, the vault contract may specify an address controlled by a reliable third-party such as a bank or escrow company, with directions to hold the funds until User A claims them.
For simplicity, it has been assumed that the countdown to expiration of the time-lock period begins when the funds are deposited in the vault. In an alternate embodiment, the countdown is not initiated until User B attempts to reclaim the funds using its private key. During the pendency of that transaction, User A may transmit the private cash-acceptance key and the funds will instead be transferred to User A's account.
In STEP 4502, once User B's funds have been deposited in the vault, the platform uses its private key to sign a certificate confirming the presence of the funds in the vault and the terms of the vault contract. In STEP 4503, User B takes this certificate and travels into the area without network connectivity where the exchange with User A will occur.
When Users A and B meet, in STEP 4504, User A picks an unpredictable text and conveys it to User B. The content of the text is irrelevant, as long as User B could not have known it in advance. For example, User A may invent a knock-knock joke and tell it to User B. In one embodiment, the unpredictable text is a pseudo-random alphanumeric code generated by User A's device.
In STEP 4505, User B uses a mobile application to create a new message. The message is created by the mobile application by appending the unpredictable text to the vault certificate, then signing that message with the cash-acceptance key. This demonstrates that User B possesses the cash-acceptance key, because incorporation of the unpredictable text as an input means that the signed message could not have been generated earlier by another party who possessed the cash-acceptance key.
User B provides the signed message to User A. In STEP 4506, User A is able to verify the authenticity of the vault certificate by confirming that the signature matches the public key stored on User A's device. The authenticated certificate includes the public cash-acceptance key from the vault contract, which User A uses to verify the message signature that User B created using the private cash-acceptance key (STEP 4507). The certificate also specifies when the time-lock period expires, which allows User A to confirm that he or she will have sufficient time to return to an area with network connectivity before the vault unlocks.
In STEP 4508, User A tenders the cash to User B, who accepts it by providing the private cash-acceptance key to User A (STEP 4509). User A verifies the private cash-acceptance key using the public cash-acceptance key from the authenticated vault certificate (STEP 4510). Once that verification is complete, User B is free to leave with User A's cash (STEP 4511). In STEP 4512, before the end of the time-lock period, User A travels to an area with network connectivity and uses the private cash-acceptance key to transfer the funds from the vault into the account designated by the vault contract (STEP 4513).
In STEP 4554, when Users A and B meet, User A tells User B the quantity of cash that will be provided. User B then uses that number to determine the quantity of funds that must be provided to User A, then selects a set of vaults that collectively contain that quantity of funds (STEP 4555). The unpredictable text provided by User A is combined with those vaults' certificates, and User B then signs the message with the cash acceptance key for each of the selected vaults. In one embodiment, all of the selected vaults' certificates are ordered and concatenated, then the unpredictable text is appended to create the message contents, then the cash-acceptance key for the first certificate is used to sign the message, then that signed message is signed with the cash-acceptance key for the second certificate, and so on in a pattern that iterates until the final message is signed using the cash-acceptance key corresponding to the last certificate.
The remainder of the method of
In some embodiments, the method shown in
In another alternate embodiment, rather than User B demonstrating control of the vault funds by signing an unpredictable message with the private cash-acceptance key, User B's identity may be specified in the vault certificate signed by the cryptographic ledger platform. The certificate may either enable User A to directly recognize User B, such as by including a passport-style photograph or other biometric, or it may reference a unique identifier on a trusted physical credential, such as a passport.
In one embodiment, to prevent User B from fraudulently reclaiming the vault funds if User A fails to regain network connectivity before the vault's time-lock period expires, the time lock is replaced with a multi-signature vault contract from which funds can only be transferred using a cash-acceptance private key controlled by User B and a separate private key controlled by User A. In one embodiment, to prevent User B's funds from being trapped in the vault in the event of User A's disappearance, the signature requirements for unlocking the vault may be loosened (e.g. by entrusting a third key to a trusted third party and requiring 2/3 signatures to transfer the vault funds).
In the exemplary embodiment of
The first difference from
The cryptographic ledger platform certifies the bond using the same private key it uses to sign the vault certificate, so User A is able to verify both certificates using its stored copy of the corresponding public key. In STEP 4630, User B concatenates the text with both the bond and vault certificates and signs a new message with the cash acceptance key. After transferring the cash-acceptance key, in STEP 4655, User B signs a message with the private bond key pledging not to remove the vault funds, and User A verifies the signature using the public bond key listed on the authenticated bond certificate (STEP 4660). It is still preferable for User A to guarantee the security of its funds by regaining network connectivity and transmitting the cash-acceptance key before the vault's time lock expires, but if the cash-acceptance key is not transmitted in time and User B steals the funds from the vault (STEP 4670), then User A can obtain compensation by transmitting proof of the theft before the bond's long-term time lock expires (STEPS 4680 and 4685).
In one or more embodiments, a single bond is used to guarantee multiple vault-based transactions with diverse counterparties, and if a single counterparty transmits the requisite proof of fraud, the cryptographic ledger platform blacklists User B and seizes the bond funds to provide compensation for other fraud victims who may emerge. In one or more embodiments, rather than immediately transferring full compensation to the first victim to demonstrate proof of fraud, the bond contract may be configured with a post-fraud time lock so that other victims have an opportunity to transmit their proofs of fraud, and in the event that the proven losses exceed the bond amount, the funds may be distributed pro rata.
In one or more embodiments, rather than merely pledging not to steal the vault funds, User B may use a private key designated by the bond contract to pledge that it will use the cash-acceptance key to release the vault funds to User A before a specified time (e.g., expiration of the vault's time-lock), and the bond contract may be configured to provide compensation for violation of that pledge.
Although
In the exemplary embodiment of
As in
A vault certificate is created and authenticated using the same sub-methods shown in
For simplicity, only a single vault and note are shown in
In some embodiments of the method shown in
Embodiments of the invention may have one or more of the following advantages. One challenge in bootstrapping cryptographic currencies is the problem of staking asynchrony, in which early adopters of a virtual currency are able to acquire disproportionately large stakes relative to later users, since growth in the popularity of the new currency alters the value of both the ledger's native asset and the resource staked to acquire it. For example, in the year 2018, billions of US Dollars' worth of capital would be needed to acquire sufficient SHA-256 hashing power necessary to mine a material fraction of contemporary Bitcoin coinbases, whereas equivalent Bitcoin currency could have been mined in 2009 using a single personal computer. This limits the public adoption of all cryptocurrencies, since it causes them to function like pyramid schemes, where early adopters reap huge rewards and late comers are penalized.
Worse, it produces security vulnerabilities in proof of stake-based ledgers, wherein consensus is reached by weighing votes according to ownership of assets within some designated staking resource(s). The consensus algorithms employed by such ledgers rely on the axiom that no malicious actor can acquire a stake greater than a minimum threshold (e.g. ½ or, if message delivery time is unbounded, ⅓), so it is often assumed that the cost of subverting such a ledger is at least that fraction of the staking resource's present market capitalization. In reality, staking asynchrony means that a >50% stake valued at billions of dollars today could have been acquired for virtually nothing during the early stages of a bootstrapped cryptocurrency. A malicious actor possessing such a stake would rationally maximize the value of its initial attack by allowing the value of the ledger it secretly controls to grow as much as possible before revealing its ability to subvert the consensus mechanism; thus, the apparent security of a proof of stake cryptocurrency in the past is not reliable evidence about the present or future integrity of its consensus system.
The aforementioned proof of balance and proof of cash systems mitigate the problem of staking asynchrony by preventing severely imbalanced stake distribution and by correcting the incentives for participation in the cryptographic ledger platform to prevent a handful of early adopters from acquiring control. Furthermore, by piggybacking on the distribution of one or more fiat currencies, the mechanism for bootstrapping the cryptographic currency can rely upon a token of value with existing wide distribution.
A related problem to staking asynchrony involves the accuracy of the system at detecting counterfeit notes. The more exemplar data is available to the proof of cash module (e.g., 120 of
Unfortunately, this creates a window of vulnerability that may be exploited. Adversaries who know that the anti-counterfeiting abilities of the network will be at their nadir when first launched may devote all their resources to scanning counterfeit bills during that period, thereby acquiring large ill-gotten stakes of cryptographic tokens. Rather than using proof of cash functionality alone, a system utilizing proof of balance functionality disclosed herein can mitigates this problem by preventing counterfeiters from exploiting the proof of cash system to obtain disproportionate advantage in the network. In one or more embodiments of the invention, the cryptographic ledger platform 100 of
Another advantage of utilizing proof of balance mechanisms disclosed herein is that some users may not have access to mobile devices whose sensors are accurate enough to complete proof of cash verification. Proof of balance technology mitigates the risk of theft of physical cash and can be effected without specific mobile device hardware.
Another major obstacle is the chicken-and-egg problem of how to make a cryptographic currency useable as money in the real world, given that consumers only want to use forms of money that merchants accept, while merchants only accept forms of payment consumers want. One existing solution implemented by digital exchanges like Coinbase is software that connects users' smartphones to Point-of-Sale terminals via NFC or QR-codes so that users may pay in cryptocurrency like Bitcoin. Because the cryptocurrency can be immediately converted into fiat money via the exchange at the time of payment, merchants are able to quote prices in fiat money, while processing transactions from customers who wish to pay in cryptocurrency, and avoiding the volatility of actually holding cryptocurrency for an extended period.
One limitation of these systems is that they require merchants to receive the ultimate fiat payment either in an account at the participating exchange or in an account at some other financial institution. This makes it impractical for these systems to be implemented in many regions of the developing world, where billions of people, including merchants, are underserved by traditional banking infrastructure. Proof of cash systems disclosed herein can enable merchants to receive cryptographic currency payments by accepting local fiat banknotes. Fiat banknotes having corresponding cryptographic tokens enclosed thereon can be a useful tool for merchant adoption, providing a physical “account” resource for safe storage and retrieval of cryptographic token balances.
Even in the developed world, cryptographic money has been unable to reach mass adoption in part because a consumer with cryptocurrency stored on a smartphone has no practical means of using the money to acquire goods and services in person from businesses. Payments can only be made to the small number of merchants who have gone out of their way to integrate crypto-enabled payment systems into their point-of-sale terminals. Even then, a coincidence of wants must exist between the particular crypto-payment platform adopted by the merchant and user. An equivalent problem has prevented smartphone-based payment systems such as Apple Pay and Samsung Pay from replacing older payment systems such as credit and debit cards, since there are strong network effects favoring incumbent payment technologies. Proof of cash technology disclosed herein circumvents complicated payment system requirements and expensive transaction fees. For example, the proof of cash module 120 of
While the present disclosure sets forth various embodiments using specific block diagrams, flowcharts, and examples, each block diagram component, flowchart step, operation, and/or component described and/or illustrated herein may be implemented, individually and/or collectively, using a wide range of hardware, software, or firmware (or any combination thereof) configurations. In addition, any disclosure of components contained within other components should be considered as examples because other architectures can be implemented to achieve the same functionality.
The process parameters and sequence of steps described and/or illustrated herein are given by way of example only. For example, while the steps illustrated and/or described herein may be shown or discussed in a particular order, these steps do not necessarily need to be performed in the order illustrated or discussed. Some of the steps may be performed simultaneously. For example, in certain circumstances, multitasking and parallel processing may be advantageous. The various example methods described and/or illustrated herein may also omit one or more of the steps described or illustrated herein or include additional steps in addition to those disclosed.
Embodiments may be implemented on a specialized computer system. The specialized computing system can include one or more modified mobile devices (e.g., laptop computer, smart phone, personal digital assistant, tablet computer, or other mobile device), desktop computers, servers, blades in a server chassis, or any other type of computing device(s) that include at least the minimum processing power, memory, and input and output device(s) to perform one or more embodiments.
For example, as shown in
In one or more embodiments, the computer processor(s) 4802 may be an integrated circuit for processing instructions. For example, the computer processor(s) 4802 may be one or more cores or micro-cores of a processor. The computer processor(s) 4802 can implement/execute software modules stored by computing system 4800, such as module(s) 4822 stored in memory 4804 or module(s) 4824 stored in storage 4806. For example, one or more of the modules described in
The computing system 4800 may also include one or more input device(s) 4810, such as a touchscreen, keyboard, mouse, microphone, touchpad, electronic pen, or any other type of input device. Further, the computing system 4800 may include one or more output device(s) 4812, such as a screen (e.g., a liquid crystal display (LCD), a plasma display, touchscreen, cathode ray tube (CRT) monitor, projector, or other display device), a printer, external storage, or any other output device. The computing system 4800 may be connected to a network 4820 (e.g., a local area network (LAN), a wide area network (WAN) such as the Internet, mobile network, or any other type of network) via a network interface connection 4818. The input and output device(s) may be locally or remotely connected (e.g., via the network 4820) to the computer processor(s) 4802, memory 4804, and storage device(s) 4806.
One or more elements of the aforementioned computing system 4800 may be located at a remote location and connected to the other elements over a network 4820. Further, embodiments may be implemented on a distributed system having a plurality of nodes, where each portion may be located on a subset of nodes within the distributed system. In one embodiment, the node corresponds to a distinct computing device. Alternatively, the node may correspond to a computer processor with associated physical memory. The node may alternatively correspond to a computer processor or micro-core of a computer processor with shared memory and/or resources.
For example, one or more of the software modules disclosed herein may be implemented in a cloud computing environment. Cloud computing environments may provide various replicated services and applications accessible via the Internet. These cloud-based services (e.g., software as a service, platform as a service, infrastructure as a service, etc.) may be accessible through a Web browser or other remote interface.
One or more elements of the above-described systems (e.g.,
It is understood that a “set” can include one or more elements. It is also understood that a “subset” of the set may be a set of which all the elements are contained in the set. In other words, the subset can include fewer elements than the set or all the elements of the set (i.e., the subset can be the same as the set).
While the invention has been described with respect to a limited number of embodiments, those skilled in the art, having benefit of this disclosure, will appreciate that other embodiments may be devised that do not depart from the scope of the invention as disclosed herein.
Claims
1. A system for creating a forked version of an original fiat currency in a digital ledger based on stake in the original fiat currency, the system comprising:
- a balance interface module configured to: receive, from a remote computing device, data indicating that a portion of the original fiat currency was associated with a first user at one or more elapsed times within a staking period; a proof of balance engine configured to: designate the staking period representing a window of time; determine, based on the data received, an external stake in the original fiat currency attributed to the first user, wherein the external stake represents an amount of ownership in the original fiat currency; calculate a first stake of ownership for the first user in the forked version of the original fiat currency by applying a first conversion rate to the external stake; alter, after commencement of the staking period, a state of the digital ledger to record the first stake of ownership, wherein the first stake of ownership enables participation in a consensus protocol for the digital ledger that assigns voting power in proportion to stakes in the forked version of the original fiat currency; and identify a snapshot of the digital ledger corresponding to a conclusion of the staking period, wherein at least a portion of the first stake of ownership in the forked version of the original fiat currency is programmatically unlocked based on identifying the snapshot.
2. The system of claim 1, the balance interface module further configured to:
- calculate, during the staking period, a size of the external stake in the original fiat currency based on a plurality of stake values corresponding to segments within the window of time, wherein weights assigned to the segments are either equal or varied, and wherein calculating the size of the external stake is performed using at least one selected from a group consisting of smallest stake size, greatest stake size, mean stake size, median stake size, and most frequent stake size.
3. The system of claim 1, the balance interface module further configured to:
- receive, after altering the state of the digital ledger and during the staking period, a set of data from the remote computing device indicating that a portion of the original fiat currency was associated with a second user at one or more elapsed times; and
- the proof of balance engine further configured to: verify authenticity of at least a subset of the set of data based on a defined validation procedure; determine, based on the authenticated subset of the set of data, a second stake in the original fiat currency attributed to the second user; calculate a size of the second stake in the original fiat currency based on a plurality of stake values of the second user corresponding to segments within the defined window of time; and alter, after altering the first state of the digital ledger, a second state of the digital ledger based on the size of the second stake in the original fiat currency.
4. The system of claim 1, the balance interface module further configured to:
- receive, in advance of an advance staking period representing a second defined window of time preceding the defined window of time, authorization to verify a second stake in the fiat currency;
- receive, after a commencement of the second defined window of time, a set of data indicating that a second portion of the original fiat currency was associated with the first user at a second set of times;
- the proof of balance engine further configured to: designate the advance staking period representing the second defined window of time preceding the defined window of time; verify, based on a defined validation procedure, authenticity of at least a subset of the set of data received; determine, based on the authenticated subset of the set of data, a size of a second stake in the original fiat currency attributed to the first user based on a plurality of stake values of the first user corresponding to a set of segments within the second defined window of time; and alter a second state of the digital ledger to reward the first user for early participation based on the size of the second stake in the original fiat currency during the advance staking period.
5. The system of claim 1, wherein multi-currency staking is supported, the balance interface module further configured to:
- receive, from the remote computing device, a set of data indicating that a portion of the second fiat currency was associated with a second user at a second set of elapsed times;
- the proof of balance engine further configured to: designate a second staking period for a second fiat currency, wherein the second staking period represents a second defined window of time; verify, based on a defined validation procedure, authenticity of at least a subset of the set of data received; determine, based on the authenticated subset of the set of data, a size of a second stake in the second fiat currency attributed to the second user based on a plurality of stake values of the second user corresponding to a set of segments within the second defined window of time; and identify an exchange rate between the first fiat currency and the second fiat currency; and alter a second state of the digital ledger based on (i) the size of the stake in the second fiat currency and (ii) the exchange rate.
6. The system of claim 1, wherein the portion of the original fiat currency associated with the first user comprises funds in an account at a financial institution, wherein the data received is a financial record disclosing a balance of the account at one or more times, and wherein determining the external stake comprises verifying that the data was transmitted by the remote computing device with access to records of the account at the financial institution.
7. The system of claim 1, wherein the portion of the fiat currency associated with the first user comprises at least one specific serialized banknote, wherein the remote computing device is a mobile device associated with the first user, wherein the data received is at least one selected from a group consisting of sensor data captured by the mobile device while scanning the banknote and an output from programmatic analysis of sensor data captured by the mobile device while scanning the banknote, and wherein determining the external stake comprises verifying that the mobile device is associated with the first user.
8. The system of claim 7, further comprising:
- the mobile device configured to: execute one or more authentication events, wherein consequences of the authentication events are captured during the scanning of the banknote; and the proof of balance engine further configured to: programmatically detect, in the sensor data, presence of one or more anti-spoofing indicators and presence of one or more anti-counterfeiting indicators, wherein at least a single detected indicator relates to an authentication event of the one or more authentication events.
9. A method for creating a forked version of an original fiat currency in a digital ledger based on stake in the original fiat currency, comprising:
- designating a staking period representing a window of time;
- receiving, from a remote computing device, data indicating that a portion of the original fiat currency was associated with a first user at one or more elapsed times within the staking period;
- determining, based on the data received, an external stake in the original fiat currency attributed to the first user, wherein the external stake represents an amount of ownership in the original fiat currency;
- calculating a first stake of ownership for the first user in the forked version of the original fiat currency by applying a first conversion rate to the external stake;
- altering, after commencement of the staking period, a state of the digital ledger to record the first stake of ownership, wherein the first stake of ownership enables participation in a consensus protocol for the digital ledger that assigns voting power in proportion to stakes in the forked version of the original fiat currency; and
- identifying a snapshot of the digital ledger corresponding to a conclusion of the staking period, wherein at least a portion of the first stake of ownership in the forked version of the original fiat currency is programmatically unlocked based on identifying the snapshot.
10. The method of claim 9, further comprising:
- calculating, during the staking period, a size of the external stake in the original fiat currency based on a plurality of stake values corresponding to segments within the window of time, wherein weights assigned to the segments are either equal or varied, and wherein calculating the size of the external stake is performed using at least one selected from a group consisting of smallest stake size, greatest stake size, mean stake size, median stake size, and most frequent stake size.
11. The method of claim 9, further comprising:
- receiving, after altering the state of the digital ledger and during the staking period, a set of data from the remote computing device indicating that a portion of the original fiat currency was associated with a second user at one or more elapsed times;
- verifying authenticity of at least a subset of the set of data based on a defined validation procedure;
- determining, based on the authenticated subset of the set of data, a second stake in the original fiat currency attributed to the second user;
- calculating a size of the second stake in the original fiat currency based on a plurality of stake values of the second user corresponding to segments within the defined window of time; and
- altering, after altering the first state of the digital ledger, a second state of the digital ledger based on the size of the second stake in the original fiat currency.
12. The method of claim 9, further comprising:
- designating an advance staking period, representing a second defined window of time preceding the defined window of time;
- receiving, in advance of the second defined window, authorization to verify a second stake in the fiat currency;
- receiving, after a commencement of the second defined window, a set of data indicating that a second portion of the original fiat currency was associated with the first user at a second set of times;
- verifying, based on a defined validation procedure, authenticity of at least a subset of the set of data received;
- determining, based on the authenticated subset of the set of data, a size of a second stake in the original fiat currency attributed to the first user based on a plurality of stake values of the first user corresponding to a set of segments within the second defined window of time; and
- altering a second state of the digital ledger to reward the first user for early participation based on the size of the second stake in the original fiat currency during the advance staking period.
13. The method of claim 9, wherein multi-currency staking is supported, the method further comprising:
- designating a second staking period for a second fiat currency, wherein the second staking period represents a second defined window of time;
- receiving, from the remote computing device, a set of data indicating that a portion of the second fiat currency was associated with a second user at a second set of elapsed times;
- verifying, based on a defined validation procedure, authenticity of at least a subset of the set of data received;
- determining, based on the authenticated subset of the set of data, a stake in the second fiat currency attributed to the second user;
- calculating a size of the stake in the second fiat currency based on a plurality of stake values of the second user corresponding to a set of segments within the second defined window of time;
- identifying an exchange rate between the first fiat currency and the second fiat currency; and
- altering a second state of the digital ledger based on (i) the size of the stake in the second fiat currency and (ii) the exchange rate.
14. The method of claim 9, wherein the portion of the original fiat currency associated with the first user comprises funds in an account at a financial institution, wherein the data received is a financial record disclosing a balance of the account at one or more times, and wherein determining the external stake comprises verifying that the data was transmitted by the remote computing device with access to records of the account at the financial institution.
15. The method of claim 9, wherein the portion of the fiat currency associated with the first user comprises at least one specific serialized banknote, wherein the remote computing device is a mobile device associated with the first user, wherein the data received is at least one selected from a group consisting of sensor data captured by the mobile device while scanning the banknote and an output from programmatic analysis of sensor data captured by the mobile device while scanning the banknote, and wherein determining the external stake comprises verifying that the mobile device is associated with the first user.
16. The method of claim 15, further comprising:
- executing one or more authentication events on at least one selected from a group consisting of the mobile device and a linked computing device, wherein consequences of the authentication events are captured during the scanning of the banknote; and
- programmatically detecting, in the sensor data, presence of one or more anti-spoofing indicators and presence of one or more anti-counterfeiting indicators, wherein at least a single detected indicator relates to an authentication event of the one or more authentication events.
17. A non-transitory computer-readable storage medium comprising a plurality of instructions for creating a forked version of an original fiat currency in a digital ledger based on stake in the original fiat currency, the plurality of instructions configured to execute on at least one computer processor and enable the computer processor to:
- designate a staking period representing a window of time;
- receive, from a remote computing device, data indicating that a portion of the original fiat currency was associated with a first user at one or more elapsed times within the staking period;
- determine, based on the data received, an external stake in the original fiat currency attributed to the first user, wherein the external stake represents an amount of ownership in the original fiat currency;
- calculate a first stake of ownership for the first user in the forked version of the original fiat currency by applying a first conversion rate to the external stake;
- alter, after commencement of the staking period, a state of the digital ledger to record the first stake of ownership, wherein the first stake of ownership enables participation in a consensus protocol for the digital ledger that assigns voting power in proportion to stakes in the forked version of the original fiat currency; and
- identify a snapshot of the digital ledger corresponding to a conclusion of the staking period, wherein at least a portion of the first stake of ownership in the forked version of the original fiat currency is programmatically unlocked based on identifying the snapshot.
18. The non-transitory computer-readable storage medium of claim 17, the plurality of instructions further configured to enable the computer processor to:
- calculate, during the staking period, a size of the external stake in the original fiat currency based on a plurality of stake values corresponding to segments within the window of time, wherein weights assigned to the segments are either equal or varied, and wherein calculating the size of the external stake is performed using at least one selected from a group consisting of smallest stake size, greatest stake size, mean stake size, median stake size, and most frequent stake size.
19. The non-transitory computer-readable storage medium of claim 17, the plurality of instructions further configured to enable the computer processor to:
- receive, after altering the state of the digital ledger and during the staking period, a set of data from the remote computing device indicating that a portion of the original fiat currency was associated with a second user at one or more elapsed times;
- verify authenticity of at least a subset of the set of data based on a defined validation procedure;
- determine, based on the authenticated subset of the set of data, a second stake in the original fiat currency attributed to the second user;
- calculate a size of the second stake in the original fiat currency based on a plurality of stake values of the second user corresponding to segments within the defined window of time; and
- alter, after altering the first state of the digital ledger, a second state of the digital ledger based on the size of the second stake in the original fiat currency.
20. The non-transitory computer-readable storage medium of claim 17, the plurality of instructions further configured to enable the computer processor to:
- designate an advance staking period, representing a second defined window of time preceding the defined window of time;
- receive, in advance of the second defined window, authorization to verify a second stake in the fiat currency;
- receive, after a commencement of the second defined window, a set of data indicating that a second portion of the original fiat currency was associated with the first user at a second set of times;
- verify, based on a defined validation procedure, authenticity of at least a subset of the set of data received;
- determine, based on the authenticated subset of the set of data, a size of a second stake in the original fiat currency attributed to the first user based on a plurality of stake values of the first user corresponding to a set of segments within the second defined window of time; and
- alter a second state of the digital ledger to reward the first user for early participation based on the size of the second stake in the original fiat currency during the advance staking period.
Type: Application
Filed: Oct 18, 2021
Publication Date: Feb 3, 2022
Applicant: KRNC Inc. (Claremont, CA)
Inventor: Clinton Edward Ehrlich-Quinn (Claremont, CA)
Application Number: 17/504,334