走近区块链(二)---- 区块链的核心概念

区块链的核心概念

区块

区块作为区块链的基本结构单元,由包含元数据的区块头和包含交易数据的区块主体构成。

区块头

字段 描述
版本号 区块版本号,表示本区块遵守的验证规则
父区块头哈希值 前一区块的哈希值,使用SHA256(SHA256(父区块头))计算
当前区块的哈希值 id
Merkle(默克尔)根 该区块中交易的Merkle树根的哈希值,同样采用SHA256(SHA256())计算
时间戳 该区块产生的近似时间,精确到秒的UNIX时间戳
难度目标 该区块工作量证明算法的难度目标,已经使用特定算法编码
Nonce 随机数,用于工作量证明算法的计数器

区块体

这段时间内的交易数据

区块链系统大约每10分钟会创建一个区块,包含这段时间的所有交易。每个区块包含前一个区块的ID(父区块头哈希值),这使得每个区块都能找到其前一个区块的节点,这样就形成了一条完整的交易链条。全网形成了一条唯一的主区块链。

哈希算法

哈希算法是区块链中保证交易信息不被篡改的单向密码机制。

特点:

  • 加密过程不可逆
  • 输入的明文与输出的散列数据一一对应,任何一个输入信息的变化,都会导致输出的散列数据的变化。

区块链通常使用SHA-256

上面说过区块头包含很多内容,其中有当前区块体的哈希,还有上一个区块的哈希。这意味着,如果当前区块体的内容变了,或者上一个区块的哈希变了,一定会引起当前区块的哈希改变。

这一点对区块链有重大意义。如果有人修改了一个区块,该区块的哈希就变了。为了让后面的区块还能连到它(因为下一个区块包含上一个区块的哈希),该人必须依次修改后面所有的区块,否则被改掉的区块就脱离区块链了。由于后面要提到的原因,哈希的计算很耗时,短时间内修改多个区块几乎不可能发生,除非有人掌握了全网51%以上的计算能力。

正是通过这种联动机制,区块链保证了自身的可靠性,数据一旦写入,就无法被篡改。这就像历史一样,发生了就是发生了,从此再无法改变。


image.png

公钥和私钥

公钥和私钥 - 俗称非对称加密方式。通常都是用公钥加密信息,用私钥解密信息。是对对称加密方式(账号和密码)的提高。对称加密方式缺点是显而易见的,如果被人知道了密钥和加密方法,于是按照加密方法反着来就能解密。

在比特币系统中,私钥的本质上是32个字节组成的数组,公钥和地址的生成都依赖私钥。有了私钥就能生成公钥和地址,就能花费对应地址上面的比特币。


page53image3835360.jpg

在区块链中,使用公钥和私钥来标识身份。
公钥是公开的,任何人都可以获取。私钥是保密的,只有拥有者才能使用。
他人使用你的公钥加密信息,然后发送给你,你用私钥解密,取出信息。反过来,你也可以用私钥加密信息,别人用你的公钥解开,从而证明这个信息确实是你发出的,且未被篡改,这叫做数字签名。(详见什么是数字签名

比特币主要用了ECDSA(椭圆曲线签名算法),这个算法有两个特性:

  • 只要知道私钥,可以算出相应的公钥
  • 你用私钥签名过的东西,可以用公钥算一下是不是你签的

私钥:

  • 私钥占256bit的空间。私钥是由比特币的客户端完成的,不要我们去干预。
  • 私钥是其实就是一个随机数,它是位于1--1.15810^77-1之间的一个数,1.1581077略小于2256

公钥:

  • 私钥使用椭圆曲线算法可以得到公钥
  • 椭圆曲线算法是在一个曲线上找到一个点,这个点的坐标就是公钥
  • x=F028892BAD7ED57D2FB57BF33081D5CFCF6F9ED3D3D7F159C2E2FFF579DC341A
  • y=07CF33DA18BD734C600B96A72BBC4749D5141C90EC8AC328AE52DDFE2E505BDB

这个算法有一个很奇妙的地方就是通过公钥无法得出私钥。我觉的这就是数学很奇妙的地方,由A可以得到B,但是B无法得出A。

时间戳

区块链中的时间戳从区块生成的一刻起就存在区块中,它对应每一次交易记录的认证,保证真实性。一旦修改,哈希值就会变化。

Merkle(默克尔) Tree

Merkle Tree,是一种树(数据结构中所说的树),网上大都称为Merkle Hash Tree,这是因为 它所构造的Merkle Tree的所有节点都是Hash值。Merkle Tree具有以下特点:

  • 它是一种树,可以是二叉树,也可以多叉树,无论是几叉树,它都具有树结构的所有特点
  • Merkle树的叶子节点上的value,是由你指定的,这主要看你的设计了,如Merkle Hash Tree会将数据的Hash值作为叶子节点的值;
  • 非叶子节点的value是根据它下面所有的叶子节点值,然后按照一定的算法计算而得出的。如Merkle Hash Tree的非叶子节点value的计算方法是将该节点的所有子节点进行组合,然后对组合结果进行hash计算所得出的hash value。


    屏幕快照 2018-07-04 下午7.08.28.png

这里有个问题,如果哈希次数是单数怎么办,
比如上图,多个交易E。这时候会复制交易E,然后哈希E+E

比特币的工作流程

在区块链中,所有节点向上回溯,都会到达源头,区块链中的第一个区块 -- 创世区块

在创世区块诞生之后,比特币的用户通过不断的通过计算寻找满足特定SHA-256哈希值对应的数值解。这个过程就是比特币中的挖矿。

当任意一个用户首先算出符合要求的数值解时,就会在全网广播,然后网络中的其他节点收到这条信息会进行验证,如果通过的话,其他节点就会放弃计算,并将新的区块加到前一个区块的后面。

哈希算法的难度也会不断调整,以此控制用户们解出数据所用的时间。

区块链的分叉

按照兼容性不同,分为硬分叉和软分叉。
硬分叉:永久性的
软分叉:暂时性的

硬分叉是指比特币区块格式或者交易格式(共识)发生改变时,未升级的节点拒绝验证已经升级的节点生产出的区块,不过已经升级的节点可以验证未升级节点生产出的区块,然后大家各自延续自己认为正确的链,所以分成两条链。

硬分叉特点:

  • 没有向前兼容性,之前的版本不可再用,需要强制升级
  • 在区块链层面会有分叉的两条链,一条旧链,一条分叉新链
  • 需要在某个时间点全部同意分叉升级,不同意将会进入旧链
屏幕快照 2018-07-04 下午7.38.28.png

软分叉的指比特币的数据结构发生改变时,未升级的节点可以验证已经升级的节点生产出的区块,而且已经升级的节点也可以验证未升级的节点生产出的区块

软分叉的特点:

  • 有较好的兼容性,之前版本的部分功能可用,可不升级
  • 在区块链层面没有分叉的链,只有组成链的区块有新区块和旧区块之分
  • 相当长的时间里,可允许不进行升级,继续使用原版本生成的旧区块,新旧并存
屏幕快照 2018-07-05 下午3.07.04.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容