51% 攻击

我一直都不觉得 51% 攻击算是 攻击。少数服从多数本来就是 PoW 世界明文规定的律法,既然当初定的游戏规则就是这样的,那为啥执行的时候又出现争执呢?

离开剂量谈毒性 一样,离开成本谈攻击也是耍流氓。我也做过网站,如果爬虫量太大了,影响了用户正常访问的话,我会自己写一些黑名单策略,轻则限频,重则封 IP。如果爬虫用 IP 池 + 随机 Referer + 任务调度等等各种复杂的逻辑来试图绕过黑名单策略的话,那么我会觉得你爬到的数据是你的努力应得的,你付出的成本我认为够了,我不仅不会纠结于怎么继续升级防御策略,我反而更想结识你这样的人才。但如果就一个简单的脚本,还用着一个 IP 使劲薅,抱歉,这个爬虫的成本比起我的黑名单策略成本有点低了。

所以既然黑客历经千辛万苦才凑齐大量算力,为什么不给人家应有的奖励呢,他本身也是在既定的游戏规则里的正常玩家呀。可能有人会反驳说:犯罪分子精心策划了一起违法犯罪事件,难道就这么任他逍遥法外了吗?不然呢?那想怎样?抓得到他吗?扪心自问一下,高智商犯罪的破案成功率能有多少?现实世界我不了解,但是在互联网里这个数字会低到怀疑人生。远的不说,就说 EOS 里面,那些盗取大家资产的黑客有几个落网的?又有多少个 EOS 被追回来了,占比有多少?

如果黑客付出的成本(51% 攻击)不满意,一定要把这类事件定性为攻击,那么我觉得这并不是黑客的锅,而是游戏规则的问题。那么就要继续提高攻击成本,给共识逻辑打个补丁,把

在任何情况下,最长链都是最终链。

修改为:

在一般情况下,最长链都是最终链,但是以下情况除外:blablabla…

对比现实世界,就是继续完善法律法规呗。这个路子是不是有点熟悉了?给律法打补丁的速度跟不上社会的意识形态的变化也许就是导致王朝反复迭代的原因之一。

这种重复性的手工劳作在程序员看起来是无法忍受的,解决办法无非两种:

A. 找一条放之万物皆适用的规则

B. 如果找不到方法 A 里提到的普适规则,那么能否把打补丁的过程做成自动化、流水化

先看方法 A,中本聪提出的区块链认为这个以不变应万变的规则就是 少数服从多数,然而现在由于 51% 攻击的出现,这个规则够不够普适还尚存疑问?其实这个规则是否普适可以用反证法:

如果大多数人都不认可 少数服从多数 这个规则,那么这个结论本身就是自相矛盾的,所以其结果是且只能是:少数人不认可 少数服从多数,但是大多数人都认可 少数服从多数。只有这种情况下才能做到逻辑自洽。

所以至少目前来讲,这个规则其实足够普适了。现在要纠结的就是这个 大多数 要怎么定义,是大多数的算力呢还是大多数的用户?算力的背后就是财富,用户代表的是个体。而矛盾的根源在于贫富差距过大:大多数的财富集中在少数的个体上。似乎无解?

我们先暂时否认方法 A 里提到的普适规则的存在,来看看方法 B。能否将这个打补丁的过程做成自动更新,而不用定期搞个全国人民代表大会去完善我们的律法?既然人民代表是人民选出来的,那自然是代表的人民的意愿,人民的意愿显然就是大多数的意愿。也就是说这个补丁得总是有利于大多数人的利益。注意,这里我们至少能得到两点结论:

  1. 在第方法 A 里,那个 大多数 应该是指的是个体。
  2. 更新补丁的依据就是前面被我们否认的方法 A 里的那个普适的规则

通过结论 2,显然方法 B 本身就是自我矛盾的。那这下结论自然就清晰了:

51% 并不是攻击,而是特性。