区块的生成和链接(二)

听了新大的区块链课程,每个字都能听清连在一起就不知道什么意思,所以想到把文字整理出来,为的是可以反复看反复理解,于是就有了这篇文章,这是第五课的后半部分内容。


图一、区块的验证和链接(图片来自新生大学课程)


三、区块的验证链接

1.之前说每个交易需要验证,区块挖到之后NONCE值如果算的不对,区块立刻会被作废。

2.另外会检查时间戳是否是小于当前时间两个小时,这个说法和很多书籍上的描述也不一样,看源代码发现和书上描述并不一致。

3.检查MERKLE树根是否正确,会重新把MERKLE TREE建立一遍,看里边包含的交易、哈希算出来的是否一样。

4.检查区块的大小要符合当前区块的大小,超过极为非法。

5检查区块内的第一笔交易是否是COINBASE。

6.验证每笔交易。

7.http://btc.yt/lxr/satoshi/ident?_i=CheckBlock(对代码感兴趣可以看这个网站,这个lxr是lunix以前做的一套开源的“工具”,是一个非常方便的查看代码的工具。

这个链接是可以查看BTC源代码的链接,打开之后有很多版本可以选择,有最新的版本也有最初的版本,刚开始学比特币的话可以看0.1.5,它是很简单的版本系统。在这里可以看到代码的实现情况。


图二、图片来自新生大学课程


四,Merkle Tree

1.什么是树?

为了更直观,图片中的树的结构是倒立着的树,树根在顶端。进入这个树,验证在这个交易中是否包含某个数据的时候,是从根节点进入,按规则一步步去查找、验证的。

                                                                                  图三

父节点:从根节点开始,上面一级的是父节点,下面一级的是子节点。

比如12是根节点,也是父节点,5、18也是父节点

子节点:下面一级的节点就是子节点。例:5、18是子节点,2,9,15,19都是子节点

兄弟节点:5和18是兄弟节点,2和9是兄弟节点

如果规定兄弟节点只能有两个就是二叉树。

树的最大好处就是当数据量很大时,搜索某个数是否在这一堆数据当中会非常快。

2.如何构建一个二叉搜索树?(图三)

例:12 5 2 18 19 15 17 16 9

第一个是12作为Root;

第二个是5,判断5<12,于是放入左边形成12的一个子节点;

第三个是2,2先和12比较大小,它小于12于是就放到左侧,接着和5比较大小,2<5,于是2放在5的左侧成为5的子节点;

第四个是18,先和12比较大小,它大于12于是放到右侧,成为12的一个子节点

第五个是19,先和12比较,大于12于是放到右侧,接着再和18比较大小,它大于18,于是放在右侧成为18的子节点。

以此类推,后面的数据都依据这样的规则最终建立起树的结构。

3.Merkle Tree

在这个Merkle Tree中存的不是一笔交易的所有信息,而是交易数据的哈希值,如果某个交易被改了的话,整个Merkle Tree就会有翻天覆地的变化,因为某个值的变化就会造成单个哈希的变化,然后就会造成上一步哈希值的变化,最后的ROOT都不相符,所以这个Tree就可以防止篡改,并且能快速验证某个交易是否在这个Tree里。

图四、Merkle Tree (图片来自新大课程)

Merkle Tree的建立

它的建立是从子节点开始建立,从下往上到ROOT,并且子节点是成对出现,父节点是基于两个子节点计算出来的。在图四中的子节点HA是交易A的哈希值,子节点HB是交易B的哈希值,根据HA和HB的哈希值做个总哈希计算得出父节点HAB,子节点HCC由两个子节点HC的哈希值计算得出。(当这个交易非常大的时候,这个区块里只能放下三个交易,这时由于Mrekle Tree有交易必须成对出现的要求,所以此时需要把交易凑成对,就凑了个一模一样的HC做它的兄弟节点)。

根据HAB和HCC的哈希值做总哈希计算最终得出HABCC,到此Tree就建成了。

五、验证路径

如何验证一笔交易是否已存在于区块中呢,也就是当别人说给你钱包里发送了1个比特币的时候,你要如何验证他是否真的给你钱包里发送了呢?这就是Melrkle Tree的作用---实现便捷的验证、防篡改。

图五、图片来自新大课程

验证在N个数值中是否包含某个数值需要的工作量是log2(N)

Number ofTransactions:表示区块里交易的数量

Approx.Size ofBlock:表示区块里交易数量相对应的size

Path Size(Hashers):验证一个交易是否存在于这个区块需要的工作量(需要几步)

例:想验证Hk是否在这个区块里,需要四步,也就是说给出四个数(HL、HIJ、HMNOP、HABCDEFGH)就可以验证出HK是否在这个区块中了,验证路径如下:

第一步,HK和HL做哈希运算得出HKL

第二步,HIJ和HKL做哈希运算得出HIJKL

第三步,H­IJKL和HMNOP做哈希运算得出HIJKLMNOP

第四步,HABCDEFGH和HIJKLMNOP做哈希运算得出HABCDEFGHIJKLMNOP,并和区块中的ROOT对比。

相符即是TRUE不符就是FALSE 。

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

推荐阅读更多精彩内容

  • 一、快速术语检索 比特币地址:(例如:1DSrfJdB2AnWaFNgSbv3MZC2m74996JafV)由一串...
    不如假如阅读 15,882评论 4 88
  • 所有货币都需要一些方法来控制供应,并强制执行各种安全属性以防止作弊。在法定货币方面,像中央银行这样的组织控制货币供...
    Nutbox_Lab阅读 3,070评论 1 3
  • 这周听了新大的区块链课程,每个字都能听清连在一起就不知道什么意思,所以想到把文字整理出来,为的是可以反复看反复理解...
    kathy亚峰阅读 2,008评论 0 1
  • 1、 你是参天大树 我是围在你身边的小草 而你的眼里从未看见过我 2、 我静静的坐在公园的长椅上 心和思绪都不是我...
    金书js阅读 615评论 8 11
  • 唉,今日失言颇多,不好。
    巫落阅读 156评论 0 0