WebCoin: A Conceptual Model of a Micropayment System

Xiang Shao, School of Information Technology, Griffith University, QLD, 9726. Email: X.Shao@griffith.edu.au

Dr Anne Thuy-Anh Nguyen, School of Information Technology, Griffith University, QLD, 9726. Email: A.Nguyen@griffith.edu.au

Dr Vallipuram Muthukkumarasamy, School of Information Technology, Griffith University, QLD, 9726. Email: V.Muthu@griffith.edu.au

Abstract

Micropayments, which are of tiny value and high volumes, are too small to warrant the cost of the current electronic financial transactions. The proliferation of value added content providers over the global information infrastructure, and the easy access to ubiquitous networking certainly demands a micropayment system, which is cost effective, secure and easy to use. In this paper we propose an efficient micropayment system, which is mainly based on simple hash functions and digital signature rather than relying on computationally more complex and costly cryptographic algorithms. The proposed WebCoin system’s architecture and protocols are explained in detail.

1. Introduction

The traditional payment systems currently used by most e-commerce sites are not suitable for high-volume, tiny-valued transactions. When delivering low cost information with a value of only a few cents or even lower, such as a piece of music or an article in a magazine, the traditional electronic payment approach is far from ideal. On the contrary, digital order and delivery require, in most cases, a method of instant payment without high overhead cost and time lags. It is obvious that an efficient system to handle this trade is needed. As the transactions concerned involve only very small amounts of money, such a payment is called micropayment (Manasse, 1995; Rvest and Shamir, 1996; Yen and Kuo, 1998).

The design of a micropayment system is usually quite different from that of the traditional electronic payment system. In a typical former system, a customer makes a purchase and gives a small payment to a merchant over the Internet. The merchant then has to verify it before providing services to the customer. Rivest and Shamir (1996) have proposed a micropayment system called Payword that allows customer to purchase small valued products over the computer network. Cryptographic techniques such as digital signature and one-way hash function are used in their micropayment system. Similar applications of these techniques can be found in Glassman et al (1995), Yen and Kuo (1998), and Lee and Kim (2002).

There are some alternatives or improved approaches based on the concept of Payword, such as MicroMint (Rivest and Shamir, 1996), Wenbo Scheme (Mao 1996), NetPay (Dai and Lo, 1999) and so on. Although hash chained payword was soon developed for multiple shopping by several payment schemes, a strong cryptography and computation burden at both the user and vendor sides still exist. The heavy computation is a direct consequence of generating and verifying digital signature, as well as computing hash function. Most of the micropayment systems are still in proposal or in trial stages. Sometimes they may not yet move to an operational status due to security doubts and risks involved, for example double-spending and low anonymity problems. Up to now, there is no single solution that has found a wider acceptance. In the next section, we will propose and analyse a conceptual model of a micropayment system and its protocol. Discussion on system efficiency and security analyses follows in Section 3.

 

2. WebCoin: a Proposed Micropayment System Model

A general micropayment system named WebCoin is proposed in this section. It is an efficient, secure, easily available, and debit-based model of a micropayment system, which can be used for purchasing online information and services on a pay-per-click basis via the Internet.

2.1 Entities of WebCoin System

The WebCoin micropayment system consists of three main players: user, vendor (e.g. online merchants) and broker. The system’s net server acts as a broker. WebCoin provides an offline micropayment model using lightweight hashing-based encryption. Only users and vendors are involved in each payment transaction. The broker is responsible for the registration of users and vendors, the detection of user’s double-spending and vendor’s over-charging, and the maintenance of vendors’ and users’ accounts.

In the WebCoin system, a user has to register with the broker and applies for an account. Before the user asks a vendor for service, he has to create coin chains that act as the currency payable to the vendor. The latter then needs to inspect to ascertain that the user is legal and that the coin chains are legitimately generated. Afterwards, the vendor collects the user’s coins and redeems the payment from the broker. Figure 1 portrays the basic architecture of the proposed WebCoin model and the relationships among the players.

In this model, it is assumed that the broker is honest and is trusted by both the users and the vendors. The vendors are less trusted and the users may or may not be honest. There is no dependency on user trust in this approach.

Figure 1: WebCoin system architecture

2.2 WebCoin Protocol

