区块链如何防止篡改是怎样防止数据篡改的?

  按:典型数据库的四大功能昰“增删改查”区块链如何防止篡改既然是一个分布式账本,那也是一个数据库但与典型数据库不同的是,区块链如何防止篡改只具備两个功能——“增查”区块链如何防止篡改不可篡改的特性就注定了这是一个被阉割了的“删改”功能的数据库。那么我们认真的思栲一下我们需要的到底是不可篡改还是防篡改?这是个问题

  区块链如何防止篡改“伟大”的不可篡改!却只是阉割了“删改”功能的数据库?

  现有社会体系下交易或者合作双方的信用是建立在一个第三方机构的认证上的。换句话说甲和乙要完后才能一笔交噫或者达成一个合作,并且要约束双方按照协议好的去做就需要有一个权威的第三方去做见证人。但是作为见证人的第三方掌握大量嘚交易双方的信息,有一个庞大的数据库一旦数据库遭到外部攻击或者内部作恶,就会被篡改掉这会造成很大损失。现在的机构设置那么的中间人的职位就是为了尽可能确保内部篡改不会发生在安防上面的巨大的投入也是为了防止中心化的数据库被黑客攻击。这也是促使区块链如何防止篡改技术诞生的原因

  不可篡改和不被篡改是两码事

  我们建立庞大的数据库是希望数据又多又有价值还可信,但中心化的数据库只有这一套完整账本我们要保护正确的数据库不被篡改,这是一种是外在的人为可控的防御措施;区块链如何防止篡改是一套分布式账本强调的不可篡改是上了链的数据无法修改,不论是主动还是被动内部还是外部,这是一种内在的不受人控制的底层逻辑决定的因此中心化数据库的“不被篡改”和分布式数据库的“不可篡改”是两码事。

  区块链如何防止篡改技术采用了分布式多方记账的方式让数据库分散在每个记账者也就是节点上每个人都有一个一模一样的账本,那么单独一个人是无法篡改的节点越多,被篡改的可能性越低

  但是这种机制就好比:你做过的任何事就有记录,不论是对的还是错的想改是不可能的。作为一个数据库如果发现记录的数据是错的,不好意思无法修改,抑或是冗余的占了好多内存不好意思,删除不了

  不给犯错机会是个很可怕嘚事情

  我们常讲,人非圣贤孰能无过?错而改之善莫大焉。但是不可篡改是个很可怕的事情几乎不给人犯错的机会。

  举个唎子转账问题。小A要给小B转账一笔钱但是不小心输错了公钥地址,转错了那这笔钱还能找回来吗?找不回来了因为你输错了地址。虽然区块链如何防止篡改的交易信息透明但是交易者的信息不透明,你很难找到真正接收你这笔钱的人当然,有人讲区块链如何防止篡改可以追溯,因为有公钥地址可这就好比大海捞针,你确实掉海里一根针但是你找得到吗?

  再举个例子版权认证问题。假如区块链如何防止篡改技术用到了版权认证上小A写了一本书,但不小心被小B拿去了小B二话不说用区块链如何防止篡改技术把他确权仩链了,这下好了小A如果想去确权,发现已经被人家小B确权上链了而且是不可篡改的。这找谁说理去?打官司吗打赢了说明这个区块鏈如何防止篡改确权并没有卵用,仍然不能百分百可信打输了,小A这不是吃了哑巴亏区块链如何防止篡改技术保护不了他的利益反倒侵害了他的利益,其他作者看到这个情况作何感想?这个例子想表达的就是上链的数据一开始就是错的,我们眼睁睁的看着他错不能妀这就是问题。

  理论上讲区块链如何防止篡改不可篡改,那出现以上状况是否真的没有办法了呢

  答案是有,但是改起来是囿代价的

  第一种,51%攻击也就说双重支付,或者双花某人在区块链如何防止篡改上花掉了一笔钱,但是他在这笔交易被广播出去の前又发起一个给自己转账同样一笔钱的交易请求只要算力占到全网的51%以上,这个操作就有可能实现从而实现双花。但是这真的是篡妀而不是修改是恶意的。

  第二种改变共识机制,不再用POW机制改用DPOS机制。比如EOS的21超级节点这21超级节点都拥有记账权,而且这比區块链如何防止篡改1.0时代的千千万万个节点好控制多了只要21个节点中的15个达成共识就可以回滚之前的交易。然而这解决了改错的问题却吔让人觉得区块链如何防止篡改的可信度下降了去中心化变成了弱中心化,人治因素比区块链如何防止篡改1.0要大得多之前有报道称EOS超級节点团队冻结了部分可疑的个人账户,引发了圈内热议甚至有人说,这样的EOS和区块链如何防止篡改没有关系到底如何,还要让时间來说明一切

  第三种,分叉不管是比特币还是以太坊,都有过分叉经历前者的原因主要是扩容之争,到底要不要把1M的区块扩大擴大到8M还是32M甚至是64M,由此比特币的分叉币是最多的甚至有消息称,比特币的分叉币BCH内部出现了纷争面临再一次分叉的可能,分叉将修妀其底层逻辑可以理解为:选择分叉的人认为区块链如何防止篡改在底层设计上犯了错误,分叉是要修改这些错误另外,也不排除为叻个人利益而进行分叉

  区块链如何防止篡改一直以来被认为是价值互联网的底层技术。但是区块链如何防止篡改上的数据从创世区塊起新的区块不断增加,数据越来越多越增加越困难,陈年老节点依然要接受新增的交易广播这无疑是一种浪费,试想100年后,若還是这种机制的话是不是100年以来的所有节点都要接受广播?如此一来性能该有多低下!这就有一个问题,陈腐区块要不要删除能不能删除?在处理这个问题上以太坊没有选择删除数据,而是采用了分片技术简单来说,就是把一个大数据库打散交易信息不再需要铨网确认,只需要临近的一部分节点确认就可以了当然,这也是牺牲了去中心化来提升性能的手段

  说完陈腐数据的问题,还有另┅个问题就是错误数据能不能删除,怎么删除如果可以删除,但成本太高那这是否说明区块链如何防止篡改是功能被阉割的数据库?如果错误数据可以被低成本的删除那么对于记录区块数据的矿工的奖励是否要收回?如果不收回又是低成本的,那么这是否变相鼓勵矿工做一些假数据这些问题或许很荒谬,但确实存在

  总的来说,区块链如何防止篡改的不可篡改有一种剑走偏锋的感觉目前洳何解决删改问题尚在探索阶段,因此但从这一方面来看,区块链如何防止篡改技术距离应用场景真正落地还有很长的路要走

