在刚入大学那一会儿,当时就一个小白,同学讲的区块链使我一脸懵,不过当时听着就十分的高大上,到最后只知道来源是一种可交易的货币,通过某种算法进行加密。当时那激动的心 颤动的手,恨不得自己立马就去学习这些知识。有的人认为比特币的产物就是区块链,然而比特币的运转又离不开区块链。所有到底区块链是什么"玩意"呢?
来听听官方回答——找百度区块链
区块链是一个信息技术领域的术语。从本质上讲,它是一个共享数据库,存储于其中的数据或信息,具有“不可伪造”“全程留痕”“可以追溯”“公开透明”“集体维护”等特征。基于这些特征,区块链技术奠定了坚实的“信任”基础,创造了可靠的“合作”机制,具有广阔的运用前景。
区块链起源于比特币,2008年11月1日,一位自称中本聪(Satoshi Nakamoto)的人发表了《比特币:一种点对点的电子现金系统》一文 [4] ,阐述了基于P2P网络技术、加密技术、时间戳技术、区块链技术等的电子现金系统的构架理念,这标志着比特币的诞生。两个月后理论步入实践,2009年1月3日D一个序号为0的创世区块诞生。几天后2009年1月9日出现序号为1的区块,并与序号为0的创世区块相连接形成了链,标志着区块链的诞生 。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块 [8] 。
…略
步入正题:区块链的底层概念
我将用一张概念图来更直观的表现出区块链底层原理:
这便是区块链的底层概念,等你掌握了底层概念,便可以去更深一步的去学习区块链了!
重头戏来了,讲故事了
”小朋友“板凳搬过来座好哦,开始讲故事啦!
从前有座山.山里有座庙.庙里有个老和尚和小和尚.老和尚对小和尚说:“从前有座山.山里有座庙.庙里有个老和尚和小和尚.老和尚对小和尚说:"从前有座山.山里有座庙.庙里有个老和尚和小和…
啊这,讲错了 哈哈哈哈!
在这里我将把区块链拆分成区块+链的形势来讲解:
开始
假设我们现在生活在一个叫菠萝村的村庄里,没有实体货币存在,一切的交易都靠大家记账。
比如现在有一个卖肉的男孩,有一天老王找小明买了100块的肉,于是小明和老王就用广播对大家说,老王的账目少了100,小明的账目增加了100.
这时候大家都会拿出自己的账本记录这一条交易信息。
对于这种情况任何一人交易一次所有人都要在自己的账本上做记录,并且大部分和自己都无关,于是村长暂时出来充当记账先生。此后菠萝村的任何交易都将由记账先生统计,每天下午都会清算一遍今天的账目,并且将这个账目公布出去。
供大家检测是否有问题,大家要是公认今天的账目要是没有问题就会拿出各自的纸笔,将账目上的信息抄回家,并且写上今天的日期保存起来,这样就免去了每个人无时不刻记账的麻烦。
这样菠萝村每天都会生成一个账本,比如2月10日账本,2月11日账本,2月12日账本。这些账本都是独立存在的,所有我们可以将每一个账本看成一个区块,比如区块1、区块2和区块3.区块就这样生成了。区块可以简单粗暴的理解为多条账目的打包。
如果一天公布一个账本的话,今天所有的账目打包为一个区块,区块的打包时间也是可以改变的,比如10分钟打包一次,30分钟打包一次,对应的就是10分钟生成一个区块和30分钟生成一个区块而链就是将两个相临日子的账本联系起来。
菠萝村进行了一天的交易,交易结束之后账房先生公布了账目,出现了一个期末余额,比如老王原本有1000块,今天进行三笔交易。记账先生根据每个人的交易,算出每个人的账户余额到了第二天记账的时候,记账先生就会在账本的开端写下大家昨天的余额作为期初余额。今天的交易将会基于昨天的余额,因为昨天的余额和今天账目开端的余额是一致的。我们可以简单的理解为昨天的账本和今天的账目通过结转余额的方式联系在了一起,而这个余额也自然充当将两个账本链接在一起的链条,也就是类似区块链中的链。
但是这个时候突然出现了一个问题,那就是记账先生都在忙着记账了,他的收入哪里来?没有收入自然没有人愿意当记账先生于是大家商定每完成一笔交易,都将给记账先生支付1块钱作为报酬,类似于手续费。目的为了养活记账先生,记账先生大概要记录500多笔交易,一天收入500块。
搬砖的老王看见记账先生的收入眼红了,记账先生每天就记个帐就能收入500块,自己每天搬砖收入只有150块,这不公平。
很快每个人都发现了记账先生的收入都很高,大家都想做记账先生,在一番讨论之后大家决定通过抛硬币的方式来决定谁成为今天的记账先生,大家决定这个规则很公平,也很认同这个规则,最终大家达成共识。
抛硬币选记账先生的方法,可以理解为一个选举机制因为大家是共识的所以被称为共识机制。
在区块链中我们便是通过共识机制选出记账者,现在又出现了一个问题,那就是有的人距离账目公布的地方比较遥远,不是很方便每天到公告抄账目怎么办?
这很简单,可以抄邻居的账目,邻居也可以抄邻居的账目,因为可以相互的借阅。也就解决了公布账目时距离上的问题。
而邻居抄邻居的方式本质上是用户对用户点对点的信息传播,而用户之间可以相互联系最终连接在一起形成了一个网络,而这个信息传递de方式也就是区块链的网络路由方式。用户对用户每个人即是信息的接收者也是信息的传播者。而在这个信息传递的过程中,菠萝村的每个居民都被称为一个结点。
那现在有人想篡改这个账目呢?其实难度很大的因为每个人都有一个账本,如果想要改变账本数据,那就意味着每个人手里的账本都要修改一遍。实际上是很难做到的。在实际生活中往往账本只有少部分人掌管,比如会计、出纳等等人员。现在的账本是集中的,而在菠萝村每个人都有一个每天同步的账本,而且所有人拿到的都一样,并且没有集中的现象,也就是去中心化。因此菠萝村的账本是分布式的账本。
现在也就得到了区块链的几个概念,首先每个结点之间的信息联系是点对点的,也就是P2P的网络路由模式,其次每个结点都有同步的账本,也就是分布式账本,再者每个节点都有打包账目的权力,而具体是由谁来充当账本的打包者则是通过共识机制选出并且账目打包者可以获取手续费和系统奖励。且因为是分布账本和时间连接的原因,账本会难以篡改。
小结
区块链现在就很明了了,其实就是大家共同维护的一个账本并且这个账本具体不可以被随意更改,公开透明,账目可靠和去中心化的特点。到这里便了解了区块链的一些底层逻辑。区块链需要的技术支持有哈希算法、Pow工作量证明、公私密钥、Pos权益证明,基础概念便介绍到这里,日后再来更新区块链的技术支持。
故事到这里也就讲完啦,好的,谢谢各位大佬的”聆听“,欢迎下次光临!
区块链的应用场景
1.支付和现金交易
2.银行业
3.游戏
4.物联网
5.供应链金融
6.版权保护
7.汽车业
8.物流链
9.跨境支付
10.实体资产
11.医疗
12.社交
13.云计算
14.共享经济
15.慈善
16.文件存储
17.大数据
18.礼品卡和会员项目
19.体育
20.政务
总结
区块链由chain+block构成,在目前看来通过GO语言来开发区块链普遍要多一点,当然C和C++也可以用来开发区块链,不过go语言的优势明显大于它俩,想了解和学习go语言可以看我的另一篇文章GoLang。现在区块链本身还是初始阶段,所以包括区块链的信息传递、加密,这个过程中出现量子加密和其他加密,实际上对区块链本身所采用的加密算法攻击现象也时有发生。包括区块链也是作为一种资产的认定,数字资产的一个认定,但是现在我们很多都是用密码算法,或者是作为我们来解密的钥匙,但是如果密码忘记了,很可能你现在的资产就丢掉了,你不能够在得到你原来的这些资产,所以在资产管理,包括信息传递和一些安全这些方面,应该说都还是存在着一些隐患。当然那么从技术角度,现在我们区块链本身处理的速度,或者说本身的扩展性,因为从工作机理的角度来看,是要把整个账本要复制给所有的参与人员,所以在区块链本身的运作效率和扩展性方面还是比较受限的。这些我们觉得都还是需要进一步在技术方面有进一步的发展。
分布式
分布式理解起来很简单,其实就可以看作是多台服务器共享一个数据块,官方一点的解释就是分布式计算是计算机科学中一个研究方向,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给多个计算机进行处理,最后把这些计算结果综合起来得到最终的结果。分布式网络存储技术是将数据分散地存储于多台独立的机器设备上。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,不但解决了传统集中式存储系统中单存储服务器的瓶颈问题,还提高了系统的可靠性、可用性和扩展性。
分布式计算比起其它算法具有以下几个优点:
1、稀有资源可以共享;
2、通过分布式计算可以在多台计算机上平衡计算负载;
3、可以把程序放在最适合运行它的计算机上;