工作量证明怎样突出多数共识

本文通过两个例子探讨了如何在不同条件下确定多数人的选择。首先,在原始武器条件下的对战结果揭示了肌肉力量的重要性;其次,通过消除机器投票的影响,讨论了如何获取真实的人力投票结果。最终,将这些原理应用到区块链的工作量证明中,强调了计算力蛮力的作用。

第一个例子,两军对垒,留意里面的能力退化、肌肉蛮力

假设两支现代化军队对垒,一边只有少数几个人,另外一边有多数的几百人,那么哪一边会赢?可能不一定。因为少数几个人这边可能操纵着高科技的飞机,并拥有有利的地理位置。多数的几百人这边可能只有粗制的武器和不利的地理位置。

现在假设我们做一个士兵武器能力的退化,即两边的武器都退化为原始社会的武器,比如一根棍棒,那么现在两边军队的优势对比就转换为两边士兵的肌肉蛮力对比了。很显然,多数的几百人这边肯定会赢,于是通过对垒结果我们就知道了哪一边是“多数人”。

第二个例子,排除投票水军的影响,留意排除机器投票,因其投票总数巨大

假设有个网站举行投票,有什么方法能够洗去水军的干扰,从而反映大多数人的选择?

水军可能有怎样的干扰?有强大技术能力的水军可能设计软件,让机器来帮忙投票,这样在一台电脑上就可以同时投出上百万或千万的票。没有技术能力的水军可能只会雇佣几十、几百,最多上千的人力来帮忙投票。

假定我们在投票之前设计一个图像识别来阻止投票软件,则有强大技术能力的水军也被“退化”为没有技术能力的水军了,只能凭借雇佣的人力水军来投票,他们可能产生的干扰最多上千,跟软件机器帮忙投票会相距很多个数量级。

对于人力水军,就算有数千人至多,然而只要投票的总人数足够大,比如几百万,那么这样依靠人力的水军的干扰就显得很微小而可以不起任何作用了,于是我们就得到了多数人投票的结果。

总结就是,只要退化为人力对比,那么赢的一方就是多数共识

现在回到区块链的工作量证明。这里的“人”就是CPU计算力,也可以等同为区块链节点,不是数量级差别。

如果进行复杂的计算,那么良好设计的或知晓某种神秘算法的软件能够比其他软件更快算出结果,这个差异是多个数量级的,越复杂则差异越大,因而获胜的一方是运用神秘算法的良好软件的一方,而不是较多计算力的那一方。

现在改成hash值的计算,这里面没有任何技巧可言,任何计算软件都没有差异,所以计算力蛮力更多的一方就会获胜,从而我们得到了多数计算力共识。

### 多节点网络中工作量证明(Proof of Work, PoW)共识机制 在多节点网络环境中,PoW共识机制并不强制要求所有节点达成完全的一致性。相反,该机制依赖于解决复杂的数学难题来验证交易并创建新区块。具体来说: - **挖矿过程**:各个节点(即矿工)竞争解算一个特定的加密哈希函数问题[^1]。第一个成功找到解决方案的节点会将其发现广播给整个网络。 - **区块确认**:当其他节点接收到新的候选区块时,它们会对其中包含的信息进行独立验证。如果多数节点同意这个新区块的有效性,则它会被添加到区块链上。 - **最长链原则**:即使存在多个版本的历史记录(分叉),系统也会遵循拥有最多累积工作量证明的那个链条作为真实历史。因此,并不是所有的节点都需要就每一个单独的操作达成协议;而是通过选择具有最高累计难度的工作量证明链条实现一致性[^4]。 这种设计使得攻击者难以篡改已有的交易记录,因为这不仅需要破解当前的密码学挑战,还需要赶上甚至超过合法链条的增长速度。然而值得注意的是,在某些极端情况下可能会发生临时性的双花攻击等问题,但这通常伴随着极高的成本和技术门槛。 ```python import hashlib def proof_of_work(last_proof): """ 实现简单的PoW算法. :param last_proof: 上一个区块的工作量证明 :return: 新的工作量证明 """ proof = 0 while valid_proof(last_proof, proof) is False: proof += 1 return proof def valid_proof(last_proof, proof): """ 验证证明: 是否hash(last_proof, proof)的结果以四个零开头? :param last_proof: 上一个区块的工作量证明 :param proof: 当前尝试的工作量证明 :return: <bool> True 如果正确, False 如果不正确. """ guess = f'{last_proof}{proof}'.encode() guess_hash = hashlib.sha256(guess).hexdigest() return guess_hash[:4] == "0000" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值