| CPC G06Q 20/389 (2013.01) [G06Q 20/065 (2013.01); G06Q 20/102 (2013.01); G06Q 20/3825 (2013.01); H04L 9/3263 (2013.01); G06Q 2220/00 (2013.01)] | 15 Claims |

|
1. A method of operating a cryptocurrency, comprising:
issuing a plurality of digital coins, each digital coin comprises:
a serial number that uniquely identifies the digital coin;
a face value; and
a digital lock and a matching digital key which are a pair of public key and private key, respectively, generated using Public-key cryptography;
using a plurality of digital wallets for coin owners to store and transfer digital coins, each digital wallet comprises:
a computer storage device to store digital keys and serial numbers of digital coins owned by a coin owner;
a digital wallet software configured to send and receive private payment messages wherein each private payment message comprises the serial number and the digital key of a digital coin; and
a second digital wallet software configured to send change-lock messages wherein each change-lock message comprises the serial number of a coin, a new digital lock of the coin, and a digital signature signed using the digital key of the coin previously received from a private payment message;
providing a bookkeeping computer system which facilitates digital coin transfers among coin owners, comprising:
storing the serial numbers, face values, and current digital locks of the plurality of digital coins in a digital book;
receiving, using a communication channel, change-lock messages from digital wallets of coin owners wherein each change-lock message comprises the serial number of a coin, a new digital lock of the coin, and a digital signature;
putting a timestamp on each change-lock message received to prevent double spending; and
processing the change-lock messages and changing digital locks stored in the digital book; and
transferring a digital coin from a first digital wallet of a first coin owner (sender) to a second digital wallet of a second coin owner (recipient), the transfer comprises:
transmitting, by the first digital wallet, a private payment message comprising the current digital key and the serial number of the digital coin to the second digital wallet;
upon receiving the private payment message, generating, by the second digital wallet using Public-key cryptography, a new digital lock and a new digital key for the digital coin;
creating, by the second digital wallet, a change-lock message comprising the new digital lock and the serial number of the digital coin;
digitally signing, by the second digital wallet, the change-lock message using the current digital key from the private payment message and Public-key cryptography;
transmitting, by the second digital wallet using the communication channel, the signed change-lock message to the bookkeeping computer system;
retrieving, by the bookkeeping computer system using the unique serial number of the digital coin in the change-lock message, the current digital lock of the digital coin from the digital book;
verifying, by the bookkeeping computer system using Public-key cryptography, that the change-lock message was digitally signed using the current digital key that matches the current digital lock from the digital book;
upon receiving two or more change-lock messages which are signed using the same digital key that matches the current digital lock from the digital book, accepting, by the bookkeeping computer system, at most one change-lock message and rejecting the other message(s) to prevent double spending by using timestamps of the change-lock messages or a predetermined priority rule; and
upon successful verification of the change-lock message, replacing, by the bookkeeping computer system, the current digital lock of the digital coin in the digital book with the new digital lock from the change-lock message and sending a confirmation to the second digital wallet to confirm that the new digital lock has been recorded in the digital book.
|