货币的创造
我们假设在一个简单的数字货币中,银行A可以随意定义一个字符串uniqueCoinID作为币。
这个币用数字形式表达:
Coin0 = Enc(创建币 + uniqueCoinID,银行A的私钥)
备注:Enc代表加密函数
实质上就是银行A用自己的私钥对"创建币+uniqueCoinID"进行加密,这样就是一个数字货币了。
如果银行A把这个数字货币卖给用户B, 那么银行A可以创造一个新的交易数据:
Coin1 = Enc(支付给 + 用户B公钥 + H(Coin0),银行A私钥)
备注:H代表哈希函数
在这里使用用户B的公钥表示用户B的身份。
用户B可以任意创建公钥来表示自己的身份,这个就是数字货币的匿名性。
这个数据公布之后,就表示用户B收到了银行A给他的数字货币。
同样的,用户B把数字货币卖给用户C,那么用户B可以创造一个新的交易数据:
Coin2 = Enc(支付给 + 用户C公钥 + H(Coin1),用户B的私钥)
这个数据公布之后,就表示用户C收到了用户B给他的数字货币。
其实所谓某个人给了某个人的数字货币,只不过就是在账本上记录了这些交易记录,然后修改每个人的余额,上面的Coin0、Coin1、Coin2其实仅仅是一个交易记录。