Figure 1: The simplified NetBill protocol.
The consumer C starts the protocol (Figure 1) by sending the merchant M a goods request, to which M responds with the goods encrypted with a one-time key K. At step 3, C sends M an electronic payment order (EPO) signed with C's private key. This EPO constitutes a fund transfer authorization, and sending it to M marks C's commit point. M checks the validity of this EPO, endorses it, appends K to it, and sends it to the bank B. This is the point where M commits to the transaction. Including K with the endorsed EPO is central to ensuring goods atomicity. At step 5, B sends to M a receipt of the fund transfer (which includes K). Then M forwards this message to C. In case M does not forward the message (either because of failure, bad management, or attempted fraud), C can go to the bank for a copy of this message, and hence obtain K.