专栏首页技术专栏1.3 比特币的原理-账本如何验证

1.3 比特币的原理-账本如何验证

1.3 比特币的原理-账本如何验证

在中心化的系统里面,如果数据被篡改了,几乎是没有办法验证的,因为他的数据存储在一方,其他人没有办法获取和验证。在分布式的去中心化系统里面,如比特币。每个节点(可以是一个用户的一台电脑(旷工),也可以是一组服务器集群(矿池))都有一份账本的全部信息。这样如果其中一个节点修改了数据,其他节点就会验证不通过(具体的保证机制后面会介绍),也就保证了信息的不可篡改性

以比特币为例,比特币每10分钟生成一个新的账本,这个账本里保存了10分钟内的所有交易记录。每个节点都会得到这样一份交易记录,并对这个记录进行hash,得到一个hash值,然后节点之间用这个hash值进行互相验证。

hash函数 同样的原始信息用同一个哈希函数总能得到相同的摘要信息 原始信息任何微小的变化都会哈希出面目全非的摘要信息 从摘要信息无法逆向推算出原始信息

image.png

每一个账本的序号,hash值,时间戳,和交易的原始的交易记录组合在一起,就形成了一个区块,而且我们叫序号,hash值,时间戳称为这个区块的头

image.png

当下一个10分钟有产生了一个交易记录账本。那么就会将上一个区块的hash值和这次的账本共同进行hash产生一个hash值,然后进而产生一个新的区块

image.png

以此类推,按照这样的方式就会产生第三个快,第四个快。。。第N个块,所有这些块串联的结构就成为区块链。

然后每一个节点在核对数据的时候,只需要核对最后一个块的摘要信息,如果能够核对上的话,就说明整个区块链的账本是正确的

image.png

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 基于java开源区块链Blockchain相关项目介绍

    对于比特币、莱特币、以太币等加密数字货币大家应该不陌生了,最近一年ico在国内也是备受关注和争议。抛开这些单纯从技术角度看基于java的开源blockchain...

    哲洛不闹
  • Scrypt算法

    Scrypt是内存依赖型的POW算法,莱特币采用此算法。第一个使用Scrypt算法的数字货币是Tenebrix,而后该算法被莱特币使用。莱特币创始人在莱特币创世...

    飞狗
  • 不同的区块链技术,涉及那些编程语言?

    区块链技术入门,涉及那些编程语言?在本文中,将介绍比特币、超级账本Fabric和以太坊这三种区块链中,分别使用什么开发语言来进行智能合约编程,并提供你进一步学习...

    笔阁
  • 优秀的数字资产交易平台开发应该具备哪些要素?

    数字资产交易平台开发一直以来注重的无非是用户是否喜欢,再就是平台是否安全,这两大要素也算得上是一个数字资产交易平台开发的核心要素了。数字资产交易平台开发出来是给...

    v-ruiec762679
  • 《一切皆是映射》哈希算法 (Hash)

    「The Algorithm Design Manual」一书中提到,雅虎的 Chief Scientist ,Udi Manber 曾说过:

    一个会写诗的程序员
  • 1.5 比特币的原理-为什么记账(挖矿)

    之前在将账户如何验证的时候,其实是把账户地址,交易信息进行hash打包的过程。这个过程是需要消耗计算机资源的,既然要消耗资源,那么节点为什么要参与记账呢。在比特...

    Meet相识
  • 比特币和区块链是什么?看完这篇文章不再懵

    实际上全球各种虚拟货币已经超过了1300种,其中市值排名前几名的除了比特币还有下面的这几种虚拟货币。

    進无尽
  • 1.4 比特币的原理-账户所有权问题

    比特币系统里面如何验证某个比特币是谁的,谁拥有这个比特币。我们还是先对标一下银行系统来理解这个问题。

    Meet相识
  • 1.2 比特币是什么

    比特币是一种数字货币,那么什么是数字货币呢,我们先来看下什么是货币,著名的经济学家凯恩斯在《货币论》中提到货币是可以承载价值的一般等价物

    Meet相识

扫码关注云+社区

领取腾讯云代金券