区块链记账原理

区块链:

-区块链就是一个不断增长的全网总账本

-每个完全节点都拥有完整的区块链

-节点总是信任最长的区块链

-伪造区块链需要拥有超过51%的全网算力

区块链为什么不可篡改?

区块链的结构:区块链是由一个个区块,构成的有序链表,每一个区块,都记录了一系列交易,并且每个区块都指向前一个区块,从而形成一个链条。


如果我们观察一个区块,就会发现每个区块都有一个唯一的哈希标识(区块哈希);同时区块通过记录上一个区块的哈希,来指向上一个区块;

Merkle Hash用来确保该交易的所有交易记录无法被篡改;

区块的主要数据就是一系列交易,第一条交易是Conbase交易(矿工的挖矿奖励),后面的交易都是用户的交易。

区块链的不可篡改特性是怎么保证的?

是通过哈希算法(又称散列算法)

  -哈希算法是一个单向函数:h = H(x)

  -它把任意长度的输入数据转化为固定长度的输出

例如对“morning”和“bitcoin”进行某种哈希运算,得到的结果是固定长度的数字(通常用16进制表示哈希的输出)


哈希算法的特点:

       --单项函数:

通过输入可以很容易地计算输出

通过输出无法反推输入,只能暴力穷举

       --碰撞率低:

如果x ≠ y,而H(x) = H(y),则发生碰撞(输入数据不同,却计算出相同的哈希值)


因为输入数据的长度是不固定的,所以输入的数据是一个无限大的集合,而输出数据的长度是固定的,所以输出数据是一个有限的集合。把一个无限集合中的每一个元素变成到一个有限的集合中,就必然存在某些不同的输入好得到相同的输出。

      --输出无规律

输入数据任意一个bit的改动,会导致输出完全不同

哈希算法的作用:

假设我们相信一个安全的哈希算法:如果H(x)=H(y),则x = y,如果两个文件或数据的hash相同,说明文件相同,没有被改动过。

比特币使用哈希算法来保证所有交易的不可篡改,就是计算并且记录交易的哈希,如果交易被篡改那么哈希验证将不能通过,说明这个区块是无效的。

常用的哈希算法:


比特币使用的哈希算法有两种:SHA-256和RipeMD160


Merkle Hash:本区块的交易的hash

Merkle Hash:本区块的交易的hash

Merkle Hash字段,他记录了本区块所有交易的Merkle Hash。

Merkle Hash是一系列数据的哈希,通过一个简单算法,变成一个汇总的哈希


如果交易的数量不恰好是4个,如只有三个时,三笔交易计算出a1,a2,a3,a1和a2可计算出b1,a3和谁组合计算?没关系再把a3复制一份即可,a3和a3计算出b2。总之,在每层的计算中,如果存在单数,就把最后一份数据复制在计算。

从merkle hash的计算方法可以得出结论:修改人一个交易,哪怕一个字节或者交换两个交易的顺序,都会导致Merkle hash验证失败,也就会导致这个区块本身是无效的,所以Merkle Hash记录在区块头部,它的作用就是保证交易记录永远无法被修改。

区块本身用Block Hash来标识,block hash并没有记录在区块头部,而是计算区块头部所记录的所有哈希得到的。


Block Hash 区块唯一标示

区块头部的Prev Hash记录了上一个区块的哈希,这样就可以追踪到上一个区块,这样每个prev hash都指向上一个区块,这样串起来就形成了区块链。

如果一个攻击者修改了区块中的某个交易,这样这个区块的Merkle hash就不会验证通过,所以攻击者只能重新计算和修改区块头部的Merkle hash,这时候区块本身的hash就变了,所以下一个区块指向它的链接就断掉了,由于比特币区块的哈希值要满足一个难度值,因此攻击者必须重新计算这个区块的哈希,然后把后续所有区块全部重新计算并且伪造出来,才能伪造整个区块链。

修改一个区块的成本就已经非常非常高了,伪造区块链需要拥有超过51%以上的全网算力才行,所以修改区块链的难度是非常非常大的,并且区块链在不断的增长,修改它的难度会随着时间的推移而不断的增加。

得出结论:

--区块链依靠安全的哈希算法保证所有区块数据不可更改

--工作量证明机制保证修改区块链的难度非常巨大从而无法实现

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

推荐阅读更多精彩内容

  • 在聊区块链记账原理之前我们先来了解几个知识点,随后再慢慢说明: 区块链就是一个不断增长的全网总账本 每个完全节点都...
    Origheart阅读 2,833评论 0 1
  • 参加一次青海湖的轮滑比赛 去日本看樱花 跑一次马拉松 跳伞一次
    想你itiswritten阅读 157评论 0 0