干货|破解区块链的密码——技术进化之路(分享实录)

内容来源:HiBlock区块链课堂001期 林海龙老师的线上分享《破解区块链的密码——技术进化之路》

本文编辑:Cynthia

文章来自:区块链社区HiBlock



在正式分享之前,我先说说我是怎么接触区块链的。我接触区块链是在2016年春天,一个很偶然的机会,当时以太坊在深圳搞了一个线下活动,我觉得很好奇,“区块链”到底是个什么东西呢?我需要了解一下,于是去参加了这次活动。自从那次会议以后,我树立了对区块链的基本认识,并经过不断的思考和实践有了一些新的看法。我希望今天的这个分享,能够帮助大家。


今年1月份区块链忽然间就火爆起来了,这种火爆跟很多因素有关。但是不可否认,很多言必称区块链的人并不是真正地理解区块链,包括现在很多很火的社区、所谓的专家教授等,很多所谓接触区块链的人时间都很短。



由于热度很高,每天我们都能听到各种各样的关于区块链的观点和声音,那要怎样形成真正的认识这些东西呢?区块链技术本身也在不断的发展中,本次分享基于我对区块链的研究和理解,从概念的角度给大家做一个简单的介绍。


1

基本认识:三句话理解区块链
不再被各种似是而非的文章所误导



现在出了很多关于区块链的书,还有百度百科、维基百科等,它们把区块链定义为一个公共的数据库,或者一个公共账本。我们知道区块链是一个数据存储系统,不可篡改;它是去中心化的;它是基于信任共识的……至于什么是公共账本?什么是公共数据库?这些概念并没有一个清楚的解释。


  • 首先它确实是一个数据存储系统,区块链本身就是一个存数据的地方;

  • 第二它本身是一个数据计算系统,不仅存储数据,还进行计算;

  • 第三它是分布式的,有很多节点组成。它跟企业中云计算分布式的区别是:区块链是基于一个互联网的分布式。


也就是说,区块链是在互联网分布式下的数据计算和存储系统。首先它是分布式的,其次它是数据计算系统,最后才是公共账本,也就是公共数据库。


这个概念是我提出的,具有独创性,但怎么去理解呢?看下图,其实这个过程没有多复杂。就是说有一个区块链网络,有客户端,你加入到这个网络中,你可能会同步这个区块数据,把数据从网络上下载下来,所以第一步就是下载。当然我讲的是挖矿节点的模式,如果是轻钱包其实可以不用下载。



在正常的存储中,第一步是搜索节点,第二步是同步账本数据,这个类似于迅雷下载,比如我有个种子,就能从网络上下载一个电影,这是大家都知道的最普遍的应用,种子技术。


搜索节点、同步账本数据到本地,这一步来看它就是一个公共账本,人人可以下载,每个人可以持有一块。我有了这个账本之后就结束了吗?没有。区块链更复杂更神秘的地方在挖矿。


为什么要挖矿?进行到第三步,我有一个数据,比如转账,那么,我要发起一个转账的请求,由网络上的节点进行计算,而之前提到区块链是一个互联网分布式系统,那么多节点,让谁来计算呢?它要选择一个节点,这个被选中的节点就叫“矿工”,被选中的矿工做计算的过程被称为“挖矿”,所以我们说的矿工、矿池其实是计算数据的。矿工要接收、计算数据,存入内存,并将数据打包成一个区块,打包完之后向其他节点广播,至此这个数据计算才算完成,其他节点验证后,就可以正式接收这个数据了。


区块链是一个匿名的互联网网络,加入多少节点都是不受限制的,它是一个互联网的分布式,与企业中云计算下的分布式有本质区别。因此从本质上,区块链解决了互联网分布式计算的难题。



互联网上这么多节点,它们去负责计算,而在整个自组织的系统中,各节点彼此互不相识互不信任,充满了欺诈行为。这里就有了几个问题:


第一个问题:怎么鼓励大家贡献自己的计算资源,比如CPU、显卡、硬盘,参与到这个计算的过程中。就是说作为一个普通用户,我凭什么买机器去帮你做这个计算?