For the purpose of clear notation, the symbols required in the system are defined as follows: the Broker, User and Vendor are represented as B, U, and V, respectively. Their corresponding public keys are denoted as , , , and the private keys, , , . The user-shared-key is abbreviated as USK. The hash-chain coin is represented by , where i = 1, 2, …, n. A signed message M can be denoted as {M}SK while a message encrypted by user-shared-key as {M}USK. In order to make the user-created coins payable to multiple vendors, the value of each coin is required to be the same and small, for example, 1 cent. The value could be re-defined according to the requirements of different systems. To reduce the computation burden of the hash function both in coin generation at the user side and in coin verification at the vendor side, we introduce a double-chain to create coins and a coin index to keep track of them. Two hash functions h1 and h2 are used and the coin chains generated by h1 and h2 are represented as one-unit chain - , and ten-unit chain - , respectively. The indexes of the spent coin ( and ), g and k correspondingly, will be recorded at both the user and vendor sides for further debit and credit processing.

The WebCoin protocol consists of four phases: (a) the registration, (b) initiation, (c) transaction, and (d) redemption, and some phases contain several steps.

(a) Registration Phase

In this phase, the relationships among the broker, user and vendor are established. The broker is responsible for the registration and maintenance of the user and vendor’s accounts. At the beginning, the vendor and user have to register and obtain an account from the broker. The vendor then gives authority to the broker to sign coin with which the registered user can make an Internet purchase. The broker constructs accounts for the vendor and user who has to put a minimum deposit into his account before purchasing. The payment details are transmitted to the broker through a secure authenticated channel, such as SSL.

(b) Initiation Phase

In this phase, the user’s first payment is set up. The broker imposes a spending limit for the user and creates two coin models, and , both of which can be used by the user to mint coins for multiple vendors. These models are also used as the coin authenticator for the vendor. The broker subsequently issues and signs a certificate for the user. The certificate will contain coin models and the user’s spending limit as well as user’s public key. It is valid during a given period of time, normally one day. The broker can refuse to issue a new certificate when the coin balance or if the user has engaged in cheating.

When the user starts to make a purchase from a vendor, he has to sign a purchase commitment message and send it to the vendor. The message holds the broker-signed certificate for the vendor to verify his legitimacy. Figure 2 shows the message flows in the initiation phase, which contains the following process steps.

Figure 2: Message flows in the initiation phase

After successful login, the user requests a certificate from the broker. The certificate authorises the user to create coins that could be redeemed by vendors from the broker.

To response to the user’s request, the broker needs to check the user’s balance. If the balance is zero, the broker prompts the user to purchase new coins. According to the user’s account balance, the broker sets up the maximum spending limit (Max). The Max could be same as the user’s balance or as a total ratio pre-set by the broker.

The broker creates coin models -- root coins for the user who could use them to mint coins when needed. The server randomly picks up two large numbers, x, y, then uses hash computation to generate two coin models: one-cent-coin and ten-cent-coin , where

, (1)

The broker issues a digitally signed certificate, keeps one copy, and transfers the original to the user. The certificate contains the broker’s identification (), user’s identification (), user’s public key (), expiration date (E), and information about coin-chain (C) including two coin models, and and Max.

(2)

The user certificate is defined by

= {, , , E, C } (3)

It has to be renewed by the broker each time after the user has successfully logged into the system. The broker issues a certificate to the user only if his account is in good standing.

To ensure that the certificate was signed by the broker, the user can apply the broker’s public key to verify it. He then extracts the coin models, , , and Max from C. The user stores the certificate for the next step.

Before the user transfers coins for the payment, he has to send the vendor a purchase commitment (PC), which contains information such as IDs of the user and vendor, purchase date as well as the user certificate. It is defined by

PC = { , , , D } (4)

PC is signed by the user. For multiple shopping, the user should send PC to different vendors.


(c) Transaction Phase

In this phase, coins are created by the user, who generates two coin-chains with appropriate lengths according to the goods value. Coin-chains are based on the original root coins - and in the user’s certificate or derived from the replaced root coins - the stored last-spent-coins for the previous payment. The user can purchase goods from multiple vendors by using the same chains. It is very convenient for frequent micropayments to multiple vendors during the user’s net-surfing. He only needs to send the value of the last coins in both hash-chains with the chains’ starting and ending indexes to the vendor, who verifies the validity of the last coin by re-hashing the root coins. Figure 3 shows the message flows in the transaction phase.


