• 详解区块链
    深度好文,帮你进一步了解-区块链的应用:共识的下一个100年 本文来自微信公众号“筹码”(ID:Chouma2016) 很少有人意识到,区块链的应用——Token可能是近100年来最伟大的制度创新,超越股份制,并将是『债券』之后最重要最主流的交易品种,没有之一。 要理解Token的含义,就需要深入到时代背景中去。 无可阻挡的文明进程 2017年初,我们在《2017,历史的逢七巨变》中,还在二战后的框架中思考一带一路和大国博弈,未来的画卷似乎在政府的规划中,徐徐展开。 然而,2018年初,回顾过去一年,几乎所有的旧秩序和规划都显得苍白。科技进步,直接捅破了政治、金融、军事领域所有的玩法,让工业革命以来形成的规则变得一钱不值。而且,当下的最重要的技术趋势——区块链、AI和IOT,正在引导我们走向全面的失控和未知。 AI(机器智能)——生产力,让人类交出计算主控权,机器人走向了本体意识的演进道路,并将迅速超越人类,人工将不配赋予机器智能。 区块链——生产关系:机器深度介入生产和分配,人类逐步交出了中央主控的信任机制,协议控制人类的信任与生意,现有的人类文明和商业生态,成为计算网络上的亿万应用的一部分。 IOT——生产资料,让人类交出了万物之灵的优势地位,机器智能唤醒了万物,数据是物体的灵魂和血液。 历史上,真正的文明进程,是无可阻挡的。新旧交替时期,都是新玩家以超过1000倍的力量碾压旧势力,瞬间完成新老交替,文明的车轮滚滚向前,不容质疑,不容犹豫,不容思考。 蒸汽机以1000倍以上的力量,完成了对人力的全面替代,推动人类加速向前;计算机以1000倍以上的速度,完成了对脑力计算的替代,推动人类更加智慧;今天,AI+IOT+区块链,将以1000倍以上的效率和制度优势完成对核心生产资料——数据+算力的定价和交换,推动文明走向更高等级。 虽然,关于技术的争议愈演愈烈,关于人类要被机器统治的担忧喧嚣尘上,但是所有的资本和技术人员都在拼命参与硅基文明的进化与建设,唯恐被时代甩下。 塔勒布在《黑天鹅》中曾经说过,历史,是跳跃着前进。它总在我们不经意间,跳上我们无法想象的断层。我们已经进入到一个人类自己已经完全无法控制的历史进程中,时间系统无法回滚了,我们只能全然接受,在新的纬度上All in,去展开时间的长卷,否则,时间会把你干掉,毫不犹豫。  接入数据是在硅基维度进化的手段之一   Token:最巧妙的创新,最高速的演进 Token是区块链技术最巧妙的实践,是人类社会与机器智能网络交互的最重要的协议和数据载体:人类社会的商业场景,必须转化为区块链层面的数据和价值,来驱动计算机执行。 今天,在比特币/ICO/ Token的议题上,建制派深恶痛绝,怒斥庞氏骗局。革新派不屑一顾,杠杆满上。行业内和行业外的人,彼此看来,对方都是傻逼。其实,不过是出发点不同。 诚然,眼前大部分的Token都价值存疑,但是在未来的图景下,机器人来服务人类所有的商业行为甚至生老病死,比特币及Token就是一个最起码的门票和语言。创造一个好的Token,几乎是人类被机器排挤出生产活动之前,能够做的最有意义的事情。 对于Token的理解,对于创新的接纳,我们必须承认,人类是有时代局限性的。 我们站在过去看未来,无一不是荒诞不经,不成体统,甚至是离经叛道。今天,生于40年代的老年,看00后,可有一个正经靠谱?恐怕个个都是不肖子孙,大清药丸的节奏吧。成名于1990年软件时代的雷军,看推销互联网黄页服务的马云,满心疑窦,这个人是不是诈骗犯? 更不要说被烧死的日心说的拥护者布鲁诺,历史上更多:     1902年,老佛爷慈禧太后67岁寿辰。时任直隶总督兼北洋大臣袁世凯将北京城第一辆汽车送给了老佛爷。上了车,老佛爷勃然大怒。她不能接受,司机一个奴才,『居然』坐在她的前面,而且居然不是跪着开车。一切都是不合祖制。 15世纪初,古腾堡(1398-1468)在欧洲发明了活字印刷,推动文明的壮举却得到了天主教在部分地区的封杀,打破了宗教权威对于书籍的垄断,亵渎神明。   大部分超越时代的创新,长得都像诈骗。但是真正的创新是拦不住的,时代的进步,是不以人的意志为转移的。 2025年,我们难道要用一张纸来支付手术机器人报酬?有自主意识的挪威出租车,会不会接受人类社会的美元付款?法国的汽车机器人,怎么支付给另一机器人的修理费用? 2018年的今天,万事万物都进行区块链化看起来是没有必要的,繁复低效。1998年的昨天,Amazon在Web页面上登记货品做电商看起来多余,繁复低效。 其实,区块链是将万事万物陈列到机器世界的『货架』上,其实是面向AI统一标识,确保未来可以互操作。就像电商通过二维码登记货品,其实是面向人类统一标识,确保物流过程中可以互操作一样。 将人类,将人类的生老病死,一切数据,一切商业流程,面向AI,面向未来的世界全面改造,通过区块链/Token,统一标记,是当前最重要的事。 Token:最重要的企业战略,最可怕的社会变革 Token不仅仅是一串字符,更是铲平人类社会结构的最效率的工具。在人类的碳基文明向硅基文明的变迁过程中,我们最终要经历一个痛苦的变化过程,经历一个看破谎言、戳穿虚伪、碾平组织结构的巨大的历史进程。 Token的本质,是金融权利的被技术穿透,技术进步带来的天赋人权,每一个碳生物和机器人都是平等的,每一个人类都可以用自己的信用做背书发行Token,来募集生产资料(币,或者等值算力)去实现自己的想法。不需要被任何人类社会组织结构剥削和胁迫而使用法币,所有的价值,应该都是基于人和人、人和机器、机器和机器之间形成的共识,通过算法予以确认。 当然,眼下,机器人主导的世界还未到来,但是,区块链带来的技术变革、思潮,甚至引发的国家体制竞争,正在推倒第一张多米诺骨牌——凝聚共识的法定货币。 在《帝国斜阳:秩序和共识危机》一文中,我们提过,全球200多个国家200多个货币,能拿来存钱的,不超过5% ,其他95%都是手纸,从流动性和认知程度上,比特币这种数字商品,已经打败了大概70%的法币。这时候,我们不禁要问,发迹于屌丝市场的比特币,怎么就比那70%的法币强悍了,究竟谁才是庞氏骗局? 我们要从货币的源头说起。 货币的本质是债券。它原本是以一种度量尺度、一种抽象物,同时也作为人类之间的关系(债务与义务)出现,是主导了人类5000年文明的核心金融工具。 货币并不是为了方便以物物交换而出现的。在5000年前,人类已经在使用复杂的信用体系而不仅是物物交换来进行商品交易。信用体系的存在远远早于硬币和货币的出现。在没有货币的年代,人们并不『易货』,他们互相馈赠,有时以进贡的形式,有时会在晚些时候得到回赠,有时则是纯粹的礼物。 货币是埃及等古国或苏美尔的神职人员为更有效地收税或计算财富而创造出来的。价格概念和冷漠的市场应运而生,它们吞噬了人类社会原本拥有的一切温情脉脉。是金钱让责任和义务变成债务,欠债还钱的常识腐蚀了人类彼此关爱的本性。货币的出现,本质上是为了强化债务,压榨劳动人民。 货币更像是国家完成的一次I-C-O,通过发行货币向用户借钱,来提供基础的国防、治安等公共服务。 货币本身,就是国家欠你的债。 在价值管理方面,法定货币本身劣迹斑斑,并不比今天的Token好多少: 美国独立战争期间,大陆货币超发了,无法足额贵金属偿还,只能用枪炮逼着各个州的人民使用大陆货币,有的州看不下去,索性自己印。 俄国革命期间,发生了超级通胀,1924年,通货膨胀结束时候,一个新的切尔峰涅茨卢布可以兑换同一个政府发行的旧卢布500亿元。对的,你没看错。 是500亿。而已经被某同志搞死的沙皇,他发行的卢布依然在市面流通,居然持续有强劲购买力,主要原因就是沙皇卢布已经不发行了,总量恒定。 一战之后,德国发生超级通胀。二战后,1950年,德国经济崩溃,外国货币被禁用,香烟和白兰地干邑就是当时事实上的最强货币。 捍卫法币的时候,大家往往想到黄金,但是黄金的本质和隐含的冲突,却让政府寝食难安。1873年,美国人为了恢复货币信用,逐步收回当年战争时期凭空印刷的纸币,推出了《1873年铸币法案》,将美国从黄金白银复本位制度,推进到单一的金本位制度。 金本位制度的推行,造成了一个人人都愿意讲的经济后果,和一个谁都不愿意讲的政治后果。 经济后果:通货紧缩。由于当时几乎所有的西方国家都采用了金本位制,使黄金需求急速上升,黄金出现短缺,造成了较长时期的通货紧缩。从1870到1896年,美国的实际价格水平按每年1.5%的水平下降。 政治后果:劳动者话语权提升。大地主和白银集团大力渲染金本位的坏处——通货紧缩,实质上因为金本位带来的通货紧缩弱化了债权,提升了劳动者的话语权。 法案得到了巨大的抨击。参议员约翰里根认为,『我相信历史会记录,这一路史无前例的立法罪行,是侵害美国人民和欧洲人民福祉的最险恶阴谋。』 美国政治家,民主党和平民党领袖威廉·詹宁斯·布赖恩(William Jennings Bryan)就更直白了,『你不可以把荆棘皇冠硬扣在劳工头上,你不可以将人类钉死在黄金十字架上。』 黄金隐含了巨大的冲突:政府需要黄金背书法币,增强信用,法币却不能直接挂钩黄金,方便赖账。货币挂钩黄金,无法从剥削劳动人民,无法通过贬值变相收穷人的税,工业时代,穷人是政府的燃料,没有这些燃料,政府与利益集团就要陷入到财政危机。 因此,工业时代,最重要的工业国都大量持有大量搜集黄金。越是打仗,对于黄金越是饥渴。黄金历史上,有过著名的『山下奉文黄金』。  马来之虎,陆军大将山下奉文 二战中,日本军国主义者专门成立了掠夺亚洲人民财产的秘密机构,囤积黄金等重要物资。传说战败前,为了帮助日本东山再起,陆军大将山下奉文在菲律宾秘密埋下了作战行动用的资金(山下宝藏)175处。战后,山下宝藏约50吨黄金成功运回日本,其余要么被击沉遗落海底,要么不知所踪,谣传被美国人吞没,成为冷战的资本。 黄金是不能进入流通的,这是政府的敌人。所以,有着类似于黄金属性的比特币出现,大佬们又爱又恨。黄金可以入库和管制,但是这种『数字黄金』除了期货,真的是难以约束。为此,2018年芝加哥商品交易所(CME)开始了比特币期货交易。从CME期货上线起,比特币从超过2万美元的价格,一路下挫,几乎腰斩。 终于,华尔街大佬用期货,将比特币装进了制度的『笼子』里吊打,小皮鞭子抽起来了。 没有无缘无故的大涨,也不会有无缘无故的大跌。 CME/CBOE 等老牌金融机构上线比特币,也是不得已而为之。本来,美帝的科技与金融的势力分布,相对均衡,东海岸纽约,西海岸硅谷,我割我的金融韭菜,你搞你的科技泡沫,相安无事。 但是,中本聪搞出来的比特币的加速上涨,让整个西海岸的科技大佬们看到了彻底大洗牌的希望。今天的美国西海岸,聚集了全球价值最高的科技公司,他们有全球最好的人才和生产力,如果,能够推动数字加密货币发展壮大,不仅仅可以摆脱法币约束,自我造血,更能形成真正全球化有更强自治权力的公司帝国,从此一枝独秀。 比特币上涨,不是一场骗局,而是一场最深刻的较量,这是在美国土地上,东西海岸的权力角逐。 今天的硅谷,大佬们不仅仅掌握着全球最值钱的科技公司和娱乐公司、传媒公司,而且都已经满仓比特币的时候,再不遏制,纽约代表的东海岸金融势力,将永远且全面失去话语权。 作为国之重器,汉密尔顿所开创的美国金融基石将被一群码农瓦解,连重建的机会都没有。 美国的金融国父汉密尔顿 抛开比特币不谈,今天的我们,绝不能低估了比特币及Token(代币/通证)的历史意义,对于人类的进步而言,这是史诗级的变化。 首先,我们第一次摆脱了『债』的体系,以『Token』来计量无形生产资料。这是5000年来第一次。 其次,Token是加密的,政府无法监管、无法剥夺、无法控制,100%避税,穿透了所有金融监管和法律体系,让金融牌照废纸化,是首个超越暴力控制的产权模式。 最后,Token天然是去中心化的、动态的,是认同的一种标志。随着核心生产资料从土地、矿产和能源,变成算力、智力和数据,劳动者、企业主的话语权越来越强,人才和智力是无法接受法币剥削的,只能撮合,交换,达成共识。 Token:共识机制决定组织兴衰成败 生产资料稀缺时代,暴力形成共识:暴力的强弱决定了国家的兴衰成败。满清的衰朽和倒台,恰恰就是八旗子弟烂如泥,湘军和地方武装积极发展的结果。暴力,这种最大共识被打破了,满清溃散。如今,美元与军事力量挂钩,道理如出一辙。 生产资料充裕时代,共识来自于独立意志:组织和个体可以逐步脱离国家框架约束,自由迁徙,自由生产,共识只能来自独立意志的自由选择。 就像美国不会听英国的,因为是独立的,未来人类的殖民地火星也不会听地球的。除非,双方有共识。每一个token就是一种共识,就像TCP/IP协议一样,自由选择,自主配对。 我们相信,当所有的无形资产的Token化,必将形成无比庞大的新资产,精神文明远远大于物质文明,Token时代必定远远超越法币时代。不依赖于暴力、忽悠和洗脑,独立形成的共识是最值钱的,是新型文明的标志。  Token所代表的生产关系,让我们有机会去实现接近于理想状态下的共产主义:生产资料极大丰富,人们开始回复到人的本质——自由地有意识地活动,在物质高度发达的前提下,异化劳动不复存在,劳动变成了人的真正需要,分工和交换失去了存在的土壤,货币不再能操纵人类,人类的生命展现其高贵。
    详解区块链
    2018年02月01日
  • 详解区块链
    区块链是什么,如何简单易懂地介绍区块链?--截至目前最好最前面的一篇介绍! 作者:盗盗,已经获得授权发布。这是一篇浅显易懂的关于区块链BlockChain的介绍,我们看过很多,都不是很容易理解,容易理解的又不太准确和有逻辑性。所以特别征求了作者的意见,进行转发,根据情况最新版本的可以访问来源,盗盗还会持续更新优化。对于我们HR来讲,这个已经足够理解了   作者:盗盗 链接:https://www.zhihu.com/question/37290469/answer/293890531 来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 这篇文章采用了适当抽象、类举的叙事方式,中间或多或少有些地方会跟区块链底层严谨的技术实现有出入,欢迎大家来纠错。另外,也是受限于自己知识结构的缺失,这篇文章会随着我对区块链更深入认识后,随时进行修订,最后更新时间可参考该回答下方的时间戳。 --- 首先不要把区块链想的过于高深,他本质是一个分布式数据库存储系统,但区别于传统数据库运作——读写权限掌握在一个公司或者一个集权手上(中心化的特征);区块链认为,任何有能力架设服务器的人都可以参与其中。来自全球各地的掘金者在当地部署了自己的服务器,并连接到区块链网络中,成为这个分布式数据库存储系统中的一个节点;一旦加入,该节点享有同其他所有节点完全一样的权利与义务(去中心化、分布式的特征)。与此同时,对于在区块链上开展服务的人,可以往这个系统中的任意的节点进行读写操作,最后全世界所有节点会根据某种机制的完成一次又依次的同步,从而实现在区块链网络中所有节点的数据完全一致。 上图中,高亮的点就是区块链系统中分布在全球各地的一个个节点;而这些节点可以简单理解为一台服务器服务器集群 # 问题的由来 我们反复提到区块链是一个去中心化的系统,确实,「去中心化」在区块链世界里面是一个很重要的概念,很多模型(比如账本的维护、货币的发行、时间戳的设计、网络的维护、节点间的竞争等等等等)的设计都依赖于这个中心思想,那到底什么是去中心化呢?在解释真正去中心化之前,我们还是先简单了解下什么是中心化吧。 中心化? 回忆一下你在网上购买一本书的流程: 第一步,你下单并把钱打给支付宝; 第二步,支付宝收款后通知卖家可以发货了; 第三步,卖家收到支付宝通知之后给你发货; 第四步,你收到书之后,觉得满意,在支付宝上选择确认收货; 第五步,支付宝收到通知,把款项打给卖家。流程结束。 你会发现,虽然你是在跟卖家做交易,但是,所有的关键流程都是在跟支付宝打交道。这样的好处在于:万一哪个环节出问题,卖家和买家都可以通过支付宝寻求帮助,让支付宝做出仲裁。这就是一个最简单的基于中心化思维构建的交易模型,它的价值显著,就是建立权威,通过权威背书来获得多方的信任,同时依赖权威方背后的资本和技术实力确保数据的可靠安全。 你一定会摆出一个巨大的问号脸 ⊙.⊙?——“通过权威背书来获得多方的信任,同时依赖权威方背后的资本和技术实力确保数据的可靠安全”,真的可以嘛?! 假如说,支付宝程序发生重大BUG,导致一段时间内的转账记录全部丢失,或者更彻底一点,支付宝的服务器被金三胖的一个导弹全部炸毁了。而我刚刚转出去的100元找谁说理去,这个时候,你就成了刀殂上的鱼肉;支付宝有良心,会勉为其难承认你刚刚转账的事实,但他不承认你也没辙,因为确实连他自己也不知道这笔转账是否真实存在。 上述就是中心化最大的弊端——过分依赖中心和权威,也就意味着逐渐丧失自己的话语权。 去中心化? 那么去中心化的形态是什么样子呢?还是拿刚才那个例子继续,我们构建一个极简的去中心化的交易系统,看看我们是如何在网络上从不认识的卖家手里买到一本书的。 第一步,你下单并把钱打给卖家; 第二步,你将这条转账信息记录在自己账本上; 第三步,你将这条转账信息广播出去; 第四步,卖家和支付宝在收到你的转账信息之后,在他们自己的账本上分别记录; 第五步,卖家发货,同时将发货的事实记录在自己的账本上; 第六步,卖家把这条事实记录广播出去; 第七步,你和支付宝收到这条事实记录,在自己的账本上分别记录; 第八步,你收到书籍。至此,交易流程走完。 刚才“人为刀俎我为鱼肉”的情况在这个体系下就比较难发生,因为所有人的账本上都有着完全一样的交易记录,支付宝的账本服务器坏了,对不起卖家的账本还存在,我的账本还存在;这些都是这笔交易真实发生的铁证。 当然,在这套极简的交易系统中,你已经发现了诸多漏洞和不理解,比如说三方当中有一个是坏人,他故意记录了对他更有利的转账信息怎么办;又比如说消息在传递过程中被黑客篡改了怎么办等等等等。这在以往的计算机概论或者计算机网络书本上中可能都有提及到——“类两军”和“拜占庭将军”问题。这里就不打算赘述,因为暂时跟主线不相关,感兴趣的同学可以去Google或者百度一下,你只需要知道,在我们下面即将展开讲到的区块链系统中,通过巧妙的设计,足以解决上述存在的BUG。 既然话已说到这份上,相信了解一点技术、特别是有运维背景的同学大概能够从极简交易系统中窥视到了更多区块链的一些影子—— 分布式存储,通过多地备份,制造数据冗余 让所有人都有能力都去维护共同一份数据库 让所有人都有能力彼此监督维护数据库的行为 在我看来,你猜测的基本上没错。其实这些就是区块链技术最核心的东西,外人看起来高大上、深不可测,但探究其根本发现就是这么简单和淳朴。当然,这里面肯定会有很多很多很多细枝末节的技术需要重构。 如果你差不多认同上面的观点,那我们应该基本上可以达成共识,分布式部署肯定构建去中心化网络理所当然的解决方向——通过P2P协议将全世界所有节点计算机彼此相互连接,形成一张密密麻麻的网络;以巧妙的机制,通过节点之间的交易数据同步来保证全球计算机节点的数据共享和一致。 哈哈,说的轻巧,“交易数据这么重要的东西,在一个完全不信任的P2P网络节点中以一种错综复杂的方式传递,数据的一致性和安全性谁来保证,如果说互相监督,他们到底怎么做到?” 好了,不卖关子了,下面让我们围绕这个最最最最直接的问题开始进入到真正区块链的世界,抽丝剥茧看看它到底是如何一步一步形成的,又是如何一步一步稳定运转。 # 从全球节点到交易数据 这张图的制作的意义为的是帮助你在宏观上快速理解区块链中所涉及到的相关名词以及他们的层级关系。同时,文章的知识结构和设计思路大抵上也会按照: 首先,将区块作为最小单位体,讲述极简区块链系统是如何运转的; 接着,进入到比区块更小单位体——交易记录,理解区块链是如何处理数据的; 最后,将所有知识点柔和在一起,重回区块和区块链,完整讲述整个工作流程。 希望你在这个引导和结构下有一个比较好的阅读体验。 # 区块,混沌世界的起源 在讲故事之前,我们已经事先构建好了一个去中心化的P2P网络。同时,为了让读者朋友们听起来更轻松,我们硬性规定在这个区块链世界里,每十分钟有且仅允许产生一笔交易。 故事继续,大概每十分钟会凭空产生一个神奇的区块(你可以将区块想象为一个盒子),这个区块里放着一些数字货币以及一张小纸条,小纸条上记录了这十分钟内产生的那唯一一笔交易信息,比如说——“小A转账给了小B100元”;当然,这段信息肯定是被加密处理过的,为的就是保证只有小A和小B(通过他们手上的钥匙)才有能力解读里面真正的内容。 这个神奇的区块被创造出来之后,很快被埋在了地底下,至于埋在哪里?没有一个人不知道,需要所有计算机节点一起参与进来掘地三尺后才有可能找到。显然,这是一件工作量巨大、成果随机的事件。但是呢,对于计算机节点来说,一旦从地底下挖出这个区块,他将获得区块内价值不菲的数字货币,以及“小A转账给了小B100元”过程中小A所支付的小费。同时,对于这个节点来说,也只有他才有权利真正记录小纸条里的内容,这是一份荣耀,而其他节点相当于只能使用它的复制品,一个已经没有数字货币加持的副本。当然这个神奇的区块还有一些其他很特别的地方,后面我们会再细细聊。 为了更好的描述,我们将计算机节点从地底下挖出区块的过程叫做「挖矿」,刚才说了,这是一件工作量巨大、运气成分较多、但收益丰厚的事儿。 过了一会儿,来自中国上海浦东新区张衡路上的一个节点突然跳出来很兴奋的说:“ 我挖到区块了!里面的小纸条都是有效的!奖励归我!” 。虽然此刻张衡路节点已经拿到了数字货币,但对于其他计算机节点来说,因为这里面还涉及到其他一些利益瓜葛,他们不会选择默认相信张衡路节点所说的话;基于陌生节点彼此不信任的原则,他们拿过张衡路节点所谓挖到的区块(副本),开始校验区块内的小纸条信息是否真实有效等等。在区块链世界里,节点们正是通过校验小纸条信息的准确性,或间接或直接判断成功挖出区块的节点是否撒谎。(如何定义小纸条信息真实有效,后面会讲解,这里暂不做赘述)。 在校验过程中,各个节点们会直接通过下面两个行为表达自己对张衡路节点的认同(准确无误)和态度: 停止已经进行了一半甚至80%的挖矿进程; 将张衡路节点成功挖出的区块(副本)追加到自己区块链的末尾。 你可以稍微有点困惑:停止可能已经执行了80%的挖矿行为,那之前80%的工作不是就白做了嘛?!然后,区块链的末尾又是个什么鬼东西? 对于第一个困惑。我想说,你说的一点没错,但是没办法,现实就是这么残酷,即便工作做了80%,那也得放弃,这80%的工作劳苦几乎可以视为无用功,绝对的伤财劳众。第二个困惑,区块链和区块链的末尾是什么鬼?这里因为事先并没有讲清楚,但是你可以简单想象一下:区块是周期性不断的产生和不断的被挖出来,一个计算机节点可能事先已经执行了N次“从别人手上拿过区块 -> 校验小纸条有效性”的流程,肯定在自己的节点上早已经存放了N个区块,这些区块会按照时间顺序整齐的一字排列成为一个链状。没错,这个链条,就是你一直以来认为的那个区块链。如果你还是不能够理解,没关系,文章后面还会有很多次机会深入研究。 # 走进区块内,探索消息的本质 上面我们构建了一个最简单的区块链世界的模型,相信大多数同学都已经轻松掌握了。但是别骄傲也别着急,这还只是一些皮毛中的皮毛,坐好,下面我们准备开车了。 前面我们说到“大概每十分钟会凭空产生一个神奇的区块,这个区块里放了一张小纸条,上面记录了这十分钟内产生的这唯一一笔交易信息”。显然,十分钟内产生的交易肯定远不止一条,可能是上万条,这上万条数据在区块链世界是如何组织和处理的呢?另外,为什么在纸条上记录的只是某一次的交易信息,而不是某一个人的余额?余额好像更符合我们现实世界的理解才对。 既然存在这样那样的疑问。现在我们就把视线暂时从“区块”、“区块链”这些看起来似乎较大实体的物质中移开,进入到区块内更微观的世界里一探究竟,看看小纸条到底是怎么一回事,它的产生以及它终其一生的使命: 发起交易的时候,发起人会收到一张小纸条,他需要将交易记录比如说“盗盗转账给张三40元”写在纸上。说来也神奇,当写完的那一刹那,在小纸条的背面会自动将这段交易记录格式化成至少包含了“输入值”和“输出值”这两个重要字段;“输入值”用于记录数字货币的有效来源,“输出值”记录着数字货币发往的对象。 刚刚创建的小纸条立马被标记成为“未确认”的小纸条。从地下成功挖出区块并最终连接到区块链里的小纸条一开始会被标记为“有效”。若这条有效的小纸条作为其他交易的输入值被使用,那么,这个有效的小纸条很快会被标记为“无效”。因为各种原因,区块从链上丢弃,曾经这个区块内被标记为“有效”的小纸条会被重新标记为“未确认”。 区块链里面没有账户余额的概念,你真正拥有的数字资产实际上是一段交易信息;通过简单的加减法运算获知你数字钱包里的余额。 上面的1、2、3仅仅作为结论一开始强行灌输给你的知识点,其中有几个描述可能会有点绕,让你觉得云里雾里,没有关系,因为我们立刻、马上就开始会细说里面的细枝末节。 上图,是区块内,盗盗在一张小纸条上记录下的交易信息,后被格式化的呈现 上图就是从无数打包进区块内的小纸条中,抽取出来的一张,以及它最终被格式化后的缩影。单看右侧的图可能很容易产生误会,虽然看起来有多行,但实际上就是“盗盗转账给张三40个比特币”这一条交易数据另外的一种呈现形态。因为区块链世界里面这么规定,每一条交易记录,必须有能力追溯到交易发起者 发起这笔交易、其中所涉及金额的上一笔全部交易信息;即这笔钱从何而来的问题。这其实很容易理解,在去中心化的网络中,通过建立交易链、通过交易链上的可溯源性间接保证数据安全和有效。 我们继续看,在区块链世界里,我们是如何仅通过“盗盗转账给张三40个比特币” 这条交易信息完成转账流程的。其实跟现实中你在路边买一个包子的流程大抵上相同。 第一步:判断是否有足够的余额完成交易 这里我们再一次重申,区块链世界是没有余额的概念,你拥有所谓的数字货币实际上是因为你拥一条交易记录,即 “盗盗转账给张三40个比特币”!这里,我们还是拿这条记录说事: 追溯“输出值”是“盗盗”相关的全部有效交易记录作为,对有效交易中的数字进行简单求和,判断是否大于等于40,如果确实大于等于,则将这些有效的交易记录合并形成一条新的交易记录(如下图)。如果小于40,其实可以不需要再继续往下探讨。 就上图的例子,我们追溯到曾经转账给盗盗的有效交易记录有“小A转账给盗盗10 btc”、“小B转账给盗盗20 btc”、“小C转账给盗盗 25 btc”,我们需要将这三条交易记录合并成一条更复杂描述的交易记录,即 “( 小A转账给盗盗10 btc + 小B转账给盗盗20 btc + 小C转账给盗盗 25 btc ) 转账给张三40 btc ” 第二步:判断是否需要找零 对追溯到的有效交易数字求和,如果发现大于需要支付的金额,需要将多出的数字重新支付给自己,相当于找零。对应生成了一条全新的交易记录(如下图)。 就上图例子来说,我们最后合并成的交易记录 “( 小A转账给盗盗10 btc + 小B转账给盗盗20 btc + 小C转账给盗盗 25 btc + 盗盗转账给盗盗15 btc ) 转账给张三40 btc ” 事实上等同于“盗盗转账给张三40 btc”。其中“盗盗转账给盗盗15 btc”就可以理解找零。 第三步:发出去,让全球节点认同和备份小纸条 这条内部重新处理过的复杂交易记录被塞进区块,埋到地下,等待节点挖出来,一旦区块被挖矿成功,并且该区块最终被连在了区块链的主链上。张三将最终拥有了这条交易记录,而先前的“小A转账给盗盗10 btc” 、“小B转账给盗盗20 btc” 、“小C转账给盗盗25 btc”都将被视为已经使用过的交易记录——从此被贴上“无效”的标签,意味着这些交易记录将永远不会再被追溯到。 我们最后一次重申,只是希望让你加深印象:拥有数字货币=拥有交易记录! 通过设计巧妙的精巧密码学保证数据安全 记录着交易信息的小纸条借助区块这个载体,在分布式的网络中以不同的轨迹错综复杂的传递,我们前面说了,你真正拥有的数字资产实际上是一段交易信息,而不是你常规意义上理解的货币。所以这个过程就需要重点解决两个问题: 接受到的这条交易记录在传输过程没有被其他人所篡改 接受到的这条交易记录确实是由发起交易的人所创造 在这里,我们需要事先引入两个知识点,可能稍微有点难消化,但都是计算机领域较为成熟的和基础的概念。 第一个知识点:Hash()函数。你只需要知道,任意长度的字符串、甚至文件体本身经过Hash函数工厂的加工,都会输出一个固定长度的字符串;同时,输入的字符串或者文件稍微做一丢丢的改动,Hash() 函数给出的输出结果都将发生翻天覆地的改变。注意,Hash()函数是公开的,任何人都能使用。 上图,仅仅一个小数点的变化,输出的结果已经翻天覆地 第二个知识点:非对称加密。你也只需要了解,任何人手里都有两把钥匙,其中一把只有自己知道,叫做“私钥”,以及一把可以公布于众,叫做“公钥”;通过私钥加密的信息,必须通过公钥才能解密,连自己的私钥也无解。公钥可以通过私钥生成多把。 有了这些知识点的加持,上面两个问题开始变得有解。下面我们来看下内部是如何扭转和工作的吧,这里拿“小A 转账给了小B 100元钱” 举例: 第一步:小A会先用Hash函数对自己的小纸条进行处理,得到一个固定长度的字符串,这个字符串就等价于这张小纸条。 第二步:小A使用只有自己知道的那一把私钥,对上面固定长度的字符串进行再加密,生成一份名叫数字签名的字符串,这份数字签名能够充分证明是基于小纸条的。你可以这么理解,在现实中,你需要对某一份合同的签署,万一有人拿你曾经在其他地方留下的签名复制粘贴过来怎么办?!最好的办法,就是在你每一次签名的时候,故意在字迹当中留下一些同这份合同存在某种信息关联的小细节,通过对小细节的观察可以知道这个签名有没有被移花接木。步骤一和步骤二的结合就是为了生成这样一份有且仅针对这条小纸条有效的签名。 第三步:小A将「明文的小纸条」、刚刚加密成功的「数字签名」,以及自己那把可以公布于众的「公钥」打包一起发给小B。 第四步:当小B收这三样东西,首先会将明文的小纸条进行Hash()处理,得到一个字符串,我们将其命名为“字符串1”。然后,小B使用小A公布的公钥,对发过来的数字签名进行解密,得到另外一个“字符串2”。通过比对“字符串1”和“字符串2”的一致性。便可充分证明:小B接受到的小纸条就是小A发出来的小纸条,这张小纸条在中途没有被其他人所篡改;且这张小纸条确实是由小A所编辑。 可以看得出来,加解密的过程几乎是一环套一环,中途任何环节被篡改,结果都是大相径庭。借助这一连串的机制,其实已经能够很好的在公开、匿名、彼此不信任的分布式网络环境中解决数字交易过程中可能遇到的很多问题。这个环节可能确实有点难理解,现在,我需要你停下来,静下心,花上几分钟闭目慢慢回味其中设计精湛的地方。 掌握了这部分知识以后,我们在这里回答一下前面没有解释清楚的问题,「节点对区块的检验」检验的到底是什么?实际上就是: 检验区块内的交易记录签名是否准确(是否被篡改) 检验区块内的交易记录输入值是否“有效”(是否使用过) 检验区块内的交易记录输入值的数字之和是否大于等于输出值的数字 … # 重回“区块”和“区块链”的世界 好了,对小纸条和交易记录的研究我们点到为止,其实信息量已经是巨大的了,让我们合上盖子,重回较大实体、继续聊聊“区块”和“区块链”的话题。还记得,咱们在一开始讲到关于区块的特征吗?区块创造后被埋在地下,需要经过节点们马不停蹄的挖采、而且是凭运气的挖采才有可能获得——不仅仅如此,事实上他还有其他很多神奇的地方,比如说: 凭空产生的区块在刚刚创建的时候会形成一股强大的黑洞效应,它会尝试将这段时间全世界产生的所有小纸条(交易记录)统统吸进来;在合上区块盖子之前,同时会在区块内放上一些数字货币以及其他一些东西。 所有的区块在全网范围内都有一个唯一的ID,但它只会在这个区块被节点成功从地下挖出来之后创建。这个ID至少会跟「区块内所有小纸条的集合」、「即将与之相连的上一个区块ID」以及「挖矿节点的运气值」等因素相关。既然前面我们已经简单了解了“Hash()函数”这个东西,这里不妨透露给你:“区块ID = Hash(‘区块内所有小纸条的集合’+’即将与之相连的上一个区块ID’+‘挖矿节点的运气值’+’…’)” ;基于先前掌握的知识,然后你应该知道区块内任意一张小纸条的信息稍微做改动、或者节点挖矿运气好一点坏一点等等,当前区块的ID都会 “ biu~ ”的发生改变。 一个周期内会尽量控制有且仅产生一个区块。值得注意的:产生区块、成功挖出区块、校验区块,他们的时间周期近乎相同。比特币的区块链世界里大概被设定为10分钟,这会通过某种机能尽量控制和稳定,比如说,当大伙挖矿的热情高涨、工作效率提高,区块会被埋在更深更广的地方等。 挖矿,本质是通过与或运算,计算出一个满足规则的随机数,然后通过大量运算去碰撞匹配随机数。这个部分要细讲的话,估计又可以写出两三千字来。我觉得到目前为止,并不影响主轴知识点的讲解,这一块会作为后续知识结构完善重新被撰写。感兴趣的同学可以Google百度查阅下。 现在,我们终于对“区块”这个概念有了更全面的认识,文章开头讲的故事就可以继续展开来絮叨絮叨: 假如几乎同一时间,「中国上海浦东新区张衡路」上的节点和「美国纽约曼哈顿第五大道」上的节点异口同声喊出来:“我挖到区块了!里面的小纸条都是有效的!奖励归我!”。其他节点也几乎同时参与了对这两个区块的校验,结果发现这俩都没毛病,各节点也开始犯困,因为在他们的视野里他们并不清楚最后哪一个区块应该会被主链接纳。算了!都连在自己区块链尾巴上吧,这时尴尬了,区块链硬生生的被分叉了! 产生分叉 你肯定在想,那还得了,这种情况继续下去,每个节点的区块以及他们整理维护的小纸条都将变得不一样,这已经严重违背了区块链世界里第一大最基本原则——所有节点共同维护同一份数据。所以,为了解决这个问题,区块链世界引入了一条新的规则——拥有最多区块的支链将是真正被认可有价值的,较短的支链将会被直接Kill掉。 我们大伙都知道挖矿的过程存在巨大的工作量(如果没有任何难度,把区块扔在人群中,必然同一时间发现区块的节点数量将大大增加,也就会产生无数的支链,通过这个例子,你大概也就能够明白,区块链世界为什么需要设置工作难度了吧),并且在计算机的硅基世界里,不可能出现所谓 “同时” 的概念,哪怕纳秒的差别,那也总是会有先后顺序。所以理论上,“分叉”的这种僵局很快会在下一个区块被挖掘出来(以及校验区块)的时候被打破,实在不行下下个,或者下下下个……总之机制可以让整个分叉的区块链世界迅速稳定下来。 “分叉”这种僵局在确认下一个区块(以及校验小纸条)的时候被打破,从而整个区块链世界迅速稳定下来 就上图而言,所有基于张衡路节点挖矿获得的区块以及后续区块的那条分支被视为有价值,最终会全部保留了下来;其他节点会统一效仿那个拥有更长分支链的节点所做的决策。另外,值得一提的是,同一时间,较短分支上的区块会立即丢弃,而里面的小纸条也会随之释放出来,被重新标记上“未确认”。 “双花问题”与“51%攻击” 你可能已经开始困惑或者有点兴奋,末尾几个区块的排序在修复过程中,因为时间差肯定会产生一些模棱两可的地方,这往往会给数据安全埋下一颗雷。一个最简单的假设——我记录的一张小纸条很不巧地被归在了一条较短的支链上,这条支链在竞争过程中理所当然输掉了比赛,区块被丢弃、小纸条被无情的贴上“未确认”的标签。在等待下次区块重新确认的过程中,这个时间差内,我,好像、似乎可以做点什么坏事 ԅ(¯﹃¯ԅ) ,就比如说“双花”(双花,花两次,双重支付的意思) 你脑海中也许很快浮过的这样的构想,可不可能通过下面这种方法触发双花问题的产生,从而让我不劳而获: 假设有一个名叫X-Man的坏家伙,他控制了一个计算机节点,这个节点拥有比地球上任何一个节点算力都强大的计算机集群。 首先,X-Man事先创造了一条独立的(不去广而告之)、含有比较多区块的链条。其中一个区块里放着“X-Man转账给X-Man 1000元”的纸条。 接着,X-Man跟张三购买了一部手机,他在小纸条上记录下“X-Man转账给张三1000元”;这条信息被三次确认后(即三个区块被真实挖出、校验和连接),然后,张三把手机给了X-Man。 X-Man拿到手机之后,按下机房的开关,试图将先前已经创造的区块链条连接在自己这个节点区块链的末尾。 大功告成,X-Man拥有了一条更长的区块链条,那些较短、存放着“X-Man转账给张三1000元”的区块链,以及在区块链世界里那则真实转账行为被一同成功销毁。(?) 事实真的如此吗?在这里我可以很负责任的说,too young too simple,区块链世界规则的制定远比我们想象的要健全很多,还记得我们之前讲的“区块的ID至少会跟区块内所有小纸条的集合、即将与之相连的上一个区块ID以及挖矿节点的运气值等因素相关”。 在这里,正是因为打算连接到主链的时候,事先准备的链子会意识到马上要连接上的那个区块ID发生了改变,随之而来的是后面所有区块ID都瞬间。节点不得不重新对后续区块的解锁以及对区块内小纸条的校验。 在区块链的世界,重新计算的行为等同于把自己(节点)置身于同一个起跑线,跟世界上其他所有的节点一同竞争挖矿。你会说,我拥有更强大的计算能力,但是对不起,跟你竞争的对象并不是第五大道、南京西路、香榭丽舍大道上的某一个节点,而是全球所有算力的集合,在这个集合中,你拥有的算力永远都只是一个很小的子集。所以,根据区块链算力民主、少数服从多数的基本原则,这个构想将永远不会成立。 除非.... 你控制着全球51%的算力,这也就是区块链世界里另外一个著名的概念,叫做“51%攻击”,但这也仅仅是一个理论值,在真实世界里这样的攻击我个人觉得是很难发动起来的,这里面就牵涉到很多经济、哲学甚至政治的因素。举个最简单的例子:X-Man为了回滚刚刚发生的一笔交易记录,成功发起了51%攻击,这意味着很快整个区块链系统将会崩盘,因为这次攻击已经严重伤害到人们对这套系统的信任,接着比特币开始暴跌至几乎一文不值;但是这个拥有51%算力的X-Man原本完完全全可以通过挖矿的方式获取更多收益,购买无数的iPhone手机。那他不是脑袋不是坏了还能是啥?对51%攻击话题感兴趣的同学可以阅读这篇文章《什么是比特币51%攻击?》。 至此,我觉得区块链最基础、最核心的知识已经全部讲完了(除了挖矿内部实现原理,作为一个遗憾留在这里,有时间会完善掉),相信你已经对它有了一个宏观的认识。另外,由于这篇文章采用了适当抽象、类举的叙事方式,中间或多或少有些地方会跟区块链底层严谨的技术实现有出入,欢迎大家来纠错。另外,也是受限于自己知识结构的缺失,这篇文章会随着我对区块链更深入认识后,随时进行修订,最后更新时间可参考该回答下方的时间戳。 参考 中心化与去中心化 https://www.douban.com/note/624421270/ 图说区块链 https://book.douban.com/subject/27084306/ 区块链是什么,如何简单易懂地介绍区块链? https://www.zhihu.com/question/37290469 什么是比特币51%攻击? http://8btc.com/article-1949-1.html 区块链与新经济:数字货币2.0时代 https://book.douban.com/subject/26804497/ 詳解比特幣原理和運行機制 https://www.youtube.com/watch?v=P4seQcP77H4 区块链是什么:从技术架构到哲学核心 https://v.qq.com/x/page/x0518nuh2z7_0.html 区块链核心算法解析 https://book.douban.com/subject/27081206/ 深入理解比特幣的安全性及程式交易安全性與相關的密碼學原理 https://www.youtube.com/watch?v=3w1Tg3B_oKQ 深度了解区块链——拜占庭将军问题深入探讨 https://wallstreetcn.com/articles/338061
    详解区块链
    2018年01月12日