第二个问题:可信的问题,如何避免恶意的攻击、作弊、窃取身份、修改数字等?这是最重要的。节点是匿名的,凭什么相信他?以前有一句经典的话:你都不知道对方是不是一条狗,你怎么会相信它的计算结果?


怎么来解决这些问题呢?通过挖矿。这是一个通俗的叫法。挖矿的过程是用一系列技术来完成的,包括:共识算法、加密技术、P2P技术、挖矿奖励、公共账本等。


很多人说你可以谈共识算法、可以谈加密算法、但是你不能谈挖矿,不能谈代币,不能谈token,我感觉这种说法很可笑,我认为谈区块链不谈挖矿,就等于是没有抓住本质的盲人摸象。


2

技术解析:古已有之的几个关键技术
创新只是在于组合


1、共识


 

共识是什么意思?为什么叫共识算法?我觉得这个共识算法的名字起得非常好,但是不太好理解。算法怎么能共识呢?我证明你算出来的数据是准确的、是可信的,我们大家才容易达成共识。它解决了一个拜占庭将军的问题,大家可以百度一下拜占庭将军问题,当然可能你查半天也没办法理解到底说的是什么,研究数学问题、和计算机算法的人对它可能会有更深刻的认识。


拜占庭问题到底是什么呢?就是在一个分布的互不信任的网络上如何保持事务的一致性。相信如果你不是做IT的,也一样很难理解什么是保持事务的一致性,这里先假设你是程序员,可以理解。那么怎么保持一致性?回到前文提到的区块链网络,我们要保证事务的一致性或数据的一致性,就必须只能有一个节点来计算出的结果是最终有效的。


那到底选择谁来计算呢?就是选择矿工的过程。这个方法跟中心化服务器是不一样的,比如支付宝、电商网站,这些应用都是使用中心化服务器,有服务器在那里,上面部署了相应的程序,负责调度资源进行计算,不会出现多台计算器同时计算同一个数据的问题。但在互联网环境下,有很多个节点、很多台计算器,可能同时计算。所以我们要有一个算法或规则,在一段时间内,只能选择其中的一个有效计算节点。


还要防止这个算法或规则被人控制,计算节点的选择要高度随机,不可预测。假如我控制了这个规则,就可以作弊,选择我的节点来计算。


还要保证计算正常进行,多个节点同时运行,只有一个数据最有效。


通俗地来说,共识算法就是:在互联网上,我凭什么相信和接受你算出来的东西,共识算法就是为解决这个问题而存在的。


具体是怎么解决的呢?常见的有几种算法:


POW 工作量证明


 

工作量证明的基本原理是:通过暴力计算的方式来求得一个计算难度极高的数学解,其目的是为了增加作弊的成本。就是说这个节点必须不停地计算,然后求得一个解,如果算对了,这个节点就是矿工,这个计算的过程很难,有一定的计算成本,保证矿工选择的高度随机性,如果过程很简单的话,就很容易作弊,也很容易被控制。在这个计算过程中,最终的结果可能只是做了很多无用功,浪费了大量的计算。


我们来看其代码实现,最终是要计算出小于这样的一个值。当然区块链有不同的计算方法,大概的意思都差不多,就是经过一系列复杂运算,计算得出一个比它给出的值还要小的结果,那你就是矿工。这个给出的值本来就很小,它前面有14个空格,你算出来的值要在前面14个空格,才是有效的。这个数是算哈希值,当时我算了一下,好像是几万亿分之一的概率。如果你想要挖矿的话就只能不停的算,一个节点做了大量计算,偶然像中彩票一样,被选为矿工,就可以去负责在全网做一个计算。将来谁的计算能力越高,被选中为矿工的几率就越大。


为什么说古已有之?


 

区块链技术确实是一项伟大的创新,但它是一种应用式创新、集成式的创新,而非颠覆式的发明。工作量证明在很早以前就有了,上图是我从维基百科截取的,1999年的时候就提出过这样的方法,当然它不是用于比特币,而是用于判断垃圾邮件或可信身份方面,原理是一样的。