Figure 3: Message flows in the transaction phase

Assume that the user wants to buy/download some information goods from several vendors , the transaction procedure for the user and vendor is shown as follows.

The vendor has to verify the purchase commitment signed and sent by the user. He also needs to verify the embedded user certificate by applying the broker’s public key. If both of them are valid, the vendor will check whether the purchase date D is within the expiration date E. If it is true, he will store the purchase commitment, and send the URL of the goods that the user requested. Otherwise, the vendor will abandon the protocol. The URL is encrypted by a shared key USK. The key will be sent to the user for decrypting the URL after he pays the correct coins for the goods. The vendor will set a session for the URL to prevent the user from re-accessing the URL next time without paying.

The user computes the hash functions and creates coin chains according to and from the certificate sent by the broker. He can mint coins as much as he needs. For example, he starts to conduct the first purchase in a day and the goods value is n cents. Then he could decide he needs to mint that i one-cent coins and j ten-cent coins, where

i = mod (n, 10), j = int (n / 10) (5)

Here two coin chains are generated as follows,

(6)

(7)

If it is not his first purchase in a day, that means the user has already created some coins before the current payment. Let the previous last-spent one-cent-coin be denoted as , and the previous last-spent ten-cent-coin as , the coin chains will be expressed as follows:

(8)

(9)

where g = 0, 1, 2,… Max-1 and

k = 0, 1, 2, … Max/10-1

Then and are the last coins of two different coin-chains that the user creates for the payment. Before coins are created, the length of each chain is decided according to Max (which refers to the maximum spending limit mentioned in Step 2 of the previous phase) and the index of the previous last-spent coins.

When the user intends to purchase some information goods from a vendor, he applies his secret key to sign the payment message PM and sends to the vendor. The PM consists of the following attributes:

PM = { g, k, , , i, j, T } (10)

g and k are the indexes of the root coins (starting coins) for one-cent-coin chain and ten-cent-coin chain, respectively. While (g+i) and (k+j) are the indexes of the end coins, , for the two chains, they will become the root coins when the next payment occurs. As T denotes the timestamp, it prevents the user from replaying. The vendor could easily know user’s previous spent amount (PSA) by calculating

PSA = g + k*10 (11)

Therefore, the last-spent-coins , , and corresponding index g+i, k+j will be stored in the user’s side (eg., in IE toolbar) as the root coins for generating the next spending coins. They also are recorded in the vendor’s side as the coin authenticator for verifying the next coins for the same user (See the next step for details). It is noted that the user creates and spends his coins in an increasing order.

The vendor verifies and authenticates payment message PM using the user’s public key . As mentioned in the first step of this phase, the vendor has received the purchase commitment containing user’s certificate , from which he can extract the expire date E, Max, , , and . Subsequently, the following sub-steps are performed: (1) The vendor will calculate the user’s previous spent amount PSA (See equation 11). (2) The vendor compares Max (user’s spending limit) with PSA and spending amount (SDA), which is defined as:

SDA = i + j*10 (12)

If the Max is greater than the sum of PSA and SDA, that means i and j are valid. Otherwise, the user is overspending; the vendor refuses the key delivery. (3) The vendor starts to verify the coins by re-hashing. He checks to find out whether the user is in the first time shopping on his site on that day.

If yes, the vendor will extract and from , rehashing them to obtain and , the same way as the user mints coins.

(13)

where hash computation runs g+i times

(14)

where hash computation runs k+j times

If no, the vendor will search the database to locate, retrieve the last-spent-coins and , which the user sent last time, and then gets index p, q, and runs hash operation to obtain and .

(15)

where hash computation runs g+i-p times

(16)

where hash computation runs k+j-q times

(4) The vendor compares the hashing results and , with the value , in the payment message, if both of them match, the coins are proved valid. Otherwise, the coins are forged.

After validating coins, the vendor will send the user a shared key for decrypting the URL of the information goods. He then stores the last spent , and the corresponding index g+i, k+j into the database for the coin redemption or for the coin verification in the next purchase made by the same user.

 

(d) Redemption Phase

