打字猴:1.70386479e+09
1703864790
1703864791 注:该图示例了货币创造的过程和被花费过两次的过程。
1703864792
1703864793 总结一下,高飞币的规则是:
1703864794
1703864795 ● 高飞可以通过签署声明表示他使用唯一的货币编号来创建一个新币。
1703864796
1703864797 ● 币的所有人可以通过签署声明表示“将这个币转给X”(其中X为公钥),将其转给另一个人。
1703864798
1703864799 ● 任何人都可以验证一只币的有效性,跟随哈希指针追溯到它是由高飞创建,并验证过程中所有签名。
1703864800
1703864801 当然,高飞币有一个致命安全隐患。假设爱丽丝通过把她签署的声明发送给鲍勃,即将她的币转给鲍勃,但并没有告诉其他人。她也可以创建另一个签名,声明将同样一只币转给了查克(Chuck)。对于查克来说,这看起来是一个完全有效的交易,而他是该币的所有人。鲍勃和查克似乎都可以有效表示自己是那个币的所有人。这个就是所谓的双重支付(double spending)——爱丽丝将同样一只币花了两次。我们一看就知道货币是不能这样花的。
1703864802
1703864803 事实上,双重支付是任何加密货币需要解决的主要问题之一,高飞币没有解决这一问题,因此不安全。
1703864804
1703864805 高飞币很简单,其货币转移机制其实与比特币非常相似,但是因为它并不安全,因此并不适合作为加密货币。
1703864806
1703864807 财奴币
1703864808
1703864809 为解决双重支付问题,我们会涉及另外一个加密货币,我们将其称为财奴币(ScroogeCoin)。财奴币是以高飞币为基础创建的,但在数据结构方面更复杂。
1703864810
1703864811 第一个主要概念如下:一个叫财奴的指定实体将负责公布包含所有发生过的交易历史记录的仅增账目(append-only ledger),账目的仅增特性保证了写入这个账目的任何数据都会永久保留下来。如果账目真的为仅增,通过要求所有的交易在被接收前都写入项目,我们可以用其防止双重支付的发生。这样,如果之前币已经转给了一个不同的所有者,大家都可以看到。
1703864812
1703864813 为执行这个仅增功能,财奴可以建立一个区块链(我们之前已经讨论过其数据结构),对于区块链,财奴要进行数字签名,因此,这从而就形成了一系列数据块,每个数据块都包含一次交易(在实践中,一种优化的做法是将多次交易放入同一个区块中,比特币就是这样做的),每个区块包含交易的ID、交易的内容,以及上一个区块的哈希指针。财奴数字签名是针对最后一个哈希指针(它约束整个结构中所有的数据),并将签名与区块链一起发布,见图1.11。
1703864814
1703864815
1703864816
1703864817
1703864818 图1.11 财奴币系统中的区块链
1703864819
1703864820 在财奴币中,只有在由财奴签名的区块链的交易才算数。任何人都可以通过核查财奴在区块中的签名来验证交易是否经过财奴的支持,财奴会确保不会支持企图双重支付,也就是不会支持已经支付过的币的交易。
1703864821
1703864822 为什么除了让财奴签署每个区块,我们还需要一个带哈希指针的区块链?这样做是保证仅增特性。因为财奴有可能试图增加或移除交易记录,或者改变已有交易,而一旦有了哈希指针,将会影响到后面所有的区块。只要有人监督财奴发布的最新哈希指针,变化会很明显,并可以被轻易发现。在一个财奴分别签署不同区块的系统中,你需要记录他签署的每一个签名。采用区块链,两个不同的人可以轻易验证他们确实观察到了同样的,由财奴签署的交易记录。
1703864823
1703864824 财奴币中有两种交易。第一种是造币(CreateCoins),类似于在高飞币中,高飞可以创建新币的程序,而财奴将其进行了扩展,那就是可以在一次交易中创建多个币量,见图1.12。
1703864825
1703864826
1703864827
1703864828
1703864829 图1.12 造币交易
1703864830
1703864831 注:造币交易创造多个货币。每一个货币在交易中都有一个序号。其次,每一个货币也有一定的数量,来对应某个数目的财奴币。最后,每一个货币还有一个造币记录,在货币被制造出来的时候对应的公钥。因此,造币交易创造了多个不同数量和归属于不同拥有者的新货币。我们将这些货币称为虚拟货币ID,指的是该次交易中交易ID和货币序号的组合。
1703864832
1703864833 造币交易如果是由财奴签署,从定义上说它总是有效的。我们不会担心财奴什么时候有权创建新币或者可以创建多少,正如我们不担心在高飞币中,高飞可以创建新币那样。
1703864834
1703864835 第二种交易是付币(PayCoins)。这一交易会消耗币,就是说消除它们,并创建具有相同总值的新币。新币可能属于不同的人(公钥),这一交易必须由每一个支付该币的人来进行签署。因此,如果你是本次交易中将会消耗的某只币的所有人,那么你就需要数字签署该交易,表明你同意花掉这只币。
1703864836
1703864837 财奴币的规则阐明,如果以下四个条件为真,付币交易有效:
1703864838
1703864839 ● 被消耗的币为有效货币,即它们是在之前的交易中创建的。
[ 上一页 ]  [ :1.70386479e+09 ]  [ 下一页 ]