比特币如何做到去中心化
1. 去中心化问题可以拆解为:
-
谁在维护交易账本?
交易账本是公开的,每个节点都有备份。 -
谁有权力批准那个交易是正当有效的?
节点们通过共识将区块上链,在等待6个确认后,该交易有效。 -
谁在制造新的比特币?
比特币的供应上限为2100万个,区块奖励每四年减半一次。通过挖矿可以获得区块奖励。 -
谁在制定系统变化规则?
每产生2016个区块之后,所有的节点都会重新计算目标区域对于整个输出范围的比例大小,使得后续的区块产生的时间间隔约为10分钟。所以大约每两个星期,目标区域的大小会被重新计算一次。 -
比特币是如何取得交易价值的?
通过交易所兑换成通用货币。
2. 存在两种容易混淆的哈希指针:
- 在区块内用来表示接在之前哪个区块后面的哈希指针
- 在交易里的一个或多个用来指向之前交易里说明比特币来源的哈希指针
3. 零验证交易
如果在接收到别人转给自己币的声明后没有确认它上链就认为支付成功,这被称为零验证交易,容易造成双重支付的问题。在比特币生态系统中,最常见的方法是等待6个确认,防止双重支付的发生。
4. 奖励机制
- 区块奖励
创建区块的节点可以在这个区块中加入一笔特别的交易。这笔交易就是一个造币的交易,类似于财奴币里面的造币,节点可以指定这笔交易的接收地址。当然节点通常会选择一个属于自己的地址,你可以把这视为对节点在共识链上进行创建区块服务的报酬。
- 交易费
任何交易的制造者都可以选择让交易输出值比输入值小。第一个创建区块把交易放进区块链的人可以取得这个差额,作为交易费。
5. 工作量证明
工作量证明的核心理念是,我们把随机选取节点改为根据节点占有某种资源的比例来选取节点,我们希望这种资源是没有人可以垄断的。如果这个资源是计算能力,则称之为工作量证明;如果这个资源是某种币的拥有量,则称之为权益证明。
-
工作量证明不等式
H( nonce || prev_hash || tx || tx || ··· || tx )< target
理解:将前区块的哈希值和要填进新区块的交易比喻成大炮,随机值比喻成瞄准镜,你要做的就是不断调整瞄准镜,击中目标。实际上,这个目标十分小,你根本不知道在哪里,唯一的方法就是狂轰滥炸。 -
哈希谜题的三个重要特性
(1)要有一定的难度
在2014年底产生一个区块平均要做10^20次哈希运算,这已经超过了商业化笔记本电脑可能的计算范畴。
(2)成本是可以通过参数来变化的
每产生2016个区块之后,所有的节点都会重新计算目标区域对于整个输出范围的比例大小,使得后续的区块产生的时间间隔约为10分钟。所以大约每两个星期,目标区域的大小会被重新计算一次。
(3)证实一个节点正确地计算了工作量证明很容易
这样我们不需要一个*权威机构来证明矿工正确地完成了工作,任何节点或矿工都可以迅速地证实其他矿工找到的区块符合工作量证明地规定。