首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从技术角度简析什么是区块链

本文由币乎社区优质内容提供计划支持

首发则成思考微信公众号,版权归则成思考所有。

如需转载,无需授权,注明作者即可。

什么是区块链,很多人每天都泡在区块链里,大概有很少的人能够很好的解释清楚什么是区块链。还有人认为比特币就是区块链,把两者之间画上了等号。BUT,并不是这样,比特币只是区块链的一个成功应用,运用了区块链的相关技术而已。

那什么是区块链,用大白话,就是把产生的数据打包成块,然后按产生顺序链接起来,就是区块链。最初是来自于比特币白皮书中的概念,一开始也没有称之为区块链或者区块链技术。只是阐述了一种数字储存在一个叫block的结构中,也就是区块。持续不断的数据存储在一个一个的区块中,区块每隔一段时间就会产生,用一个类似指针的特有标记将区块链节起来。区块链=区块+链的数据储存结构。如下图:

那区块链中都包含哪些信息,主要是区块头和区块体,区块头中有区块哈希(连接前后区块),区块时间戳,梅克尔根等。区块体中主要是区块事务数据,不一定都是交易数据。

区块链都包含哪些技术,这些技术起到了什么样的作用,保证了区块链这个系统的正常运转。主要有:共识算法、密码技术、脚本系统、网络服务、账户模型等。我们将区块链看成一个数据库系统。数据库自然是要存储数据,数据存储在区块链这种格式账本中,区块之间用哈希值相连,哈希值是使用密码技术,而区块链是一种分布式系统,通过共识算法保持数据一致;不同的节点之间需要数据同步,接收新的区块及广播新的数据,就需要网络服务;为了表征数据的所有者就需要账户模型;脚本系统用来转换区块链中的数据所有权的转换和更新。区块链虽然可以简单的理解成一个数据库,但是其结构设计还是比较特别,后续深入学习中,可以进一步理解其中的精髓奥秘。

区块链系统的工作流程,从数据流通的角度来看,是如下流程:

以上图为例,Alice向Bob转账,就是一种发起的操作,这个操作数据会被打包进区块,然后广播到其他的节点进行确认,最终全网达到共识。通过这里,我们可以知道,区块链系统必须是以一个网络形态存在才有价值;不能是一个单机系统,节点不能由一个组织机构或者个人控制,中心化的区块链系统部署不是一个真正的区块链系统。所以我个人认为私有链的价值并不是很大,联盟链也是欠佳,但并不是说没有一点实用性。

接下来主要讲述共识算法和脚步系统。共识算法也可以理解成网络共识,怎样来确保分布式系统中的数据的一致性。目前主要的共识算法有:poW,工作量证明,通过算力来获取记账权;poS,权益证明,通过是拥有币的天数来决定记账权,DPOS,委托权益证明,持币者通过投票选举委托见证人来共同维护网络,获取记账权;还有一些其他的共识算法,pool验证池,poC、PoR、dBFT机制等。共识机制的目的就是为了保持节点之间的数据一致,其本质上就是为了筛选出一个拥有记账权的记账者。某个节点的算法需要得到其他节点的验证,但不需要交互验证。

脚本系统,是区块链系统的关键。因为在区块链系统中,每一笔数据都是有所有权的,所有权通过账户的私钥进行控制,这些数据在转发过程中,可以有各种逻辑,简单的像比特币就是一种交易事务的确权,复杂的像以太坊是支持自定义的各种复杂逻辑的。这些负责逻辑定义和执行的模块,就称之为脚本系统。脚本系统可以称为是区块链系统的发动机,正是靠着它的驱动能力,可以在区块链系统上转移各种带所有权的数据,而且能编写自定义的转换逻辑。脚本系统赋予了区块链系统更多的魔力和可能,让区块链系统有了更多的变化和可能性,包括智能合约,目前智能合约都是在以太钫上开发的脚本。

总结:区块链是一个数据库系统,是一个技术合集,需要由各种技术提供相互支撑,包括共识算法、分布式系统、密码学、博弈论、网络服务、脚本系统等等。其中脚本系统为区块链长出各种样式的果子提供了可能。有兴趣的币友可以学习智能合约和Dapp的开发,以及区块链系统中的架构设计等。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180313G1RYHR00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券