昨天币兽发过《区块链为什么能改变世界》的上篇,详情戳【币兽深度】区块链为什么能改变世界(上)今天接下篇。
区块链存在的问题
目前来说整个区块链还处在非常早期。有点像1993、1994年的互联网,那个时候很多的底层基础设施还不是特别完善,TCPIP协议互联网的基础刚刚开始普及,现在的区块链像那个时候的状态。
具体来说有三个问题,第一个是交易速度慢(TPS),比特币的网络,以太坊的网络能够处理交易的次数,比中心化的机构还是有非常非常大的差距的。
支付宝一秒钟大概是几十万笔账的量级,所以说它能扛住每年的“双十一”非常密集大规模并发的时间节点。
现在比特币的网络一秒只能支持7笔,以太坊大概是几十笔,目前新的一些,例如EOS号称是一秒钟能达到百万级、到后来的几千笔,主网到今年6月份才能上线,还是非常非常初级的阶段。
也就是说底层基础设施不完善,想在这个链上去运行各种各样的应用也是非常困难的一件事。
第二个问题是:调不了bug,比如像以太坊的网络,一旦所有的代码写好,智能合约,所有的框架在链上面进行一个约定,发布了之后,全世界所有的节点都同步,出现了问题修改不了。
这是非常痛苦的事情,因为即便是天才写出来的程序也不可能没有bug,以太坊发展历史上出现了一次分叉的现象,ETH是分叉之后的以太坊,最早有一个项目叫做DAO,有黑客利用以太坊的漏洞窃取了部分钱财。当时以太坊的创始人非常着急想把漏洞重新补上。
但是社区有两种意见,一种觉得代码就是法律,这个东西既然写了,就昭告天下,不能去改,这是一种意见,我们称“区块链原教旨主义者”;但另一派他们认为新生事物要经过不断发展、不断替代完善自己的,在两派相持的状态下以太坊进行了硬分叉,把漏洞给堵上了。
但是有一批人他们不认可这次分叉,维持ETC。所以区块链有这样的问题改不了bug,怎么迭代呢?举EOS的例子,他们尝试通过投票等等这样的共识机制来去完善链上的一些代码。
最后是安全性的问题,这里安全指每一笔账目都公开可查,有不少人可能都持有比特币或者以太坊,只要别人知道你的钱包地址,相当于是银行账号,就可以在以太坊或者比特币的网络上面查到余额是多少。
曾经有人做了比特币全世界的排行,从排名第一的账户拥有的比特币数量一直排到第十,大概可以看到比特币的集中程度,这有可能会存在安全性的问题,毕竟大家都不希望自己的资产余额是多少被别人知道。
区块链人才部分,同样类似互联网早年的时候,1993、1994年,那个时候崛起一批人,有非常多的站长以及一批程序员,比如像雷军、张小龙都是在那一代成长起来的。
对于区块链来讲也是类似的,现在我们在经历同样的这样一个技术荒芜的状态。整个中国区块链的开发人才可能只有几千人左右。
整个比特币包括区块链发展历史才九年。在这样的时代就需要这些开发者、程序员具备技术的基础,同时有对人性的洞察,再加上商业的一个理解,这是我们比较看好的。区块链还是理解门槛比较高的东西,现在大家人人都在谈区块链,但是实现原理还是比较难懂。
区块链的实现原理
刚才是从宏观层面给大家做了介绍,下面以比特币为例给大家介绍区块链的实现原理,技术是理解是必不可少的。和我们之前经历的几次像O2O,包括团购等等商业层面的创新还不一样。区块链是自下而上的底层技术的改变。
2008年的时候中本聪发表了这一篇论文叫做《点对点电子现金系统》,这里面并没有提到区块链的概念。而是关于比特币,这一他所想要创造的电子现金进行了一个非常完善系统的阐述。
这篇论文被区块链从业者当作“圣经”一样,自从有了这篇论文,整个区块链的世界就诞生了。谁也没想到,从这篇论文诞生之后,能够掀起这么大的一个波澜。
大家知道非常多的技术要么是诞生在大学,或者一些研究机构的实验室里面。包括其他的像军方,比如像互联网最早期是在军队诞生的,后面才实现了军转民,但区块链非常有意思,最早先有比特币,后面大家觉得比特币的底层技术非常好,给它取了一个名字叫做区块链。
比特币的发明者是一个没有任何人见过并且活跃一段时间又消失的人,叫做中本聪,中本聪消失之后整个比特币运行非常稳健,价格不断攀升历史高位。
普及一下知识点,首先是函数,给一个x能够映射y。第二个是哈希函数,现实当中任意的字符串,所有的信息都可以通过哈希这样的一个函数去把它变成一长串非常规律的字符。在比特币整个实现里面哈希函数是反复出现的一个名词。
比如说一本书,或者是说一部辞海,包括一部电影等等,在计算机的网络里面都可以变成0和1组成的一长串的代码,这个代码通过哈希函数都可以变成高度格式化的一串数据,这个东西我们又叫做“数据指纹”,像每个人指纹可以代表我们整个人一样。基于哈希函数,以及椭圆曲线方程、非对称加密等等组合成为了区块链比特币网络所使用的加密算法。
私钥、公钥和地址,私钥可以简单理解为就是只有我们自己知道的,它是一个PIN码,本质上来说是随机数,256位的二进制数字,64位十六进制的数字,是由比特币网络或者说一些软件随机生成的,也就是说一旦我们大家在网上下载了一个钱包,就会帮你生成这样的私钥。
私钥的数量有大概有10的70次方这么多,这个数量超过了整个宇宙原子数量的总和,也就是说随机产生的私钥基本上不存在重复的可能,这样也保证了比特币整个网络的安全。
通过私钥我们可以生成公钥,通过一系列的加密算法,这个公钥它可以生成比特币的地址,可以类似的理解为是一个银行账户的地址,一般来说是1开头。
通过私钥可以得到公钥,公钥通过单向的哈希函数可以得到比特币的地址,这个过程是单向的,顺着可以,反过来是不行的,也就是所谓的非对称加密。
比特币的交易当中,交易是整个比特币系统最重要的部分,交易的本质是一个数据结构。比特币采用UTXO的交易结构,整个比特币最大的创新,一部分是区块链结构,另外一个就是UTXO,每一笔交易都是通过这样的方式。
我要查某一个地址所拥有的余额,我相当于是把所有跟这个交易相关的地址里面UTXO遍历一遍,进行一个相加,最后得出的是“账户”里面的余额。比特币区块链是全球总的账本,每一笔交易在上面都可以查询。
交易过程:从自己的钱包里发起一笔交易,接着会用自己的私钥进行签名,把这笔交易在整个比特币的P2P网络里面进行广播,接收到这条信息的节点会进行一个验签,用的是交易发出者的公钥地址,用私钥进行签名,用公钥进行验签,达到一定的规则要求之后会有挖矿节点,把这笔交易进行一个记录,然后记在整个比特币的账本里,后续的区块进行确认,进行循环,这笔交易永久保存在比特币区块链上面。
整个区块链像是一个“账本”,每一个区块就是账本当中的一页,其中包含了交易信息、表头,以及各种各样的数据,把首尾相连组成了区块链。第一个区块链是2009年1月份的时候诞生了创世区块链,中本聪用自己的电脑挖出了第一个区块。
整个区块链的结构,有区块0、区块1、区块2……在单个区块里包含不同的信息:一部分叫做区块大小,会存区块自己的大小;另一部分是区块头,简单理解为表头(会计记账的时候会有表头)。
区块头里面有副区块(上一个区块)的哈希值,整个区块也是一连串的各种信息。如果把它做一次哈希,哈希值会被存在下一个区块里面。还有当前区块的版本号以及Merkle的树根,也是数据结构。把区块两两进行哈希,最后存在树根上面。
哈希的好处是原来数据量可能很大,哈希之后储存为一连串的数字,大小被大大压缩了。交易最后会形成一个Merkle的树根,包含交易的记数器。
创世区块的日期是2009年1月3日晚上6点,当时中本聪把第一个区块挖出来之后,他获得50个比特币的奖励。现在的奖励每一个区块是12.5个比特币,把单个区块进行连接起来,即为所谓的区块链。
把整个的区块进行哈希,存在下一个区块链上面,首尾相连。如果想改其中任何一笔交易数据,就需要更改它所对应的哈希,以及跟它所有相连区块的哈希都要改一遍,这个就是所谓区块链难以篡改的根本原因。
挖矿到底是什么意思?其实挖矿是计算满足条件哈希值的过程,过程中会用到各种各样的机器,最早的CPU包括后面的GPU,以及专业的矿机。
你可能难以想象,居然原始的挖矿是通过枚举的方式算出来哈希数,能够满足当前比特币网络的要求,算前面有多少个0,可以满足当前比特币网络的要求。我争到了记账权,就可以获得相应的奖励。
“挖矿”是最早玩比特币的人发挥想象力造的一个词,挖比特币非常像金属的挖矿过程。挖金子难度很大,这个金子的总量是有限的,且在不断地减少。比特币也如此,总量2100万枚,2140年 所有的比特币都会被挖完。
从这个角度去理解:总量有限、需要付出一定的劳动力、难以造假、不能篡改、能够进行价值的转移、容易分割等。这些特征都非常像黄金,这就是为什么很多人说比特币是数字黄金的一个原因。
我们绘出了从最初的2009年,2010年逐渐形成的整个比特币货币供应量的曲线,预计在2030一直到往后2140年供应量逐渐逼近2100万个的数量。
共识机制。在传统中心化的机构里面,我们会相信一个中心化的组织,比如银行,它具有发行货币等等这样的工作属性。
一些商业银行,他们在最好的地段租用最好的办公室、雇佣最贵的一些人员,就是为了建立这样的一个信任,让大家愿意把钱放在这。
在一个去中心化的、没有单个节点可以被大家所信赖的网络里面,我们怎么达成一致呢?由谁进行记账,或者进行发行的过程?所以大家要有一个叫做共识机制的东西。这是我们大家都相信,在这样的规则下面所产生的单个节点,由他们去进行一个记账。并且记账的动作不被单个节点垄断,是不停在变的。
任何人都可以加入这样一个网络进行操作。共识机制是整个比特币网络全世界1万多个节点遵循的简单的规则,完成异步交互自发形成的产物。每一个节点根据综合一整套的标准来对单个交易进行验证。完成工作量的证明就是刚才所做的挖矿,不停算随机数,直到我算到为止,算出来我的工作就可以得到全网的认可。
认可后挖矿节点会将交易记录打包进新的区块。每一个节点会独立对新的区块进行校验,并且把他们放在区块链里面。
这个过程当中不排除捣乱的节点或者伪造的节点,自己伪造的数据尝试加入这个链条里面,但是每个节点会对区块链进行选择。选择在这个工作量证明机制下面最长的那个链条中完成,这叫做比特币主链,基于比特币主链有非常多的分叉。
整体来说比特币的网络底层叫做数据层,对整个数据区块通过一些非对称加密等等方式把它做一个记录,在一个分布式的P2P的网络进行广播,通过PoW、PoS这样大家都认可的共识机制,完成这样的一个确权、上链的过程,最后网络会对完成工作机制、工作量证明的人进行奖励,发行新的比特币或者说数字货币。
再往上比如像以以太坊为代表的一类公链,可以把智能合约放进去。原本的链可能只是一个只能存东西的数据库,但现在链可以编程,是完备的,可以进行循环、跳转,所有的逻辑、结构都可以放在上面。
这个是非常了不起的创新。有人称以太坊是“一台世界计算机”,没有任何人能控制,它在稳健地独立运转,并且这个链上面是可以跑程序的。
总而言之,区块链是历史记录不可篡改的数据库。为了达到这个目的我们采用三个手段的集合:
第一个是去中心化共同维护无法篡改的这样一个数据库。
第二个是通过奖励机制,激励大家有动力进行挖矿的操作。这个也是比特币在经济层面上的突破。在比特币之前有非常多的电子现金的一些尝试,但只有比特币成功了,因为它成功的利用了人性的特点,把激励机制加了进来。
第三个是所谓的共识机制,可以非常有效的杜绝作弊,所有节点都能完成异步的共识。
如何学习区块链
整个区块链的知识体系可以包括两个部分。
第一个部分是跟技术相关的,首先是数学,有基础的概念。比特币、区块链的网络是建立在数学以及密码学的基础上的。
第二部分是经济学层面,因为区块链融入了很多Token经济学,可以传递价值。
以上内容由公众号【区块链小怪兽】首发
第一时间同步至链向财经
《区块链小怪兽》全部运营人员皆为美国区块链技术平台成员,文章多为原创,也有海外资讯搬砖文,文风幽默,资讯及时,为链圈币圈爱好者分享最新行业动向,技术成果,以及海外优质项目讲解等。欢迎关注!