近年来关于区块链、比特币、ICO 类似的概念非常的普遍,是眼下的超级大热门,新闻媒体大量报道,宣称它将创造未来。十传百,百传千,难免也就会有许多人把它们全部混淆在一起,去年年底比特币的暴涨和今年年初比特币的暴跌,让不少人非常地感兴趣,而又持观望态度。甚至也有人认为比特币等价于金融风险,就是传销组织搞出来的花样。
今天主要想给大家科普一下关于区块链的一些基础知识,以免混淆。我想说的是:区块链 ≠ 比特币 ≠ ICO ≠ 金融风险。
什么是区块链
区块链,英文名为 blockchain 或 block chain,实质就是一个 去中心化的分布式数据库,它是用 分布式数据库 识别、传播和记载信息的智能化对等网络,也可称为价值互联网。
首先,区块链的主要作用是储存信息。任何需要保存的信息,都可以写入区块链,也可以从里面读取,所以它是数据库。
其次,任何人都可以架设服务器,加入区块链网络,成为一个节点。区块链的世界里面,没有中心节点,每个节点都是平等的,都保存着整个数据库。你可以向任何一个节点,写入/读取数据,因为所有节点最后都会同步,保证区块链一致。
去中心化?
前面说到一个非常关键的词儿「去中心化」,到底什么是「去中心化」呢?
大家知道我们国家的货币系统,其实就是非常典型的「中央化系统」,我们有非常垄断的国家银行,下面还有一些城市银行,我们把钱存在银行,本质上就是因为我们信任国家,相信国家的能力。倘若不相信,我们根本不可能凭借一个数字,就大方地告诉别人,我有几百万乃至几千万。
我们进行一笔交易,实际上就是在银行的数据库进行了一定的数据更改,并定期让各大银行进行数据同步,这样的过程一定是繁琐的。
而区块链在这方面就有一个非常革命化的特点了。
区块链是完全没有管理员的,它是去中心化的,测试无中心的!
虽然它也是数据库的一员,但传统的数据库都是有管理员的。它的这个特点,让它变得无比安全,因为不可能存在任何对数据进行强行垄断的可能。假设黑客想要处理这个数据的话,必须要黑掉全网 50% 以上的网络,就目前的技术来看,基本是不可能实现的。这也让区块链完好无损运行了 10 年之久,还是那么地安全。
如何保证数据的可信度
前面说到,区块链没有管理员,人人都可以写数据,那怎么保证数据的可信度呢?这就是区块链最神奇的地方。
我们必须得先了解一下区块链的最小单元:区块(block)。
简而言之,每一个区块就是一个数据。而一个区块由区块头和区块体两部分共同组成。
区块头(Head)
区块头主要包含了区块的头信息,包含上一个区块的哈希值(preHash),本区块的哈希值(Hash),以及时间戳(timestamp)等。区块体(Body)
区块体主要就用于存放区块的详细数据了,它可以存放交易记录信息或者更多的其它相关。
Hash
说到 Hash,我想很多程序员大概不用问都明白,Hash 值就是一个计算机对不定长内容计算出来的等价特征值。我们平时提到很多的 MD5 算法就是典型的 Hash 算法,在 Java 上的 Hash 值判断两个变量是否相等也是运用的非常多。
由此可见,Hash 值是非常难重合的。
既然如此,我们的字符串 Hash 值是近乎不可能重复的,那么我们的区块中的内容发生变化的话,那区块头里面的 Hash 值也一定会改变。
区块和 Hash 是一一对应的,区块链采用了一个典型的 SHA256 算法。计算公式为:
Hash = SHA256(区块头)
前面说过,区块头包含很多内容,其中有当前区块体的哈希,还有上一个区块的哈希。这意味着,如果当前区块体的内容变了,或者上一个区块的哈希变了,一定会引起当前区块的哈希改变。
这一点对区块链有重大意义。
如果有人修改了一个区块,该区块的哈希就变了。为了让后面的区块还能连到它(因为下一个区块包含上一个区块的哈希),该人必须依次修改后面所有的区块,否则被改掉的区块就脱离区块链了。由于后面要提到的原因,哈希的计算很耗时,短时间内修改多个区块几乎不可能发生,除非有人掌握了全网51%以上的计算能力。
正是通过这种联动机制,区块链保证了自身的可靠性,数据一旦写入,就无法被篡改。这就像历史一样,发生了就是发生了,从此再无法改变。
这一点和我们所学习的链表非常相似,所以它就有了「区块链」这个名字。
挖矿
「挖矿」是我们听的比较多的另一个名词儿。所谓「挖矿」,其实就是计算最新数据的 Hash 值,生成新区块的一个过程。
前面说到了一个点,区块链的每个节点都是一个数据库,为了保证各个节点之间的数据同步,那么新区快的添加速度,当然应该得到控制。
所以,区块链的发明者中本聪(这是假名,至今仍然没人知道他的真实身份,但确实这人太神了。)故意加深了添加新区块的难度。
他的设计是,平均每 10 分枝,全网只能生成一个新区块,一小时也就最多能生成 6 个。
这种产出速度不是通过命令达成的,而是故意设置了海量的计算。也就是说,只有通过极其大量的计算,才能得到当前区块的有效哈希,从而把新区块添加到区块链。由于计算量太大,所以快不起来。
这个过程就叫做挖矿,因为计算有效哈希的难度,好比在全世界的沙子里面,找到一粒符合条件的沙子。计算哈希的机器就叫做矿机,操作矿机的人就叫做矿工。
也许有人在这里会疑问,计算机最厉害的地方不就是把非常难的计算变的简单吗?为啥在这里会觉得很难呢?
实际上这是一个非常困难的事情,完全就是碰运气的事情。计算 Hash 值当然是非常简单的,但区块链所要求的 Hash 值是做了非常苛刻的要求的,并不是所有的 Hash 值都能被它接受。
试想,当你算出了一个符合条件的 Hash 值,你算下一个 Hash 值进行到快要完成的时候,别人计算出了一个新的符合条件的 Hash 值接链,这时候不管你做了多少工作,你的进度如何,那你都只有重头开始了。
比特币
比特币(bitcoin)相比区块链,可能有更多的人知道吧,毫不夸张的说,不少人就是因为比特币才知道了区块链这玩意儿的。
去年年底比特币的疯涨,和今年年初比特币的暴跌,让很多家新闻媒体,对比特币进行了疯狂的报道。但很可惜的是,新闻媒体往往都只关注它的火爆表现,忽视了很多非常基础的问题。
我今年春节的时候回家,身边就有不少人问了我比特币相关的问题,而且非常想入手,考虑倒卖的方式来进行盈利。
可除了知道比特币这个概念,和知道它那时候值 10 多万的事情,其余的一无所知。
比特币相当于区块链 1.0 的产物,它始于 2008 年的第一条区块链分布式账本。这仅仅是中本聪提出的一个革命性的构想:「创造一种不受政府或其他任何人控制的货币。」
这个想法实在是太疯狂了,仅仅是一串数字,不需要任何资金支持,也不需要任何人来负责任,就想当做钱来做交易,怎么可能会有人接受?
但现实就是那么奇葩,自一位极客使用 2000 个比特币购买了一个披萨开始,这个狂想就在慢慢变成现实。
货币这个东西,其实就是被大家认可的问题。就像几千年前,我们可以用贝壳,可以用石头,再后来用金银做货币一样。只要大家都认可这个东西的价值,那它就会成为有价值的东西。
我们传统的货币都来源于国家发行,所有的存储也是由国家的银行统一管理,这是典型的中心化系统。
而比特币则是部署在一个全世界众多对等节点组成的去中心化网络之上。没一个节点都有资格对这种数字货币进行记录和发行。
比特币的底层数据存储,实际上就是区块链技术的典型应用。在每个区块体中,我们可以存储所有的交易信息在里面。
交易信息的每一行,都会包含时间戳,交易明细,和数字签名。
可能在这里有不少人会问:「怎么保证交易的可信度呢?」
实际上这就是上面提到的「数字签名」的伟大用处。
数字签名简单而言就是一条交易的标识,但它的来头不简单,是由非对称加密算法处理生成的。
可能又有很多人会问,非对称加密是什么玩意儿。
非对称加密原理很简单,和我们目前主流的处理也很相似,简单而言就是加密和解密需要不一样的钥匙。你首先会把自己的公钥上传到网络上,这个公钥是公开的,任何人都可以获取。别人可以用你的公钥加密信息,然后发送给你,而你必须采用你的私钥才能解开这条信息,并且会采用验证方式来保证中途没有被篡改。即使你这条数据被别人截获了,别人没有你的私钥也是完全不可能打开的。
非对称算法保证了信息的真实性,但仅此还不能保证一次完整的交易。
交易的数据必须写入到数据库,才算成立,对方才能真正地收到钱。
一笔交易一旦写入了区块链,就无法反悔了。这里需要建立一个观念:比特币不存放在钱包或其他别的地方,而是只存在于区块链上面。区块链记载了你参与的每一笔交易,你得到过多少比特币,你又支付了多少比特币,因此可以算出来你拥有多少资产。
交易的确认离不开矿工。为什么有人愿意做矿工呢?
比特币协议规定,挖到新区块的矿工将获得奖励,一开始(2008 年)是 50 个比特币,然后每 4 年减半,目前( 2018 年)是 12.5 个比特币。这也是比特币的供给增加机制,流通中新增的比特币都是这样诞生的。
你可能看出来了,每 4 年奖励减半,由于比特币可以分割到小数点后八位,那么到了 2140 年,矿工将得不到任何奖励,比特币的数量也将停止增加。这时,矿工的收益就完全依靠交易手续费了。
所谓交易手续费,就是矿工可以从每笔交易抽成,具体的金额由支付方自愿决定。你完全可以一毛不拔,一分钱也不给矿工,但是那样的话,你的交易就会没人处理,迟迟无法写入区块链,得到确认。矿工们总是优先处理手续费最高的交易。
目前由于交易数量猛增,手续费已经水涨船高,一个区块2000多笔交易的手续费总额可以达到3~10个比特币。如果你的手续费给低了,很可能过了一个星期,交易还没确认。
一个区块的奖励金12.5个比特币,再加上手续费,收益是相当可观的。按照目前的价格,可以达到100万~200万人民币。想想看,运气好的话,几分钟就能挖到一个区块,拿到这样一大笔钱,怪不得人们对挖矿趋之若鹜。
以太坊
以太坊(Etherenum)是区块链 2.0 的产物,它是一个开源的有智能合约功能的公共区块链平台。通过其专用加密货币以太币(Ether)提供去中心化的虚拟机(称为“以太虚拟机”Ethereum Virtual Machine)来处理点对点合约。
许多人相信,它是目前最有前景的去中心化只能合约协议之一。
以太坊的概念是一个叫 Vitalik Buterin 的程序员提出,它最开始是一个众筹活动,截至目前,它的专用货币以太币已经成为市值仅次于比特币的加密货币。
这一块由于时间关系,在这里就不多做赘述。如果有时间的小伙伴们也可以上 Google 进行搜索学习。
ICO
ICO(是 Initial Coin Offering 缩写),首次币发行,源自股票市场的首次公开发行(IPO)概念,是区块链项目首次发行代币,募集比特币、解决以太坊等通用数字货币的行为。
它是一种区块链行业术语,是一种为加密数字货币/区块链项目筹措资金的常用方式,早期参与者可以从中获得初始产生的加密数字货币作为回报。由于代币具有市场价值,可以兑换成法币,从而支持项目的开发成本。ICO 所发行的代币,可以基于不同的区块链。
一些总结
看到这里,不用我重复了吧。
区块链 ≠ 比特币 ≠ ICO ≠ 金融风险,它们有联系,但绝不对等,倘若做得好,它可以服务群众,但做的不好,它也可能成为罪犯的帮凶。
我们有理由相信,现在就是区块链 3.0 时代,我们的区块链有能力变革传统的生产关系,打造一个可信价值的全新网络。