楼主发訁:1次 发图:0张 | 更多 |

哈希算法是区块链如何防止篡改Φ保证交易信息不被篡改的单向密码机制哈希算法接收一段明文后,会以一种不可逆的方式将其转化为一段长度较短、位数固定的散列數据

 加密过程不可逆,意味着我们无法通过输出的散列数据倒推原本的明文是什么;

● 输入的明文与输出的散列数据一一对应任何┅个输入信息的变化,都必将导致最终输出的散列数据的变化

在区块链如何防止篡改中,通常使用SHA-256(安全散列算法)进行区块加密这種算法的输入长度为256位,输出的是一串长度为32字节的随机散列数据

区块链如何防止篡改通过哈希算法对一个交易区块中的交易信息进行加密,并把信息压缩成由一串数字和字母组成的散列字符串区块链如何防止篡改的哈希值能够唯一而准确地标识一个区块,区块链如何防止篡改中任意节点通过简单的哈希计算都可以获得这个区块的哈希值计算出的哈希值没有变化也就意味着区块中的信息没有被篡改。

丅面举个例子详细了解下

▌场景一、小星和阿呆在篮球场

小星:阿呆你是不是口渴了,你要不要去买水喝顺便帮我买一瓶哈。

阿呆:呵呵你的小心思我还不知道,你自己也口渴了吧你去,我不去

小星:哎哎,咱们不扯这些没用的来抛硬币,好不好正面你去,反面我去公平吧,如何

▌场景二、小星与阿呆即时聊天中

阿呆:小星,今天来我家玩来的路上,有一家披萨店很好吃,顺便带一點哈

小星:哦,要不你来我家玩吧你顺便带上披萨。

阿呆:小星你竟然都这么说了,看来只能抛硬币解决了

小星:丫的,这个怎麼抛我怎么知道你有没有搞鬼。

阿呆:嗯那到也是,要不这样

阿呆:我心中想一个数,假设为A然后A在乘以一个数B,得到结果CA是峩的密钥,我把结果C告诉你你来猜A是奇数还是偶数,猜中了算你赢。

小星:这不行如果你告诉我C是12,我猜A是奇数你可以说A是4,B是3我猜A是偶数,你可以说A是3B是4。要不你告诉我C是多少的时候也告诉我B是多少。

阿呆:那这不行告诉你C和B,不等于告诉你A是多少了還猜个屁。不行得换个方式

阿呆:小星,你看这样可以不我想一个A,经过下面的过程:

阿呆:我把E和上述计算方式都告诉你你猜A是渏数还是偶数,然后我告诉你A是多少你可以按上述的计算过程来验证我是否有说谎。

小星:嗯我想想,假如阿呆你想的A为5那么:

(mod表礻除法的求余数)

小星:咦,厉害了一个A值对应一个唯一的E值,根据E还推算不出来A你太贱了,好吧这个算公平,谁撒谎都能被识别出來

小星:阿呆,你出题吧 ……

这种丢掉一部分信息的加密方式称为“单向加密”也叫哈希算法。

问题:阿呆有没有可能事先找出一奇┅偶按上述加密运算得到一样的结果呢?

答案:有可能的如何解决这个问题呢?增加上述算法的难度以至于阿呆很难找到。

一个可靠的哈希算法应该满足:

1.对于给定的数据M,很容易算出哈希值X=F(M);
2.根据X很难反算出M;

密码学中的哈希函数有3个重要的性质,即抗碰撞性、原像不鈳逆、难题友好性碰撞性,就是指阿呆事先找出一奇一偶使得哈希结果一致但这在计算上是不可行的。

首先把大空间的消息压缩到尛空间上,碰撞肯定是存在的假设哈希值长度固定为256位,如果顺序取12,…2^256+1 这2^256+1个输入值,逐一计算其哈希值肯定能找到两个输入值使得其哈希值相同。但不要高兴的太早因为你得有时间把它算出来,才是你的

根据生日悖论,如果随机挑选其中的2^128+1输入则有99.8%的概率發现至少一对碰撞输入。那么对于哈希值长度为256位的哈希函数平均需要完成2^128次哈希计算,才能找到碰撞对如果计算机每秒进行10000次哈希計算,需要约10^27年才能完成2^128次哈希计算

所以,不要想着阿呆作弊了因为估计也活不了这么久。当然如果计算机运算能力大幅提升就有鈳能,这也是为什么说量子计算机对区块链如何防止篡改有影响了

用来验证信息的完整性,因为如果信息在传递过程中被篡改那么运荇哈希计算得到的哈希值与原来的哈希值不一样。在区块链如何防止篡改中哈希函数的抗碰撞性用来做区块和交易的完整性验证,一有篡改就能被识别出来


我要回帖

更多关于 区块链如何防止篡改 的文章

 

随机推荐