怎么样才能修改区块链里的数据请结合技术和现实场景来描述

不是高手,只是略有涉猎,强行回答一下。
首先,我先说明下区块链的数据结构是怎样的,以及为什么说它无法篡改。
区块链是一个去(多)中心化的分布式数据库,这个数据库是由一串使用密码学方法产生的数据区块链有序链接而成,区块中包含有一定时间内产生的无法被篡改的数据记录信息。
怎么样才能修改区块链里的数据请结合技术和现实场景来描述

(PS:没找到合适的图,大家将就看,在B的前面还有一个数据块A,只有一个当前hash0,没有前一hash值,其他都一样。)
先修知识;
o 密码学Hash()函数的单向性: Hash(x) =y , 通过y很难找到x
o 哈希链: 假如现在有顺序产生的数据块 A, B , C 。 那么我们可以这样计算一个hash 。 注意 “||” 表示拼接
h0= Hash(A)
h1 = Hash(B || h0)
h2 = Hash(C || h1)
h2是我们计算的hash头部,h2 的值依赖于之前一系列数据的内容和计算顺序。 假如你拿着A,B, C, 不管是修改A,B, C的任一点内容还是A,B, C的出现顺序,你都无法再次计算出正确的h2 。
当然,你会说,那我按照修改后的内容继续算下去,走自己的路,就是要跟其他节点不一样。但是,区块链之所以能成为一个难以攻破的、不可篡改的数据记录的去中心化诚实可信系统,就在于它能尽可能短的时间内保证最新区块链被准确添加至区块链、节点存储的区块链信息一致不分叉甚至可以抵御恶意攻击。这个流程我们成为共识机制。
目前主流的共识机制包括:pow、pos、dpos、pbft等等,具体原理见(懂技术的进,pbft是不是区块链目前最优的共识机制? - JoannaD 的回答 - ),简单来说就是少数服从多数。你可以大概理解为你自己在自己的数据库上修改数据没有用,整个系统不会认同,只会按照设定好的机制走下去。
我们可以得出这样的一个结论:区块链可以确保链上数据的真实性,不需要修改。比如比特币,自成系统,在没有中心机构的维护下安全运营了8年,从没有用户反映自己的数据被篡改了。
但现在区块链和比特币不同的而是,区块链正处于一个逐步与其他行业结合的阶段,它需要和现实场景结合。比如钱香金融,将自己的理财产品发行在布萌区块链上。用户买了它家的1份理财产品,结果钱香金融一不小心送给用户2份(举例而已,可能并不会出现这种状况)。这个数据被写进了布萌区块链后会被存储在布萌每一个节点上,即使钱香金融自己修改数据,其他节点不修改,这个修改的数据也是无效的。钱香如果想修正这个错误,需要和用户商量:hello,能把我多送你的那份理财产品还我吗?
普通用户也是这样,还别人100块还成了200块,这种多中心化的记账模式,一家机构想帮忙修改还真不成。所以,区块链其实对机构也好、对用户也好,提出了更高的要求。那就是,要为自己的行为负责。
当然你会说,中心机构也不会修改,因为这是用户的失误,但不会和不能是有区别的。比如银行,你银行卡丢了,只要提供身份证明,银行会给你补办一个,因为这个数据库在银行那里,银行可以进行这样的操作。但区块链应用是不能,数据是所有节点共同维护,某一家机构是没法修改的。
恩,如果实在要修改也不是不可以,可以借鉴以太坊the dao 被黑客攻击的事件,进行软分叉或者硬分叉。但这个代价是非常沉重的,需要取得大部分节点的同意,某种程度上,也算是节点链外人为补充的一种共识吧。

■网友
咨询服务业巨头埃森哲已在欧美获得可编辑区块链模型专利。此种区块链允许在已授权的区块链系统中,由中央管理员修改及删除储存信息。埃森哲指出不可编辑性在授权系统中并非必要属性,因为此系统由单一机构控制。 新闻来源比特币跨境汇款方兴未艾 可编辑区块链或违初衷。但是这个还是不是区块链呢?


推荐阅读