很多人提出异议:工作量证明会耗费大量的计算和资源。我个人觉得:无用即是有用,这是一种合理的浪费,信任的代价。信任是有成本的,可能就是通过工作量证明而来,在去中心化的场景下,必须要付出这些代价。当然了,现在社会还是中心化的组织,为什么相信他可以代表一个公司、一个企业,甚至代表政府?因为他是有信任力的,我们对这个中心化的组织是有信任的。而互联网上,我凭什么相信你呢?POW是一种解决方案。


POS系列


当然也有很多人质疑,除了浪费资源以外,还因为谁的计算能力强,谁就获得记账的权利,那如果有人投很多钱建立一个矿池,买很多矿机,拥有强大的算力,就可以垄断记账,这就不公平。



因此后来衍生出POS系列,不用工作量的方式来实现,它的方式非常简单,和银行存款一样,按照节点的持币数量和持有天数,计算某一时间内,参与计算的各个节点优先级顺序。


这个方式在理论上实现了人人平等,实际上还是有钱人说了算。持币太少的话,在一个记账区间内其实是没有机会获得记账权限的。普通人在这个节点上没有获得记账权限,没办法获得收益,怎么办?因此衍生了DPOS选举代理计算节点,由计算节点进行计算,投票节点分享收益。


DPOS的优点是:计算任务由少数人承担,计算速度快。

缺点是:存在中心化的倾向。


2、加密技术


非对称加密



 

非对称加密技术不是区块链或比特币独有的,而是在以前就存在,它解决了匿名身份的认证和数据安全的问题。


为什么叫非对称?在网络发送数据的时候,用公钥来加密,用私钥来解密。一般来说公钥是接收方的账户地址,比如我要把这个币转给你,我事先肯定要知道你的地址,那么我就把你这个地址的这串字符作为一个公钥来加密,私钥是根据公钥产生的,不能逆推,如果有人知道了公钥,其实是解密不了的,必须用私钥才能打开。


非对称加密技术解决了身份认证和数据安全的问题,就是说如果有人截留你了,甚至知道你的公钥都没有用,因为只有私钥才能打开这个数据。


3、P2P网络


 

点对点的传输技术,是区块链脱离中心化服务器控制,形成公共账本存在的基础。公共账本为什么会存在?你去链接到一个区块链网络,就可以把整个网络下下来,只有P2P点对点传输技术才能把这些数据下下来。


当然点对点传输也不是所有人都是普通的服务器,节点上也有一些大型的服务器来支撑整个网络的运转。


4、公共账本-区块链数据

 


为什么叫区块链?


  • 它是由很多个区块首尾相连形成的,包括创世区块、区块链0001、区块0002……它跟传统数据库是有区别的。


  • 整个数据(账本)可以存在于每个计算节点上,当然这个电脑硬盘要足够大,因为节点数据很多。


  • 历史数据不可能篡改。这个是存在一定争议的,理论上通过分叉等其他控制也是可以改的,只是实际操作难度比较大而已。数据是首尾相连的,想在中间加一个数据,或改一个数据,是改不掉的,它是通过校验的方式去实现的。


  • 存在容量瓶颈。为什么呢?公共账本的数据如果太大,大家就很难存储了,所以,目前的技术还不适合存储大量数据(如图片、视频)。


  • 具有先天的性能和统计缺陷。没办法做一些复杂的统计。


3

发展前景:去中心化的信仰
复杂问题需要复杂的技术



我认为目前还处于前区块链时代,还没有正式进入区块链时代,只是一些概念被炒得很火热。我们设想的区块链世界是一个理想的社会:


  • 没有边界的社会,人人都可以协作。

  • 可编程的社会。技术在改变我们的社会,但是我们能不能做到一些更加智能化、定制化的东西?现在还很难,比如空调,升高降低温度还需要靠遥控器来控制,将来某一天我们能不能对空调进行编程?让技术深入到生活和社会的方方面面,这些未来都可以在区块链上完成。

  • 契约化的和民主自治的社会


我们认为目前区块链技术还处于一个比较低级的阶段,还承担不了这样一个职能,但相信未来一定是这样一个社会。互联网还有一个匿名的特征,同时还是分布式的,还要有工具和技术来实现,要可编程要自动执行,不能轻易更改,这些都是区块链提供给我们的,有了这些区块链世界才能达成。


去中心化



