重新创造比特币18:工作量证明(上)

作者:何岩,由 recreating.org发行。

0.前言 #

上一篇,Bitcoin的点对点网络演进成了一个可以自治的群系统。

这一篇,我们将解决最后一个遗留的难题,那就是分配记账权的单点:Timestamp Server

1.最后的单点Timestamp Server #

一大早,中本聪和Gilfoyle就来到了咖啡馆,Bitcoin的记账网络演进成了真正意义上的群系统,这让他俩很兴奋,他俩想乘胜追击,一口气拿下最有一个难题,系统中最后的单点:负责分配记账权的Timestamp Server

中本聪说:“最后这个方案太重要了,如果设计不好,我们之前的努力都会前功尽弃。”

Gilfoyl说:“是呀,记账就等于得到区块奖励,记账权就是利益,分配记账权就是分配利益,这关系到Bitcoin系统的生存还是死亡!”

尽管中本聪预感到了,这次的问题很难,但是没想到会如此困难,简直是进入了绝望之地。

老板Bob看着这哥俩早上来,讨论一天,喝了一桌子咖啡杯,晚上垂头丧气的离开。第二天再来,又是一桌子咖啡杯,又是一无所获。如此反复持续了整整一周。

这一天,中本聪实在脑子不转了,趴在桌子上睡着了。

2.梦中的网络世界 #

在梦中,中本聪看到了自己创造的Bitcoin世界。

在这个世界中,整个网络像星系一样,缓慢转动着。

中本聪感到一种和谐之美,而自己正是这个世界的造物主。

忽然,中本聪发现了那个叫小男孩的节点。

中本聪拉近了视角,听到小男孩正在和邻居节点牛头人抱怨。

小男孩一脸愤懑:“牛头人,我发现了一个叫黄鼠狼的骗子节点,他获得了记账权之后,不守规矩,偷偷的把区块奖励由50Bitcoin给改成500Bitcoin了,这样他就多得了450个Bitcoin。还好我仔细检查了他广播出来的区块数据,才发现了他的骗子行为,这个黄鼠狼太坏了!”

牛头人说:“啊?是吗?稍等我也看看我这里的账本。”

牛头人翻看着之前同步过的区块数据。

牛头人也愤怒了:“真的啊!黄鼠狼记账的那个区块里,的确给自己的区块奖励写成了500个Bitcoin。这个坏蛋太贪了,我们要告发他!”

小男孩说:“可是,我们应该告诉谁呢?告诉我们的邻居们吗?他们即便知道了,也和我们一样改变不了什么,毕竟区块已经产生,没有办法改变。那个记账的时间段只有黄鼠狼一个区块被广播,大家也没得选择。”

牛头人说:“那我们就告诉宇宙的中心,拥有至高权利的timestamp server,让他知道黄鼠狼的罪行,以后不再给黄鼠狼分配记账权。”

小男孩说:“这个方案听上去不错,但也只能秋后算账,无法修复眼前正在发生的作恶行为。”

牛头人说:“那咋办?你还有啥办法?”

小男孩说:“我觉得,如果想从根本上解决,只有改革记账权的分配制度。也就是说,问题的根源不在黄鼠狼,而在我们至高无上的权力中心单点:timestamp server。”

牛头人问:“你要革timestamp server的命啊,你可得小心 ,万一timestamp server翻脸了,把你加入黑名单,以后你再也得不到记账权了!”

小男孩说:“不怕,大不了我重启一下,换个IP,他就又不认识我了。”
“其实我早就看Timestamp Server不爽了,我一直怀疑他以权谋私,嘴上说的是随机分配,确总是把记账权分配给那几个老节点,例如我们的三爷(节点3)就总是得到记账权。”

“另外,一个10分钟的时间段里,只会有一个节点有权利来进行记账,如果这个节点作恶,我们都没有其它区块可以选择。”

3.竞争 #

牛头人问:“你的意思是,要把记账的权利,从单点(timestamp server)手中夺走,由我们所有节点来共同决定分配权?”

小男孩说:“对,只要权利在某一个单点手中,公正就无法得到保障,即便这个单点不作恶,也会给像黄鼠狼这样的节点以可乘之机。”

小男孩接着说:“如果记账权由所有节点们来决定,无非有两条路。”

“第一条路是少数服从多数,即每十分钟大家投票一次,谁得票多,谁获得记账权。

“第二条路是自由竞争,即所有节点都可以自愿参与解答一道题目,谁得出答案谁就获得记账权。”

记账权的单点分配,对应的是集体主义。为了达到社会整体的更幸福,资源由少数精英来集中控制,即计划经济。

记账权的少数服从多数,对应的是自由至上主义。这种模式下很容易演变成为自由放任的无政府主义。更诡异的是,无政府主义很可能最后会演变成集体主义。

记账权的自由竞争,对应的是法治自由主义。个体的自由是有边界的,每个人只需要关注自身利益,在法治规则内进行公平竞争,社会的整体就会朝着更加美好的方向演进,即资本主义。

集体主义和自由主义的本质区别在于,对世界的底层运作机制的理解不同。
集体主义将世界看作是一个确定性的精确系统,系统的未来可以被计算。所以集体主义重视精英,轻视普通个体,因为精英比普通个体更懂得如何计算。

