Electronic Payment Systems 20-763

Homework 1

M. Shamos

 

Due: April 2, 2004

 

General homework policies:

            You are encouraged to work together to discuss the problems and solve them.  However, every paper you turn in must be created completely by you alone.  You may not share written work, nor may you copy answers from any source other than your own brain.

            You must list on your homework paper the name of every person you worked with.  If you answer includes content from any other source, you must state the source.  Failure to do so is cheating and will result in sanctions.  Copying answers from someone else and listing their name on the homework is also cheating.

If there is information you need to solve a problem but the information is not stated in the problem, try to find the data somewhere.  If you cannot find it, state what data you need, make a reasonable estimate of its value, and justify any assumptions you make.  You will be graded not on whether your answer is correct, but whether you have done an intelligent analysis.

            Only answer the questions that are asked.  Do not answer questions that are not asked, and do not waste your time on peripheral discussions of minor issues.   If a short answer (such as yes or no or a number) is called for, you must always explain your answer.  Answers that happen to be correct but have no explanation will receive little credit.  Answer that happen to be wrong but whose explanations indicate sound reasoning will receive substantial credit.  Once you have explained your answer, however, extra material is neither desirable nor helpful.

            Grading: Homework will not be re-graded except in cases of “manifest error.”  A manifest error is one that is immediately apparent on inspection of the paper.  Examples are: a numerical error in adding up the individual question scores, marking an answer wrong when it is fact right, or failing to write in a score for an individual question.  Homework answers will not be re-examined subjectively to determine whether a question should have received a different number of points.

            All homework must be submitted in machine-readable form, preferably in Microsoft Word, by email to jieh@cs.cmu.edu with a copy to shamos@cs.cmu.edu.  The page count next to each problem’s point value is merely a suggestion of how long an appropriate answer might be.  You are free to write more or less provided that you answer the questions.

 

This homework is worth a total of 250 points.

 

Problem 1.  [150 points, 2-3 pages]  Offline RTGS

A problem with real-time gross settlement (RTGS) is that every transaction must be processed individually.  If a bank, intermediary or payment provider is required for each transaction, then the load on its system will be very large and the consequences of system failure will  be disastrous, since no payments can be processed if the system is down.

 

Here is a proposal for a RTGS system that does not use an intermediary.  Each user will have a piece of trusted software (a “wallet”).  Each wallet will have a unique serial number and a unique public-private key pair.  The wallet contains a counter indicating how much money it holds.  The wallet is loaded by visiting a bank online and asking for funds to be deposited in the wallet from the user’s bank account.  (Assume this can be done securely.)  The bank verifies that the wallet is genuine and deducts $X from the user’s account and adds $X to the counter in the wallet.

 

When the user wants to spend $Y with an online merchant, the user’s wallet and the merchant’s wallet first authenticate each other to verify that each one is genuine wallet.  Then the user directs his wallet to transfer $Y to the merchant’s wallet.  This is done by subtracting $Y from the user wallet and adding $Y to the merchant wallet.  Assume all of this is secure and that it is safe from hacking and replay attacks.

 

Observe that this system can also work between handheld devices, such as a cellphone and a Coke machine, since no access to any third party is needed at the time of payment.

 

Once the merchant has the user’s money in his wallet, he can spend it immediately online if he wants to.  However, most merchants would rather have the money in their bank account so it can be invested or so checks can be written against it.  Assume that the user’s bank is different from the merchant’s bank.  That means that some mechanism must be found to move $Y into the merchant’s bank account.

 

Design an efficient procedure that will allow anyone whose wallet contains a positive balance to deposit any or all of it to his bank account.  This is not so easy because you will have to deal with such issues as whose account the money comes from, how the receiving bank will find out, how the order is sent to cause the money to be paid, how the balance in the wallet is adjusted, and so forth.

 

(a) [75 points, 1-2 pages]  Explain your design in words and with a flow diagram.

(b) [75 points, 1 page]  List all the important steps in the process of moving money from the wallet to the bank account.  You must describe each step clearly; in particular you must tell exactly how money will arrive in the user’s bank account.

 

You may assume the existence of all the systems (like ACH, Fedwire, CHIPS, etc.) we discussed in the first three lectures and may use any or all of them, if appropriate.  If your solution requires a system that does not exist, describe what you need and how it would work.  In this problem you should ignore computer security and authentication issues – don’t talk about them at all.   There are many possible solutions; you should choose one that is the most efficient.

 

Problem 2. [100 points, 1-2 pages]   Simplifying Foreign Exchange.

A huge fraction of the world’s foreign exchange involves trading between U.S. dollars (USD) and Euros (EUR), the currency of the European Union.  To simplify such trading, suppose the U.S. central bank (the Federal Reserve) decides to allow its member banks to maintain Federal Reserve balances in both USD and EUR.  (A similar function is already allowed in Hong Kong, where it is possible to maintain balances in both USD and HKD.)

 

(a) [75 points]  Show how it would be possible to trade USD for EUR using only two banks, both of which are in the U.S.: the EUR buyer’s bank and the USD seller’s bank.  List the steps necessary for a buyer of EUR who has USD and EUR accounts in Bank B to buy EUR from a seller of EUR who has USD and EUR accounts in Bank S.  Your list should include any changes to the balances in the these four accounts and also the changes to the USD and EUR balances of Banks B and S in the Federal Reserve.  Note that balances in eight accounts change.

 

(b) [25 points]  In a “normal” foreign exchange (before the Federal Reserve allowed EUR accounts), list all the bank accounts that changed during a foreign exchange involving a buyer of EUR who is not a bank and a seller of USD who is not a bank.  Include the accounts not only of the parties in their own banks, but those banks’ accounts with their central bank.