很多人都在说去中心化,那么这个潜在的需求是什么?是去中心化的需求,有些东西就是要去中心化。我们简单地从一人世界、二人世界和多人世界这个角度来理解,这也是一个专家学者提出来的社会学的概念。


在一人世界中,比如一个家庭里面,或者你跟你的亲属之间就是一人世界,就是围着某个人转,这个世界比较简单,这肯定是一个中心化的场景。到了公司可能也是,为这家企业工作,围着股东董事会或者公司总经理,也是一人化的世界。


再往前一点就稍微复杂一点,比如供一个产业链,这时可能不是一个公司说了算的,上下游会互相博弈。到了国家层面就更复杂了,比如国家选举、执行一项重大决策等。到全球贸易,全球市场就更复杂了,可能会变成一个多边协作的关系。


多元世界就是人人之间的协作,比如我现在想从某一个国家买一个东西,假如有人出售,我就可以去买。现在的很多交易都会依赖一个中介,比如淘宝或者其他的网站,这个中介就是中心化的组织,其实很多去中心化的场景是依托于中心化的方式来实现的。如果有一个去中心化的东西,我和他之间的商品交换能够通过这个去中心化的东西更顺利进行,交易成本更低。


所以我想,未来我们怎么通过这种去中心化的技术来满足去中心化的场景,而不是像现在很多人说的那样,去中心化的东西要颠覆中心化。


什么是真正的去中心化?



当前互联网、共享经济宣称的“去中心化”是伪去中心化,因为点对点交易仍然依赖于商业组织提供的中心化服务,并被监控和剥削。


举个简单的例子,比如现在某些打车软件,还是依赖于这个公司的服务器,它承担了一个中介的职能,在整个过程中会监控数据、利用数据,甚至窃取数据,这就必然产生剥削行为,软件会向司机收钱,比如你支付20元,实际司机只能拿到15元。


真正的区块链是这样的,不需要通过哪个公司,直接查找车主。车主向区块链发布数据,我的车现在闲着,谁愿意用,位置在哪里,打车的人可以直接在区块链上下单,司机接单跑完这个服务。这个时候谁来支撑网络运行呢?谁负责这个交易的撮合呢?矿工,他要支撑这个网络运转,必然也会收取一定的费用,但他收取的费用肯定远远低于中心化组织。大家可以沿着这个思路去扩展。


复杂的地方需要复杂的技术,那些场景是比较复杂的?人类社会最复杂。


区块链技术不能乱用,有些东西比较简单没必要非得用区块链技术来解决。有人说你这个企业数据量太大,用户量一大就宕机了,区块链运行比较安全、稳定、可靠,可以解决你的宕机问题。我觉得这完全是胡说八道,宕机的问题通过区块链来解决是不现实的。



复杂场景的复杂问题以及其对应的复杂技术,包括:

  • 没有负责人,这个可以通过共识算法解决。

  • 各主体互不信任,甚至有利益冲突,可以通过分布式计算、可编程合约、强制执行解决。

  • 场景多变、不确定性强,存在恶意参与者,还有一些精确计量和没有规则的,可以通过自定义合约,一次性合约、数据公开或有限透明、数据分布式存储不可篡改、业务代币化、量子化等解决。


比如电子合同的签订,现在签合同大多是线下的纸质合同,还得盖骑缝章,如果两个公司之间通过区块链或一个类似平台,互相发电子合同就可以了。


区块链技术是一个复杂的东西,适合应用在复杂的场景中。


我觉得区块链技术最伟大的地方不是前面说的共识算法,而是它有一个自我进化的生命力——经济体系。



它是去中心化的,那它怎么运营、怎么推广、技术怎么迭代?中心化组织有一个开发团队,受盈利或KPI驱动,会推动它向前发展。而去中心的怎么推广?它有一套经济体系在运行。


首先是众筹资金,拿到资金后做产品开发,上线之后发行token,然后上线挖矿,挖矿奖励可以去交易所变现,有了钱之后就可以运营推广,之后产品又有了新的生命力,进行更新迭代。每一个环节组成一个命运共同体,共同进化。


