一个署名为中本聪的人提出了一个革命性的想法:让我们创造一种不受政府或其他任何人控制的货币!这个想法很疯狂:一串数字背后没有资产支持,也没有人负责。如果你把它当作钱给对方,有人怎么能接受呢?
Merkle tree
它看起来像二叉树,但这是下面两个节点的哈希值。只需记住根节点,就可以检测整棵树是否被篡改。
block存在根哈希值 在header中,交易过程中存在block body。整个节点包括block header和block body,但是轻节点(比如手机上的比特币钱包)只包括block header。这棵树可以证明一笔交易已经写进了区块链。
3.共识协议
分散货币应注意的两个问题:
1.谁能发行数字货币:采矿。
2.如何验证交易的合法性:区块链。
双花攻击(double spending attack)
双花攻击是数字货币的主要挑战。
BTC中的交易要有输入输出,货币从哪里来,花到哪里去。
正常情况下,可能有两个分叉,因为两个节点同时有会计权,两个节点包装的块同时计算随机数。此时,两个分叉将暂时共存,直到其中一个区块首先找到下一个区块,这个区块将成为最长的合法链,另一个分叉将被丢弃。
女巫攻击(sybil attack)
恶意节点不断生成账户,账户总数超过总账户的一半,获得区块链控制权。
BTC中的共识协议(Consensus)
有些节点是恶意的,大多数节点都是好的。
想法1:将一些交易打包成区块作为替代区块,让每个区块投票,一般通过写入区块链。
不,因为一些恶意节点一直在发布一些包含恶意交易的块,所以它们一直在投票,占用资源。有些节点不投票。
想法2:不是根据账户数量投票,而是根据计算能力投票。每个节点都可以在块中生成合法的交易,这些节点开始尝试随机数量,直到找到H(block header)≤ target,这个节点有做账权。
生产比特币的唯一途径是生产比特币
coinbase transaction。没有必要指出货币的来源。有了会计权的节点(找到随机数),就会有奖励。
50BTC->25BTC->12.5BTC,每21万枚比特币,奖励就会减半。
BTC争夺会计权的过程称为挖矿。争夺会计权的节点称为矿工。