白话区块链技术栈--哈希指针

in #blockchain6 years ago

我们来白话白话,指针是啥,指针就是要找某件东西,总要知道去哪里去找吧,这个指针就是你要找的东西的地址,比如你想给某人打电话,首先从电话里找到这个人的电话号码,拨打后,就可以跟这个人通话了,这时候电话号码就是一个电话指针,再或者我们要快递一个礼物给很要好的朋友,这时候快递小哥就要知道这位朋友地址才能把礼物送过去,这种情况下,朋友的地址就是一个地址指针

言归正传,哈希指针是什么意思呢,哈希指针的意思就是指向某个地方的地址,只不过这个地址进行了哈希转换,是一个代表某个地址的哈希值,哦,原来是这么个意思,比如上面的电话指针,地址指针,如果变成哈希指针就变成下面图片这个样子

用了这么高大上的哈希指针,有什么好处? 最主要的作用,除了能找到谁谁谁,还能够防止被指向地址内的数据被篡改,当然这个防止被篡改只是哈希指针的一个特性,真正比特币里面的防篡改不是用的这个特性,是用的其他更复杂的方式,我们后面在白话的讲

我们来看看哈希指针怎么能防止篡改:
比如正常的一个区块链就好比底下这张图,这个区块链就三个区块,H3可以是随便的,因为他后面已经没有区块了,H3跟数据3组合后,计算出哈希值,把这个哈希值就赋值给H2,这样H2就指向了区块3,然后呢,H2跟数据2组合后,计算出哈希值,同样把这个哈希值赋值给H1,这样H1指向了区块2,接着,H1跟数据1组合后,再计算出哈希值,把这个哈希值赋值给H0,H0就指向了一个区块1

这样子一个区块链就构造完成了,H0作为这个区块链的入口被公布出去,以后谁想访问这个区块链,只要拿到H0就可以了

这时候有一个技术大拿说,我想改数据3的内容,我们看看会发生什么

  1. 改了数据3,我们把数据3改成红色,
  2. 因为老的H2是通过H3跟老的数据3计算出来的,那数据3改了后,为了让H2能再指向区块3,就需要再次计算H2,这样H2就发生变化了,我们把H2改成红色
  3. H2发生变化后,因为老的H1是通过老的H2跟数据2计算出来的,那H2发生变化了,为了让H1能指向区块2,就需要再次计算H1,这样H1就发生变化了,我们把H1改成个红色
  4. H1发生变化后,因为老的H0是通过老的H1根数据1计算出来的,那H1发生变化了,为了让H0能指向区块1,就需要再次计算HO,这样H0也发生变化了,我们把H0改成红色
    所以看到因为改了数据3,导致H2,H1,H0都发生了变化

当这个技术大拿把修改后的这个区块链公布之后,发布这个区块链的入口是新的H0,结果小白用户通过对比发现H0跟原来的不一样,就知道,哦,原来你已经改了这个区块链的内容了

Sort:  

@andaliaw9, 伦家就觉得你的区块链普及贴写得不错嘛~~~ img

@andaliaw9, 这个不错,赞了!

顺路 @cn-cutie.pie 妹子,撩一个 ?

Congratulations @andaliaw9! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!