这是一个技术与商业的完美结合,它是自我循环的技术归属于全人类,依托于区块链而不是某个组织。避免技术反噬或反恶人类。AI火爆的时候大家都担心一个问题,机器人越智能对人类的威胁越大,如果某一个很高深的技术被某个组织控制了,而这个组织有作恶倾向,利用它来对抗人类是可怕的。如果这项技术是属于区块链的,那么,就是公开、透明的,本质上这个技术是属于全人类的,大大降低了作恶的可能。


4

误区澄清:token不是洪水猛兽
点对点价值交换的媒介


1、token是货币



我认为token不是货币,它是虚拟商品,充当价值交换媒介,并未增加货币挖矿获得的token才是真token,以太坊上发行的代币根本就不是真token。Token是支撑网络运行的奖励,前面说过,矿工挖矿、负责这个网络的计算、存储数据,要给他奖励驱使他工作,特别是支撑全球的网络运转,靠义务奉献是不现实的。


Token避免不了炒作、投机等市场自由买卖引起的问题,没必要污名化。Token可以实现线下资产数字化、价值互联网化,不依托于中介和中心化组织。还可以自由进行线上流通,摆脱积分、邮卡等资金盘套路。


举个例子,我有一套房子,这个房子值100万,假如我想把它部分变现,其实很难,除非去银行抵押贷款,但是我只想抵押一部分可以吗?抵押10%,我拿10万块钱回来,90%的产权还归我所有,这在银行做不到。房产证只能抵押一次,不能说我只抵押10%,但是对银行来说,你的房产证必须拿出来,全部抵押,没办法拿出一部分,因为产权不是数字化的,不可以分割。


如果把它变成token就可以了,我发行100万个token,如果我想变现10万,就卖出10万个token,剩下90万个token还在我手里,相当于还有这套房子90%的控制权。当然这也是对未来的畅想,短期内实现比较难。


Token和资金盘有什么区别呢?我们经常看到积分商城等资金盘套路,它们只能在规定的网站内使用,脱离开这个区域就没办法流通,token则不一样。比如我有一个比特币,全世界范围内都可以流动,交易所之间可以互相转账,人与人之间都可以去转移,不存在盘内流动的问题。


2、挖矿浪费资源


 

举个例子就很好理解了,有一些国家的国会开会,参众两院天天吵架,不停投票,互相举证等,周期很长,这是在浪费资源吗?他们并不觉得,这是达成新共识的一种成本,人与人之间要进行协作要达成共识,本来就很难。


挖矿是分散化、去中心的方法,也是规则公开、自治的选择。网络需要有矿工来支撑,如果只有一个矿工那他说了算,这怎么叫去中心化?


挖矿是支撑网络运行的基础设施。不挖矿的话,网络谁来运行?谁来计算?


挖矿是区块链的根基,不能动摇。


3、区块链性能不佳


 

不是所有的交易都是越快越好,不是所有的服务都是吞吐量越大越好,也不是所有的计算都需要极致的用户体验,防止上当受骗才是重点。


区块链解决的问题场景不同,性能好的中心化服务器和性能“不好”的区块链服务是不可互相取代的。


4、区块链颠覆中心化组织



这个完全不可能,我认为中心化组织有它的优势:


  • 资源优势、集中;

  • 组织力强,定目标行动快;

  • 功利性强,其目的是为了盈利或实现某个目标;

  • 外部难以监控。


中心化组织适用于:公司、政府、司法等。


去中心化组织也有它的好处:资源少,比较分散;公益性强;公开透明,你的数据是公开的,每人有一份,匿名性也不是很强。不好的地方在于:它是一盘散沙,很难达成共识。


去中心化适用于:公益、舆论、点对点交易、众筹等。


这两者分别有其适用的场景,不能走极端说谁取代谁。


5

学习知识图谱


最近区块链技术很火,行业工资也很高,很多朋友说想学不知道从哪学起,上图提供给大家参考。



我们还处于前区块链社会时代,未来很美好,前途也很光明,只是我们仍然要认清当前现实,技术仍然比较原始,盲目乐观需要浇一瓢凉水,但正因为技术在起步阶段,才给了我们每个人学习和成长的机会,抓住一波浪潮,获得更广阔的发展空间。


本文转载自 HiBlock 区块链开发者社区,想跟踪区块链最新消息和技术干活的小伙伴,可以扫码关注它们的公众号:

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值