In this phase, the user and vendor’s balance is updated. The vendor will collect all payment messages PMs, sort and group them by user’s ID () in user’s certificate, then send to the broker. For each user, the vendor has to send the broker the last coins of each chain and the corresponding indexes, along with . He should also request redemption before the coin expiration date. The broker verifies redemption messages, user’s certificate and confirms the limit length of hash-chain (according to the Max embedded in user’s certificate that was issued by the broker himself). Using the coin models and , the broker verifies the value of last coin by rehashing. If the value is valid, the broker deposits the corresponding amount of money in the vendor’s account and debits the users at the same time. Figure 4 shows the message flows in the redemption phase.


Figure 4: Message flows in the redemption phase

There are several steps involved in this phase:

When the user finishes Internet shopping and logs off the system, he sends the last-spent-coins , and index g+i, k+j to the system. Then the broker will calculate the his total spending by computing , where

(17)

And then the broker updates his account.

At the end of the day, the vendor sends the redemption messages RMs to the broker. It is signed by using the vendor’s secret key . RM contains the vendor’s ID (), and all user’s payment information. For each user, his purchase commitments PC, all PMs and the sum of his total spending (SUM) are all included in RM, which is defined as

RM = { , (, PC, (PM), (SUM) ) } (18)

The broker verifies the vendor’s signature in RM using the vendor’s public key , and checks the validity of the date extracted from certificate embedded in each PC. In fact, the broker can recognise each certificate since he has signed it. He subsequently verifies the last coins in each PM by computing hash function in the same way as the vendor does. If all coins are valid, the broker calculates total value - (SDA) of all spending amount (See equation 12) of each user of this vendor. Then he compares (SDA) with (Sum) signed by the vendor. If they are the same, the broker adds an amount of (SUM) to the vendor’s account, otherwise an amount of (SDA). This is because of the fact that the user signs (SDA) instead of (SUM).

The broker collects all RMs, groups (PM) from each RM according to , aggregates all (SDA) from different RMs with the same , and then generates , where

= ( (SDA) ) (19)

is then compared with (in Step 1 of this phase). If is greater than ( >= ), it is acceptable because some the vendors might take responsibility of the coin loss or redeem coin after its expiry date. Otherwise, it is detected that the user was double-spending or using forged coins.

The broker verifies all the coin collected by vendors. If the coins are valid, the broker updates accounts of the user and vendor immediately, and then deposits the vendor periodically.

In this section, the protocol of WebCoin system has been described in detail. The following section will give an analysis and discussion on how the WebCoin system enhances efficiency and security in micropayment.

 

3. Analysis and Discussion

In WebCoin, the user creates coins as he needs and exchanges them for goods from vendors, who verify the coins and redeem them from the broker. The added features in WebCoin are the combination of hash-chains and digital signature mechanisms. The coins in this system are the hashed values in a chain, typically involve some kind of digital signatures, which means that at least one signature generation and verification are required to process coin chains.

The key innovation of the proposed system is the use of double hash-chain and coin index. Using the former for creating coins requires much less hash computation compared to single chain, especially when a larger-value payment occurs. The use of coin index not only reduces hash operations at both user and vendor sides, but also minimises the public key operations in each transaction. This section provides a qualitative analysis and discussion of system efficiency and security. A qualitative comparison of the proposed system with other micropayment systems is also presented.

3.1 Efficiency

In order to reduce the overhead cost of each payment transaction and enhance the efficiency of the proposed micropayment system, three options are considered. The first option is to minimise the heavy computations in the system; the second is to transfer some of he computations offline; and the third is to reduce the storage requirements for both user and vendor sides.

Minimising Computation. It is clear that the computation of the signature scheme is much more costly and time-consuming in comparison with hash functions. Therefore, to reduce the number of public key operations, the hash function is applied in the proposed system whenever possible. There are a small number of public-key operations involved per purchase in the WebCoin system. At the first transaction of the day, user has to generate a signature along with the payment message sent to the first vendor, who will verify two signatures by applying the corresponding public keys. One signature is in the user’s certificate signed by the broker of WebCoin system and the other embedded in the payment message signed by the user. From the second payment to the same vendor, the user also needs to generate a signature for each payment message; however, the vendor only needs to verify the user’s signature. Since the former has already recorded user’s ID and the last-spent-coin which is proven valid, the only thing he needs to do is to apply hash computation to prove the validity of the last coin that the user sent for each payment without verifying the broker’s signature embedded in user’s certificate again. As a result, the vendor only has to perform signature verification once per transaction per user except for the first payment.