而自由主义将世界看作是一个非确定性的复杂系统,系统的未来不可被计算。所以自由主义重视普通个体,怀疑精英的设计模式,因为随心而动的即兴随机才是完美可以产生的土壤。

小男孩说:“对比这两种自下而上的自由模式,我选择第二种,即,节点通过自由竞争获得记账权。”

牛头人问:“为什么呢?第一种少数服从多数,看上去更民主啊”

小男孩说:“不要迷信民主,少数服从多数的那条路存在这样几个问题:

第一,大多数人可能选错,因为乌合之众的理性决策并不可靠。

第二,谁来定义时间间隔,即谁来定义10分钟到了。

第三,参选的节点凭什么来获得投票,看脸吗?

在我看来,少数服从多数的机制,还不如记账权单点分配靠谱呢!”

牛头人说:“自由竞争就不存在这些问题吗?”

小男孩说:“你别说,自由竞争真的很完美。

第一,竞争可以增加存在的合理性。

竞争的本质就是付出了劳作,如果这个世界上真的存在一样东西,可以证明自己的存在是合理的,这样东西就只有劳作。

你想想,如果你面对一群陌生的追求者,你要选择一个人来结婚,你会考虑什么因素?

谁更有钱吗?有钱只能代表过去,不能证明他现在更有能力,也不能证明他的钱是来路干净。(POS机制)

别人的评价吗?评价也是过去时,另外,你怎么知道别人的评价不是被收买,或者被欺骗。(DPOS机制)

那么,只有看他们如何追求你,谁付出的努力最多,并且努力的方式最诚恳。

追求你所付出的劳作,就是一种证明,证明追求者的存在是合理的。
我们将其称为:工作量证明,英文Proof of Work,简称:POW。

工作量证明不能保障他一定是个好人,但确是唯一理性的评判方式。
如果不付出劳作,人如何安心存在?

第二,竞争可以定义时间。

我们可以将题目的解答难度设计成接近10分钟,这样就不需要一个中心化的单点来定义时间。

谁有资格定义时间呢?你如何证明你的手表的时间是客观的,你的手表如果不能,那你的参考谁定义的时间呢?你会说,参考电脑中的时间,电脑的时间又是参考谁,一层层追溯下去,就会发现我们的世界,时间的定义最终还是依赖一个单点。

“我国的北京时间由「国家授时中心」发布。国家授时中心的前身是陕西天文台,位于我国中部腹地的陕西临潼。
所以说,北京时间以「国家授时中心」的原子钟为准。”——WIKI

第三,竞争导致可选择。

因为竞争是自由参加,所以可以同时存在多个节点解答出题目,并同时广播。

如果有人作恶,我们就可以抛弃错误区块,而选择自己认为正确的。

选择自己认为最快且最正确的区块同步到自己的账本,本质上就是在进行投票。

这样就可以让黄鼠狼这种偷偷改变区块奖励的区块作废。

所以说,即便你付出了工作量,只能证明你有权利参与记账,但是因为这是竞争,所以大家可以选择你的竞争对手。”

中本聪心想:“我明白了!所以,问题的关键点就是,如何设计出这样一个皇冠级别的题目,来表达工作量的证明。”

4.后记 #

本篇定位了要解决的问题:去掉单点。

又讨论出了解决的方向:通过自由竞争来代替中心控制。

最后聚焦到了具体的点:设计出一个可以用于节点竞争的题目。

工作量证明的题目如何设计?请见下篇。

下一篇:重新创造比特币19:工作量证明(下)

相关链接 #

重新创造比特币:前言

Part One : 交易
重新创造比特币1:从一个简单的web交易系统开始
重新创造比特币2:第一个版本上线啦
重新创造比特币3:舍弃账户模型
重新创造比特币4:数字签名
重新创造比特币5:公钥和私钥
重新创造比特币6:第二个版本上线啦
重新创造比特币7:UTXO
重新创造比特币8:基于UTXO的系统重构
重新创造比特币9:万物皆交易
重新创造比特币10:交易脚本

Part Two : 群系统
重新创造比特币11:群系统(上)
重新创造比特币12:群系统(下)
重新创造比特币13:P2P网络
重新创造比特币14:交易的同步
重新创造比特币15:账本的同步
重新创造比特币16:Block Chain
重新创造比特币17:网络的弹性
重新创造比特币18:工作量证明(上)
重新创造比特币19:工作量证明(下)
重新创造比特币20:分叉之重组与分裂

书面设计矢量图_36.png

英文版Amazon.com在售 : Recreating Bitcoin

BSV打赏:
1Djc4TdVBi8urzmSXKHwg8cpEAYKcRQxgY

©2019 - Recreating.org all rights reserved

 
3
Kudos
 
3
Kudos

Now read this

重新创造比特币4:数字签名

作者:何岩,由 recreating.org发行。 0.前言 # 前篇说到了对称加密,并且我们发现没必要将交易的消息全部加密,因为交易数据不怕见光。只需要加密一小部分即可,究竟应该加密哪部分呢? 1.签名 # 既然我们的根本目的并不是防止别人看到交易数据的明文,而只是要用密文证明“我是我”。那么我的要求就是尽量加密更少的文字,即,加密付款者的名字。 这是为什么呢? 启发往往来自于现实生活的例子: 赵四想买台拖拉机,但是钱不够,向刘能借了1万块钱,刘能要求赵四写个借条。... Continue →