看到这个标题,你是不是心里暗想-“王老师的脑袋被门夹了吗?还能把这八竿子打不着的事情牵扯到一起?” 今天是是毛泽东同志逝世41周年。在那段风雨如晦的年代,他追求马克思主义真理,缔造党和军队,以巨大政治智慧和卓越军事才能,带领中国人民抗击侵略,冲破黑暗建立新中国!他创造出毛泽东思想,成为指导实践的宝贵精神财富。今天也是毛主席领导的秋收起义90周年纪念日。1927年9月9日,秋收起义部队在文家市会师,毛泽东主持前委会议,及时作出从进攻大城市转向农村进军的决定,初步形成了农村包围城市的战略思想,是继南昌起义之后,中国共产党领导的又一次著名的武装起义,是中共党史军史上的三大起义之一(另一个是1927年中共党人发动反抗国民党右派的起义——广州起义)。中国人民革命史开始了具有决定意义的新起点。 毛泽东思想 毛泽东思想是由毛泽东倡导并在二十世纪中国革命中大范围实践的一种政治、军事、发展理论,一般认为其为马列主义在中国的发展。中国共产党认可毛泽东思想是其取得新民主主义革命、抗日战争、国共内战胜利、建立中华人民共和国的重要理论。毛泽东思想中比较突出的内容有"星星之火可以燎原"、"枪杆子里出政权"、"农村包围城市"、"游击战十六字方针"、"群众路线"、"团结一切可以团结的人"、"文艺为无产阶级革命服务"、"三个世界的划分"、"继续革命理论"等等。 区块链 区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。通常我们可以把区块链分为三类-公有区块链,行业区块链,和私有区块链。公有区块链是指:世界上任何个体或者团体都可以发送交易,且交易能够获得该区块链的有效确认,任何人都可以参与其共识过程。公有区块链是最早的区块链,也是目前应用最广泛的区块链,各大bitcoins系列的虚拟数字货币均基于公有区块链,世界上有且仅有一条该币种对应的区块链。 区块链是解决一个不可信网络中分布性一致性的一种近似算法。不可信网络是指存在拜占庭节点的计算机网络。 拜占庭将军问题(Byzantine failures)是由莱斯利·兰伯特提出的点对点通信中的基本问题。含义是在存在消息丢失的不可靠信道上试图通过消息传递的方式达到一致性是不可能的。因此对一致性的研究一般假设信道是可靠的,或不存在本问题。这个难题也被称为“拜占庭容错”、“拜占庭将军问题”、或者“两军问题”。拜占庭位于如今的土耳其的伊斯坦布尔,是东罗马帝国的首都。由于当时拜占庭罗马帝国国土辽阔,为了防御目的,因此每个军队都分隔很远,将军与将军之间只能靠信差传消息。在战争的时候,拜占庭军队内所有将军和副官必需达成一致的共识,决定是否有赢的机会才去攻打敌人的阵营。但是,在军队内有可能存有叛徒和敌军的间谍,左右将军们的决定又扰乱整体军队的秩序。在进行共识时,结果并不代表大多数人的意见。这时候,在已知有成员谋反的情况下,其余忠诚的将军在不受叛徒的影响下如何达成一致的协议,拜占庭问题就此形成。 传统分布式一致性算法大多不考虑拜占庭容错(Byzanetine Paxos除外),即假设所有节点只发生宕机、网络故障等非人为问题,并不考虑恶意节点篡改数据的问题。在这样的一个系统里可以通过Paxos或Raft算法达成分布式一致性。 在不可信网络中分布式交易总账需要在尽可能短的时间内做到安全、明确及不可逆,便于提供一个最坚实且去中心化的系统。在实践中,该流程分为两个方面:选择一个独特的节点来产生一个区块,并使得交易总账不可逆。达成这一目的主要有下面两种算法。
工作量证明机制(Proof of Work, POW)-第一个成功解决该问题的尝试是比特币系统(Bitcoin),比特币系统使用工作量证明机制使更长总账的产生具有计算性难度。工作量证明机制就好比是乐透,平均每10分钟有一个节点找到一个区块。如果两个节点在同一个时间找到区块,那么网络将根据后续节点的决定来确定以哪个区块构建总账。从统计学角度讲,一笔交易在6个区块(约1个小时)后被认为是明确确认且不可逆的。 股权证明机制(Proof of Stake, POS)-股权证明机制已有很多不同变种,但基本概念是产生区块的难度应该与你在网络里所占的股权(所有权占比)成比例。本文以两个系统为例:点点币(Peercoin)和未来币(NXT)。点点币使用一种混合模式,用你的股权调整你的挖矿难度。未来币使用一个确定性算法以随机选择一个股东来产生下一个区块。未来币算法基于你的账户余额来调整你被选中的可能性。 毛泽东思想和分布式算法的关系 从本质上看,任何人类社会组织形式,不管是部落,社团,国家,都是一种分布式算法。如果我们把每一个人当成一台计算机,所有的人都有输入输出的能力和信息处理能力。一个组织里面所有的人通过语言,文字等通讯介质联系在一起,就形成了一个分布式网络。这个网络运行的效率和其使用的算法有很大的关系。以国家为例,一个君主制国家就是一个简单的主从算法,大部分人必须按照君主的命令去做事。但是主从算法有一个很大的缺陷,那就是系统的效率和稳定性在很大的程度上取决于主节点。如果这个君王是个昏君,把国家的资源都用于个人享乐,那么国家的发展会受到很大影响。又如果君王突然去世,整个分布式系统,也就是这个国家会陷入全面混乱之中。 所以,人类社会的进步,本质上取决于两方面的进步-人类单个个体能力的进步,和人类社会组织作为一种分布式算法的进步。人类个体的进步主要是通过基因的进化来实现。而代表组织效率的分布式算法的进步,往往是通过残酷的国与国之间的战争或暴力革命来实现。 回到1927年秋收起义的时候,中国的局势可谓跌宕起伏,各种势力和思潮在试图控制中国的局势。那么,毛泽东思想为什么能胜出,从一个分布式算法的角度毛主席究竟做对了哪些事情呢: 1.加大好节点数量 这个很容易理解,一个分布式系统里面的好节点的数量越多,坏节点的数量越少,这个系统就越稳定,运行效率越高。那么好节点的数量首先取决于我们对好节点的定义。毛泽东从近代中国的历史和社会状况出发,研究中国革命的特点和中国革命的规律,发展了马克思列宁主义关于无产阶级在民主革命中的领导权的思想,创立了无产阶级领导的,工农联盟为基础的,人民大众的,反对帝国主义、封建主义和官僚资本主义的新民主主义革命的理论。这方面代表性的主要著作有:《中国社会各阶级的分析》《湖南农民运动考察报告》《星星之火,可以燎原》《新民主主义论》《论联合政府》等。 其基本点是正确认识中国社会各阶级,特别是资产阶级。他指出,中国的资产阶级包括两个部分:即依附于帝国主义的大资产阶级和民族资产阶级,民族资产阶级既有革命要求又有动摇性。无产阶级领导的统一战线要争取民族资产阶级参加,并且在特殊条件下也包括一部分大资产阶级在内,以求最大限度地孤立最主要的敌人。这样一个定义下,打破了共产国际对共产主义的狭隘解释,好节点不仅仅是工人,还包括当时占人口多数的农民,甚至一部分民族资本家,这样好节点的数量大大增加,而坏节点的数量被降低到最小。 2.简化协议以达到更好的分布式共识 1927年九十月间,经过三湾改编,毛泽东带领部队走上了农村包围城市、武装夺取政权的革命道路。从1928年3月开始,正式开展了“打土豪,分田地”的革命斗争,起草了《井冈山土地法》。正是因为把土地革命贯穿于井冈山斗争的全部,所以才有了根据地的蓬勃发展。它的经验在于,武装斗争是根本,土地革命即农民的利益是目标,农民得到了自己的利益就会跟着共产党走,跟着红军走。在那个时候,让农民能分到自己的田地,就是农民利益最现实的体现,“打土豪、分田地”这一口号便很好地反映了这一点,因而深入人心。把革命的核心目标以简单的口号传达给当时革命的主力军农民,就像是分布式系统里面采用一个大家都很容量理解和支持的分布式协议,自然对达成分布式一致性是有很大帮助的。 3.建立信任机制 毛泽东系统地解决了以农民为主要成分的革命军队如何建设成为一支无产阶级性质的、具有严格纪律的、同人民群众保持亲密联系的新型军队的问题。他规定了全心全意为人民服务是人民军队的唯一宗旨,规定了是党指挥枪而不是枪指挥党的原则,制定了三大纪律八项注意,强调实行政治、经济、军事三大民主,实行官兵一致、军民一致和瓦解敌军的原则,提出和总结了一套军队政治工作的方针和方法。在《中国革命战争的战略问题》《抗日游击战争的战略问题》《论持久战》《战争和战略问题》等军事著作中,毛泽东总结了中国长期革命战争的经验,系统地提出了建设人民军队的思想,提出了以人民军队为骨干,依靠广大人民群众,建立农村根据地,进行人民战争的思想。他为革命军队制定了一系列人民战争的战略战术,并在解放战争中总结出著名的十大军事原则。这些是毛泽东对马克思列宁主义的军事理论的极为杰出的贡献。建国以后,他提出必须加强国防,建设现代化革命武装力量(包括海军、空军以及其他技术兵种)和发展现代化国防技术(包括用于自卫的核武器)的重要指导思想。军队就如POW算法里的算力一样,算力的大小可以作为一种信用的证明,有一支高效,纪律严明的军队也能让民众对党的指挥更加信任。 毛泽东思想对区块链算法的启示 1.降低区块链使用的门槛 现在的区块链技术由于算法比较复杂,使用的人群大多还是极客和IT从业者,使用的人数相对有限。将来的区块链算法应当对协议设计和客户端软件进行改进,让虚拟币的交易和冷存储都足够简单,即使是普通人也能掌握。 2.简化协议描述 将来的区块链协议应该有足够简单明确的算法解释,这样可以让更多的人理解,才能推动区块链的普及。 3.改进信任机制算法 目前的信任算法,不管是POW,POS,还是最近的DPOS,都在某些环节存在缺陷,很难保证最终一致性,交易速度,交易量等指标全部达到实际需求。所以在共识算法上还有很多提高的空间。 所以,今天当我们缅怀先烈的时候,不要忘了,毛主席不只是一个伟大的革命领袖,他还是一个伟大的分布式系统架构师和分布式算法设计师。 |