把区块链这个账本剥开来看看

把区块链这个账本剥开来看看

区块链原理admin2020-11-21 13:54:4330A+A-

  小明空闲时间给王叔叔的小卖部当服务员,工作就是卖东西、收钱、记账。王叔叔给了小明一个账本,好记录下一天的情况。一天下来,小明在账本新的一页第51页,写下了:2017年11月14日,卖出5包瓜子20元、2袋洗衣液70元、10包烟200元……。

  傍晚,王叔叔过来接小明的工作。为了感谢小明认真仔细的工作,王叔叔给了小明80元作为报酬。王叔叔在账本上写下,劳务支出80元。

  区块链是什么? 区块链就是一个大账本,就如王叔叔的账本一样,不同的是,区块链这个大账本不只是王叔叔有,小明、小玲等等都可以有,而且是内容一模一样的账本。

  区块定义为:一种被包含在公开账簿里的聚合了交易信息的容器数据结构。通俗点说,区块就是小明记账的那页纸,用来记录一段时间发生的交易情况,是一种载体。 王叔叔的账本,每一页都有记录有交易时间、内容,账本的页码等等,那区块链是怎么记录交易信息的呢?

  区块中有四个部分:区块大小、区块头、交易计数器、交易列表。区块大小可以理解为账本的纸张大小,这个决定了一页账本可以记录多少交易;区块头由6个部分组成,记录了这一页账本的很多属性,如区块产生的时间等等;交易计数器是这个区块记录了多少笔交易;交易列表,就是记录了谁与谁交易了,交易了多少。

  其中coinbase交易和Merkle根可能比较不好理解,coinbase交易:就是每个区块的第一笔交易,为了让矿工获得奖励及手续费的特殊交易,就如王叔叔给小明发的工资。Merkle根:是区块中的所有交易进行哈希运算,以树状的形式组织起来形成的,可以点击这里查看详细。

  王叔叔,能轻易的辨识它小卖部的账本是否被动过手脚,因为可以通过笔迹和页码等一些标识确定。 而区块记账我是如何辨识它,并确定它是否被修改过呢?

  区块高度:识别区块在区块链中的位置, 第一个区块,其区块高度为0,每一个随后被存储在第一个区块之上的区块在区块链中都比前一区块“高”出一个位置,就如账本中的第1、2、3……页。

  区块头哈希值:通过对区块头进行二次哈希计算而得到的哈希值也称为数字指纹,是区块的主标识符。区块头字符通过SHA256哈希算法可以得到一个确定的哈希值,而不能通过哈希值反算出区块头字符。因此区块头哈希值可以唯一、 明确地标识一个区块。而这个区块头哈希值不保存在本区块上,而是保存在下一个区块上。通过前后相互验证确定,就像账本中是否缺页或替换,也是通过前后一些对比来判断。

  首先, 区块高度不是区块数据结构的一部分,它并不被存储在区块里,而是作为元数据存储在一个索引数据库表中。其次,区块高度并不是唯一的标识符,可能有两个或两个以上的区块有相同的区块高度,在区块链里争夺同一位置。 而区块哈希值是唯一、 明确地标识一个区块。

  区块链里的第一个区块创建于2009年,它被称为创世区块,是区块链里面所有区块的共同祖先。意味着你从任一区块, 循链向后回溯, 最终都将到达创世区块。 而创世区块被编入到比特币客户端软件里,因此每一个节点都“知道”创世区块的哈希值、 结构、 被创建的时间和里面的一个交易,每个节点都把该区块作为区块链的首区块。

  这种包含交易信息的区块从后向前有序链接起来的数据结构叫区块链。每个区块都指向前一个区块,而每个区块头都包含它的前一区块哈希值,这样创建了一条一直可以追溯到第一个区块( 创世区块)的链条。

  如果要修改某个区块的值,那就需要把这个区块往后所有区块的数据修改,同时还要修改其他节点的账本数据,这个计算量是非常巨大的,从而保证区块链历史数据不可改变。

  参考资料[1].邹均,张海宁.区块链技术指南[M].北京:机械出版社,2016.11[2].长铗,韩锋.区块链从数字货币到信用社会[M].北京:中信出版社,2016.7[3].张健.区块链定义未来金融与经济新格局[M].北京:机械工业出版社,2016.6

点击这里复制本文地址 免责声明:本站内容由程序自动采集于互联网,无人工干预,只作交流和学习使用,本站不储存任何资源内容,如有侵权请联系qq邮箱798244092@qq.com立刻删除,谢谢!

支持Ctrl+Enter提交

区块链 © All Rights Reserved.  
Powered by 多多资源网 Themes by 多多资源网
联系我们| 关于我们| 留言建议| 网站管理