The use of double-hash-chain and coin index significantly reduces the iteration of hash operation, especially when a comparable large-value payment (i.e. more than 10 cents) occurs. The double hash-chain, and , are represented in the WebCoin system as one-cent coin chain and ten-cent coin chain, respectively. The former is used to generate one-cent-coins for a very-small-value purchase under 10 cents, while the latter is particularly suitable for larger value. When a large number of coins is needed, the total number of hash computation can be reduced dramatically by using double hash chain instead of one chain. As the output length of the hash function is longer than that of the hash function , an added advantage is that an attacker who intends to break the hash function will experience much more difficulty than breaking . Using the coin index is another way to reduce the number of usage of the hash function. During the coin creation processing, the user does not need to create a whole coin chain in advance. Instead, he mints coins as needed. Coins in a chain are made in sequence order, starting from the root coin (coin model made by the broker), and ending at the last-spent-coin (the indexed coin). The latter in turned is used as root coin for creating the next coin in the following purchase. Coins in a chain are payable to all vendors, that means the user does not need to create different chains for different vendors. During the coin verification processing, instead of passing a whole chain of coins, only the last coin and its index are signed and sent to vendor for verification. Instead of checking the whole signed coin chain for each transaction, the vendor only needs to verify the last coin value by using previous recorded index, at the same time stores its value and index for further verification.

Offline Operation. WebCoin is an essentially offline system. The user only needs to contact the broker at the beginning of each certificate lifetime in order to obtain a new-signed certificate. In each transaction, the broker is not involved. To improve the system efficiency, some of the operations are transferred offline, such as the vendor’s sending of the redemption messages and the broker’s authentication of all certificates and payment processing in the redemption phase. As a result, the load of the online communication with the system is reduced to the minimum; and the bottleneck at peak time is avoided.

Less Storage Required. The use of coin index reduces the storage requirements for all parties in the system. The broker does not need to maintaining a large database to contain all spend coins. The user’s certificate, the sum of all his spending, and the value and index of the last-spent-coin need to be stored on the user side. These data are replaced after each purchase. On the other side, the vendor has to record each payment message for redemption purpose. Both the coin information stored in the vendor’s database and goods information recorded in the user’s toolbar are temporary and valid only for a short period (say, one day) in order to reduce storage requirements.

 

3.2 Security

The proposed system provides adequate security by applying hash function and digital signature techniques. The user certificate is signed by the broker in WebCoin system. It certifies the coin model, with which all coins created can be accepted by vendors and redeemed by the broker before their expiration dates. Therefore, the vendor could verify the user’s payments without contacting the broker in each transaction. Note that in this scheme, the coin chains are related to both the broker and user, that means the broker is responsible for creating root coin for the coin chain only, while the user needs to mint the rest of coins by operating hash functions. The micro payments are made by the user’s revealing successive last-coins of the hashed coin-chain to the vendor. Digital signature is applied to authenticate the user certificate, the payment message and redemption message. The following sub-sections describe the major security concerns: how the WebCoin system prevents coin forgery, over-spending and detects double-spending.


Forgery Prevention. The essential feature of the hash chain is that the value instructions of the coin are as un-forgeable as coins in the chain. The one-way and collision-resistance features of the hash function make it impossible to create the same coin as one in the coin chain, or pre-image the next coin without the previous one. As forgery of coins is made difficult by using hash function, this ensures that generating a valid coin is computationally infeasible for anybody but the user, even if all the previous coins in the chain are known. Furthermore, creating fake coins would require the forgery of the broker’s digital signature. As it authenticates and certifies the initial chain of coins, forged coins can be easily identified by the by re-hashing the chain.

Overspending Prevention. The WebCoin system is a debit-based scheme where a user’s consumption in a certain period (one day) cannot exceed the maximum spending (Max). This value for each user is pre-set by the broker according to the user’s account balance or his specific request. Max provides less opportunity for fraud since no purchases can be made against an account with insufficient funds. The limit is embedded in the user certificate, which is signed and sent by the broker to the user who in turn sends to the vendor for each payment. Max is valid during the lifetime of a user’s certificate. The vendor can verify the excess of the limit by checking a user’s certificate at the Initiation Phase.

