(漫画: Hugh 策划:一澜@链ke版权)
01
什么是区块链?
区块链,英文 Blockchain,本质上是一种去中心化的分布式数据库。任何人只要架设自己的服务器,接入区块链网络,都可以成为这个庞大网络的一个节点。
Block chaining is essentially a decentralized database. Anyone who set up his own server and access block chain network can become a node of this huge network.
区块
一个区块分为两大部分:
1.区块头
区块头里面存储着区块的头信息,包含上一个区块的哈希值(PreHash),本区块体的哈希值(Hash),以及时间戳(TimeStamp)等等。
2.区块体
区块体存储着这个区块的详细数据(Data),这个数据包含若干行记录,可以是交易信息,也可以是其他某种信息。
刚才提及的哈希值又是什么意思呢?
想必大家都听说过MD5,MD5就是典型的哈希算法,可以把一串任意长度的明文转化成一串固定长度(128bit)的字符串,这个字符串就是哈希值。
而在我们的区块链中,采用的是一种更为复杂的哈希算法,叫做SHA256。最新的数据信息(比如交易记录)经过一系列复杂的计算,最终会通过这个哈希算法转化成了长度为256bit的哈希值字符串,也就是区块头当中的Hash,格式如下:
a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0
区块与Hash是一一对应的,Hash可以当做是区块的唯一标识。
不同的区块之间是如何进行关联的呢?依靠Hash和PreHash来关联。每一个区块的PreHash和前一个区块的Hash值是相等的。
对话
那什么又是挖矿呢?
所谓挖矿,就是计算最新数据的哈希值,生成新区块的过程。
新区块头的Hash就是刚刚计算出的哈希值,PreHash等于上一个区块的Hash。
总结区块链的基本原理
交易(Transaction):一次操作,导致账本状态的一次改变,如添加一条记录;
区块(Block):记录一段时间内发生的交易和状态结果,是对当前账本状态的一次共识;
链(Chain):由一个个区块按照发生顺序串联而成,是整个状态变化的日志记录。
如果把区块链作为一个状态机,则每次交易就是试图改变一次状态,而每次共识生成的区块,就是参与者对于区块中所有交易内容导致状态改变的结果进行确认。
区块链形成过程可以简要地划分为三个阶段:
第一个阶段:向全网所有节点广播最近的交易数据。
第二个阶段:由于记账可以得到比特币奖励,很多会计会去争夺记账权。争夺记账权的方式是比拼计算能力,必须用随机生成的方式解出一个超长密码,第一个生成正确密码的人可以获得记账权。我们所说的“会计”,在比特币中有一个专用的称谓“矿工”。矿工通过CPU算力解出难题,获得记账权和奖励,被称作“挖矿”。
第三个阶段:得到记账权的矿工将交易数据压缩进新的区块,所有节点可以轻松查验新区块的交易信 息是否正确,正确的的区块将互相串联,形成链条,并被各节点储存。
哎呦,不错嘛,下次给我讲讲底层架构呗〜
注:转载请先联系本公众号小编,需注明出处
链
ke
优质区块链社区
技术干货
框架原理
区块链+
价值应用
领取专属 10元无门槛券
私享最新 技术干货