In each transaction, the user has to send the vendor the payment message, which the user’s previous spent amount PSA is indicated (See equation 11). With Max and PSA, the vendor can easily find whether the daily limit is exceeded (equation 12). If not, the vendor immediately sends the requested key for encrypted URL to the user and stores the payment message. Otherwise the request is denied (See details in Step 3 of Transaction Phase). Consequently, overspending is prevented even at the multiple vendor’s level.

Double-spending and Over-charging Detection. The broker in the proposed system collects the coins and checks each of them using hash operations. In fact, he keeps the original coin model for the chains, so reused coins can be discovered in this stage. For prevention, the broker needs to specify the rules to the users. If one reuses a coin and thus violates the rules, the broker can terminate the user’s spending privileges by placing his name on a “black-list” during this period. This list will be published and inspected by the vendors, who can reject a purchase during the transaction phase. Furthermore, the broker can refuse to issue the certificate during the next period, in which case, the user’s credit will be terminated.

When a vendor double deposits the payment, the signature for payment message is replayed because he cannot forge the user’s signature. As the vendor is not anonymous to the broker at the Redemption Phase, he can be caught easily.

 

4. Conclusion


This paper presents a secure, efficient and simple Internet payment mechanism appropriate for selling inexpensive information and services, delivered online. In the proposed WebCoin micropayment system, novel features for coin creation and verification using double-hash-chain and coin index are introduced. In the process, one-way hash function and cryptographic signature schemes are integrated to reduce computation cost. The proposed system is also suitable for use with multiple vendors. While most micropayment systems are still in the proposal or in trial stages, the widespread usage of micropayment systems on the Internet will become unavoidable in the near future.

 

References

Dai, X. and Lo, B. (1999) ‘NetPay – An Efficient Protocol for Micropayments on the WWW’, in Proceedings of Fifth Australian World Wide Web Conference. Available online [HREF1] [2003 Sept. 15].

Glassman, S., Manasse, M., Abadi, M., Gauthier, P. and Sobalvarro, P. (1995) ‘Millicent Protocol for Inexpensive Electronic Commerce’, World Wide Web Journal, vol. 1, no. 1, pp.603-618.

Hwang, M-S. (2001) ‘A Simple Micro-payment Scheme’, Journal of Systems & Software, vol.55, no.3, pp. 221-229.

Lee, M., and Kim, K. (2002) ‘A Micro-payment System for Multiple-Shopping’, presented in SCIS 2002 Symposium on Cryptography and Information Security, Shirahama, Japan, Jan.29-Feb.1. Available online [HREF2] [2003 Jun. 2].

Manasse, M. (1995) ‘The Millicent Protocols for Electronic Commerce’, in Proceedings of the First USENIX Workshop on Electronic Commerce, USENIX press, New York, pp.117-123.

Mao, B. (1996) ‘A Simple Cash Payment Technique for the Internet’, in Proceedings of European Symposium on Research in Computer Science (ESORICS’96), Springer-Verlag, September.

Rivest, R and Shamir, A. (1996) ‘PayWord and MicroMint: Two Simple Micropayment Schemes’, in Proceedings of The Fourth Cambridge workshop on Security Protocols, Cambridge, pp. 69-87.

Yen, S.M. and Kuo, P.Y. (1998) ‘Improved Micro-Payment System’, in Proceedings of the Eighth National Conference on Information Security, Taiwan, pp. 175-186.

Hypertext References

HREF1
http://ausweb.scu.edu.au/aw99/papers/dai/
HREF2
http://caislab.icu.ac.kr/paper/2002/lmh/scis2002.pdf
 

Copyright

Xiang Shao, Anne T-A Nguyen and Vallipuram Muthukkumarasamy © 2004. The authors assign to Southern Cross University and other educational and non-profit institutions a non-exclusive licence to use this document for personal use and in courses of instruction provided that the article is used in full and this copyright statement is reproduced. The authors also grant a non-exclusive licence to Southern Cross University to publish this document in full on the World Wide Web and on CD-ROM and in printed form with the conference papers and for the document to be published on mirrors on the World Wide Web.